diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java index 11e7cc5d5..f038fffa4 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java @@ -28,6 +28,7 @@ import com.mojang.blaze3d.platform.NativeImage; import com.seibel.distanthorizons.api.enums.config.EDhApiLodShading; import com.seibel.distanthorizons.common.wrappers.McObjectConverter; import com.seibel.distanthorizons.common.wrappers.misc.LightMapWrapper; +import com.seibel.distanthorizons.core.api.internal.ClientApi; import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dependencyInjection.ModAccessorInjector; @@ -175,6 +176,18 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper return new Vec3d(projectedView.x, projectedView.y, projectedView.z); } + @Override + public float getPartialTickTime() + { + #if MC_VER < MC_1_21_1 + return MC.getFrameTime(); + #elif MC_VER < MC_1_21_3 + return MC.getTimer().getRealtimeDeltaTicks(); + #else + return MC.deltaTracker.getRealtimeDeltaTicks(); + #endif + } + @Override public Color getFogColor(float partialTicks) { @@ -261,24 +274,16 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper { if (MC.level.dimensionType().hasSkyLight()) { - float frameTime; - #if MC_VER < MC_1_21_1 - frameTime = MC.getFrameTime(); - #elif MC_VER < MC_1_21_3 - frameTime = MC.getTimer().getRealtimeDeltaTicks(); - #elif MC_VER <= MC_1_21_10 - frameTime = MC.deltaTracker.getGameTimeDeltaTicks(); - #else - frameTime = 0f; // unused - #endif - #if MC_VER < MC_1_17_1 + float frameTime = this.getPartialTickTime(); Vec3 colorValues = MC.level.getSkyColor(MC.gameRenderer.getMainCamera().getBlockPosition(), frameTime); return new Color((float) colorValues.x, (float) colorValues.y, (float) colorValues.z); #elif MC_VER < MC_1_21_3 + float frameTime = this.getPartialTickTime(); Vec3 colorValues = MC.level.getSkyColor(MC.gameRenderer.getMainCamera().getPosition(), frameTime); return new Color((float) colorValues.x, (float) colorValues.y, (float) colorValues.z); #elif MC_VER <= MC_1_21_10 + float frameTime = this.getPartialTickTime(); int argbColorInt = MC.level.getSkyColor(MC.gameRenderer.getMainCamera().getPosition(), frameTime); return ColorUtil.toColorObjARGB(argbColorInt); #else diff --git a/coreSubProjects b/coreSubProjects index bbf69c791..b511ab4fb 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit bbf69c7911f6929a88ffc7c84330b400a603c136 +Subproject commit b511ab4fb3593eb2216ca118570bb1c186f9ef30 diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java index fa1edcc26..d4aaf43b2 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java @@ -50,6 +50,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; #else import com.mojang.blaze3d.buffers.GpuBufferSlice; import com.mojang.blaze3d.resource.GraphicsResourceAllocator; +import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper; import net.minecraft.client.Camera; import net.minecraft.client.DeltaTracker; import net.minecraft.client.renderer.chunk.ChunkSectionsToRender; @@ -145,20 +146,12 @@ public class MixinLevelRenderer ClientApi.RENDER_STATE.mcProjectionMatrix = new Mat4f(); ClientApi.RENDER_STATE.mcProjectionMatrix.setIdentity(); #else - ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(positionMatrix); - ClientApi.RENDER_STATE.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix); + ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(positionMatrix); + ClientApi.RENDER_STATE.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix); #endif - - // TODO move this into a common place - #if MC_VER < MC_1_21_1 - ClientApi.RENDER_STATE.partialTickTime = Minecraft.getInstance().getFrameTime(); - #elif MC_VER < MC_1_21_3 - ClientApi.RENDER_STATE.partialTickTime = Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(); - #else - ClientApi.RENDER_STATE.partialTickTime = Minecraft.getInstance().deltaTracker.getRealtimeDeltaTicks(); - #endif - - ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, this.level); + + ClientApi.RENDER_STATE.partialTickTime = MinecraftRenderWrapper.INSTANCE.getPartialTickTime(); + ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, this.level); diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinLevelRenderer.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinLevelRenderer.java index d4e79d3c6..7df96bd64 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinLevelRenderer.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinLevelRenderer.java @@ -33,6 +33,8 @@ import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.LightTexture; import org.joml.Matrix4f; #endif + +import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper; import com.seibel.distanthorizons.common.wrappers.McObjectConverter; import com.seibel.distanthorizons.common.wrappers.chunk.ChunkWrapper; import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; @@ -141,12 +143,7 @@ public class MixinLevelRenderer #endif - #if MC_VER < MC_1_21_1 - ClientApi.RENDER_STATE.partialTickTime = Minecraft.getInstance().getFrameTime(); - #else - ClientApi.RENDER_STATE.partialTickTime = Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(); - #endif - + ClientApi.RENDER_STATE.partialTickTime = MinecraftRenderWrapper.INSTANCE.getPartialTickTime(); ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, this.level); diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinLevelRenderer.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinLevelRenderer.java index 2df4d2323..11d9b9f74 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinLevelRenderer.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinLevelRenderer.java @@ -27,6 +27,7 @@ import net.minecraft.client.renderer.RenderType; import net.neoforged.neoforge.client.event.RenderLevelStageEvent; import org.joml.Matrix4f; #else +import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.chunk.ChunkSectionsToRender; import net.minecraft.client.Camera; @@ -101,17 +102,10 @@ public class MixinLevelRenderer #else ClientApi.RENDER_STATE.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix); #endif - - #if MC_VER < MC_1_21_1 - ClientApi.RENDER_STATE.partialTickTime = Minecraft.getInstance().getFrameTime(); - #elif MC_VER < MC_1_21_3 - ClientApi.RENDER_STATE.partialTickTime = Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(); - #else - ClientApi.RENDER_STATE.partialTickTime = Minecraft.getInstance().deltaTracker.getRealtimeDeltaTicks(); - #endif + ClientApi.RENDER_STATE.partialTickTime = MinecraftRenderWrapper.INSTANCE.getPartialTickTime(); ClientApi.RENDER_STATE.clientLevelWrapper = ClientLevelWrapper.getWrapperIfDifferent(ClientApi.RENDER_STATE.clientLevelWrapper, this.level);