From 6419e114146693509ece9897170555734a453db5 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 1 Jul 2022 11:13:22 +0200 Subject: [PATCH] Replicated WorldPreset and FlatLevelPreset Registry --- .../org/betterx/bclib/api/v2/tag/TagAPI.java | 7 +- .../org/betterx/bclib/api/v2/tag/TagType.java | 41 +++++----- .../bclib/presets/FlatLevelPresets.java | 2 +- .../flatLevel/FlatLevelGeneratorPreset.java | 23 ++++++ .../FlatLevelGeneratorPresetTags.java | 11 +++ .../together/flatLevel/FlatLevelPresets.java | 13 ++- .../together/levelgen/WorldGenUtil.java | 4 +- .../mixin/client/CreateWorldScreenMixin.java | 2 +- .../WorldGenSettingsComponentMixin.java | 2 +- .../mixin/common/BuiltinRegistriesMixin.java | 19 +++-- .../together/mixin/common/TagLoaderMixin.java | 4 +- .../mixin/common/WorldGenPropertiesMixin.java | 9 ++- .../mixin/common/WorldPresetAccessor.java | 3 +- .../mixin/common/WorldPresetMixin.java | 2 +- .../common/WorldPresetsBootstrapMixin.java | 79 +++++++++---------- .../surfaceRules/SurfaceRuleRegistry.java | 4 +- .../worlds/together/tag/v3/TagManager.java | 7 +- .../worlds/together/tag/v3/TagRegistry.java | 43 +++++----- .../event/AdaptWorldPresetSettingEvent.java | 3 +- .../event/OnAdaptWorldPresetSettings.java | 3 +- .../together/world/event/WorldBootstrap.java | 5 +- .../worldPreset/TogetherWorldPreset.java | 3 +- .../WorldGenSettingsComponentAccessor.java | 1 - .../together/worldPreset/WorldPreset.java | 16 ++++ .../together/worldPreset/WorldPresetTags.java | 9 +++ .../together/worldPreset/WorldPresets.java | 75 ++++++++++++++++-- .../client/WorldPresetsClient.java | 2 +- src/main/resources/bclib.accesswidener | 19 +++-- 28 files changed, 269 insertions(+), 142 deletions(-) create mode 100644 src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelGeneratorPreset.java create mode 100644 src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelGeneratorPresetTags.java create mode 100644 src/main/java/org/betterx/worlds/together/worldPreset/WorldPreset.java create mode 100644 src/main/java/org/betterx/worlds/together/worldPreset/WorldPresetTags.java diff --git a/src/main/java/org/betterx/bclib/api/v2/tag/TagAPI.java b/src/main/java/org/betterx/bclib/api/v2/tag/TagAPI.java index 774d33f9..2c6475d7 100644 --- a/src/main/java/org/betterx/bclib/api/v2/tag/TagAPI.java +++ b/src/main/java/org/betterx/bclib/api/v2/tag/TagAPI.java @@ -9,8 +9,8 @@ import net.minecraft.core.DefaultedRegistry; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.Tag; import net.minecraft.tags.TagKey; -import net.minecraft.tags.TagLoader; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.ItemLike; @@ -19,7 +19,6 @@ import net.minecraft.world.level.block.Block; import com.google.common.collect.Maps; -import java.util.List; import java.util.Map; import java.util.function.Function; @@ -254,9 +253,9 @@ public class TagAPI { @Deprecated(forRemoval = true) - public static Map> apply( + public static Map apply( String directory, - Map> tagsMap + Map tagsMap ) { TagType type = TYPES.get(directory); if (type != null) { diff --git a/src/main/java/org/betterx/bclib/api/v2/tag/TagType.java b/src/main/java/org/betterx/bclib/api/v2/tag/TagType.java index 38b6d6ee..2b5d401b 100644 --- a/src/main/java/org/betterx/bclib/api/v2/tag/TagType.java +++ b/src/main/java/org/betterx/bclib/api/v2/tag/TagType.java @@ -8,18 +8,15 @@ import net.minecraft.core.DefaultedRegistry; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.TagEntry; +import net.minecraft.tags.Tag; import net.minecraft.tags.TagKey; -import net.minecraft.tags.TagLoader; import net.minecraft.tags.TagManager; import net.minecraft.world.level.biome.Biome; -import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import java.util.HashSet; -import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.BiConsumer; @@ -113,7 +110,7 @@ public class TagType { } public final String directory; - private final Map> tags = Maps.newConcurrentMap(); + private final Map> tags = Maps.newConcurrentMap(); public final ResourceKey> registryKey; private final Function locationProvider; @@ -131,11 +128,11 @@ public class TagType { getSetForTag(tagID); } - public Set getSetForTag(ResourceLocation tagID) { + public Set getSetForTag(ResourceLocation tagID) { return tags.computeIfAbsent(tagID, k -> Sets.newHashSet()); } - public Set getSetForTag(TagKey tag) { + public Set getSetForTag(TagKey tag) { if (tag == null) { return new HashSet<>(); } @@ -171,10 +168,10 @@ public class TagType { public void addUntyped(TagKey tagID, ResourceLocation... elements) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (ResourceLocation id : elements) { if (id != null) { - set.add(TagEntry.element(id)); + set.add(new Tag.ElementEntry(id)); } } } @@ -187,11 +184,11 @@ public class TagType { public void addOtherTags(TagKey tagID, TagKey... tags) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (TagKey tag : tags) { ResourceLocation id = tag.location(); if (id != null) { - set.add(TagEntry.tag(id)); + set.add(new Tag.TagEntry(id)); } } } @@ -204,11 +201,11 @@ public class TagType { */ protected void add(TagKey tagID, T... elements) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (T element : elements) { ResourceLocation id = locationProvider.apply(element); if (id != null) { - set.add(TagEntry.element(id)); + set.add(new Tag.ElementEntry(id)); } } } @@ -222,11 +219,11 @@ public class TagType { @Deprecated(forRemoval = true) protected void add(ResourceLocation tagID, T... elements) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (T element : elements) { ResourceLocation id = locationProvider.apply(element); if (id != null) { - set.add(TagEntry.element(id)); + set.add(new Tag.ElementEntry(id)); } } } @@ -238,23 +235,23 @@ public class TagType { } } - public void forEach(BiConsumer> consumer) { + public void forEach(BiConsumer> consumer) { tags.forEach(consumer); } - public void apply(Map> tagsMap) { + public void apply(Map tagsMap) { if (Registry.BIOME_REGISTRY.equals(registryKey)) InternalBiomeAPI._runBiomeTagAdders(); //this.isFrozen = true; - this.forEach((id, ids) -> apply(id, tagsMap.computeIfAbsent(id, key -> Lists.newArrayList()), ids)); + this.forEach((id, ids) -> apply(id, tagsMap.computeIfAbsent(id, unused -> new Tag.Builder()), ids)); } - private static List apply( + private static Tag.Builder apply( ResourceLocation id, - List builder, - Set ids + Tag.Builder builder, + Set ids ) { - ids.forEach(value -> builder.add(new TagLoader.EntryWithSource(value, BCLib.MOD_ID))); + ids.forEach(value -> builder.add(new Tag.BuilderEntry(value, BCLib.MOD_ID))); return builder; } } diff --git a/src/main/java/org/betterx/bclib/presets/FlatLevelPresets.java b/src/main/java/org/betterx/bclib/presets/FlatLevelPresets.java index 618f7e9a..c5c1e9b2 100644 --- a/src/main/java/org/betterx/bclib/presets/FlatLevelPresets.java +++ b/src/main/java/org/betterx/bclib/presets/FlatLevelPresets.java @@ -1,10 +1,10 @@ package org.betterx.bclib.presets; +import org.betterx.worlds.together.flatLevel.FlatLevelGeneratorPreset; import org.betterx.worlds.together.tag.v3.TagRegistry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.levelgen.flat.FlatLevelGeneratorPreset; /** * @deprecated Use {@link org.betterx.worlds.together.flatLevel.FlatLevelPresets} instead diff --git a/src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelGeneratorPreset.java b/src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelGeneratorPreset.java new file mode 100644 index 00000000..054aacbd --- /dev/null +++ b/src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelGeneratorPreset.java @@ -0,0 +1,23 @@ +package org.betterx.worlds.together.flatLevel; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.resources.RegistryFileCodec; +import net.minecraft.resources.RegistryFixedCodec; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.levelgen.flat.FlatLevelGeneratorSettings; + +public record FlatLevelGeneratorPreset(Holder displayItem, FlatLevelGeneratorSettings settings) { + public static final Codec DIRECT_CODEC = RecordCodecBuilder.create(instance -> instance + .group( + RegistryFixedCodec.create(Registry.ITEM_REGISTRY).fieldOf("display").forGetter(o -> o.displayItem), + FlatLevelGeneratorSettings.CODEC.fieldOf("settings").forGetter(o -> o.settings) + ).apply(instance, FlatLevelGeneratorPreset::new) + ); + public static final Codec> CODEC = RegistryFileCodec.create( + FlatLevelPresets.FLAT_LEVEL_GENERATOR_PRESET_REGISTRY, + DIRECT_CODEC + ); +} \ No newline at end of file diff --git a/src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelGeneratorPresetTags.java b/src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelGeneratorPresetTags.java new file mode 100644 index 00000000..97d542ee --- /dev/null +++ b/src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelGeneratorPresetTags.java @@ -0,0 +1,11 @@ +package org.betterx.worlds.together.flatLevel; + +import org.betterx.worlds.together.WorldsTogether; + +import net.minecraft.tags.TagKey; + +public class FlatLevelGeneratorPresetTags { + public static final TagKey VISIBLE = FlatLevelPresets.FLAT_LEVEL_PRESETS.makeTag( + WorldsTogether.makeID("visible") + ); +} diff --git a/src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelPresets.java b/src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelPresets.java index 3616b232..36b9e399 100644 --- a/src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelPresets.java +++ b/src/main/java/org/betterx/worlds/together/flatLevel/FlatLevelPresets.java @@ -1,18 +1,23 @@ package org.betterx.worlds.together.flatLevel; +import org.betterx.worlds.together.WorldsTogether; import org.betterx.worlds.together.tag.v3.TagManager; import org.betterx.worlds.together.tag.v3.TagRegistry; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.FlatLevelGeneratorPresetTags; -import net.minecraft.world.level.levelgen.flat.FlatLevelGeneratorPreset; public class FlatLevelPresets { + static final ResourceKey> FLAT_LEVEL_GENERATOR_PRESET_REGISTRY + = ResourceKey.createRegistryKey(WorldsTogether.makeID("worldgen/flat_level_generator_preset")); + + public static final Registry FLAT_LEVEL_GENERATOR_PRESET + = Registry.registerSimple(FLAT_LEVEL_GENERATOR_PRESET_REGISTRY, (registry) -> null); + public static TagRegistry.Simple FLAT_LEVEL_PRESETS = TagManager.registerType( - Registry.FLAT_LEVEL_GENERATOR_PRESET_REGISTRY, + FLAT_LEVEL_GENERATOR_PRESET_REGISTRY, "tags/worldgen/flat_level_generator_preset", (b) -> null ); @@ -20,7 +25,7 @@ public class FlatLevelPresets { public static ResourceKey register(ResourceLocation loc) { ResourceKey key = ResourceKey.create( - Registry.FLAT_LEVEL_GENERATOR_PRESET_REGISTRY, + FLAT_LEVEL_GENERATOR_PRESET_REGISTRY, loc ); FLAT_LEVEL_PRESETS.addUntyped(FlatLevelGeneratorPresetTags.VISIBLE, key.location()); diff --git a/src/main/java/org/betterx/worlds/together/levelgen/WorldGenUtil.java b/src/main/java/org/betterx/worlds/together/levelgen/WorldGenUtil.java index 9f535512..d82d56d9 100644 --- a/src/main/java/org/betterx/worlds/together/levelgen/WorldGenUtil.java +++ b/src/main/java/org/betterx/worlds/together/levelgen/WorldGenUtil.java @@ -7,10 +7,10 @@ import org.betterx.worlds.together.chunkgenerator.EnforceableChunkGenerator; import org.betterx.worlds.together.world.BiomeSourceWithSeed; import org.betterx.worlds.together.world.WorldConfig; import org.betterx.worlds.together.worldPreset.TogetherWorldPreset; +import org.betterx.worlds.together.worldPreset.WorldPreset; import org.betterx.worlds.together.worldPreset.WorldPresets; import com.mojang.datafixers.util.Pair; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; @@ -37,7 +37,7 @@ public class WorldGenUtil { boolean generateBonusChest ) { WorldGenSettings settings = registryAccess - .registryOrThrow(Registry.WORLD_PRESET_REGISTRY) + .registryOrThrow(WorldPresets.WORLD_PRESET_REGISTRY) .getHolderOrThrow(preset) .value() .createWorldGenSettings(seed, generateStructures, generateBonusChest); diff --git a/src/main/java/org/betterx/worlds/together/mixin/client/CreateWorldScreenMixin.java b/src/main/java/org/betterx/worlds/together/mixin/client/CreateWorldScreenMixin.java index ae9f248d..90cf1dc4 100644 --- a/src/main/java/org/betterx/worlds/together/mixin/client/CreateWorldScreenMixin.java +++ b/src/main/java/org/betterx/worlds/together/mixin/client/CreateWorldScreenMixin.java @@ -2,13 +2,13 @@ package org.betterx.worlds.together.mixin.client; import org.betterx.worlds.together.levelgen.WorldGenUtil; import org.betterx.worlds.together.world.event.WorldBootstrap; +import org.betterx.worlds.together.worldPreset.WorldPreset; import org.betterx.worlds.together.worldPreset.WorldPresets; import com.mojang.datafixers.util.Pair; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.worldselection.CreateWorldScreen; import net.minecraft.client.gui.screens.worldselection.WorldGenSettingsComponent; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.core.RegistryAccess; import net.minecraft.resources.ResourceKey; import net.minecraft.server.WorldLoader; diff --git a/src/main/java/org/betterx/worlds/together/mixin/client/WorldGenSettingsComponentMixin.java b/src/main/java/org/betterx/worlds/together/mixin/client/WorldGenSettingsComponentMixin.java index b7c19865..5ad139db 100644 --- a/src/main/java/org/betterx/worlds/together/mixin/client/WorldGenSettingsComponentMixin.java +++ b/src/main/java/org/betterx/worlds/together/mixin/client/WorldGenSettingsComponentMixin.java @@ -1,9 +1,9 @@ package org.betterx.worlds.together.mixin.client; import org.betterx.worlds.together.worldPreset.WorldGenSettingsComponentAccessor; +import org.betterx.worlds.together.worldPreset.WorldPreset; import net.minecraft.client.gui.screens.worldselection.WorldGenSettingsComponent; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.core.Holder; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/org/betterx/worlds/together/mixin/common/BuiltinRegistriesMixin.java b/src/main/java/org/betterx/worlds/together/mixin/common/BuiltinRegistriesMixin.java index fdfffef1..508e1d2b 100644 --- a/src/main/java/org/betterx/worlds/together/mixin/common/BuiltinRegistriesMixin.java +++ b/src/main/java/org/betterx/worlds/together/mixin/common/BuiltinRegistriesMixin.java @@ -2,6 +2,7 @@ package org.betterx.worlds.together.mixin.common; import org.betterx.worlds.together.surfaceRules.SurfaceRuleRegistry; +import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.data.BuiltinRegistries; import net.minecraft.resources.ResourceKey; @@ -12,8 +13,18 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import java.util.function.Supplier; + @Mixin(BuiltinRegistries.class) -public class BuiltinRegistriesMixin { +public abstract class BuiltinRegistriesMixin { + + @Shadow + static protected Registry registerSimple( + ResourceKey> resourceKey, + Supplier> supplier + ) { + throw new RuntimeException("Shadowed Call"); + } @Inject(method = "", at = @At(value = "INVOKE", target = "Ljava/util/Map;forEach(Ljava/util/function/BiConsumer;)V")) private static void together_registerSurface(CallbackInfo ci) { @@ -23,10 +34,4 @@ public class BuiltinRegistriesMixin { ); } - @Shadow - static protected Registry registerSimple( - ResourceKey> resourceKey, BuiltinRegistries.RegistryBootstrap registryBootstrap - ) { - throw new RuntimeException("Shadowed Call"); - } } diff --git a/src/main/java/org/betterx/worlds/together/mixin/common/TagLoaderMixin.java b/src/main/java/org/betterx/worlds/together/mixin/common/TagLoaderMixin.java index 3431afd1..0b7ab80a 100644 --- a/src/main/java/org/betterx/worlds/together/mixin/common/TagLoaderMixin.java +++ b/src/main/java/org/betterx/worlds/together/mixin/common/TagLoaderMixin.java @@ -3,6 +3,7 @@ package org.betterx.worlds.together.mixin.common; import org.betterx.worlds.together.tag.v3.TagManager; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.Tag; import net.minecraft.tags.TagLoader; import org.spongepowered.asm.mixin.Final; @@ -11,7 +12,6 @@ import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArg; -import java.util.List; import java.util.Map; @Mixin(TagLoader.class) @@ -21,7 +21,7 @@ public class TagLoaderMixin { private String directory; @ModifyArg(method = "loadAndBuild", at = @At(value = "INVOKE", target = "Lnet/minecraft/tags/TagLoader;build(Ljava/util/Map;)Ljava/util/Map;")) - public Map> be_modifyTags(Map> tagsMap) { + public Map be_modifyTags(Map tagsMap) { return TagManager.apply(directory, tagsMap); } } diff --git a/src/main/java/org/betterx/worlds/together/mixin/common/WorldGenPropertiesMixin.java b/src/main/java/org/betterx/worlds/together/mixin/common/WorldGenPropertiesMixin.java index 806ec9b4..39ca9761 100644 --- a/src/main/java/org/betterx/worlds/together/mixin/common/WorldGenPropertiesMixin.java +++ b/src/main/java/org/betterx/worlds/together/mixin/common/WorldGenPropertiesMixin.java @@ -1,19 +1,22 @@ package org.betterx.worlds.together.mixin.common; +import org.betterx.worlds.together.worldPreset.WorldPreset; import org.betterx.worlds.together.worldPreset.WorldPresets; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.resources.ResourceKey; import net.minecraft.server.dedicated.DedicatedServerProperties; +import com.google.gson.JsonObject; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(DedicatedServerProperties.WorldGenProperties.class) public class WorldGenPropertiesMixin { - @ModifyArg(method = "create", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/levelgen/presets/WorldPreset;createWorldGenSettings(JZZ)Lnet/minecraft/world/level/levelgen/WorldGenSettings;")) - public long bcl_create(long seed) { + @Inject(method = "", at = @At(value = "TAIL")) + private static void bcl_create(String string, JsonObject jsonObject, boolean bl, String string2, CallbackInfo ci) { return seed; } diff --git a/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetAccessor.java b/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetAccessor.java index c1fccc71..a2812163 100644 --- a/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetAccessor.java +++ b/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetAccessor.java @@ -1,6 +1,7 @@ package org.betterx.worlds.together.mixin.common; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; +import org.betterx.worlds.together.worldPreset.WorldPreset; + import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.dimension.LevelStem; diff --git a/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetMixin.java b/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetMixin.java index f621b9bf..ab260995 100644 --- a/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetMixin.java +++ b/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetMixin.java @@ -1,11 +1,11 @@ package org.betterx.worlds.together.mixin.common; import org.betterx.worlds.together.worldPreset.TogetherWorldPreset; +import org.betterx.worlds.together.worldPreset.WorldPreset; import com.mojang.datafixers.kinds.App; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.dimension.LevelStem; diff --git a/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetsBootstrapMixin.java b/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetsBootstrapMixin.java index 760e0caa..c75cb9ad 100644 --- a/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetsBootstrapMixin.java +++ b/src/main/java/org/betterx/worlds/together/mixin/common/WorldPresetsBootstrapMixin.java @@ -1,73 +1,66 @@ package org.betterx.worlds.together.mixin.common; import org.betterx.worlds.together.levelgen.WorldGenUtil; +import org.betterx.worlds.together.worldPreset.WorldPreset; import org.betterx.worlds.together.worldPreset.WorldPresets; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.core.Holder; import net.minecraft.core.Registry; +import net.minecraft.data.BuiltinRegistries; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.dimension.LevelStem; import net.minecraft.world.level.levelgen.NoiseGeneratorSettings; +import net.minecraft.world.level.levelgen.WorldGenSettings; import net.minecraft.world.level.levelgen.structure.StructureSet; import net.minecraft.world.level.levelgen.synth.NormalNoise; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(net.minecraft.world.level.levelgen.presets.WorldPresets.Bootstrap.class) +@Mixin(WorldPreset.class) public abstract class WorldPresetsBootstrapMixin { - @Shadow - @Final - private Registry presets; - @Shadow - @Final - private Registry biomes; - @Shadow - @Final - private Registry structureSets; - @Shadow - @Final - private Registry noises; - @Shadow - @Final - private Holder netherDimensionType; - @Shadow - @Final - private Holder netherNoiseSettings; - @Shadow - @Final - private Holder endDimensionType; - @Shadow - @Final - private Holder endNoiseSettings; //see WorldPresets.register - @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) { + @Inject(method = "", at = @At(value = "TAIL")) + private static void bcl_getOverworldStem(CallbackInfo ci) { + Registry presets = WorldPresets.WORLD_PRESET; + Registry dimensionTypes = BuiltinRegistries.ACCESS.registryOrThrow(Registry.DIMENSION_TYPE_REGISTRY); + Registry biomes = BuiltinRegistries.BIOME; + Registry structureSets = BuiltinRegistries.STRUCTURE_SETS; + Registry noiseSettings = BuiltinRegistries.NOISE_GENERATOR_SETTINGS; + Registry noises = BuiltinRegistries.NOISE; + Holder overworldDimensionType = dimensionTypes.getOrCreateHolder(DimensionType.OVERWORLD_LOCATION); + Holder netherDimensionType = dimensionTypes.getOrCreateHolder(DimensionType.NETHER_LOCATION); + Holder netherNoiseSettings = noiseSettings.getOrCreateHolder(NoiseGeneratorSettings.NETHER); + Holder endDimensionType = dimensionTypes.getOrCreateHolder(DimensionType.END_LOCATION); + Holder endNoiseSettings = noiseSettings.getOrCreateHolder(NoiseGeneratorSettings.END); + + + LevelStem overworldStem = new LevelStem( + overworldDimensionType, + WorldGenSettings.makeDefaultOverworld(BuiltinRegistries.ACCESS, 0) + ); + WorldGenUtil.Context netherContext = new WorldGenUtil.Context( - this.biomes, - this.netherDimensionType, - this.structureSets, - this.noises, - this.netherNoiseSettings + biomes, + netherDimensionType, + structureSets, + noises, + netherNoiseSettings ); WorldGenUtil.Context endContext = new WorldGenUtil.Context( - this.biomes, - this.endDimensionType, - this.structureSets, - this.noises, - this.endNoiseSettings + biomes, + endDimensionType, + structureSets, + noises, + endNoiseSettings ); WorldPresets.bootstrapPresets(presets, overworldStem, netherContext, endContext); - - return overworldStem; } } diff --git a/src/main/java/org/betterx/worlds/together/surfaceRules/SurfaceRuleRegistry.java b/src/main/java/org/betterx/worlds/together/surfaceRules/SurfaceRuleRegistry.java index 6f465c83..509829ad 100644 --- a/src/main/java/org/betterx/worlds/together/surfaceRules/SurfaceRuleRegistry.java +++ b/src/main/java/org/betterx/worlds/together/surfaceRules/SurfaceRuleRegistry.java @@ -27,9 +27,9 @@ public class SurfaceRuleRegistry { } @ApiStatus.Internal - public static Holder bootstrap(Registry registry) { + public static Holder bootstrap() { return BuiltinRegistries.register( - registry, + BUILTIN_SURFACE_RULES, WorldsTogether.makeID("dummy"), new AssignedSurfaceRule( SurfaceRules.state(Blocks.YELLOW_CONCRETE.defaultBlockState()), diff --git a/src/main/java/org/betterx/worlds/together/tag/v3/TagManager.java b/src/main/java/org/betterx/worlds/together/tag/v3/TagManager.java index fbfc4a70..9830d26e 100644 --- a/src/main/java/org/betterx/worlds/together/tag/v3/TagManager.java +++ b/src/main/java/org/betterx/worlds/together/tag/v3/TagManager.java @@ -9,14 +9,13 @@ import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.tags.Tag; import net.minecraft.tags.TagKey; -import net.minecraft.tags.TagLoader; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import com.google.common.collect.Maps; -import java.util.List; import java.util.Map; import java.util.function.Function; import org.jetbrains.annotations.ApiStatus; @@ -101,9 +100,9 @@ public class TagManager { * @return The {@code tagsMap} Parameter. */ @ApiStatus.Internal - public static Map> apply( + public static Map apply( String directory, - Map> tagsMap + Map tagsMap ) { tagsMap = TagAPI.apply(directory, tagsMap); diff --git a/src/main/java/org/betterx/worlds/together/tag/v3/TagRegistry.java b/src/main/java/org/betterx/worlds/together/tag/v3/TagRegistry.java index 54472d83..50f224ce 100644 --- a/src/main/java/org/betterx/worlds/together/tag/v3/TagRegistry.java +++ b/src/main/java/org/betterx/worlds/together/tag/v3/TagRegistry.java @@ -7,20 +7,17 @@ import net.minecraft.core.DefaultedRegistry; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.TagEntry; +import net.minecraft.tags.Tag; import net.minecraft.tags.TagKey; -import net.minecraft.tags.TagLoader; import net.minecraft.tags.TagManager; import net.minecraft.world.item.Item; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.biome.Biome; -import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import java.util.HashSet; -import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.BiConsumer; @@ -87,7 +84,7 @@ public class TagRegistry { return makeTag(modID, "has_structure/" + name); } - public void apply(Map> tagsMap) { + public void apply(Map tagsMap) { InternalBiomeAPI._runBiomeTagAdders(); super.apply(tagsMap); } @@ -124,7 +121,7 @@ public class TagRegistry { } public final String directory; - private final Map> tags = Maps.newConcurrentMap(); + private final Map> tags = Maps.newConcurrentMap(); public final ResourceKey> registryKey; private final Function locationProvider; @@ -142,11 +139,11 @@ public class TagRegistry { getSetForTag(tagID); } - public Set getSetForTag(ResourceLocation tagID) { + public Set getSetForTag(ResourceLocation tagID) { return tags.computeIfAbsent(tagID, k -> Sets.newHashSet()); } - public Set getSetForTag(TagKey tag) { + public Set getSetForTag(TagKey tag) { if (tag == null) { return new HashSet<>(); } @@ -192,10 +189,10 @@ public class TagRegistry { public void addUntyped(TagKey tagID, ResourceLocation... elements) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (ResourceLocation id : elements) { if (id != null) { - set.add(TagEntry.element(id)); + set.add(new Tag.ElementEntry(id)); } } } @@ -208,11 +205,11 @@ public class TagRegistry { public void addOtherTags(TagKey tagID, TagKey... tags) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (TagKey tag : tags) { ResourceLocation id = tag.location(); if (id != null) { - set.add(TagEntry.tag(id)); + set.add(new Tag.TagEntry(id)); } } } @@ -225,11 +222,11 @@ public class TagRegistry { */ protected void add(TagKey tagID, T... elements) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (T element : elements) { ResourceLocation id = locationProvider.apply(element); if (id != null) { - set.add(TagEntry.element(id)); + set.add(new Tag.ElementEntry(id)); } } } @@ -243,11 +240,11 @@ public class TagRegistry { @Deprecated(forRemoval = true) protected void add(ResourceLocation tagID, T... elements) { if (isFrozen) BCLib.LOGGER.warning("Adding Tag " + tagID + " after the API was frozen."); - Set set = getSetForTag(tagID); + Set set = getSetForTag(tagID); for (T element : elements) { ResourceLocation id = locationProvider.apply(element); if (id != null) { - set.add(TagEntry.element(id)); + set.add(new Tag.ElementEntry(id)); } } } @@ -259,22 +256,22 @@ public class TagRegistry { } } - public void forEach(BiConsumer> consumer) { + public void forEach(BiConsumer> consumer) { tags.forEach(consumer); } - public void apply(Map> tagsMap) { + public void apply(Map tagsMap) { //this.isFrozen = true; - this.forEach((id, ids) -> apply(id, tagsMap.computeIfAbsent(id, key -> Lists.newArrayList()), ids)); + this.forEach((id, ids) -> apply(id, tagsMap.computeIfAbsent(id, key -> new Tag.Builder()), ids)); } - private static List apply( + private static Tag.Builder apply( ResourceLocation id, - List builder, - Set ids + Tag.Builder builder, + Set ids ) { - ids.forEach(value -> builder.add(new TagLoader.EntryWithSource(value, BCLib.MOD_ID))); + ids.forEach(value -> builder.add(new Tag.BuilderEntry(value, BCLib.MOD_ID))); return builder; } } diff --git a/src/main/java/org/betterx/worlds/together/world/event/AdaptWorldPresetSettingEvent.java b/src/main/java/org/betterx/worlds/together/world/event/AdaptWorldPresetSettingEvent.java index ea8fdfff..4c46b680 100644 --- a/src/main/java/org/betterx/worlds/together/world/event/AdaptWorldPresetSettingEvent.java +++ b/src/main/java/org/betterx/worlds/together/world/event/AdaptWorldPresetSettingEvent.java @@ -1,6 +1,7 @@ package org.betterx.worlds.together.world.event; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; +import org.betterx.worlds.together.worldPreset.WorldPreset; + import net.minecraft.core.Holder; import net.minecraft.world.level.levelgen.WorldGenSettings; diff --git a/src/main/java/org/betterx/worlds/together/world/event/OnAdaptWorldPresetSettings.java b/src/main/java/org/betterx/worlds/together/world/event/OnAdaptWorldPresetSettings.java index e8b6de00..e2bff07d 100644 --- a/src/main/java/org/betterx/worlds/together/world/event/OnAdaptWorldPresetSettings.java +++ b/src/main/java/org/betterx/worlds/together/world/event/OnAdaptWorldPresetSettings.java @@ -1,6 +1,7 @@ package org.betterx.worlds.together.world.event; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; +import org.betterx.worlds.together.worldPreset.WorldPreset; + import net.minecraft.core.Holder; import net.minecraft.world.level.levelgen.WorldGenSettings; diff --git a/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java b/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java index 9d46ce03..8174001e 100644 --- a/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java +++ b/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java @@ -9,12 +9,11 @@ import org.betterx.worlds.together.surfaceRules.SurfaceRuleUtil; import org.betterx.worlds.together.world.WorldConfig; import org.betterx.worlds.together.worldPreset.TogetherWorldPreset; import org.betterx.worlds.together.worldPreset.WorldGenSettingsComponentAccessor; +import org.betterx.worlds.together.worldPreset.WorldPreset; import org.betterx.worlds.together.worldPreset.WorldPresets; import net.minecraft.client.gui.screens.worldselection.WorldGenSettingsComponent; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.core.Holder; -import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; import net.minecraft.data.BuiltinRegistries; import net.minecraft.nbt.Tag; @@ -96,7 +95,7 @@ public class WorldBootstrap { var presetKey = currentPreset.get().unwrapKey(); if (presetKey.isPresent()) { Optional> newPreset = LAST_REGISTRY_ACCESS - .registryOrThrow(Registry.WORLD_PRESET_REGISTRY) + .registryOrThrow(WorldPresets.WORLD_PRESET_REGISTRY) .getHolder(presetKey.get()); if (newPreset.isPresent()) currentPreset = newPreset; } diff --git a/src/main/java/org/betterx/worlds/together/worldPreset/TogetherWorldPreset.java b/src/main/java/org/betterx/worlds/together/worldPreset/TogetherWorldPreset.java index 2798efd4..81be5818 100644 --- a/src/main/java/org/betterx/worlds/together/worldPreset/TogetherWorldPreset.java +++ b/src/main/java/org/betterx/worlds/together/worldPreset/TogetherWorldPreset.java @@ -9,7 +9,6 @@ import org.betterx.worlds.together.world.event.WorldBootstrap; import com.mojang.serialization.Codec; import com.mojang.serialization.Dynamic; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; import net.minecraft.nbt.CompoundTag; @@ -25,7 +24,7 @@ import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.NotNull; -public class TogetherWorldPreset extends WorldPreset { +public class TogetherWorldPreset extends org.betterx.worlds.together.worldPreset.WorldPreset { public final int sortOrder; private static int NEXT_IN_SORT_ORDER = 1000; diff --git a/src/main/java/org/betterx/worlds/together/worldPreset/WorldGenSettingsComponentAccessor.java b/src/main/java/org/betterx/worlds/together/worldPreset/WorldGenSettingsComponentAccessor.java index 071b0f87..7265ab98 100644 --- a/src/main/java/org/betterx/worlds/together/worldPreset/WorldGenSettingsComponentAccessor.java +++ b/src/main/java/org/betterx/worlds/together/worldPreset/WorldGenSettingsComponentAccessor.java @@ -1,6 +1,5 @@ package org.betterx.worlds.together.worldPreset; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.core.Holder; import java.util.Optional; diff --git a/src/main/java/org/betterx/worlds/together/worldPreset/WorldPreset.java b/src/main/java/org/betterx/worlds/together/worldPreset/WorldPreset.java new file mode 100644 index 00000000..087350d5 --- /dev/null +++ b/src/main/java/org/betterx/worlds/together/worldPreset/WorldPreset.java @@ -0,0 +1,16 @@ +package org.betterx.worlds.together.worldPreset; + +import net.minecraft.core.RegistryAccess; +import net.minecraft.world.level.chunk.ChunkGenerator; + +public class WorldPreset { + private final net.minecraft.client.gui.screens.worldselection.WorldPreset parent; + + public WorldPreset(net.minecraft.client.gui.screens.worldselection.WorldPreset parent) { + this.parent = parent; + } + + protected ChunkGenerator generator(RegistryAccess registryAccess, long l) { + return null; + } +} diff --git a/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresetTags.java b/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresetTags.java new file mode 100644 index 00000000..c0b22d1e --- /dev/null +++ b/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresetTags.java @@ -0,0 +1,9 @@ +package org.betterx.worlds.together.worldPreset; + +import org.betterx.worlds.together.WorldsTogether; + +import net.minecraft.tags.TagKey; + +public class WorldPresetTags { + public static final TagKey NORMAL = WorldPresets.WORLD_PRESETS.makeTag(WorldsTogether.makeID("normal")); +} diff --git a/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresets.java b/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresets.java index af3ef1fb..408a1a00 100644 --- a/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresets.java +++ b/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresets.java @@ -7,14 +7,12 @@ import org.betterx.worlds.together.tag.v3.TagManager; import org.betterx.worlds.together.tag.v3.TagRegistry; import org.betterx.worlds.together.worldPreset.client.WorldPresetsClient; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; import net.minecraft.data.BuiltinRegistries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.WorldPresetTags; import net.minecraft.world.level.dimension.LevelStem; import com.google.common.collect.Maps; @@ -23,15 +21,43 @@ import java.util.Map; import org.jetbrains.annotations.ApiStatus; public class WorldPresets { + public static final ResourceKey> WORLD_PRESET_REGISTRY + = ResourceKey.createRegistryKey(WorldsTogether.makeID("worldgen/world_preset")); + + public static final Registry WORLD_PRESET + = Registry.registerSimple(WORLD_PRESET_REGISTRY, (registry) -> null); public static final TagRegistry.Simple WORLD_PRESETS = - TagManager.registerType(BuiltinRegistries.WORLD_PRESET, "tags/worldgen/world_preset"); + TagManager.registerType(WORLD_PRESET, "tags/worldgen/world_preset"); + + private static Map, PresetBuilder> BUILDERS = Maps.newHashMap(); - private static ResourceKey DEFAULT = net.minecraft.world.level.levelgen.presets.WorldPresets.NORMAL; + + private static ResourceKey NORMAL = ResourceKey.create( + WORLD_PRESET_REGISTRY, + WorldsTogether.makeID("vanilla_normal") + ); + private static ResourceKey LARGE_BIOMES = ResourceKey.create( + WORLD_PRESET_REGISTRY, + WorldsTogether.makeID("vanilla_large_biomes") + ); + private static ResourceKey AMPLIFIED = ResourceKey.create( + WORLD_PRESET_REGISTRY, + WorldsTogether.makeID("vanilla_amplified") + ); + private static ResourceKey FLAT = ResourceKey.create( + WORLD_PRESET_REGISTRY, + WorldsTogether.makeID("vanilla_flat") + ); + private static ResourceKey SINGLE_BIOME_SURFACE = ResourceKey.create( + WORLD_PRESET_REGISTRY, + WorldsTogether.makeID("vanilla_single_biome_surface") + ); + private static ResourceKey DEFAULT = NORMAL; public static Holder get(RegistryAccess access, ResourceKey key) { return ((access != null) ? access : BuiltinRegistries.ACCESS) - .registryOrThrow(Registry.WORLD_PRESET_REGISTRY) + .registryOrThrow(WORLD_PRESET_REGISTRY) .getHolderOrThrow(key); } @@ -46,9 +72,9 @@ public class WorldPresets { * @return The key you may use to reference your new Preset */ private static ResourceKey register(ResourceLocation loc, boolean visibleInUI) { - ResourceKey key = ResourceKey.create(Registry.WORLD_PRESET_REGISTRY, loc); + ResourceKey key = ResourceKey.create(WORLD_PRESET_REGISTRY, loc); if (visibleInUI) { - if (!didExplicitlySetDefault && DEFAULT == net.minecraft.world.level.levelgen.presets.WorldPresets.NORMAL) { + if (!didExplicitlySetDefault && DEFAULT == NORMAL) { DEFAULT = key; } WORLD_PRESETS.addUntyped(WorldPresetTags.NORMAL, key.location()); @@ -113,4 +139,39 @@ public class WorldPresets { WorldGenUtil.Context endContext ); } + + static { + Registry.register( + WORLD_PRESET, + NORMAL, + new WorldPreset(net.minecraft.client.gui.screens.worldselection.WorldPreset.NORMAL) + ); + + Registry.register( + WORLD_PRESET, + LARGE_BIOMES, + new WorldPreset(net.minecraft.client.gui.screens.worldselection.WorldPreset.LARGE_BIOMES) + ); + + + Registry.register( + WORLD_PRESET, + AMPLIFIED, + new WorldPreset(net.minecraft.client.gui.screens.worldselection.WorldPreset.AMPLIFIED) + ); + + + Registry.register( + WORLD_PRESET, + FLAT, + new WorldPreset(net.minecraft.client.gui.screens.worldselection.WorldPreset.FLAT) + ); + + + Registry.register( + WORLD_PRESET, + SINGLE_BIOME_SURFACE, + new WorldPreset(net.minecraft.client.gui.screens.worldselection.WorldPreset.SINGLE_BIOME_SURFACE) + ); + } } diff --git a/src/main/java/org/betterx/worlds/together/worldPreset/client/WorldPresetsClient.java b/src/main/java/org/betterx/worlds/together/worldPreset/client/WorldPresetsClient.java index 90c19799..1adfe4d1 100644 --- a/src/main/java/org/betterx/worlds/together/worldPreset/client/WorldPresetsClient.java +++ b/src/main/java/org/betterx/worlds/together/worldPreset/client/WorldPresetsClient.java @@ -1,8 +1,8 @@ package org.betterx.worlds.together.worldPreset.client; import org.betterx.bclib.registry.PresetsRegistryClient; +import org.betterx.worlds.together.worldPreset.WorldPreset; -import net.minecraft.client.gui.screens.worldselection.WorldPreset; import net.minecraft.resources.ResourceKey; import net.fabricmc.api.EnvType; diff --git a/src/main/resources/bclib.accesswidener b/src/main/resources/bclib.accesswidener index f79bad60..ee1e8fdb 100644 --- a/src/main/resources/bclib.accesswidener +++ b/src/main/resources/bclib.accesswidener @@ -8,13 +8,22 @@ accessible class net/minecraft/world/level/levelgen/SurfaceRules$SurfaceRule accessible class net/minecraft/world/level/levelgen/SurfaceRules$LazyXZCondition accessible class net/minecraft/world/level/levelgen/SurfaceRules$LazyCondition accessible class net/minecraft/world/level/levelgen/SurfaceRules$SequenceRuleSource -accessible class net/minecraft/world/level/levelgen/presets/WorldPresets$Bootstrap extendable class net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator -accessible class net/minecraft/data/BuiltinRegistries$RegistryBootstrap accessible class net/minecraft/world/level/levelgen/SurfaceRules$SequenceRuleSource +accessible class net/minecraft/core/Registry$RegistryBootstrap +accessible class net/minecraft/tags/Tag$ElementEntry +accessible class net/minecraft/tags/Tag$TagEntry #Methods -accessible method net/minecraft/client/gui/screens/worldselection/WorldGenSettingsComponent updateSettings (Lnet/minecraft/client/gui/screens/worldselection/WorldCreationContext$Updater;)V accessible method net/minecraft/world/level/storage/loot/LootPool ([Lnet/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer;[Lnet/minecraft/world/level/storage/loot/predicates/LootItemCondition;[Lnet/minecraft/world/level/storage/loot/functions/LootItemFunction;Lnet/minecraft/world/level/storage/loot/providers/number/NumberProvider;Lnet/minecraft/world/level/storage/loot/providers/number/NumberProvider;)V -accessible method net/minecraft/world/entity/ai/village/poi/PoiTypes register (Lnet/minecraft/core/Registry;Lnet/minecraft/resources/ResourceKey;Ljava/util/Set;II)Lnet/minecraft/world/entity/ai/village/poi/PoiType; -accessible method net/minecraft/world/level/levelgen/SurfaceRules$SequenceRuleSource (Ljava/util/List;)V \ No newline at end of file +accessible method net/minecraft/world/level/levelgen/SurfaceRules$SequenceRuleSource (Ljava/util/List;)V +accessible method net/minecraft/core/Registry registerSimple (Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/core/Registry$RegistryBootstrap;)Lnet/minecraft/core/Registry; + +#Fields +accessible field net/minecraft/client/gui/screens/worldselection/WorldPreset FLAT Lnet/minecraft/client/gui/screens/worldselection/WorldPreset; +accessible field net/minecraft/client/gui/screens/worldselection/WorldPreset LARGE_BIOMES Lnet/minecraft/client/gui/screens/worldselection/WorldPreset; +accessible field net/minecraft/client/gui/screens/worldselection/WorldPreset AMPLIFIED Lnet/minecraft/client/gui/screens/worldselection/WorldPreset; +accessible field net/minecraft/client/gui/screens/worldselection/WorldPreset SINGLE_BIOME_SURFACE Lnet/minecraft/client/gui/screens/worldselection/WorldPreset; +accessible field net/minecraft/client/gui/screens/worldselection/WorldPreset PRESETS Ljava/util/List; +accessible field net/minecraft/client/gui/screens/worldselection/WorldPreset EDITORS Ljava/util/Map; +