ExperWorldGen: Fixed World gen on non Overworld

This commit is contained in:
tom lee
2021-12-24 14:43:07 +08:00
parent bdd9ef6b40
commit d5f12466b2
2 changed files with 11 additions and 7 deletions
@@ -29,6 +29,7 @@ import com.seibel.lod.core.enums.config.DistanceGenerationMode;
import com.seibel.lod.core.objects.PosToGenerateContainer;
import com.seibel.lod.core.objects.lod.LodDimension;
import com.seibel.lod.core.util.LevelPosUtil;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.core.util.SingletonHandler;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton;
import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper;
@@ -59,6 +60,14 @@ public class ExperimentalGenerator extends AbstractExperimentalWorldGeneratorWra
@Override
public void queueGenerationRequests(LodDimension lodDim, LodBuilder lodBuilder) {
if (lodDim != targetLodDim) {
stop();
WorldWrapper dim = (WorldWrapper) LodUtil.getServerWorldFromDimension(lodDim.dimension);
generationGroup = new WorldGenerationStep(dim.getServerWorld(), lodBuilder, lodDim);
targetLodDim = lodDim;
ClientApi.LOGGER.info("1.18 Experimental Chunk Generator reinitialized");
}
DistanceGenerationMode mode = CONFIG.client().worldGenerator().getDistanceGenerationMode();
numberOfGenerationPoints = CONFIG.client().advanced().threading().getNumberOfWorldGenerationThreads();
@@ -167,12 +167,7 @@ public final class WorldGenerationStep {
worldSeed = worldGenSettings.seed();
biomeManager = new BiomeManager(level, BiomeManager.obfuscateSeed(worldSeed));
structures = server.getStructureManager();
// TODO: Get the current level dimension
MappedRegistry<LevelStem> mappedRegistry = worldGenSettings.dimensions();
LevelStem levelStem = (LevelStem) mappedRegistry.get(LevelStem.OVERWORLD);
if (levelStem == null)
throw new RuntimeException("There should already be a level.... Right???");
generator = levelStem.generator();
generator = level.getChunkSource().getGenerator();
chunkScanner = level.getChunkSource().chunkScanner();
fixerUpper = server.getFixerUpper();
}
@@ -183,7 +178,7 @@ public final class WorldGenerationStep {
final StructureCheck structCheck;
public ThreadedParameters(GlobalParameters param) {
structCheck = new StructureCheck(param.chunkScanner, param.registry, param.structures,
Level.OVERWORLD, param.generator, param.level, param.generator.getBiomeSource(), param.worldSeed, param.fixerUpper);
param.level.dimension(), param.generator, param.level, param.generator.getBiomeSource(), param.worldSeed, param.fixerUpper);
structFeat = new StructureFeatureManager(param.level, param.worldGenSettings, structCheck);
}
}