diff --git a/api/src/main/java/com/seibel/distanthorizons/api/methods/events/sharedParameterObjects/DhApiRenderParam.java b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/sharedParameterObjects/DhApiRenderParam.java index 2519db802..decd51a50 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/methods/events/sharedParameterObjects/DhApiRenderParam.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/sharedParameterObjects/DhApiRenderParam.java @@ -20,6 +20,8 @@ package com.seibel.distanthorizons.api.methods.events.sharedParameterObjects; import com.seibel.distanthorizons.api.enums.rendering.EDhApiRenderPass; +import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper; +import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiWorldLoadEvent; import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEventParam; import com.seibel.distanthorizons.api.objects.math.DhApiMat4f; @@ -27,7 +29,7 @@ import com.seibel.distanthorizons.api.objects.math.DhApiMat4f; * Contains information relevant to Distant Horizons and Minecraft rendering. * * @author James Seibel - * @version 2024-1-31 + * @version 2025-12-23 * @since API 1.0.0 */ public class DhApiRenderParam implements IDhApiEventParam @@ -61,6 +63,13 @@ public class DhApiRenderParam implements IDhApiEventParam public final int worldYOffset; + /** + * The level currently being rendered. + * + * @since API 5.1.0 + */ + public final IDhApiLevelWrapper clientLevelWrapper; + //==============// @@ -70,12 +79,13 @@ public class DhApiRenderParam implements IDhApiEventParam public DhApiRenderParam(DhApiRenderParam parent) { this( - parent.renderPass, - parent.partialTicks, - parent.nearClipPlane, parent.farClipPlane, - parent.mcProjectionMatrix.copy(), parent.mcModelViewMatrix.copy(), - parent.dhProjectionMatrix.copy(), parent.dhModelViewMatrix.copy(), - parent.worldYOffset + parent.renderPass, + parent.partialTicks, + parent.nearClipPlane, parent.farClipPlane, + parent.mcProjectionMatrix.copy(), parent.mcModelViewMatrix.copy(), + parent.dhProjectionMatrix.copy(), parent.dhModelViewMatrix.copy(), + parent.worldYOffset, + parent.clientLevelWrapper ); } public DhApiRenderParam( @@ -84,7 +94,8 @@ public class DhApiRenderParam implements IDhApiEventParam float nearClipPlane, float farClipPlane, DhApiMat4f newMcProjectionMatrix, DhApiMat4f newMcModelViewMatrix, DhApiMat4f newDhProjectionMatrix, DhApiMat4f newDhModelViewMatrix, - int worldYOffset + int worldYOffset, + IDhApiLevelWrapper clientLevelWrapper ) { this.renderPass = renderPass; @@ -101,6 +112,7 @@ public class DhApiRenderParam implements IDhApiEventParam this.dhModelViewMatrix = newDhModelViewMatrix; this.worldYOffset = worldYOffset; + this.clientLevelWrapper = clientLevelWrapper; } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/RenderParams.java b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/RenderParams.java index 15553d7b2..183fe6aff 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/RenderParams.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/RenderParams.java @@ -30,6 +30,7 @@ public class RenderParams extends DhApiRenderParam public IDhClientWorld dhClientWorld; public IDhClientLevel dhClientLevel; + /** more specific override of the API value {@link DhApiRenderParam#clientLevelWrapper} */ public IClientLevelWrapper clientLevelWrapper; public ILightMapWrapper lightmap; public RenderBufferHandler renderBufferHandler; @@ -56,7 +57,8 @@ public class RenderParams extends DhApiRenderParam RenderUtil.getNearClipPlaneDistanceInBlocks(newPartialTicks), RenderUtil.getFarClipPlaneDistanceInBlocks(), newMcProjectionMatrix, newMcModelViewMatrix, RenderUtil.createLodProjectionMatrix(newMcProjectionMatrix, newPartialTicks), RenderUtil.createLodModelViewMatrix(newMcModelViewMatrix), - clientLevelWrapper.getMinHeight()); + clientLevelWrapper.getMinHeight(), + clientLevelWrapper); this.dhClientWorld = SharedApi.tryGetDhClientWorld();