[Feature] New WorldTypes for BetterX + Large Biomes (bclib:large)Overworld or Amplified (bclib:amplified) Overworld (#53)

This commit is contained in:
Frank 2022-11-16 10:09:21 +01:00
parent 6c6aca74b5
commit 42be3dd2c7
8 changed files with 134 additions and 6 deletions

View file

@ -45,6 +45,28 @@ public class BCLEndBiomeSourceConfig implements BiomeSourceConfig<BCLibEndBiomeS
MINECRAFT_17.landBiomesSize,
MINECRAFT_17.barrensBiomesSize
);
public static final BCLEndBiomeSourceConfig MINECRAFT_18_LARGE = new BCLEndBiomeSourceConfig(
EndBiomeMapType.HEX,
BCLib.RUNS_NULLSCAPE ? EndBiomeGeneratorType.VANILLA : EndBiomeGeneratorType.PAULEVS,
BCLib.RUNS_NULLSCAPE ? false : true,
MINECRAFT_18.innerVoidRadiusSquared,
MINECRAFT_18.centerBiomesSize,
MINECRAFT_18.voidBiomesSize * 2,
MINECRAFT_18.landBiomesSize * 4,
MINECRAFT_18.barrensBiomesSize * 2
);
public static final BCLEndBiomeSourceConfig MINECRAFT_18_AMPLIFIED = new BCLEndBiomeSourceConfig(
EndBiomeMapType.HEX,
EndBiomeGeneratorType.PAULEVS,
true,
MINECRAFT_18.innerVoidRadiusSquared,
MINECRAFT_18.centerBiomesSize,
MINECRAFT_18.voidBiomesSize,
MINECRAFT_18.landBiomesSize,
MINECRAFT_18.barrensBiomesSize
);
public static final BCLEndBiomeSourceConfig DEFAULT = MINECRAFT_18;
public static final Codec<BCLEndBiomeSourceConfig> CODEC = RecordCodecBuilder.create(instance -> instance

View file

@ -32,6 +32,21 @@ public class BCLNetherBiomeSourceConfig implements BiomeSourceConfig<BCLibNether
MINECRAFT_17.biomeSizeVertical,
MINECRAFT_17.useVerticalBiomes
);
public static final BCLNetherBiomeSourceConfig MINECRAFT_18_LARGE = new BCLNetherBiomeSourceConfig(
NetherBiomeMapType.HEX,
MINECRAFT_18.biomeSize * 4,
MINECRAFT_18.biomeSizeVertical * 2,
MINECRAFT_18.useVerticalBiomes
);
public static final BCLNetherBiomeSourceConfig MINECRAFT_18_AMPLIFIED = new BCLNetherBiomeSourceConfig(
NetherBiomeMapType.HEX,
MINECRAFT_18.biomeSize,
MINECRAFT_18.biomeSizeVertical * 2,
false
);
public static final BCLNetherBiomeSourceConfig DEFAULT = MINECRAFT_18;
public static final Codec<BCLNetherBiomeSourceConfig> CODEC = RecordCodecBuilder.create(instance -> instance

View file

@ -10,21 +10,25 @@ import org.betterx.worlds.together.levelgen.WorldGenUtil;
import org.betterx.worlds.together.worldPreset.TogetherWorldPreset;
import org.betterx.worlds.together.worldPreset.WorldPresets;
import net.minecraft.core.Holder;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.level.dimension.LevelStem;
import net.minecraft.world.level.levelgen.NoiseGeneratorSettings;
import net.minecraft.world.level.levelgen.presets.WorldPreset;
import java.util.Map;
public class PresetsRegistry implements WorldPresetBootstrap {
public static ResourceKey<WorldPreset> BCL_WORLD;
public static ResourceKey<WorldPreset> BCL_WORLD_LARGE;
public static ResourceKey<WorldPreset> BCL_WORLD_AMPLIFIED;
public static ResourceKey<WorldPreset> BCL_WORLD_17;
public void bootstrapWorldPresets() {
BCL_WORLD =
WorldPresets.register(
BCLib.makeID("normal"),
(overworldStem, netherContext, endContext) ->
(overworldStem, netherContext, endContext, noiseSettings, noiseBasedOverworld) ->
buildPreset(
overworldStem,
netherContext,
@ -34,9 +38,45 @@ public class PresetsRegistry implements WorldPresetBootstrap {
true
);
BCL_WORLD_LARGE =
WorldPresets.register(
BCLib.makeID("large"),
(overworldStem, netherContext, endContext, noiseSettings, noiseBasedOverworld) -> {
Holder<NoiseGeneratorSettings> largeBiomeGenerator = noiseSettings
.getOrCreateHolderOrThrow(NoiseGeneratorSettings.LARGE_BIOMES);
return buildPreset(
noiseBasedOverworld.make(
overworldStem.generator().getBiomeSource(),
largeBiomeGenerator
),
netherContext, BCLNetherBiomeSourceConfig.MINECRAFT_18_LARGE,
endContext, BCLEndBiomeSourceConfig.MINECRAFT_18_LARGE
);
},
true
);
BCL_WORLD_AMPLIFIED =
WorldPresets.register(
BCLib.makeID("amplified"),
(overworldStem, netherContext, endContext, noiseSettings, noiseBasedOverworld) -> {
Holder<NoiseGeneratorSettings> largeBiomeGenerator = noiseSettings
.getOrCreateHolderOrThrow(NoiseGeneratorSettings.AMPLIFIED);
return buildPreset(
noiseBasedOverworld.make(
overworldStem.generator().getBiomeSource(),
largeBiomeGenerator
),
netherContext, BCLNetherBiomeSourceConfig.MINECRAFT_18_AMPLIFIED,
endContext, BCLEndBiomeSourceConfig.MINECRAFT_18_AMPLIFIED
);
},
true
);
BCL_WORLD_17 = WorldPresets.register(
BCLib.makeID("legacy_17"),
(overworldStem, netherContext, endContext) ->
(overworldStem, netherContext, endContext, noiseSettings, noiseBasedOverworld) ->
buildPreset(
overworldStem,
netherContext,

View file

@ -12,5 +12,19 @@ public class PresetsRegistryClient {
WorldPresetsClient.registerCustomizeUI(PresetsRegistry.BCL_WORLD, (createWorldScreen, worldCreationContext) -> {
return new WorldSetupScreen(createWorldScreen, worldCreationContext);
});
WorldPresetsClient.registerCustomizeUI(
PresetsRegistry.BCL_WORLD_LARGE,
(createWorldScreen, worldCreationContext) -> {
return new WorldSetupScreen(createWorldScreen, worldCreationContext);
}
);
WorldPresetsClient.registerCustomizeUI(
PresetsRegistry.BCL_WORLD_AMPLIFIED,
(createWorldScreen, worldCreationContext) -> {
return new WorldSetupScreen(createWorldScreen, worldCreationContext);
}
);
}
}