From fea376e79df165e8b3019ae17ffd934569f64b7a Mon Sep 17 00:00:00 2001 From: makamys Date: Sun, 9 May 2021 03:56:44 +0200 Subject: Don't save the model of chunks on the edge of the loaded world Fixes ocean water derpiness --- .../java/makamys/lodmod/renderer/LODRenderer.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/makamys/lodmod/renderer/LODRenderer.java b/src/main/java/makamys/lodmod/renderer/LODRenderer.java index 7f5bbdb..eb4dc45 100644 --- a/src/main/java/makamys/lodmod/renderer/LODRenderer.java +++ b/src/main/java/makamys/lodmod/renderer/LODRenderer.java @@ -363,8 +363,23 @@ public class LODRenderer { } public void onWorldRendererPost(WorldRenderer wr) { - LODChunk lodChunk = getLODChunk(Math.floorDiv(wr.posX, 16), Math.floorDiv(wr.posZ, 16)); - lodChunk.putChunkMeshes(Math.floorDiv(wr.posY, 16), ((IWorldRenderer)wr).getChunkMeshes()); + int x = Math.floorDiv(wr.posX, 16); + int z = Math.floorDiv(wr.posZ, 16); + LODChunk lodChunk = getLODChunk(x, z); + if(areSurroundingChunksLoaded(x, z, wr.worldObj)) { + lodChunk.putChunkMeshes(Math.floorDiv(wr.posY, 16), ((IWorldRenderer)wr).getChunkMeshes()); + } + } + + public boolean areSurroundingChunksLoaded(int x, int z, World world) { + for(int dx = -1; dx <= 1; dx++) { + for(int dz = -1; dz <= 1; dz++) { + if(!world.getChunkFromChunkCoords(x + dx, z + dz).isChunkLoaded) { + return false; + } + } + } + return true; } public void onWorldRendererRender(WorldRenderer wr) { -- cgit