diff --git a/src/main/java/com/seibel/lod/core/api/external/items/objects/events/DhApiAfterRenderEvent.java b/src/main/java/com/seibel/lod/core/api/external/items/objects/events/DhApiAfterRenderEvent.java deleted file mode 100644 index b3c5167a4..000000000 --- a/src/main/java/com/seibel/lod/core/api/external/items/objects/events/DhApiAfterRenderEvent.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.seibel.lod.core.api.external.items.objects.events; - -/** - * @author James Seibel - * @version 2022-7-14 - */ -public class DhApiAfterRenderEvent extends DhApiRenderEvent -{ - /** False if DH rendering was disabled or canceled for this frame. */ - public boolean renderingEnabled; -} \ No newline at end of file diff --git a/src/main/java/com/seibel/lod/core/api/external/items/objects/events/DhApiRenderEvent.java b/src/main/java/com/seibel/lod/core/api/external/items/objects/events/DhApiRenderEvent.java deleted file mode 100644 index 73ea9264e..000000000 --- a/src/main/java/com/seibel/lod/core/api/external/items/objects/events/DhApiRenderEvent.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.seibel.lod.core.api.external.items.objects.events; - -import com.seibel.lod.core.api.external.items.interfaces.world.IDhApiLevelWrapper; -import com.seibel.lod.core.api.external.items.objects.math.DhApiMat4f; - -/** - * @author James Seibel - * @version 2022-7-14 - */ -public class DhApiRenderEvent -{ - public IDhApiLevelWrapper levelWrapper; - - // the matrices received from Minecraft - public DhApiMat4f mcModelViewMatrix; - public DhApiMat4f mcProjectionMatrix; - - // the matrices used by Distant Horizons - public DhApiMat4f dhModelViewMatrix; - public DhApiMat4f dhProjectionMatrix; - - public float partialTicks; -} \ No newline at end of file diff --git a/src/main/java/com/seibel/lod/core/api/external/methods/events/abstractEvents/DhApiAfterRenderEvent.java b/src/main/java/com/seibel/lod/core/api/external/methods/events/abstractEvents/DhApiAfterRenderEvent.java new file mode 100644 index 000000000..e5256931d --- /dev/null +++ b/src/main/java/com/seibel/lod/core/api/external/methods/events/abstractEvents/DhApiAfterRenderEvent.java @@ -0,0 +1,29 @@ +package com.seibel.lod.core.api.external.methods.events.abstractEvents; + +import com.seibel.lod.core.api.external.methods.events.parameterObjects.DhApiAfterRenderParam; +import com.seibel.lod.core.api.implementation.interfaces.events.IDhApiEvent; + +/** + * @author James Seibel + * @version 2022-7-17 + */ +public abstract class DhApiAfterRenderEvent implements IDhApiEvent +{ + /** Fired after Distant Horizons finishes rendering fake chunks. */ + public abstract void afterRender(DhApiAfterRenderParam input); + + + //=========================// + // internal DH API methods // + //=========================// + + @Override + public final boolean onEvent(DhApiAfterRenderParam input) + { + afterRender(input); + return false; + } + + @Override + public final boolean getCancelable() { return false; } +} \ No newline at end of file diff --git a/src/main/java/com/seibel/lod/core/api/external/methods/events/abstractEvents/DhApiBeforeRenderEvent.java b/src/main/java/com/seibel/lod/core/api/external/methods/events/abstractEvents/DhApiBeforeRenderEvent.java new file mode 100644 index 000000000..c2acfaf32 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/api/external/methods/events/abstractEvents/DhApiBeforeRenderEvent.java @@ -0,0 +1,32 @@ +package com.seibel.lod.core.api.external.methods.events.abstractEvents; + +import com.seibel.lod.core.api.external.methods.events.parameterObjects.DhApiBeforeRenderParam; +import com.seibel.lod.core.api.implementation.interfaces.events.IDhApiEvent; + +/** + * @author James Seibel + * @version 2022-7-17 + */ +public abstract class DhApiBeforeRenderEvent implements IDhApiEvent +{ + /** + * Fired before Distant Horizons finishes rendering fake chunks. + * + * @return whether the event should be canceled or not. + */ + public abstract boolean beforeRender(DhApiBeforeRenderParam input); + + + //=========================// + // internal DH API methods // + //=========================// + + @Override + public final boolean onEvent(DhApiBeforeRenderParam input) + { + return beforeRender(input); + } + + @Override + public final boolean getCancelable() { return true; } +} \ No newline at end of file diff --git a/src/main/java/com/seibel/lod/core/api/external/methods/events/parameterObjects/DhApiAfterRenderParam.java b/src/main/java/com/seibel/lod/core/api/external/methods/events/parameterObjects/DhApiAfterRenderParam.java new file mode 100644 index 000000000..6834daf93 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/api/external/methods/events/parameterObjects/DhApiAfterRenderParam.java @@ -0,0 +1,24 @@ +package com.seibel.lod.core.api.external.methods.events.parameterObjects; + +import com.seibel.lod.core.api.external.items.objects.math.DhApiMat4f; + +/** + * Parameter passed into the After Render event. + * + * @author James Seibel + * @version 7-17-2022 + */ +public class DhApiAfterRenderParam extends DhApiRenderParam +{ + + public DhApiAfterRenderParam( + DhApiMat4f newMinecraftProjectionMatrix, DhApiMat4f newMinecraftModelViewMatrix, + DhApiMat4f newDistantHorizonsProjectionMatrix, DhApiMat4f newDistantHorizonsModelViewMatrix, + float newPartialTicks) + { + super(newMinecraftProjectionMatrix, newMinecraftModelViewMatrix, + newDistantHorizonsProjectionMatrix, newDistantHorizonsModelViewMatrix, + newPartialTicks); + } + +} diff --git a/src/main/java/com/seibel/lod/core/api/external/methods/events/parameterObjects/DhApiBeforeRenderParam.java b/src/main/java/com/seibel/lod/core/api/external/methods/events/parameterObjects/DhApiBeforeRenderParam.java new file mode 100644 index 000000000..4a0ec202f --- /dev/null +++ b/src/main/java/com/seibel/lod/core/api/external/methods/events/parameterObjects/DhApiBeforeRenderParam.java @@ -0,0 +1,24 @@ +package com.seibel.lod.core.api.external.methods.events.parameterObjects; + +import com.seibel.lod.core.api.external.items.objects.math.DhApiMat4f; + +/** + * Parameter passed into the Before Render event. + * + * @author James Seibel + * @version 7-17-2022 + */ +public class DhApiBeforeRenderParam extends DhApiRenderParam +{ + + public DhApiBeforeRenderParam( + DhApiMat4f newMinecraftProjectionMatrix, DhApiMat4f newMinecraftModelViewMatrix, + DhApiMat4f newDistantHorizonsProjectionMatrix, DhApiMat4f newDistantHorizonsModelViewMatrix, + float newPartialTicks) + { + super(newMinecraftProjectionMatrix, newMinecraftModelViewMatrix, + newDistantHorizonsProjectionMatrix, newDistantHorizonsModelViewMatrix, + newPartialTicks); + } + +} diff --git a/src/main/java/com/seibel/lod/core/api/external/methods/events/parameterObjects/DhApiRenderParam.java b/src/main/java/com/seibel/lod/core/api/external/methods/events/parameterObjects/DhApiRenderParam.java new file mode 100644 index 000000000..b6f409204 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/api/external/methods/events/parameterObjects/DhApiRenderParam.java @@ -0,0 +1,41 @@ +package com.seibel.lod.core.api.external.methods.events.parameterObjects; + +import com.seibel.lod.core.api.external.items.objects.math.DhApiMat4f; + +/** + * Parameter passed into Render events. + * + * @author James Seibel + * @version 7-17-2022 + */ +class DhApiRenderParam // default visibility so this class isn't visible outside the package +{ + /** The projection matrix Minecraft is using to render this frame. */ + public final DhApiMat4f MinecraftProjectionMatrix; + /** The model view matrix Minecraft is using to render this frame. */ + public final DhApiMat4f MinecraftModelViewMatrix; + + /** The projection matrix Distant Horizons is using to render this frame. */ + public final DhApiMat4f DistantHorizonsProjectionMatrix; + /** The model view matrix Distant Horizons is using to render this frame. */ + public final DhApiMat4f DistantHorizonsModelViewMatrix; + + /** Indicates how far into this tick the frame is. */ + public final float partialTicks; + + + protected DhApiRenderParam( + DhApiMat4f newMinecraftProjectionMatrix, DhApiMat4f newMinecraftModelViewMatrix, + DhApiMat4f newDistantHorizonsProjectionMatrix, DhApiMat4f newDistantHorizonsModelViewMatrix, + float newPartialTicks) + { + this.MinecraftProjectionMatrix = newMinecraftProjectionMatrix; + this.MinecraftModelViewMatrix = newMinecraftModelViewMatrix; + + this.DistantHorizonsProjectionMatrix = newDistantHorizonsProjectionMatrix; + this.DistantHorizonsModelViewMatrix = newDistantHorizonsModelViewMatrix; + + this.partialTicks = newPartialTicks; + } + +}