From 4f6433ee0fb381170656ae6fb7414ce21b7f2160 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Wed, 13 Jul 2022 21:24:11 -0500 Subject: [PATCH] Improve IDhApi Render events --- .../external/events/DhApiEventRegister.java | 1 - .../lod/core/api/external/events/Readme.md | 4 ++- .../interfaces/IDhApiAfterRenderEvent.java | 19 ++++++++++++ .../interfaces/IDhApiBeforeRenderEvent.java | 21 +++++++++++++ .../events/interfaces/IDhApiRenderEvent.java | 31 ------------------- 5 files changed, 43 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiAfterRenderEvent.java create mode 100644 src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiBeforeRenderEvent.java delete mode 100644 src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiRenderEvent.java diff --git a/src/main/java/com/seibel/lod/core/api/external/events/DhApiEventRegister.java b/src/main/java/com/seibel/lod/core/api/external/events/DhApiEventRegister.java index cd1a70dca..ee3f58a0c 100644 --- a/src/main/java/com/seibel/lod/core/api/external/events/DhApiEventRegister.java +++ b/src/main/java/com/seibel/lod/core/api/external/events/DhApiEventRegister.java @@ -5,7 +5,6 @@ import com.seibel.lod.core.api.external.sharedObjects.DhApiResult; /** * Handles adding/removing event handlers. - * Based off of JQuery's event system. * * @author James Seibel * @version 2022-7-13 diff --git a/src/main/java/com/seibel/lod/core/api/external/events/Readme.md b/src/main/java/com/seibel/lod/core/api/external/events/Readme.md index d11110896..11a6f6d7b 100644 --- a/src/main/java/com/seibel/lod/core/api/external/events/Readme.md +++ b/src/main/java/com/seibel/lod/core/api/external/events/Readme.md @@ -1 +1,3 @@ -The events api package holds objects and methods for listening to events fired by Distant Horizons'. \ No newline at end of file +The events api package holds objects and methods for listening to events fired by Distant Horizons'. + +Each interface should only contain one method and that method should match the name of the file. This is done so Developers can mix and match what events they want their classes to handle. \ No newline at end of file diff --git a/src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiAfterRenderEvent.java b/src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiAfterRenderEvent.java new file mode 100644 index 000000000..4fccce195 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiAfterRenderEvent.java @@ -0,0 +1,19 @@ +package com.seibel.lod.core.api.external.events.interfaces; + +import com.seibel.lod.core.objects.math.Mat4f; +import com.seibel.lod.core.wrapperInterfaces.world.ILevelWrapper; + +/** + * @author James Seibel + * @version 2022-7-13 + */ +public interface IDhApiAfterRenderEvent extends IDhApiEvent +{ + /** + * Called after Distant Horizons' rendering pipeline finishes. + * + * @param renderingEnabled Passes in false if DH rendering was disabled or canceled for this frame. + */ + void afterRender(ILevelWrapper levelWrapper, Mat4f mcModelViewMatrix, Mat4f mcProjectionMatrix, float partialTicks, boolean renderingEnabled); + +} \ No newline at end of file diff --git a/src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiBeforeRenderEvent.java b/src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiBeforeRenderEvent.java new file mode 100644 index 000000000..7f64d124c --- /dev/null +++ b/src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiBeforeRenderEvent.java @@ -0,0 +1,21 @@ +package com.seibel.lod.core.api.external.events.interfaces; + +import com.seibel.lod.core.objects.math.Mat4f; +import com.seibel.lod.core.wrapperInterfaces.world.ILevelWrapper; + +/** + * @author James Seibel + * @version 2022-7-13 + */ +public interface IDhApiBeforeRenderEvent extends IDhApiEvent +{ + // TODO should we allow editing the levelWrapper MVM matrix, etc.? + // TODO make sure to document it either way. + + /** + * Called before Distant Horizons starts rendering.
+ * If this methods returns false, DH's rendering will be skipped for that frame. + */ + boolean beforeRender(ILevelWrapper levelWrapper, Mat4f mcModelViewMatrix, Mat4f mcProjectionMatrix, float partialTicks); + +} \ No newline at end of file diff --git a/src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiRenderEvent.java b/src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiRenderEvent.java deleted file mode 100644 index bc828878a..000000000 --- a/src/main/java/com/seibel/lod/core/api/external/events/interfaces/IDhApiRenderEvent.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.seibel.lod.core.api.external.events.interfaces; - -import com.seibel.lod.core.objects.math.Mat4f; -import com.seibel.lod.core.wrapperInterfaces.world.ILevelWrapper; - -/** - * Event handler for when Distant Horizons - * starts and finishes rendering - * - * @author James Seibel - * @version 2022-7-13 - */ -public interface IDhApiRenderEvent extends IDhApiEvent -{ - // TODO should we allow editing the levelWrapper MVM matrix, etc.? - // TODO make sure to document it either way. - - /** - * Called before Distant Horizons starts rendering.
- * If this methods returns false DH's rendering will be skipped for that frame. - */ - public boolean beforeRender(ILevelWrapper levelWrapper, Mat4f mcModelViewMatrix, Mat4f mcProjectionMatrix, float partialTicks); - - /** - * Called after Distant Horizons finishes rendering. - * If DH has rendering disabled or beforeRender //TODO Link - * canceled the rendering this event will not fire. - */ - public void afterRender(ILevelWrapper levelWrapper, Mat4f mcModelViewMatrix, Mat4f mcProjectionMatrix, float partialTicks); - -} \ No newline at end of file