From ec514ceea2d1ea47edd16a44b13f483588136ac9 Mon Sep 17 00:00:00 2001 From: dmzz-yyhyy Date: Fri, 29 Mar 2024 21:00:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=89=A9=E5=93=81=E6=B3=A8?= =?UTF-8?q?=E5=85=A5=E9=85=8D=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/generator/MyRecipesGenerator.java | 2 + .../recipe/ItemInjectRecipesGenerator.java | 50 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/ItemInjectRecipesGenerator.java diff --git a/src/main/java/dev/dubhe/anvilcraft/data/generator/MyRecipesGenerator.java b/src/main/java/dev/dubhe/anvilcraft/data/generator/MyRecipesGenerator.java index 930cd9443..598f9a4dd 100644 --- a/src/main/java/dev/dubhe/anvilcraft/data/generator/MyRecipesGenerator.java +++ b/src/main/java/dev/dubhe/anvilcraft/data/generator/MyRecipesGenerator.java @@ -87,6 +87,8 @@ public void buildRecipes(Consumer exporter) { SqueezeRecipesGenerator.buildRecipes(exporter); SmashBlockRecipesGenerator.buildRecipes(exporter); CompactionRecipesGenerator.buildRecipes(exporter); + ItemInjectRecipesGenerator.buildRecipes(exporter); + } public static @NotNull String hasItem(@NotNull Item item) { diff --git a/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/ItemInjectRecipesGenerator.java b/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/ItemInjectRecipesGenerator.java new file mode 100644 index 000000000..52b5e2a08 --- /dev/null +++ b/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/ItemInjectRecipesGenerator.java @@ -0,0 +1,50 @@ +package dev.dubhe.anvilcraft.data.generator.recipe; + +import dev.dubhe.anvilcraft.AnvilCraft; +import dev.dubhe.anvilcraft.data.generator.MyRecipesGenerator; +import dev.dubhe.anvilcraft.data.recipe.anvil.AnvilRecipe; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.NotNull; + +import java.util.function.Consumer; + +public abstract class ItemInjectRecipesGenerator { + public ItemInjectRecipesGenerator() { + + } + + public static void buildRecipes(Consumer exporter) { + itemInject(Items.RAW_GOLD_BLOCK, Blocks.DEEPSLATE, Blocks.DEEPSLATE_GOLD_ORE, exporter); + itemInject(Items.RAW_IRON_BLOCK, Blocks.DEEPSLATE, Blocks.DEEPSLATE_IRON_ORE, exporter); + itemInject(Items.RAW_COPPER_BLOCK, 3, Blocks.DEEPSLATE, Blocks.DEEPSLATE_COPPER_ORE, exporter); + itemInject(Items.GOLD_INGOT, 2, Blocks.NETHERRACK, Blocks.NETHER_GOLD_ORE, exporter); + itemInject(Items.GOLD_INGOT, Blocks.BLACKSTONE, Blocks.GILDED_BLACKSTONE, exporter); + } + + public static void itemInject(@NotNull Item item, @NotNull Block block, @NotNull Block resBlock, @NotNull Consumer exporter) { + AnvilRecipe.Builder.create(RecipeCategory.MISC) + .hasBlock(new Vec3(0.0, -1.0, 0.0), block) + .hasItemIngredient(item) + .setBlock(new Vec3(0.0, -1.0, 0.0), resBlock) + .unlockedBy(MyRecipesGenerator.hasItem(block.asItem()), FabricRecipeProvider.has(block.asItem())) + .save(exporter, AnvilCraft.of("item_inject/" + BuiltInRegistries.BLOCK.getKey(resBlock).getPath())); + } + + public static void itemInject(@NotNull Item item, int count, @NotNull Block block, @NotNull Block resBlock, @NotNull Consumer exporter) { + AnvilRecipe.Builder.create(RecipeCategory.MISC) + .hasBlock(new Vec3(0.0, -1.0, 0.0), block) + .hasItemIngredient(count, item) + .setBlock(new Vec3(0.0, -1.0, 0.0), resBlock) + .unlockedBy(MyRecipesGenerator.hasItem(block.asItem()), FabricRecipeProvider.has(block.asItem())) + .save(exporter, AnvilCraft.of("item_inject/" + BuiltInRegistries.BLOCK.getKey(resBlock).getPath())); + } + +}