diff --git a/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java b/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java index d009ed75..b6708fd9 100644 --- a/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java +++ b/src/main/java/org/betterx/datagen/betterend/BetterEndDatagen.java @@ -23,6 +23,8 @@ public class BetterEndDatagen implements DataGeneratorEntrypoint { pack.addProvider(EndRecipeDataProvider::new); pack.addProvider(EndRegistriesDataProvider::new); pack.addProvider(EndAdvancementDataProvider::new); + pack.addProvider(EndBlockTagDataProvider::new); + pack.addProvider(EndItemTagDataProvider::new); } @Override diff --git a/src/main/java/org/betterx/datagen/betterend/EndBlockTagDataProvider.java b/src/main/java/org/betterx/datagen/betterend/EndBlockTagDataProvider.java new file mode 100644 index 00000000..757f8f2b --- /dev/null +++ b/src/main/java/org/betterx/datagen/betterend/EndBlockTagDataProvider.java @@ -0,0 +1,23 @@ +package org.betterx.datagen.betterend; + +import org.betterx.bclib.api.v3.datagen.TagDataProvider; +import org.betterx.betterend.BetterEnd; +import org.betterx.worlds.together.tag.v3.TagManager; + +import net.minecraft.core.HolderLookup; +import net.minecraft.world.level.block.Block; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; + +import java.util.List; +import java.util.concurrent.CompletableFuture; + +public class EndBlockTagDataProvider extends TagDataProvider { + + public EndBlockTagDataProvider( + FabricDataOutput output, + CompletableFuture registriesFuture + ) { + super(TagManager.BLOCKS, List.of("minecraft", BetterEnd.MOD_ID, "c"), output, registriesFuture); + } +} diff --git a/src/main/java/org/betterx/datagen/betterend/EndItemTagDataProvider.java b/src/main/java/org/betterx/datagen/betterend/EndItemTagDataProvider.java new file mode 100644 index 00000000..c99647d7 --- /dev/null +++ b/src/main/java/org/betterx/datagen/betterend/EndItemTagDataProvider.java @@ -0,0 +1,23 @@ +package org.betterx.datagen.betterend; + +import org.betterx.bclib.api.v3.datagen.TagDataProvider; +import org.betterx.betterend.BetterEnd; +import org.betterx.worlds.together.tag.v3.TagManager; + +import net.minecraft.core.HolderLookup; +import net.minecraft.world.item.Item; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; + +import java.util.List; +import java.util.concurrent.CompletableFuture; + +public class EndItemTagDataProvider extends TagDataProvider { + + public EndItemTagDataProvider( + FabricDataOutput output, + CompletableFuture registriesFuture + ) { + super(TagManager.ITEMS, List.of("minecraft", BetterEnd.MOD_ID, "c"), output, registriesFuture); + } +} 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 c0eb1017..02138f65 100644 --- a/src/main/java/org/betterx/datagen/betterend/worldgen/EndBiomesDataProvider.java +++ b/src/main/java/org/betterx/datagen/betterend/worldgen/EndBiomesDataProvider.java @@ -1,6 +1,7 @@ package org.betterx.datagen.betterend.worldgen; import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeBuilder; +import org.betterx.bclib.api.v2.levelgen.biomes.BCLBiomeRegistry; import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI.BiomeType; import org.betterx.bclib.api.v3.datagen.TagDataProvider; import org.betterx.betterend.BetterEnd; @@ -8,6 +9,7 @@ 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.datagen.betterend.EndRegistrySupplier; import org.betterx.worlds.together.tag.v3.TagManager; import net.minecraft.core.HolderLookup; @@ -68,11 +70,21 @@ public class EndBiomesDataProvider extends TagDataProvider { public static void bootstrap(BootstapContext ctx) { BCLBiomeBuilder.registerUnbound(ctx); + EndRegistrySupplier.INSTANCE.MAIN_LOCK.release(); + BetterEnd.LOGGER.info("Registered BCLBiomes: " + BCLBiomeRegistry.BUILTIN_BCL_BIOMES.size() + ", " + BCLBiomeRegistry.registryOrNull()); } public static void ensureStaticallyLoaded() { } + static { + try { + EndRegistrySupplier.INSTANCE.MAIN_LOCK.acquire(); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + /** * Put existing {@link EndBiome} as a sub-biome into selected parent. *