[Feature] Double Height Nether (for amplified worlds)

This commit is contained in:
Frank 2022-11-16 12:03:07 +01:00
parent 1e968fafc7
commit 172737e0fa
8 changed files with 135 additions and 34 deletions

View file

@ -61,6 +61,7 @@ public class WorldSetupScreen extends LayoutScreen {
Checkbox generateEndVoid;
Checkbox netherLegacy;
Checkbox netherVertical;
Checkbox netherAmplified;
public LayoutComponent<?, ?> netherPage(BCLNetherBiomeSourceConfig netherConfig) {
VerticalStack content = new VerticalStack(fill(), fit()).centerHorizontal();
@ -78,6 +79,12 @@ public class WorldSetupScreen extends LayoutScreen {
netherConfig.mapVersion == BCLNetherBiomeSourceConfig.NetherBiomeMapType.SQUARE
);
netherAmplified = content.indent(20).addCheckbox(
fit(), fit(),
Component.translatable("title.screen.bclib.worldgen.nether_amplified"),
netherConfig.amplified
);
netherVertical = content.indent(20).addCheckbox(
fit(), fit(),
Component.translatable("title.screen.bclib.worldgen.nether_vertical"),
@ -109,6 +116,7 @@ public class WorldSetupScreen extends LayoutScreen {
bclibNether.onChange((cb, state) -> {
netherLegacy.setEnabled(state);
netherAmplified.setEnabled(state);
netherVertical.setEnabled(state);
netherBiomeSize.setEnabled(state);
netherVerticalBiomeSize.setEnabled(state && netherVertical.isChecked());
@ -234,6 +242,8 @@ public class WorldSetupScreen extends LayoutScreen {
private void updateSettings() {
Map<ResourceKey<LevelStem>, ChunkGenerator> betterxDimensions = TogetherWorldPreset.getDimensionsMap(
PresetsRegistry.BCL_WORLD);
Map<ResourceKey<LevelStem>, ChunkGenerator> betterxAmplifiedDimensions = TogetherWorldPreset.getDimensionsMap(
PresetsRegistry.BCL_WORLD_AMPLIFIED);
Map<ResourceKey<LevelStem>, ChunkGenerator> vanillaDimensions = TogetherWorldPreset.getDimensionsMap(
WorldPresets.NORMAL);
BCLEndBiomeSourceConfig.EndBiomeMapType endVersion = BCLEndBiomeSourceConfig.DEFAULT.mapVersion;
@ -271,10 +281,15 @@ public class WorldSetupScreen extends LayoutScreen {
: BCLNetherBiomeSourceConfig.NetherBiomeMapType.HEX,
netherBiomeSize.getValue() * 16,
netherVerticalBiomeSize.getValue() * 16,
netherVertical.isChecked()
netherVertical.isChecked(),
netherAmplified.isChecked()
);
ChunkGenerator netherGenerator = betterxDimensions.get(LevelStem.NETHER);
ChunkGenerator netherGenerator = (
netherAmplified.isChecked()
? betterxAmplifiedDimensions
: betterxDimensions
).get(LevelStem.NETHER);
((BCLibNetherBiomeSource) netherGenerator.getBiomeSource()).setTogetherConfig(netherConfig);
updateConfiguration(LevelStem.NETHER, BuiltinDimensionTypes.NETHER, netherGenerator);