diff --git a/src/main/java/org/betterx/betterend/registry/EndAdvancements.java b/src/main/java/org/betterx/betterend/registry/EndAdvancements.java index d0497568..791e287b 100644 --- a/src/main/java/org/betterx/betterend/registry/EndAdvancements.java +++ b/src/main/java/org/betterx/betterend/registry/EndAdvancements.java @@ -3,6 +3,7 @@ package org.betterx.betterend.registry; import org.betterx.bclib.api.v2.advancement.AdvancementManager; import org.betterx.betterend.BetterEnd; import org.betterx.betterend.advancements.BECriteria; +import org.betterx.betterend.world.biome.EndBiome; import net.minecraft.advancements.FrameType; import net.minecraft.advancements.RequirementsStrategy; @@ -65,7 +66,7 @@ public class EndAdvancements { .startDisplay(EndItems.AETERNIUM_BOOTS) .frame(FrameType.CHALLENGE) .endDisplay() - .addVisitBiomesCriterion(EndBiomes.ALL_BE_BIOMES.stream().map(b -> b.getBiomeKey()).toList()) + .addVisitBiomesCriterion(EndBiome.getAllBeBiomes().stream().map(b -> b.getBiomeKey()).toList()) .requirements(RequirementsStrategy.AND) .rewardXP(1500) .buildAndRegister(); diff --git a/src/main/java/org/betterx/betterend/registry/EndBiomes.java b/src/main/java/org/betterx/betterend/registry/EndBiomes.java index 06a24afb..ce46ce7a 100644 --- a/src/main/java/org/betterx/betterend/registry/EndBiomes.java +++ b/src/main/java/org/betterx/betterend/registry/EndBiomes.java @@ -9,10 +9,7 @@ import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI; import org.betterx.betterend.BetterEnd; import org.betterx.betterend.config.Configs; import org.betterx.betterend.world.biome.EndBiome; -import org.betterx.betterend.world.biome.air.BiomeIceStarfield; import org.betterx.betterend.world.biome.cave.*; -import org.betterx.betterend.world.biome.land.*; -import org.betterx.betterend.world.generator.BiomeType; import org.betterx.betterend.world.generator.GeneratorOptions; import net.minecraft.core.Registry; @@ -20,47 +17,12 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.biome.Biome; -import java.util.LinkedList; -import java.util.List; - public class EndBiomes { public static final BiomeAPI.BiomeType END_CAVE = new BiomeAPI.BiomeType("END_CAVE", BiomeAPI.BiomeType.END_IGNORE); - public static final List ALL_BE_BIOMES = new LinkedList<>(); public static BiomePicker CAVE_BIOMES = null; private static HexBiomeMap caveBiomeMap; private static long lastSeed; - // Better End Land - public static final EndBiome FOGGY_MUSHROOMLAND = registerBiome(new FoggyMushroomlandBiome(), BiomeType.LAND); - public static final EndBiome CHORUS_FOREST = registerBiome(new ChorusForestBiome(), BiomeType.LAND); - public static final EndBiome DUST_WASTELANDS = registerBiome(new DustWastelandsBiome(), BiomeType.LAND); - public static final EndBiome MEGALAKE = registerBiome(new MegalakeBiome(), BiomeType.LAND); - public static final EndBiome MEGALAKE_GROVE = registerSubBiome(new MegalakeGroveBiome(), MEGALAKE); - public static final EndBiome CRYSTAL_MOUNTAINS = registerBiome(new CrystalMountainsBiome(), BiomeType.LAND); - public static final EndBiome PAINTED_MOUNTAINS = registerSubBiome(new PaintedMountainsBiome(), DUST_WASTELANDS); - public static final EndBiome SHADOW_FOREST = registerBiome(new ShadowForestBiome(), BiomeType.LAND); - public static final EndBiome AMBER_LAND = registerBiome(new AmberLandBiome(), BiomeType.LAND); - public static final EndBiome BLOSSOMING_SPIRES = registerBiome(new BlossomingSpiresBiome(), BiomeType.LAND); - public static final EndBiome SULPHUR_SPRINGS = registerBiome(new SulphurSpringsBiome(), BiomeType.LAND); - public static final EndBiome UMBRELLA_JUNGLE = registerBiome(new UmbrellaJungleBiome(), BiomeType.LAND); - public static final EndBiome GLOWING_GRASSLANDS = registerBiome(new GlowingGrasslandsBiome(), BiomeType.LAND); - public static final EndBiome DRAGON_GRAVEYARDS = registerBiome(new DragonGraveyardsBiome(), BiomeType.LAND); - public static final EndBiome DRY_SHRUBLAND = registerBiome(new DryShrublandBiome(), BiomeType.LAND); - public static final EndBiome LANTERN_WOODS = registerBiome(new LanternWoodsBiome(), BiomeType.LAND); - public static final EndBiome NEON_OASIS = registerSubBiome(new NeonOasisBiome(), DUST_WASTELANDS); - public static final EndBiome UMBRA_VALLEY = registerBiome(new UmbraValleyBiome(), BiomeType.LAND); - - // Better End Void - public static final EndBiome ICE_STARFIELD = registerBiome(new BiomeIceStarfield(), BiomeType.VOID); - - // Better End Caves - public static final EndCaveBiome EMPTY_END_CAVE = registerCaveBiome(new EmptyEndCaveBiome()); - public static final EndCaveBiome EMPTY_SMARAGDANT_CAVE = registerCaveBiome(new EmptySmaragdantCaveBiome()); - public static final EndCaveBiome LUSH_SMARAGDANT_CAVE = registerCaveBiome(new LushSmaragdantCaveBiome()); - public static final EndCaveBiome EMPTY_AURORA_CAVE = registerCaveBiome(new EmptyAuroraCaveBiome()); - public static final EndCaveBiome LUSH_AURORA_CAVE = registerCaveBiome(new LushAuroraCaveBiome()); - public static final EndCaveBiome JADE_CAVE = registerCaveBiome(new JadeCaveBiome()); - public static void register() { BCLBiomeRegistry.registerBiomeCodec(BetterEnd.makeID("biome"), EndBiome.KEY_CODEC); BCLBiomeRegistry.registerBiomeCodec(BetterEnd.makeID("cave_biome"), EndCaveBiome.KEY_CODEC); @@ -104,30 +66,6 @@ public class EndBiomes { } } - /** - * Put existing {@link EndBiome} as a sub-biome into selected parent. - * - * @param biomeConfig - {@link EndBiome.Config} instance - * @param parent - {@link EndBiome} to be linked with - * @return registered {@link EndBiome} - */ - public static EndBiome registerSubBiome(EndBiome.Config biomeConfig, EndBiome parent) { - return EndBiome.createSubBiome(biomeConfig, parent); - } - - /** - * Registers {@link EndBiome} and adds it into worldgen. - * - * @param biomeConfig - {@link EndBiome.Config} instance - * @param type - {@link BiomeType} - * @return registered {@link EndBiome} - */ - public static EndBiome registerBiome(EndBiome.Config biomeConfig, BiomeType type) { - final EndBiome biome = EndBiome.create(biomeConfig); - ALL_BE_BIOMES.add(biome); - return biome; - } - /** * Put integration sub-biome {@link EndBiome} into subbiomes list and registers it. * @@ -136,7 +74,7 @@ public class EndBiomes { */ public static EndBiome registerSubBiomeIntegration(EndBiome.Config biomeConfig) { //TODO: 1.19.3 this was don on runtime, but biomes are now created in DataGen, so we need a fix... - return EndBiome.create(biomeConfig); + return EndBiome.create(biomeConfig, BiomeAPI.BiomeType.END_LAND); } /** @@ -154,10 +92,6 @@ public class EndBiomes { } } - public static EndCaveBiome registerCaveBiome(EndCaveBiome.Config biomeConfig) { - return EndCaveBiome.create(biomeConfig); - } - public static BiomePicker.ActualBiome getCaveBiome(int x, int z) { return caveBiomeMap.getBiome(x, 5, z); } diff --git a/src/main/java/org/betterx/betterend/world/biome/EndBiome.java b/src/main/java/org/betterx/betterend/world/biome/EndBiome.java index fd517b78..d7cb8b4b 100644 --- a/src/main/java/org/betterx/betterend/world/biome/EndBiome.java +++ b/src/main/java/org/betterx/betterend/world/biome/EndBiome.java @@ -31,6 +31,7 @@ import net.minecraft.world.level.levelgen.SurfaceRules; import java.util.List; import java.util.Optional; +import org.jetbrains.annotations.NotNull; public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { public static final Codec CODEC = RecordCodecBuilder.create(instance -> @@ -173,15 +174,15 @@ public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { super(biomeID, settings); } - public static EndBiome create(Config biomeConfig) { - return create(biomeConfig, null); + public static EndBiome create(Config biomeConfig, BiomeAPI.BiomeType type) { + return create(biomeConfig, type, null); } - public static EndBiome createSubBiome(Config data, BCLBiome parentBiome) { - return create(data, parentBiome); + public static EndBiome createSubBiome(Config data, @NotNull BCLBiome parentBiome) { + return create(data, parentBiome.getIntendedType(), parentBiome); } - private static EndBiome create(Config biomeConfig, BCLBiome parentBiome) { + private static EndBiome create(Config biomeConfig, BiomeAPI.BiomeType type, BCLBiome parentBiome) { BCLBiomeBuilder builder = BCLBiomeBuilder .start(biomeConfig.ID) .music(SoundEvents.MUSIC_END) @@ -195,7 +196,7 @@ public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { .parentBiome(parentBiome) .precipitation(Biome.Precipitation.NONE) .surface(biomeConfig.surfaceMaterial().surface().build()) - .endLandBiome(); + .type(type); biomeConfig.addCustomBuildData(builder); EndFeatures.addDefaultFeatures(biomeConfig.ID, builder, biomeConfig.hasCaves()); @@ -263,4 +264,8 @@ public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { public static BlockState findUnderMaterial(WorldGenLevel world, BlockPos pos) { return findUnderMaterial(BiomeAPI.getBiome(world.getBiome(pos))); } + + public static List getAllBeBiomes() { + return BiomeAPI.getAllBiomes(BiomeAPI.BiomeType.END); + } } diff --git a/src/main/java/org/betterx/betterend/world/biome/cave/EndCaveBiome.java b/src/main/java/org/betterx/betterend/world/biome/cave/EndCaveBiome.java index 0f518e62..7dfeb72f 100644 --- a/src/main/java/org/betterx/betterend/world/biome/cave/EndCaveBiome.java +++ b/src/main/java/org/betterx/betterend/world/biome/cave/EndCaveBiome.java @@ -179,6 +179,6 @@ public class EndCaveBiome extends EndBiome { } public static EndCaveBiome create(EndBiome.Config biomeConfig) { - return (EndCaveBiome) EndBiome.create(biomeConfig); + return (EndCaveBiome) EndBiome.create(biomeConfig, EndBiomes.END_CAVE); } } diff --git a/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java b/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java index e17dd16d..4e2fc848 100644 --- a/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java +++ b/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java @@ -1,8 +1,11 @@ package org.betterx.datagen.betterend; import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry; +import org.betterx.datagen.betterend.worldgen.EndBiomesDataProvider; +import org.betterx.datagen.betterend.worldgen.EndRegistriesDataProvider; import net.minecraft.core.RegistrySetBuilder; +import net.minecraft.core.registries.Registries; import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; @@ -11,12 +14,16 @@ public class BetterEndDatagen implements DataGeneratorEntrypoint { @Override public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) { BCLBiomeRegistry.prepareForDatagen(); + EndBiomesDataProvider.ensureStaticallyLoaded(); final FabricDataGenerator.Pack pack = dataGenerator.createPack(); + pack.addProvider(EndBiomesDataProvider::new); + pack.addProvider(EndRegistriesDataProvider::new); } @Override public void buildRegistry(RegistrySetBuilder registryBuilder) { EndRegistrySupplier.INSTANCE.bootstrapRegistries(registryBuilder); + registryBuilder.add(Registries.BIOME, EndBiomesDataProvider::bootstrap); } } diff --git a/src/main/java/org/betterx/datagen/betterend/EndRegistrySupplier.java b/src/main/java/org/betterx/datagen/betterend/EndRegistrySupplier.java index ccd17778..7bac8fcb 100644 --- a/src/main/java/org/betterx/datagen/betterend/EndRegistrySupplier.java +++ b/src/main/java/org/betterx/datagen/betterend/EndRegistrySupplier.java @@ -4,9 +4,20 @@ import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry; import org.betterx.bclib.api.v2.levelgen.biomes.BiomeData; import org.betterx.bclib.api.v3.datagen.RegistrySupplier; import org.betterx.betterend.BetterEnd; +import org.betterx.datagen.betterend.worldgen.ConfiguredFeatureDataProvider; +import org.betterx.datagen.betterend.worldgen.EndBiomesDataProvider; +import org.betterx.datagen.betterend.worldgen.PlacedFeatureDataProvider; +import org.betterx.datagen.betterend.worldgen.StructureDataProvider; import org.betterx.worlds.together.surfaceRules.AssignedSurfaceRule; import org.betterx.worlds.together.surfaceRules.SurfaceRuleRegistry; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.placement.PlacedFeature; +import net.minecraft.world.level.levelgen.structure.Structure; +import net.minecraft.world.level.levelgen.structure.StructureSet; + import java.util.List; import org.jetbrains.annotations.Nullable; @@ -27,32 +38,31 @@ public class EndRegistrySupplier extends RegistrySupplier { new RegistryInfo<>( SurfaceRuleRegistry.SURFACE_RULES_REGISTRY, AssignedSurfaceRule.CODEC + ), + new RegistryInfo<>( + Registries.STRUCTURE, + Structure.DIRECT_CODEC, StructureDataProvider::bootstrap + ), + new RegistryInfo<>( + Registries.STRUCTURE_SET, + StructureSet.DIRECT_CODEC, + StructureDataProvider::bootstrapSets + ), + new RegistryInfo<>( + Registries.CONFIGURED_FEATURE, + ConfiguredFeature.DIRECT_CODEC, + ConfiguredFeatureDataProvider::bootstrap + ), + new RegistryInfo<>( + Registries.PLACED_FEATURE, + PlacedFeature.DIRECT_CODEC, + PlacedFeatureDataProvider::bootstrap + ), + new RegistryInfo<>( + Registries.BIOME, + Biome.DIRECT_CODEC, + EndBiomesDataProvider::bootstrap ) -// , -// new RegistryInfo<>( -// Registries.STRUCTURE, -// Structure.DIRECT_CODEC, StructureDataProvider::bootstrap -// ), -// new RegistryInfo<>( -// Registries.STRUCTURE_SET, -// StructureSet.DIRECT_CODEC, -// StructureDataProvider::bootstrapSets -// ), -// new RegistryInfo<>( -// Registries.CONFIGURED_FEATURE, -// ConfiguredFeature.DIRECT_CODEC, -// ConfiguredFeatureDataProvider::bootstrap -// ), -// new RegistryInfo<>( -// Registries.PLACED_FEATURE, -// PlacedFeature.DIRECT_CODEC, -// PlacedFeatureDataProvider::bootstrap -// ), -// new RegistryInfo<>( -// Registries.BIOME, -// Biome.DIRECT_CODEC, -// NetherBiomesDataProvider::bootstrap -// ) ); } } \ No newline at end of file diff --git a/src/main/java/org/betterx/datagen/betterend/worldgen/ConfiguredFeatureDataProvider.java b/src/main/java/org/betterx/datagen/betterend/worldgen/ConfiguredFeatureDataProvider.java new file mode 100644 index 00000000..8ac9348c --- /dev/null +++ b/src/main/java/org/betterx/datagen/betterend/worldgen/ConfiguredFeatureDataProvider.java @@ -0,0 +1,12 @@ +package org.betterx.datagen.betterend.worldgen; + +import org.betterx.bclib.api.v3.levelgen.features.BCLFeatureBuilder; + +import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; + +public class ConfiguredFeatureDataProvider { + public static void bootstrap(BootstapContext> ctx) { + BCLFeatureBuilder.registerUnbound(ctx); + } +} diff --git a/src/main/java/org/betterx/datagen/betterend/worldgen/EndBiomesDataProvider.java b/src/main/java/org/betterx/datagen/betterend/worldgen/EndBiomesDataProvider.java index f25577ec..d2018042 100644 --- a/src/main/java/org/betterx/datagen/betterend/worldgen/EndBiomesDataProvider.java +++ b/src/main/java/org/betterx/datagen/betterend/worldgen/EndBiomesDataProvider.java @@ -1,4 +1,102 @@ package org.betterx.datagen.betterend.worldgen; -public class EndBiomesDataProvider { +import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder; +import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI.BiomeType; +import org.betterx.bclib.api.v3.datagen.TagDataProvider; +import org.betterx.betterend.BetterEnd; +import org.betterx.betterend.world.biome.EndBiome; +import org.betterx.betterend.world.biome.air.BiomeIceStarfield; +import org.betterx.betterend.world.biome.cave.*; +import org.betterx.betterend.world.biome.land.*; +import org.betterx.worlds.together.tag.v3.TagManager; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.world.level.biome.Biome; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; + +import java.util.List; +import java.util.concurrent.CompletableFuture; + +public class EndBiomesDataProvider extends TagDataProvider { + // Better End Land + public static final EndBiome FOGGY_MUSHROOMLAND = registerBiome(new FoggyMushroomlandBiome(), BiomeType.END_LAND); + public static final EndBiome CHORUS_FOREST = registerBiome(new ChorusForestBiome(), BiomeType.END_LAND); + public static final EndBiome DUST_WASTELANDS = registerBiome(new DustWastelandsBiome(), BiomeType.END_LAND); + public static final EndBiome NEON_OASIS = registerSubBiome(new NeonOasisBiome(), DUST_WASTELANDS); + public static final EndBiome PAINTED_MOUNTAINS = registerSubBiome(new PaintedMountainsBiome(), DUST_WASTELANDS); + public static final EndBiome MEGALAKE = registerBiome(new MegalakeBiome(), BiomeType.END_LAND); + public static final EndBiome MEGALAKE_GROVE = registerSubBiome(new MegalakeGroveBiome(), MEGALAKE); + public static final EndBiome CRYSTAL_MOUNTAINS = registerBiome(new CrystalMountainsBiome(), BiomeType.END_LAND); + public static final EndBiome SHADOW_FOREST = registerBiome(new ShadowForestBiome(), BiomeType.END_LAND); + public static final EndBiome AMBER_LAND = registerBiome(new AmberLandBiome(), BiomeType.END_LAND); + public static final EndBiome BLOSSOMING_SPIRES = registerBiome(new BlossomingSpiresBiome(), BiomeType.END_LAND); + public static final EndBiome SULPHUR_SPRINGS = registerBiome(new SulphurSpringsBiome(), BiomeType.END_LAND); + public static final EndBiome UMBRELLA_JUNGLE = registerBiome(new UmbrellaJungleBiome(), BiomeType.END_LAND); + public static final EndBiome GLOWING_GRASSLANDS = registerBiome(new GlowingGrasslandsBiome(), BiomeType.END_LAND); + public static final EndBiome DRAGON_GRAVEYARDS = registerBiome(new DragonGraveyardsBiome(), BiomeType.END_LAND); + public static final EndBiome DRY_SHRUBLAND = registerBiome(new DryShrublandBiome(), BiomeType.END_LAND); + public static final EndBiome LANTERN_WOODS = registerBiome(new LanternWoodsBiome(), BiomeType.END_LAND); + public static final EndBiome UMBRA_VALLEY = registerBiome(new UmbraValleyBiome(), BiomeType.END_LAND); + // Better End Void + public static final EndBiome ICE_STARFIELD = registerBiome(new BiomeIceStarfield(), BiomeType.END_VOID); + // Better End Caves + public static final EndCaveBiome EMPTY_END_CAVE = registerCaveBiome(new EmptyEndCaveBiome()); + public static final EndCaveBiome EMPTY_SMARAGDANT_CAVE = registerCaveBiome(new EmptySmaragdantCaveBiome()); + public static final EndCaveBiome LUSH_SMARAGDANT_CAVE = registerCaveBiome(new LushSmaragdantCaveBiome()); + public static final EndCaveBiome EMPTY_AURORA_CAVE = registerCaveBiome(new EmptyAuroraCaveBiome()); + public static final EndCaveBiome LUSH_AURORA_CAVE = registerCaveBiome(new LushAuroraCaveBiome()); + public static final EndCaveBiome JADE_CAVE = registerCaveBiome(new JadeCaveBiome()); + + /** + * Constructs a new {@link FabricTagProvider} with the default computed path. + * + *

Common implementations of this class are provided. + * + * @param output the {@link FabricDataOutput} instance + * @param registriesFuture the backing registry for the tag type + */ + public EndBiomesDataProvider( + FabricDataOutput output, + CompletableFuture registriesFuture + ) { + super(TagManager.BIOMES, List.of(BetterEnd.MOD_ID), output, registriesFuture); + } + + + public static void bootstrap(BootstapContext ctx) { + BCLBiomeBuilder.registerUnbound(ctx); + } + + public static void ensureStaticallyLoaded() { + } + + /** + * Put existing {@link EndBiome} as a sub-biome into selected parent. + * + * @param biomeConfig - {@link EndBiome.Config} instance + * @param parent - {@link EndBiome} to be linked with + * @return registered {@link EndBiome} + */ + public static EndBiome registerSubBiome(EndBiome.Config biomeConfig, EndBiome parent) { + return EndBiome.createSubBiome(biomeConfig, parent); + } + + /** + * Registers {@link EndBiome} and adds it into worldgen. + * + * @param biomeConfig - {@link EndBiome.Config} instance + * @param type - {@link BiomeType} + * @return registered {@link EndBiome} + */ + public static EndBiome registerBiome(EndBiome.Config biomeConfig, BiomeType type) { + final EndBiome biome = EndBiome.create(biomeConfig, type); + return biome; + } + + public static EndCaveBiome registerCaveBiome(EndCaveBiome.Config biomeConfig) { + return EndCaveBiome.create(biomeConfig); + } } diff --git a/src/main/java/org/betterx/datagen/betterend/worldgen/EndRegistriesDataProvider.java b/src/main/java/org/betterx/datagen/betterend/worldgen/EndRegistriesDataProvider.java new file mode 100644 index 00000000..33bbc95b --- /dev/null +++ b/src/main/java/org/betterx/datagen/betterend/worldgen/EndRegistriesDataProvider.java @@ -0,0 +1,20 @@ +package org.betterx.datagen.betterend.worldgen; + +import org.betterx.bclib.api.v3.datagen.RegistriesDataProvider; +import org.betterx.betterend.BetterEnd; +import org.betterx.datagen.betterend.EndRegistrySupplier; + +import net.minecraft.core.HolderLookup; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; + +import java.util.concurrent.CompletableFuture; + +public class EndRegistriesDataProvider extends RegistriesDataProvider { + public EndRegistriesDataProvider( + FabricDataOutput output, + CompletableFuture registriesFuture + ) { + super(BetterEnd.LOGGER, EndRegistrySupplier.INSTANCE, output, registriesFuture); + } +} diff --git a/src/main/java/org/betterx/datagen/betterend/worldgen/PlacedFeatureDataProvider.java b/src/main/java/org/betterx/datagen/betterend/worldgen/PlacedFeatureDataProvider.java new file mode 100644 index 00000000..69d98d99 --- /dev/null +++ b/src/main/java/org/betterx/datagen/betterend/worldgen/PlacedFeatureDataProvider.java @@ -0,0 +1,12 @@ +package org.betterx.datagen.betterend.worldgen; + +import org.betterx.bclib.api.v3.levelgen.features.BCLPlacedFeatureBuilder; + +import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.world.level.levelgen.placement.PlacedFeature; + +public class PlacedFeatureDataProvider { + public static void bootstrap(BootstapContext ctx) { + BCLPlacedFeatureBuilder.registerUnbound(ctx); + } +} diff --git a/src/main/java/org/betterx/datagen/betterend/worldgen/StructureDataProvider.java b/src/main/java/org/betterx/datagen/betterend/worldgen/StructureDataProvider.java new file mode 100644 index 00000000..93402d0d --- /dev/null +++ b/src/main/java/org/betterx/datagen/betterend/worldgen/StructureDataProvider.java @@ -0,0 +1,17 @@ +package org.betterx.datagen.betterend.worldgen; + +import org.betterx.bclib.api.v2.levelgen.structures.BCLStructureBuilder; + +import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.world.level.levelgen.structure.Structure; +import net.minecraft.world.level.levelgen.structure.StructureSet; + +public class StructureDataProvider { + public static void bootstrap(BootstapContext ctx) { + BCLStructureBuilder.registerUnbound(ctx); + } + + public static void bootstrapSets(BootstapContext ctx) { + BCLStructureBuilder.registerUnboundSets(ctx); + } +}