Add the generatorMode to IDhApiWorldGenerator.generate()
This commit is contained in:
+4
-3
@@ -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. <br>
|
||||
* 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<Void> generateChunks(int chunkPosMinX, int chunkPosMinZ,
|
||||
byte granularity, byte targetDataDetail,
|
||||
byte granularity, byte targetDataDetail, EDhApiDistantGeneratorMode generatorMode,
|
||||
Consumer<Object[]> resultConsumer) throws ClassCastException;
|
||||
|
||||
|
||||
|
||||
@@ -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<Void> generateChunks(int chunkPosMinX, int chunkPosMinZ, byte granularity, byte targetDataDetail, Consumer<Object[]> resultConsumer)
|
||||
public CompletableFuture<Void> generateChunks(int chunkPosMinX, int chunkPosMinZ, byte granularity, byte targetDataDetail, EDhApiDistantGeneratorMode generatorMode, Consumer<Object[]> 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:
|
||||
|
||||
@@ -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<ChunkSizedData> 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
|
||||
{
|
||||
|
||||
+2
-1
@@ -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<Void> generateChunks(int chunkPosMinX, int chunkPosMinZ, byte granularity, byte targetDataDetail, Consumer<Object[]> resultConsumer) { return null; }
|
||||
public CompletableFuture<Void> generateChunks(int chunkPosMinX, int chunkPosMinZ, byte granularity, byte targetDataDetail, EDhApiDistantGeneratorMode maxGenerationStep, Consumer<Object[]> resultConsumer) { return null; }
|
||||
|
||||
@Override
|
||||
public void preGeneratorTaskStart() { }
|
||||
|
||||
Reference in New Issue
Block a user