mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-18 10:32:30 +00:00
refactor
This commit is contained in:
parent
7ca24faad3
commit
56b428d501
@ -25,14 +25,9 @@ import java.util.OptionalLong;
|
|||||||
|
|
||||||
|
|
||||||
public class DimensionUtil {
|
public class DimensionUtil {
|
||||||
public static DimensionType createDimension(ConfigPack pack, ModPlatform platform) {
|
public static DimensionType createDimension(VanillaWorldProperties vanillaWorldProperties, ModPlatform platform) {
|
||||||
VanillaWorldProperties vanillaWorldProperties;
|
|
||||||
MonsterSettingsConfig monsterSettingsConfig;
|
MonsterSettingsConfig monsterSettingsConfig;
|
||||||
if (pack.getContext().has(VanillaWorldProperties.class)) {
|
|
||||||
vanillaWorldProperties = pack.getContext().get(VanillaWorldProperties.class);
|
|
||||||
} else {
|
|
||||||
vanillaWorldProperties = new VanillaWorldProperties();
|
|
||||||
}
|
|
||||||
if (vanillaWorldProperties.getMonsterSettings() != null) {
|
if (vanillaWorldProperties.getMonsterSettings() != null) {
|
||||||
monsterSettingsConfig = vanillaWorldProperties.getMonsterSettings();
|
monsterSettingsConfig = vanillaWorldProperties.getMonsterSettings();
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.dfsek.terra.mod.util;
|
package com.dfsek.terra.mod.util;
|
||||||
|
|
||||||
|
import com.dfsek.terra.mod.config.VanillaWorldProperties;
|
||||||
|
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKey;
|
import net.minecraft.registry.RegistryKey;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
@ -45,30 +47,14 @@ public class PresetUtil {
|
|||||||
platform.multiNoiseBiomeSourceParameterListRegistry();
|
platform.multiNoiseBiomeSourceParameterListRegistry();
|
||||||
|
|
||||||
|
|
||||||
DimensionType dimensionType = DimensionUtil.createDimension(pack, platform);
|
|
||||||
RegistryKey<DimensionType> dimensionTypeRegistryKey = MinecraftUtil.registerDimensionTypeKey(new Identifier("overworld"));
|
|
||||||
|
|
||||||
Registry.registerReference(dimensionTypeRegistry, dimensionTypeRegistryKey, dimensionType);
|
|
||||||
|
|
||||||
RegistryEntry<DimensionType> dimensionTypeRegistryEntry = dimensionTypeRegistry.getEntry(dimensionType);
|
|
||||||
|
|
||||||
RegistryEntry<ChunkGeneratorSettings> overworld = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.OVERWORLD)
|
|
||||||
.orElseThrow();
|
|
||||||
|
|
||||||
|
|
||||||
Identifier generatorID = Identifier.of("terra", pack.getID().toLowerCase(Locale.ROOT) + "/" + pack.getNamespace().toLowerCase(
|
Identifier generatorID = Identifier.of("terra", pack.getID().toLowerCase(Locale.ROOT) + "/" + pack.getNamespace().toLowerCase(
|
||||||
Locale.ROOT));
|
Locale.ROOT));
|
||||||
|
|
||||||
PRESETS.add(generatorID);
|
PRESETS.add(generatorID);
|
||||||
|
|
||||||
TerraBiomeSource biomeSource = new TerraBiomeSource(pack);
|
|
||||||
ChunkGenerator generator = new MinecraftChunkGeneratorWrapper(biomeSource, pack, overworld);
|
|
||||||
|
|
||||||
DimensionOptions dimensionOptions = new DimensionOptions(dimensionTypeRegistryEntry, generator);
|
|
||||||
|
|
||||||
HashMap<RegistryKey<DimensionOptions>, DimensionOptions> dimensionMap = new HashMap<>();
|
HashMap<RegistryKey<DimensionOptions>, DimensionOptions> dimensionMap = new HashMap<>();
|
||||||
|
|
||||||
dimensionMap.put(DimensionOptions.OVERWORLD, dimensionOptions);
|
insertCustom(platform, "minecraft:overworld", pack, dimensionTypeRegistry, chunkGeneratorSettingsRegistry, dimensionMap);
|
||||||
|
|
||||||
insertDefaults(dimensionTypeRegistry, chunkGeneratorSettingsRegistry, multiNoiseBiomeSourceParameterLists, platform.biomeRegistry(), dimensionMap);
|
insertDefaults(dimensionTypeRegistry, chunkGeneratorSettingsRegistry, multiNoiseBiomeSourceParameterLists, platform.biomeRegistry(), dimensionMap);
|
||||||
|
|
||||||
@ -91,8 +77,30 @@ public class PresetUtil {
|
|||||||
HashMap<RegistryKey<DimensionOptions>, DimensionOptions> dimensionMap = new HashMap<>();
|
HashMap<RegistryKey<DimensionOptions>, DimensionOptions> dimensionMap = new HashMap<>();
|
||||||
|
|
||||||
metaPack.packs().forEach((key, pack) -> {
|
metaPack.packs().forEach((key, pack) -> {
|
||||||
|
insertCustom(platform, key, pack, dimensionTypeRegistry, chunkGeneratorSettingsRegistry, dimensionMap);
|
||||||
|
});
|
||||||
|
|
||||||
|
insertDefaults(dimensionTypeRegistry, chunkGeneratorSettingsRegistry, multiNoiseBiomeSourceParameterLists, platform.biomeRegistry(), dimensionMap);
|
||||||
|
|
||||||
|
WorldPreset preset = new WorldPreset(dimensionMap);
|
||||||
|
LOGGER.info("Created world type \"{}\"", generatorID);
|
||||||
|
return Pair.of(generatorID, preset);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void insertCustom(ModPlatform platform, String key, ConfigPack pack, Registry<DimensionType> dimensionTypeRegistry,
|
||||||
|
Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry,
|
||||||
|
HashMap<RegistryKey<DimensionOptions>, DimensionOptions> dimensionMap) {
|
||||||
Identifier demensionIdentifier = new Identifier(key);
|
Identifier demensionIdentifier = new Identifier(key);
|
||||||
DimensionType dimensionType = DimensionUtil.createDimension(pack, platform);
|
|
||||||
|
VanillaWorldProperties vanillaWorldProperties;
|
||||||
|
|
||||||
|
if (pack.getContext().has(VanillaWorldProperties.class)) {
|
||||||
|
vanillaWorldProperties = pack.getContext().get(VanillaWorldProperties.class);
|
||||||
|
} else {
|
||||||
|
vanillaWorldProperties = new VanillaWorldProperties();
|
||||||
|
}
|
||||||
|
|
||||||
|
DimensionType dimensionType = DimensionUtil.createDimension(vanillaWorldProperties, platform);
|
||||||
RegistryKey<DimensionType> dimensionTypeRegistryKey = MinecraftUtil.registerDimensionTypeKey(new Identifier("terra", pack.getID().toLowerCase(
|
RegistryKey<DimensionType> dimensionTypeRegistryKey = MinecraftUtil.registerDimensionTypeKey(new Identifier("terra", pack.getID().toLowerCase(
|
||||||
Locale.ROOT)));
|
Locale.ROOT)));
|
||||||
|
|
||||||
@ -113,13 +121,6 @@ public class PresetUtil {
|
|||||||
DimensionOptions dimensionOptions = new DimensionOptions(dimensionTypeRegistryEntry, generator);
|
DimensionOptions dimensionOptions = new DimensionOptions(dimensionTypeRegistryEntry, generator);
|
||||||
RegistryKey<DimensionOptions> dimensionOptionsRegistryKey = RegistryKey.of(RegistryKeys.DIMENSION, demensionIdentifier);
|
RegistryKey<DimensionOptions> dimensionOptionsRegistryKey = RegistryKey.of(RegistryKeys.DIMENSION, demensionIdentifier);
|
||||||
dimensionMap.put(dimensionOptionsRegistryKey, dimensionOptions);
|
dimensionMap.put(dimensionOptionsRegistryKey, dimensionOptions);
|
||||||
});
|
|
||||||
|
|
||||||
insertDefaults(dimensionTypeRegistry, chunkGeneratorSettingsRegistry, multiNoiseBiomeSourceParameterLists, platform.biomeRegistry(), dimensionMap);
|
|
||||||
|
|
||||||
WorldPreset preset = new WorldPreset(dimensionMap);
|
|
||||||
LOGGER.info("Created world type \"{}\"", generatorID);
|
|
||||||
return Pair.of(generatorID, preset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void insertDefaults(Registry<DimensionType> dimensionTypeRegistry, Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry, Registry<MultiNoiseBiomeSourceParameterList> multiNoiseBiomeSourceParameterLists, Registry<Biome> biomeRegistry, HashMap<RegistryKey<DimensionOptions>, DimensionOptions> map) {
|
private static void insertDefaults(Registry<DimensionType> dimensionTypeRegistry, Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry, Registry<MultiNoiseBiomeSourceParameterList> multiNoiseBiomeSourceParameterLists, Registry<Biome> biomeRegistry, HashMap<RegistryKey<DimensionOptions>, DimensionOptions> map) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user