From d9d1c4dfaf6cd981f1d2f9ad33f410042c54d932 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Tue, 23 Feb 2021 15:20:12 -0600 Subject: [PATCH] Fix issue #2 The center of the LodDimension was accidentally being added to the region coordinate, causing the wrong region to be selected at times. --- src/main/java/com/backsun/lod/objects/LodDimension.java | 9 ++++----- src/main/java/com/backsun/lod/objects/LodRegion.java | 3 --- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/backsun/lod/objects/LodDimension.java b/src/main/java/com/backsun/lod/objects/LodDimension.java index f6be82e56..2d9ca22e7 100644 --- a/src/main/java/com/backsun/lod/objects/LodDimension.java +++ b/src/main/java/com/backsun/lod/objects/LodDimension.java @@ -206,8 +206,8 @@ public class LodDimension */ public void addLod(LodChunk lod) { - int regionX = (lod.x + centerX) / LodRegion.SIZE; - int regionZ = (lod.z + centerZ) / LodRegion.SIZE; + int regionX = lod.x / LodRegion.SIZE; + int regionZ = lod.z / LodRegion.SIZE; // prevent issues if X/Z is negative and less than 16 if (lod.x < 0) @@ -250,9 +250,8 @@ public class LodDimension */ public LodChunk getLodFromCoordinates(int chunkX, int chunkZ) { - // (chunkX + centerX) % width - int regionX = (chunkX + centerX) / LodRegion.SIZE; - int regionZ = (chunkZ + centerZ) / LodRegion.SIZE; + int regionX = chunkX / LodRegion.SIZE; + int regionZ = chunkZ / LodRegion.SIZE; // prevent issues if chunkX/Z is negative and less than width if (chunkX < 0) diff --git a/src/main/java/com/backsun/lod/objects/LodRegion.java b/src/main/java/com/backsun/lod/objects/LodRegion.java index 88c7a9b90..009bb46bf 100644 --- a/src/main/java/com/backsun/lod/objects/LodRegion.java +++ b/src/main/java/com/backsun/lod/objects/LodRegion.java @@ -64,9 +64,6 @@ public class LodRegion if(arrayX >= SIZE || arrayZ >= SIZE) return null; - // TODO fix some LOD strips showing up in the wrong location - // issue #2 - // maybe this has to do with ABS being used incorrectly? return chunks[arrayX][arrayZ]; }