diff --git a/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java b/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java index 369bc3e9d..024e81715 100644 --- a/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java +++ b/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java @@ -215,9 +215,6 @@ import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; long[] dataToMerge = ThreadMapUtil.getBuilderVerticalArray(detail.detailLevel); int verticalData = DataPointUtil.WORLD_HEIGHT / 2 + 1; - - int chunkPosX = chunk.getChunkPosX(); - int chunkPosZ = chunk.getChunkPosZ(); int height; int depth; int color; @@ -244,7 +241,7 @@ import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; zAbs = chunk.getMinZ() + zRel; //Calculate the height of the lod - yAbs = DataPointUtil.WORLD_HEIGHT - DataPointUtil.VERTICAL_OFFSET + 1; + yAbs = chunk.getMaxY(xRel, zRel); //DataPointUtil.WORLD_HEIGHT - DataPointUtil.VERTICAL_OFFSET + 1; int count = 0; boolean topBlock = true; while (yAbs > 0) @@ -308,6 +305,7 @@ import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; /** Find the highest valid point from the Top */ private short determineHeightPointFrom(IChunkWrapper chunk, LodBuilderConfig config, int xAbs, int yAbs, int zAbs) { + short height = DEFAULT_HEIGHT; if (config.useHeightmap) height = (short) chunk.getHeightMapValue(xAbs, zAbs); diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/IChunkWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/IChunkWrapper.java index 3eb424d3e..5e678097d 100644 --- a/src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/IChunkWrapper.java +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/IChunkWrapper.java @@ -46,6 +46,7 @@ public interface IChunkWrapper int getChunkPosZ(); int getRegionPosX(); int getRegionPosZ(); + int getMaxY(int x, int z); int getMaxX(); int getMaxZ(); int getMinX();