diff --git a/src/main/java/com/seibel/lod/builders/bufferBuilding/LodBufferBuilder.java b/src/main/java/com/seibel/lod/builders/bufferBuilding/LodBufferBuilder.java index 7c6b83d2e..fbdbd136a 100644 --- a/src/main/java/com/seibel/lod/builders/bufferBuilding/LodBufferBuilder.java +++ b/src/main/java/com/seibel/lod/builders/bufferBuilding/LodBufferBuilder.java @@ -494,24 +494,25 @@ public class LodBufferBuilder int chunkXdist = LevelPosUtil.getChunkPos(detailLevel, posX) - playerChunkPos.x; int chunkZdist = LevelPosUtil.getChunkPos(detailLevel, posZ) - playerChunkPos.z; + //We use this to check if the chunk is boolean isItBorderPos; if (LodConfig.CLIENT.graphics.advancedGraphicsOption.vanillaOverdraw.get() == VanillaOverdraw.NEVER) isItBorderPos = LodUtil.isBorderChunk(vanillaRenderedChunks, chunkXdist + gameChunkRenderDistance + 1, chunkZdist + gameChunkRenderDistance + 1); else isItBorderPos = false; - boolean nearPlayer = Math.abs(chunkXdist) <= 1 && Math.abs(chunkZdist) <= 1;; - boolean smallRenderDistance = gameChunkRenderDistance <= 4; + boolean smallRenderDistance = gameChunkRenderDistance <= 4; //We check if the position is - return (gameChunkRenderDistance >= Math.abs(chunkXdist) - && gameChunkRenderDistance >= Math.abs(chunkZdist) - && detailLevel <= LodUtil.CHUNK_DETAIL_LEVEL - && vanillaRenderedChunks[chunkXdist + gameChunkRenderDistance + 1][chunkZdist + gameChunkRenderDistance + 1] - && (!isItBorderPos || smallRenderDistance) - || nearPlayer); + boolean vanillaRenderedPosition = gameChunkRenderDistance >= Math.abs(chunkXdist) + && gameChunkRenderDistance >= Math.abs(chunkZdist) + && detailLevel <= LodUtil.CHUNK_DETAIL_LEVEL + && vanillaRenderedChunks[chunkXdist + gameChunkRenderDistance + 1][chunkZdist + gameChunkRenderDistance + 1]; + + + return (vanillaRenderedPosition && (!(isItBorderPos && smallRenderDistance))); } diff --git a/src/main/java/com/seibel/lod/util/LodUtil.java b/src/main/java/com/seibel/lod/util/LodUtil.java index 051836426..62a3b612e 100644 --- a/src/main/java/com/seibel/lod/util/LodUtil.java +++ b/src/main/java/com/seibel/lod/util/LodUtil.java @@ -47,6 +47,7 @@ import net.minecraft.world.chunk.IChunk; import net.minecraft.world.gen.Heightmap; import net.minecraft.world.server.ServerChunkProvider; import net.minecraft.world.server.ServerWorld; +import org.lwjgl.system.CallbackI; /** * This class holds methods and constants that may be used in multiple places. @@ -364,6 +365,8 @@ public class LodUtil if (overdraw == VanillaOverdraw.DYNAMIC && chunkRenderDist <= MINIMUM_RENDER_DISTANCE_FOR_PARTIAL_OVERDRAW) { + overdraw = VanillaOverdraw.NEVER; + /* // The vanilla render distance isn't far enough // for partial skipping to make sense... if (!lodDim.dimension.hasCeiling() && (drawRes == HorizontalResolution.BLOCK)) @@ -381,7 +384,7 @@ public class LodUtil // Or the user is using a LOW horizontal resolution // and overdraw would be very noticeable. overdraw = VanillaOverdraw.NEVER; - } + }*/ } @@ -391,6 +394,7 @@ public class LodUtil { case ALWAYS: // don't skip any positions + System.out.println("going to return"); return new HashSet<>(); case DYNAMIC: @@ -433,13 +437,11 @@ public class LodUtil { if (x <= centerChunk.x - skipRadius || x >= centerChunk.x + skipRadius || z <= centerChunk.z - skipRadius || z >= centerChunk.z + skipRadius) - { posToSkip.remove(new ChunkPos(x, z)); - } + } } } - return posToSkip; }