diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/BatchGenerationEnvironment.java b/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/BatchGenerationEnvironment.java index 9f375eff2..129b6d537 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/BatchGenerationEnvironment.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/BatchGenerationEnvironment.java @@ -233,7 +233,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv new LodThreadFactory("Gen-Worker-Thread", Thread.MIN_PRIORITY)); } - public boolean tryAddPoint(int px, int pz, int range, Steps target) + public boolean tryAddPoint(int px, int pz, int range, Steps target, boolean genAllDetails) { int boxSize = range * 2 + 1; int x = Math.floorDiv(px, boxSize) * boxSize + range; @@ -245,7 +245,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv return false; } // System.out.println(x + ", "+z); - events.add(new GenerationEvent(new ChunkPos(x, z), range, this, target)); + events.add(new GenerationEvent(new ChunkPos(x, z), range, this, target, genAllDetails)); return true; } @@ -437,24 +437,24 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv if (ENABLE_LOAD_EVENT_LOGGING) ClientApi.LOGGER.info("Detected full existing chunk at {}", target.getPos()); params.lodBuilder.generateLodNodeFromChunk(params.lodDim, new ChunkWrapper(target, region), - new LodBuilderConfig(DistanceGenerationMode.FULL), true); + new LodBuilderConfig(DistanceGenerationMode.FULL), true, e.genAllDetails); } else if (isPartial) { if (ENABLE_LOAD_EVENT_LOGGING) ClientApi.LOGGER.info("Detected old existing chunk at {}", target.getPos()); params.lodBuilder.generateLodNodeFromChunk(params.lodDim, new ChunkWrapper(target, region), - new LodBuilderConfig(generationMode), true); + new LodBuilderConfig(generationMode), true, e.genAllDetails); } else if (target.getStatus() == ChunkStatus.EMPTY && generationMode == DistanceGenerationMode.NONE) { params.lodBuilder.generateLodNodeFromChunk(params.lodDim, new ChunkWrapper(target, region), - LodBuilderConfig.getFillVoidConfig(), true); + LodBuilderConfig.getFillVoidConfig(), true, e.genAllDetails); } else { params.lodBuilder.generateLodNodeFromChunk(params.lodDim, new ChunkWrapper(target, region), - new LodBuilderConfig(generationMode), true); + new LodBuilderConfig(generationMode), true, e.genAllDetails); } if (e.lightMode == LightGenerationMode.FANCY || isFull) { diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/GenerationEvent.java b/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/GenerationEvent.java index d0f95a01f..c65c8726a 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/GenerationEvent.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/GenerationEvent.java @@ -29,8 +29,9 @@ public final class GenerationEvent final Steps target; final LightGenerationMode lightMode; final PrefEvent pEvent = new PrefEvent(); + final boolean genAllDetails; - public GenerationEvent(ChunkPos pos, int range, BatchGenerationEnvironment generationGroup, Steps target) + public GenerationEvent(ChunkPos pos, int range, BatchGenerationEnvironment generationGroup, Steps target, boolean genAllDetails) { nanotime = System.nanoTime(); this.pos = pos; @@ -41,6 +42,7 @@ public final class GenerationEvent LightGenerationMode mode = CONFIG.client().worldGenerator().getLightGenerationMode(); this.lightMode = mode; + this.genAllDetails = genAllDetails; future = generationGroup.executors.submit(() -> { diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/WorldGeneratorWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/WorldGeneratorWrapper.java index 40945b67f..599af6dcf 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/WorldGeneratorWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/WorldGeneratorWrapper.java @@ -116,7 +116,7 @@ public class WorldGeneratorWrapper extends AbstractWorldGeneratorWrapper ChunkAccess ca = serverWorld.getChunkSource().getChunk(chunkX, chunkZ, targetStatus, true); if (ca == null) throw new RuntimeException("This should NEVER be null due to bool being true"); - lodBuilder.generateLodNodeFromChunk(lodDim, new ChunkWrapper(ca, serverWorld), new LodBuilderConfig(generationMode), false); + lodBuilder.generateLodNodeFromChunk(lodDim, new ChunkWrapper(ca, serverWorld), new LodBuilderConfig(generationMode), false, true); // long duration = System.nanoTime()-t; diff --git a/core b/core index b51cb7ca5..1b2716151 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit b51cb7ca51d0a752e37c30064a3ddacdee74cc05 +Subproject commit 1b27161518b7e1bb36de0b1b33ce04eaa0f87e05