diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/AbstractDhServerLevel.java b/core/src/main/java/com/seibel/distanthorizons/core/level/AbstractDhServerLevel.java index a7d4d0d5f..eab5b3e5b 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/AbstractDhServerLevel.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/AbstractDhServerLevel.java @@ -426,7 +426,7 @@ public abstract class AbstractDhServerLevel extends AbstractDhLevel implements I } Vec3d playerPosition = serverPlayerState.getServerPlayer().getPosition(); - int distanceFromPlayer = DhSectionPos.getManhattanBlockDistance(data.getPos(), new DhBlockPos2D((int) playerPosition.x, (int) playerPosition.z)) / 16; + int distanceFromPlayer = DhSectionPos.getChebyshevBlockDistance(data.getPos(), new DhBlockPos2D((int) playerPosition.x, (int) playerPosition.z)) / 16; if (distanceFromPlayer >= serverPlayerState.getServerPlayer().getViewDistance() && distanceFromPlayer <= serverPlayerState.sessionConfig.getRenderDistanceRadius()) { diff --git a/core/src/main/java/com/seibel/distanthorizons/core/pos/DhSectionPos.java b/core/src/main/java/com/seibel/distanthorizons/core/pos/DhSectionPos.java index a3d61a122..d02071b4b 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/pos/DhSectionPos.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/pos/DhSectionPos.java @@ -261,6 +261,14 @@ public class DhSectionPos + Math.abs(getCenterBlockPosZ(pos) - blockPos.z); } + public static int getChebyshevBlockDistance(long pos, DhBlockPos2D blockPos) + { + return Math.max( + Math.abs(getCenterBlockPosX(pos) - blockPos.x), + Math.abs(getCenterBlockPosZ(pos) - blockPos.z) + ); + } + //==================//