From 25d4ab6fdc8e7bb236e933851e5ac86832e8bf33 Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Sun, 9 Feb 2025 21:04:59 +0100 Subject: [PATCH] world visibility graph: check correct chunk position chunkPosition.x could already have been changed during the check and this random regions just disappear. Hell, one day I will rewrite this whole part and write tests... --- .../rendering/camera/visibility/WorldVisibilityGraph.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/camera/visibility/WorldVisibilityGraph.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/camera/visibility/WorldVisibilityGraph.kt index 4ea6291fe..9ee25aa82 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/camera/visibility/WorldVisibilityGraph.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/camera/visibility/WorldVisibilityGraph.kt @@ -254,7 +254,7 @@ class WorldVisibilityGraph( val positionX = chunkPosition.x val positionY = chunkPosition.y - if (directionX <= 0 && (section?.occlusion?.isOccluded(inverted, Directions.WEST) != true) && chunkPosition.x > chunkMin.x) { + if (directionX <= 0 && (section?.occlusion?.isOccluded(inverted, Directions.WEST) != true) && positionX > chunkMin.x) { chunkPosition.x = positionX - 1; chunkPosition.y = positionY // + WEST val nextChunk = chunk.neighbours[ChunkNeighbours.WEST] if (nextChunk != null) { @@ -266,7 +266,7 @@ class WorldVisibilityGraph( } } - if (directionX >= 0 && (section?.occlusion?.isOccluded(inverted, Directions.EAST) != true) && chunkPosition.x < chunkMax.x) { + if (directionX >= 0 && (section?.occlusion?.isOccluded(inverted, Directions.EAST) != true) && positionX < chunkMax.x) { chunkPosition.x = positionX + 1; chunkPosition.y = positionY // + EAST val nextChunk = chunk.neighbours[ChunkNeighbours.EAST] if (nextChunk != null) { @@ -293,7 +293,7 @@ class WorldVisibilityGraph( } } - if (directionZ <= 0 && (section?.occlusion?.isOccluded(inverted, Directions.NORTH) != true) && chunkPosition.y > chunkMin.y) { + if (directionZ <= 0 && (section?.occlusion?.isOccluded(inverted, Directions.NORTH) != true) && positionY > chunkMin.y) { chunkPosition.x = positionX; chunkPosition.y = positionY - 1 // + NORTH val nextChunk = chunk.neighbours[ChunkNeighbours.NORTH] if (nextChunk != null) { @@ -305,7 +305,7 @@ class WorldVisibilityGraph( } } - if (directionZ >= 0 && (section?.occlusion?.isOccluded(inverted, Directions.SOUTH) != true) && chunkPosition.y < chunkMax.y) { + if (directionZ >= 0 && (section?.occlusion?.isOccluded(inverted, Directions.SOUTH) != true) && positionY < chunkMax.y) { chunkPosition.x = positionX; chunkPosition.y = positionY + 1 // + SOUTH val nextChunk = chunk.neighbours[ChunkNeighbours.SOUTH] if (nextChunk != null) {