From 4f6d78189b915876d01406ab33d9558437415b06 Mon Sep 17 00:00:00 2001 From: Acuadragon100 <8165958-acuadragon100@users.noreply.gitlab.com> Date: Sat, 16 May 2026 13:24:37 +0200 Subject: [PATCH] Also use the original camera position when Immersive Portals is loaded. --- .../core/level/ClientLevelModule.java | 20 +++---------------- .../IImmersivePortalsAccessor.java | 4 ++++ 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/ClientLevelModule.java b/core/src/main/java/com/seibel/distanthorizons/core/level/ClientLevelModule.java index efc04641e..0e7584558 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/ClientLevelModule.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/ClientLevelModule.java @@ -112,23 +112,9 @@ public class ClientLevelModule implements Closeable, IDataSourceUpdateListenerFu this.ClientRenderStateRef.set(clientRenderState); } - DhBlockPos2D cameraBlockPos; - IImmersivePortalsAccessor immersivePortalsAccessor = ModAccessorInjector.INSTANCE.get(IImmersivePortalsAccessor.class); - if (immersivePortalsAccessor != null) - { - // since Immersive portals could be rendering multiple levels at once - // the camera position may not be relative to this level, - // but the player position will be (usually) - DhBlockPos playerBlockPos = MC_CLIENT.getPlayerBlockPos(); - cameraBlockPos = new DhBlockPos2D(playerBlockPos); - } - else - { - // use camera position instead of player pos so free cam mods work better - Vec3d cameraDoublePos = MC_RENDER.getCameraExactPosition(); - cameraBlockPos = new DhBlockPos2D((int)cameraDoublePos.x, (int)cameraDoublePos.z); - } - + // use camera position instead of player pos so free cam mods work better + Vec3d cameraDoublePos = MC_RENDER.getCameraExactPosition(); + DhBlockPos2D cameraBlockPos = new DhBlockPos2D((int)cameraDoublePos.x, (int)cameraDoublePos.z); clientRenderState.quadtree.tryTick(cameraBlockPos); } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/modAccessor/IImmersivePortalsAccessor.java b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/modAccessor/IImmersivePortalsAccessor.java index 86659b6cb..e41d1a671 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/modAccessor/IImmersivePortalsAccessor.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/modAccessor/IImmersivePortalsAccessor.java @@ -21,6 +21,7 @@ package com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor; import com.seibel.distanthorizons.core.pos.DhChunkPos; import com.seibel.distanthorizons.core.pos.blockPos.DhBlockPos; +import com.seibel.distanthorizons.core.util.math.Vec3d; import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper; import org.jetbrains.annotations.Nullable; @@ -40,4 +41,7 @@ public interface IImmersivePortalsAccessor extends IModAccessor @Nullable IClientLevelWrapper getOriginalClientLevelWrapper(); + @Nullable + Vec3d getOriginalCameraPos(); + }