diff --git a/src/main/java/com/seibel/lod/builders/LodBufferBuilder.java b/src/main/java/com/seibel/lod/builders/LodBufferBuilder.java index b19878e33..5b0b3f9c3 100644 --- a/src/main/java/com/seibel/lod/builders/LodBufferBuilder.java +++ b/src/main/java/com/seibel/lod/builders/LodBufferBuilder.java @@ -232,7 +232,7 @@ public class LodBufferBuilder chunkZdist = posToRender.getChunkPosZ() - playerChunkPos.z; if(gameChunkRenderDistance >= Math.abs(chunkXdist) && gameChunkRenderDistance >= Math.abs(chunkZdist)) { - if (renderer.vanillaRenderedChunks[chunkXdist + gameChunkRenderDistance][chunkZdist + gameChunkRenderDistance]) + if (renderer.vanillaRenderedChunks[chunkXdist + gameChunkRenderDistance + 1][chunkZdist + gameChunkRenderDistance + 1]) { continue; } @@ -252,6 +252,7 @@ public class LodBufferBuilder { short[] lodData = lodDim.getData(posToRender); short[][][] adjData = new short[2][2][]; + /**TODO The following two for are too complex*/ for (int x : new int[]{0, 1}) { posToRender.changeParameters(detailLevel, posX + x * 2 - 1, posZ); @@ -259,7 +260,7 @@ public class LodBufferBuilder chunkZdist = posToRender.getChunkPosZ() - playerChunkPos.z; if(gameChunkRenderDistance >= Math.abs(chunkXdist) && gameChunkRenderDistance >= Math.abs(chunkZdist)) { - if (!renderer.vanillaRenderedChunks[chunkXdist + gameChunkRenderDistance][chunkZdist + gameChunkRenderDistance] + if (!renderer.vanillaRenderedChunks[chunkXdist + gameChunkRenderDistance + 1][chunkZdist + gameChunkRenderDistance + 1] && (nodeToRender.containsKey(posToRender) || disableFix)) { adjData[0][x] = lodDim.getData(posToRender); @@ -280,7 +281,7 @@ public class LodBufferBuilder chunkZdist = posToRender.getChunkPosZ() - playerChunkPos.z; if(gameChunkRenderDistance >= Math.abs(chunkXdist) && gameChunkRenderDistance >= Math.abs(chunkZdist)) { - if (!renderer.vanillaRenderedChunks[chunkXdist + gameChunkRenderDistance][chunkZdist + gameChunkRenderDistance] + if (!renderer.vanillaRenderedChunks[chunkXdist + gameChunkRenderDistance + 1][chunkZdist + gameChunkRenderDistance+ 1] && (nodeToRender.containsKey(posToRender) || disableFix)) { adjData[1][z] = lodDim.getData(posToRender); diff --git a/src/main/java/com/seibel/lod/render/LodRenderer.java b/src/main/java/com/seibel/lod/render/LodRenderer.java index 508ff1e18..0ed4b62f2 100644 --- a/src/main/java/com/seibel/lod/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/render/LodRenderer.java @@ -857,8 +857,8 @@ public class LodRenderer int chunkZ; for (ChunkPos pos : chunkPosToSkip) { - chunkX = pos.x - mc.player.xChunk + renderDistance; - chunkZ = pos.z - mc.player.zChunk + renderDistance; + chunkX = pos.x - mc.player.xChunk + renderDistance + 1; + chunkZ = pos.z - mc.player.zChunk + renderDistance + 1; if(!vanillaRenderedChunks[chunkX][chunkZ]) { vanillaRenderedChunks[chunkX][chunkZ] = true;