From 74a44d8e9bb524f3d99044c05dd0c6f43c10389d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ampflower=20=F0=9F=8C=BA?= Date: Fri, 14 Mar 2025 03:54:47 -0700 Subject: [PATCH] feat: Add flowers -> dyes --- .../java/gay/pridecraft/joy/data/JoyData.java | 1 + .../joy/data/JoyRecipeProvider.java | 41 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 xplat/src/datagen/java/gay/pridecraft/joy/data/JoyRecipeProvider.java diff --git a/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyData.java b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyData.java index fb23957..ebe0acc 100644 --- a/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyData.java +++ b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyData.java @@ -25,6 +25,7 @@ public class JoyData implements DataGeneratorEntrypoint { pack.addProvider(JoyEntityTagProvider::new); pack.addProvider(JoyItemTagProvider::new); pack.addProvider(JoyModelProvider::new); + pack.addProvider(JoyRecipeProvider::new); for (final var translation : Bootstrap.getMissingTranslations()) { logger.warn("Missing translation: {}", translation); diff --git a/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyRecipeProvider.java b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyRecipeProvider.java new file mode 100644 index 0000000..1650240 --- /dev/null +++ b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyRecipeProvider.java @@ -0,0 +1,41 @@ +package gay.pridecraft.joy.data; + +import gay.pridecraft.joy.registry.JoyBlocks; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.data.server.recipe.RecipeExporter; +import net.minecraft.data.server.recipe.ShapelessRecipeJsonBuilder; +import net.minecraft.item.Item; +import net.minecraft.item.ItemConvertible; +import net.minecraft.item.Items; +import net.minecraft.recipe.book.RecipeCategory; +import net.minecraft.registry.Registries; +import net.minecraft.registry.RegistryWrapper; + +import java.util.concurrent.CompletableFuture; + +/** + * @author Ampflower + * @since 1.0.0 + **/ +public class JoyRecipeProvider extends FabricRecipeProvider { + public JoyRecipeProvider(final FabricDataOutput output, final CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + public void generate(final RecipeExporter exporter) { + offerConversion(JoyBlocks.BLUE_ALLIUM, Items.BLUE_DYE, exporter); + offerConversion(JoyBlocks.PINK_ALLIUM, Items.PINK_DYE, exporter); + offerConversion(JoyBlocks.WHITE_ALLIUM, Items.WHITE_DYE, exporter); + } + + private static void offerConversion(ItemConvertible base, Item dye, RecipeExporter exporter) { + ShapelessRecipeJsonBuilder.create(RecipeCategory.MISC, dye) + .input(base) + .group(Registries.ITEM.getId(dye).getPath()) + .criterion(Registries.ITEM.getId(base.asItem()) + .withSuffixedPath("has_").toString(), conditionsFromItem(base)) + .offerTo(exporter); + } +}