diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java index d1434fb23..47b4299a9 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java @@ -62,14 +62,12 @@ public abstract class ModPlatform extends AbstractPlatform { public void registerWorldTypes(BiConsumer registerFunction) { HashSet configPacksInMetaPack = new HashSet<>(); getRawMetaConfigRegistry().forEach(pack -> { - PresetUtil.createMetaPackPreset(pack, this).apply(registerFunction); + PresetUtil.createMetaPackPreset(pack, this, false).apply(registerFunction); pack.packs().forEach((k, v) -> configPacksInMetaPack.add(v.getID())); }); getRawConfigRegistry() .forEach(pack -> { - if(!configPacksInMetaPack.contains(pack.getID())) { - PresetUtil.createDefault(pack, this).apply(registerFunction); - } + PresetUtil.createDefault(pack, this, configPacksInMetaPack.contains(pack.getID())).apply(registerFunction); }); } diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java index 703965a7b..fc853d554 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java @@ -38,9 +38,9 @@ import com.dfsek.terra.mod.generation.TerraBiomeSource; public class PresetUtil { private static final Logger LOGGER = LoggerFactory.getLogger(PresetUtil.class); - private static final List PRESETS = new ArrayList<>(); + private static final List> PRESETS = new ArrayList<>(); - public static Pair createDefault(ConfigPack pack, ModPlatform platform) { + public static Pair createDefault(ConfigPack pack, ModPlatform platform, boolean extended) { Registry dimensionTypeRegistry = platform.dimensionTypeRegistry(); Registry chunkGeneratorSettingsRegistry = platform.chunkGeneratorSettingsRegistry(); Registry multiNoiseBiomeSourceParameterLists = @@ -51,7 +51,7 @@ public class PresetUtil { "terra:" + pack.getID().toLowerCase(Locale.ROOT) + "/" + pack.getNamespace().toLowerCase( Locale.ROOT)); - PRESETS.add(generatorID); + PRESETS.add(Pair.of(generatorID, extended)); HashMap, DimensionOptions> dimensionMap = new HashMap<>(); @@ -65,7 +65,7 @@ public class PresetUtil { return Pair.of(generatorID, preset); } - public static Pair createMetaPackPreset(MetaPack metaPack, ModPlatform platform) { + public static Pair createMetaPackPreset(MetaPack metaPack, ModPlatform platform, boolean extended) { Registry dimensionTypeRegistry = platform.dimensionTypeRegistry(); Registry chunkGeneratorSettingsRegistry = platform.chunkGeneratorSettingsRegistry(); Registry multiNoiseBiomeSourceParameterLists = @@ -75,7 +75,7 @@ public class PresetUtil { metaPack.getID().toLowerCase(Locale.ROOT) + "/" + metaPack.getNamespace().toLowerCase( Locale.ROOT)); - PRESETS.add(generatorID); + PRESETS.add(Pair.of(generatorID, extended)); HashMap, DimensionOptions> dimensionMap = new HashMap<>(); @@ -187,7 +187,7 @@ public class PresetUtil { } } - public static List getPresets() { + public static List> getPresets() { return PRESETS; } } diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/TagUtil.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/TagUtil.java index b172878a8..de8542a41 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/TagUtil.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/TagUtil.java @@ -36,16 +36,20 @@ public final class TagUtil { PresetUtil .getPresets() - .forEach(id -> MinecraftUtil - .getEntry(registry, id) + .forEach(pair -> MinecraftUtil + .getEntry(registry, pair.getLeft()) .ifPresentOrElse( - preset -> collect - .computeIfAbsent(WorldPresetTags.NORMAL, tag -> new ArrayList<>()) - .add(preset), - () -> logger.error("Preset {} does not exist!", id))); + preset -> { + boolean useExtendedTag = pair.getRight(); // Get the boolean value from the pair + collect + .computeIfAbsent(useExtendedTag ? WorldPresetTags.EXTENDED : WorldPresetTags.NORMAL, tag -> new ArrayList<>()) + .add(preset); + }, + () -> logger.error("Preset {} does not exist!", pair.getLeft()))); registry.startTagReload(new RegistryTags<>(registry.getKey(), collect)).apply(); + if(logger.isDebugEnabled()) { registry.streamEntries() .map(e -> e.registryKey().getValue() + ": " +