diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/RenderBufferHandler.java b/core/src/main/java/com/seibel/distanthorizons/core/render/RenderBufferHandler.java index 661dd6bc1..e0c07eb3b 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/RenderBufferHandler.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/RenderBufferHandler.java @@ -170,15 +170,13 @@ public class RenderBufferHandler implements AutoCloseable int worldMinY = renderParams.clientLevelWrapper.getMinHeight(); int worldHeight = renderParams.clientLevelWrapper.getMaxHeight(); - DhVec3d cameraPos = MC_RENDER.getCameraExactPosition(); - renderParams.mcModelViewMatrix.putValuesInArray(JOML_TRANSPOSE_ARRAY); WORLD_VIEW_JOML_MATRIX .setTransposed(JOML_TRANSPOSE_ARRAY) .translate( - -(float) cameraPos.x, - -(float) cameraPos.y, - -(float) cameraPos.z); + -(float) renderParams.exactCameraPosition.x, + -(float) renderParams.exactCameraPosition.y, + -(float) renderParams.exactCameraPosition.z); renderParams.dhProjectionMatrix.putValuesInArray(JOML_TRANSPOSE_ARRAY); WORLD_VIEW_PROJ_JOML_MATRIX diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/AbstractDebugWireframeRenderer.java b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/AbstractDebugWireframeRenderer.java index 77e4f0cd1..12db549c1 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/AbstractDebugWireframeRenderer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/AbstractDebugWireframeRenderer.java @@ -48,8 +48,7 @@ public abstract class AbstractDebugWireframeRenderer implements IBindable public void render(RenderParams renderParams) { this.dhMvmProjMatrixThisFrame = new DhMat4f(renderParams.dhMvmProjMatrix); - DhVec3d camPos = MC_RENDER.getCameraExactPosition(); - this.camPosFloatThisFrame = new DhVec3f((float) camPos.x, (float) camPos.y, (float) camPos.z); + this.camPosFloatThisFrame = new DhVec3f(renderParams.exactCameraPosition); this.rendererLists.render(this); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java index ff6d02828..9368118c9 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java @@ -59,6 +59,13 @@ public interface IMinecraftRenderWrapper extends IBindable */ float getPartialTickTime(); + /** + * When other mods are present and + * this method is called outside the render thread + * this may return undesirable positions. + * (Normally this position is used to get + * the position the player's camera). + */ DhVec3d getCameraExactPosition(); Color getFogColor(float partialTicks);