diff --git a/api/src/main/java/com/seibel/lod/api/interfaces/override/worldGenerator/IDhApiWorldGenerator.java b/api/src/main/java/com/seibel/lod/api/interfaces/override/worldGenerator/IDhApiWorldGenerator.java index f527c82de..6bf3b8b6c 100644 --- a/api/src/main/java/com/seibel/lod/api/interfaces/override/worldGenerator/IDhApiWorldGenerator.java +++ b/api/src/main/java/com/seibel/lod/api/interfaces/override/worldGenerator/IDhApiWorldGenerator.java @@ -1,6 +1,7 @@ package com.seibel.lod.api.interfaces.override.worldGenerator; import com.seibel.lod.api.enums.EDhApiDetailLevel; +import com.seibel.lod.api.enums.worldGeneration.EDhApiDistantGeneratorMode; import com.seibel.lod.api.enums.worldGeneration.EDhApiWorldGenThreadMode; import com.seibel.lod.api.interfaces.override.IDhApiOverrideable; @@ -10,7 +11,7 @@ import java.util.function.Consumer; /** * @author James Seibel - * @version 2022-12-6 + * @version 2022-12-10 */ public interface IDhApiWorldGenerator extends Closeable, IDhApiOverrideable { @@ -20,7 +21,7 @@ public interface IDhApiWorldGenerator extends Closeable, IDhApiOverrideable /** * Returns which thread chunk generation requests will be run on.
- * TODO: only {@link EDhApiWorldGenThreadMode#MULTI_THREADED} is supported currently + * TODO: only {@link EDhApiWorldGenThreadMode#SINGLE_THREADED} is currently supported */ EDhApiWorldGenThreadMode getThreadingMode(); @@ -95,7 +96,7 @@ public interface IDhApiWorldGenerator extends Closeable, IDhApiOverrideable * @throws ClassCastException if incompatible objects are passed into the resultConsumer. */ CompletableFuture generateChunks(int chunkPosMinX, int chunkPosMinZ, - byte granularity, byte targetDataDetail, + byte granularity, byte targetDataDetail, EDhApiDistantGeneratorMode generatorMode, Consumer resultConsumer) throws ClassCastException; diff --git a/core/src/main/java/com/seibel/lod/core/generation/BatchGenerator.java b/core/src/main/java/com/seibel/lod/core/generation/BatchGenerator.java index 007212e61..b5405f740 100644 --- a/core/src/main/java/com/seibel/lod/core/generation/BatchGenerator.java +++ b/core/src/main/java/com/seibel/lod/core/generation/BatchGenerator.java @@ -24,7 +24,7 @@ import com.seibel.lod.api.interfaces.override.worldGenerator.IDhApiWorldGenerato import com.seibel.lod.core.interfaces.dependencyInjection.IOverrideInjector; import com.seibel.lod.core.level.IDhLevel; import com.seibel.lod.core.config.Config; -import com.seibel.lod.api.enums.config.EDistanceGenerationMode; +import com.seibel.lod.api.enums.worldGeneration.EDhApiDistantGeneratorMode; import com.seibel.lod.core.dependencyInjection.SingletonInjector; import com.seibel.lod.core.logging.DhLoggerBuilder; import com.seibel.lod.core.util.BitShiftUtil; @@ -96,13 +96,12 @@ public class BatchGenerator implements IDhApiWorldGenerator //===================// @Override - public CompletableFuture generateChunks(int chunkPosMinX, int chunkPosMinZ, byte granularity, byte targetDataDetail, Consumer resultConsumer) + public CompletableFuture generateChunks(int chunkPosMinX, int chunkPosMinZ, byte granularity, byte targetDataDetail, EDhApiDistantGeneratorMode generatorMode, Consumer resultConsumer) { - EDistanceGenerationMode mode = Config.Client.WorldGenerator.distanceGenerationMode.get(); Steps targetStep = null; - switch (mode) + switch (generatorMode) { - case NONE: + case PRE_EXISTING_ONLY: targetStep = Steps.Empty; // NOTE: Only load in existing chunks. No new chunk generation break; case BIOME_ONLY: diff --git a/core/src/main/java/com/seibel/lod/core/generation/WorldGenerationQueue.java b/core/src/main/java/com/seibel/lod/core/generation/WorldGenerationQueue.java index 455304e9d..d6819eb8e 100644 --- a/core/src/main/java/com/seibel/lod/core/generation/WorldGenerationQueue.java +++ b/core/src/main/java/com/seibel/lod/core/generation/WorldGenerationQueue.java @@ -1,5 +1,6 @@ package com.seibel.lod.core.generation; +import com.seibel.lod.api.enums.worldGeneration.EDhApiDistantGeneratorMode; import com.seibel.lod.api.interfaces.override.worldGenerator.IDhApiWorldGenerator; import com.seibel.lod.core.config.Config; import com.seibel.lod.core.datatype.full.ChunkSizedData; @@ -527,7 +528,8 @@ public class WorldGenerationQueue implements Closeable byte granularity, byte targetDataDetail, Consumer resultConsumer) { - return worldGenerator.generateChunks(chunkPosMin.x, chunkPosMin.z, granularity, targetDataDetail, (objectArray) -> + EDhApiDistantGeneratorMode generatorMode = Config.Client.WorldGenerator.distantGeneratorMode.get(); + return worldGenerator.generateChunks(chunkPosMin.x, chunkPosMin.z, granularity, targetDataDetail, generatorMode, (objectArray) -> { try { diff --git a/core/src/test/java/testItems/worldGeneratorInjection/objects/TestWorldGenerator.java b/core/src/test/java/testItems/worldGeneratorInjection/objects/TestWorldGenerator.java index 7645bb288..a99dbd8ac 100644 --- a/core/src/test/java/testItems/worldGeneratorInjection/objects/TestWorldGenerator.java +++ b/core/src/test/java/testItems/worldGeneratorInjection/objects/TestWorldGenerator.java @@ -1,5 +1,6 @@ package testItems.worldGeneratorInjection.objects; +import com.seibel.lod.api.enums.worldGeneration.EDhApiDistantGeneratorMode; import com.seibel.lod.api.enums.worldGeneration.EDhApiWorldGenThreadMode; import com.seibel.lod.api.interfaces.override.worldGenerator.IDhApiWorldGenerator; import com.seibel.lod.core.DependencyInjection.OverrideInjector; @@ -60,7 +61,7 @@ public class TestWorldGenerator implements IDhApiWorldGenerator public boolean isBusy() { return false; } @Override - public CompletableFuture generateChunks(int chunkPosMinX, int chunkPosMinZ, byte granularity, byte targetDataDetail, Consumer resultConsumer) { return null; } + public CompletableFuture generateChunks(int chunkPosMinX, int chunkPosMinZ, byte granularity, byte targetDataDetail, EDhApiDistantGeneratorMode maxGenerationStep, Consumer resultConsumer) { return null; } @Override public void preGeneratorTaskStart() { }