re-add full (server) distant generator mode

This commit is contained in:
James Seibel
2024-12-13 07:26:49 -06:00
parent 23021153da
commit 04f0b454eb
3 changed files with 25 additions and 9 deletions
@@ -22,13 +22,14 @@ package com.seibel.distanthorizons.api.enums.worldGeneration;
/**
* PRE_EXISTING_ONLY <br>
* SURFACE <br>
* FEATURES <br><br>
* FEATURES <br>
* FULL <br><br>
*
* In order of fastest to slowest.
*
* @author James Seibel
* @author Leonardo Amato
* @version 2022-12-10
* @version 2024-12-13
* @since API 1.0.0
*/
public enum EDhApiDistantGeneratorMode
@@ -73,7 +74,17 @@ public enum EDhApiDistantGeneratorMode
* NOTE: This may cause world generation bugs or instability,
* since some features can cause concurrentModification exceptions.
*/
FEATURES((byte) 5);
FEATURES((byte) 5),
/**
* Ask the server to generate/load each chunk.
* This is the most compatible and will generate structures correctly,
* but will cause server/simulation lag. <br><br>
*
* Unlike other modes this option DOES save generated chunks to
* Minecraft's region files.
*/
FULL((byte) 7);
@@ -1169,12 +1169,14 @@ public class Config
+ EDhApiDistantGeneratorMode.FEATURES + " \n"
+ "Generate everything except structures. \n"
+ "WARNING: This may cause world generator bugs or instability when paired with certain world generator mods. \n"
//not currently implemented
//+ "\n"
//+ EDhApiDistantGeneratorMode.FULL + " \n"
//+ "Ask the local server to generate/load each chunk. \n"
//+ "This is the most compatible, but will cause server/simulation lag. \n"
//+ "- Slow (15-50 ms, with spikes up to 200 ms) \n"
+ "\n"
+ EDhApiDistantGeneratorMode.FULL + " \n"
+ "Ask the local server to generate/load each chunk. \n"
+ "This is the most compatible and will generate structures correctly, \n"
+ "but will cause server/simulation lag. \n"
+ "Note: unlike other modes this option DOES save generated chunks to \n"
+ "Minecraft's region files. \n"
+ "- Slow (15-50 ms, with spikes up to 200 ms) \n"
+ "")
.build();
@@ -111,6 +111,9 @@ public class BatchGenerator implements IDhApiWorldGenerator
case FEATURES:
targetStep = EDhApiWorldGenerationStep.FEATURES;
break;
case FULL:
targetStep = EDhApiWorldGenerationStep.LIGHT; // TODO using something other than LIGHT would be good for clarity
break;
}
// the consumer needs to be wrapped like this because the API can't use DH core objects (and IChunkWrapper can't be easily put into the API project)