Correct World Preset handling

This commit is contained in:
Frank 2022-05-22 17:49:46 +02:00
parent 7466048a22
commit 7359c64fff
13 changed files with 451 additions and 129 deletions

View file

@ -61,7 +61,7 @@ public abstract class WorldOpenFlowsMixin {
DataExchangeAPI.prepareServerside();
BiomeAPI.prepareNewLevel();
DataFixerAPI.initializeWorldData(this.levelSource, levelID, true);
DataFixerAPI.createWorldData(this.levelSource, levelID, worldGenSettings);
LifeCycleAPI._runBeforeLevelLoad();
}
@ -74,7 +74,7 @@ public abstract class WorldOpenFlowsMixin {
DataExchangeAPI.prepareServerside();
BiomeAPI.prepareNewLevel();
DataFixerAPI.initializeWorldData(levelStorageAccess, true);
DataFixerAPI.createWorldData(levelStorageAccess, worldData.worldGenSettings());
LifeCycleAPI._runBeforeLevelLoad();
}
}

View file

@ -12,6 +12,7 @@ import net.minecraft.world.level.levelgen.presets.WorldPresets;
import net.minecraft.world.level.levelgen.structure.StructureSet;
import net.minecraft.world.level.levelgen.synth.NormalNoise;
import org.betterx.bclib.presets.worldgen.BCLChunkGenerator;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@ -19,6 +20,7 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;
import java.util.Map;
import java.util.Optional;
@Mixin(WorldPresets.Bootstrap.class)
public abstract class WorldPresetsBootstrapMixin {
@ -51,7 +53,7 @@ public abstract class WorldPresetsBootstrapMixin {
@ModifyArg(method = "run", at = @At(value = "INVOKE", ordinal = 0, target = "Lnet/minecraft/world/level/levelgen/presets/WorldPresets$Bootstrap;registerCustomOverworldPreset(Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/world/level/dimension/LevelStem;)Lnet/minecraft/core/Holder;"))
private LevelStem bcl_getOverworldStem(LevelStem overworldStem) {
WorldPreset preset = new org.betterx.bclib.presets.worldgen.WorldPresets.SortableWorldPreset(
WorldPreset preset_18 = new org.betterx.bclib.presets.worldgen.WorldPresets.SortableWorldPreset(
Map.of(LevelStem.OVERWORLD,
overworldStem,
LevelStem.NETHER,
@ -59,17 +61,42 @@ public abstract class WorldPresetsBootstrapMixin {
this.netherDimensionType,
this.structureSets,
this.noises,
this.netherNoiseSettings),
this.netherNoiseSettings,
Optional.empty()),
LevelStem.END,
org.betterx.bclib.presets.worldgen.WorldPresets.getBCLEndLevelStem(this.biomes,
this.endDimensionType,
this.structureSets,
this.noises,
this.endNoiseSettings)
this.endNoiseSettings,
Optional.empty())
), 0
);
BuiltinRegistries.register(this.presets, org.betterx.bclib.presets.worldgen.WorldPresets.BCL_WORLD, preset);
WorldPreset preset_17 = new org.betterx.bclib.presets.worldgen.WorldPresets.SortableWorldPreset(
Map.of(LevelStem.OVERWORLD,
overworldStem,
LevelStem.NETHER,
org.betterx.bclib.presets.worldgen.WorldPresets.getBCLNetherLevelStem(this.biomes,
this.netherDimensionType,
this.structureSets,
this.noises,
this.netherNoiseSettings,
Optional.of(BCLChunkGenerator.BIOME_SOURCE_VERSION_SQUARE)),
LevelStem.END,
org.betterx.bclib.presets.worldgen.WorldPresets.getBCLEndLevelStem(this.biomes,
this.endDimensionType,
this.structureSets,
this.noises,
this.endNoiseSettings,
Optional.of(BCLChunkGenerator.BIOME_SOURCE_VERSION_SQUARE))
), 0
);
BuiltinRegistries.register(this.presets, org.betterx.bclib.presets.worldgen.WorldPresets.BCL_WORLD, preset_18);
BuiltinRegistries.register(this.presets,
org.betterx.bclib.presets.worldgen.WorldPresets.BCL_WORLD_17,
preset_17);
return overworldStem;
}