From 96e4f2ef6d1870998af484df55206e5fe681b25a Mon Sep 17 00:00:00 2001 From: dmzz-yyhyy Date: Sat, 8 Jun 2024 20:28:24 +0800 Subject: [PATCH 1/4] temp --- .../api/recipe/AnvilRecipeManager.java | 20 ++ .../dev/dubhe/anvilcraft/data/RecipeItem.java | 209 +++----------- .../recipe/BulgingLikeRecipesLoader.java | 260 +++++++++--------- .../recipe/StampingRecipesLoader.java | 48 ++-- .../recipe/SuperHeatingRecipesLoader.java | 198 +++++-------- .../recipe/TimeWarpRecipesLoader.java | 26 +- .../data/recipe/anvil/AnvilRecipe.java | 1 + .../data/recipe/anvil/AnvilRecipeMap.java | 46 ---- .../anvilcraft/event/AnvilEventListener.java | 27 +- .../anvilcraft/event/ServerEventListener.java | 7 + .../dev/dubhe/anvilcraft/init/ModItems.java | 4 +- .../misc/heating/_coal_block_to_diamond.json | 35 +++ .../heating/_coal_block_to_diamond.json | 67 +++++ .../recipes/heating/melt_gem_cauldron.json | 6 +- 14 files changed, 426 insertions(+), 528 deletions(-) create mode 100644 common/src/main/java/dev/dubhe/anvilcraft/api/recipe/AnvilRecipeManager.java delete mode 100644 common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipeMap.java create mode 100644 fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/_coal_block_to_diamond.json create mode 100644 fabric/src/generated/resources/data/anvilcraft/recipes/heating/_coal_block_to_diamond.json diff --git a/common/src/main/java/dev/dubhe/anvilcraft/api/recipe/AnvilRecipeManager.java b/common/src/main/java/dev/dubhe/anvilcraft/api/recipe/AnvilRecipeManager.java new file mode 100644 index 000000000..5c310b7b1 --- /dev/null +++ b/common/src/main/java/dev/dubhe/anvilcraft/api/recipe/AnvilRecipeManager.java @@ -0,0 +1,20 @@ +package dev.dubhe.anvilcraft.api.recipe; + +import dev.dubhe.anvilcraft.api.event.server.ServerEvent; +import dev.dubhe.anvilcraft.block.state.Half; +import dev.dubhe.anvilcraft.client.renderer.blockentity.LaseRenderer; +import dev.dubhe.anvilcraft.data.recipe.anvil.AnvilRecipe; +import dev.dubhe.anvilcraft.init.ModRecipeTypes; +import net.minecraft.server.MinecraftServer; + +import java.util.HashMap; +import java.util.List; + +public class AnvilRecipeManager { + public final static HashMap ANVIL_RECIPE_MAP = new HashMap<>(); + + public static void updateRecipes(MinecraftServer server) { + List anvilRecipes = server.getRecipeManager().getAllRecipesFor(ModRecipeTypes.ANVIL_RECIPE); + + } +} diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/RecipeItem.java b/common/src/main/java/dev/dubhe/anvilcraft/data/RecipeItem.java index 90ee8ce2b..14020424d 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/RecipeItem.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/RecipeItem.java @@ -14,214 +14,69 @@ public class RecipeItem { private final int count; private final boolean isSelectOne; - /** - * 配方物品 - * - * @param item 配方物品 - * @param chance 概率 - * @param count 数量 - * @param isSelectOne 是否属于多选一 - */ - public RecipeItem(double chance, ItemLike item, int count, boolean isSelectOne) { + private RecipeItem(ItemLike item, TagKey itemTagKey, int count, double chance, boolean isSelectOne) { this.item = item; - this.itemTagKey = null; - this.chance = chance; + this.itemTagKey = itemTagKey; this.count = count; + this.chance = chance; this.isSelectOne = isSelectOne; } - /** - * 配方物品 - * - * @param chance 概率 - * @param item 配方物品 - * @param count 数量 - */ - public RecipeItem(double chance, ItemLike item, int count) { - this.item = item; - this.itemTagKey = null; - this.chance = chance; - this.count = count; - this.isSelectOne = false; + public static RecipeItem of(ItemLike item, int count, double chance, boolean isSelectOne) { + return new RecipeItem(item, null, count, chance, isSelectOne); } - /** - * 配方物品 - * - * @param item 配方物品 - */ - public RecipeItem(ItemLike item) { - this.item = item; - this.itemTagKey = null; - this.chance = 1; - this.count = 1; - this.isSelectOne = false; + public static RecipeItem of(ItemLike item, int count, double chance) { + return new RecipeItem(item, null, count, chance, false); } - /** - * 配方物品 - * - * @param item 配方物品 - * @param count 数量 - */ - public RecipeItem(ItemLike item, int count) { - this.item = item; - this.itemTagKey = null; - this.chance = 1; - this.count = count; - this.isSelectOne = false; + public static RecipeItem of(ItemLike item, int count) { + return new RecipeItem(item, null, count, 1d, false); } - /** - * 配方物品 - * - * @param chance 概率 - * @param item 配方物品 - */ - public RecipeItem(double chance, ItemLike item) { - this.item = item; - this.itemTagKey = null; - this.chance = chance; - this.count = 1; - this.isSelectOne = false; + public static RecipeItem of(ItemLike item, double chance) { + return new RecipeItem(item, null, 1, chance, false); } - /** - * 配方物品 - * - * @param item 配方物品 - */ - public RecipeItem(ItemLike item, boolean isSelectOne) { - this.item = item; - this.itemTagKey = null; - this.chance = 1; - this.count = 1; - this.isSelectOne = isSelectOne; + public static RecipeItem of(ItemLike item, int count, boolean isSelectOne) { + return new RecipeItem(item, null, count, 1d, isSelectOne); } - /** - * 配方物品 - * - * @param item 配方物品 - * @param count 数量 - */ - public RecipeItem(ItemLike item, int count, boolean isSelectOne) { - this.item = item; - this.itemTagKey = null; - this.chance = 1; - this.count = count; - this.isSelectOne = isSelectOne; + public static RecipeItem of(ItemLike item, double chance, boolean isSelectOne) { + return new RecipeItem(item, null, 1, chance, isSelectOne); } - /** - * 配方物品 - * - * @param chance 概率 - * @param item 配方物品 - */ - public RecipeItem(double chance, ItemLike item, boolean isSelectOne) { - this.item = item; - this.itemTagKey = null; - this.chance = chance; - this.count = 1; - this.isSelectOne = isSelectOne; + + public static RecipeItem of(TagKey itemTagKey, int count, double chance, boolean isSelectOne) { + return new RecipeItem(null, itemTagKey, count, chance, isSelectOne); } - /** - * 配方物品 - * - * @param chance 概率 - * @param itemTagKey 配方物品标签 - * @param count 数量 - */ - public RecipeItem(double chance, TagKey itemTagKey, int count) { - this.item = null; - this.itemTagKey = itemTagKey; - this.chance = chance; - this.count = count; - this.isSelectOne = false; + public static RecipeItem of(TagKey itemTagKey, int count, double chance) { + return new RecipeItem(null, itemTagKey, count, chance, false); } - /** - * 配方物品 - * - * @param itemTagKey 配方物品标签 - */ - public RecipeItem(TagKey itemTagKey) { - this.item = null; - this.itemTagKey = itemTagKey; - this.chance = 1; - this.count = 1; - this.isSelectOne = false; + public static RecipeItem of(TagKey itemTagKey, int count) { + return new RecipeItem(null, itemTagKey, count, 1d, false); } - /** - * 配方物品 - * - * @param itemTagKey 配方物品标签 - * @param count 数量 - */ - public RecipeItem(TagKey itemTagKey, int count) { - this.item = null; - this.itemTagKey = itemTagKey; - this.chance = 1; - this.count = count; - this.isSelectOne = false; + public static RecipeItem of(TagKey itemTagKey, double chance) { + return new RecipeItem(null, itemTagKey, 1, chance, false); } - /** - * 配方物品 - * - * @param chance 概率 - * @param itemTagKey 配方物品标签 - */ - public RecipeItem(double chance, TagKey itemTagKey) { - this.item = null; - this.itemTagKey = itemTagKey; - this.chance = chance; - this.count = 1; - this.isSelectOne = false; + public static RecipeItem of(TagKey itemTagKey, int count, boolean isSelectOne) { + return new RecipeItem(null, itemTagKey, count, 1d, isSelectOne); } - /** - * 配方物品 - * - * @param itemTagKey 配方物品标签 - */ - public RecipeItem(TagKey itemTagKey, boolean isSelectOne) { - this.item = null; - this.itemTagKey = itemTagKey; - this.chance = 1; - this.count = 1; - this.isSelectOne = isSelectOne; + public static RecipeItem of(TagKey itemTagKey, double chance, boolean isSelectOne) { + return new RecipeItem(null, itemTagKey, 1, chance, isSelectOne); } - /** - * 配方物品 - * - * @param itemTagKey 配方物品标签 - * @param count 数量 - */ - public RecipeItem(TagKey itemTagKey, int count, boolean isSelectOne) { - this.item = null; - this.itemTagKey = itemTagKey; - this.chance = 1; - this.count = count; - this.isSelectOne = isSelectOne; + public static RecipeItem of(ItemLike item) { + return new RecipeItem(item, null, 1, 1d, false); } - /** - * 配方物品 - * - * @param chance 概率 - * @param itemTagKey 配方物品标签 - */ - public RecipeItem(double chance, TagKey itemTagKey, boolean isSelectOne) { - this.item = null; - this.itemTagKey = itemTagKey; - this.chance = chance; - this.count = 1; - this.isSelectOne = isSelectOne; + public static RecipeItem of(TagKey itemTagKey) { + return new RecipeItem(null, itemTagKey, 1, 1d, false); } /** diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/BulgingLikeRecipesLoader.java b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/BulgingLikeRecipesLoader.java index fa506586f..46856d91e 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/BulgingLikeRecipesLoader.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/BulgingLikeRecipesLoader.java @@ -35,8 +35,8 @@ public static void init(RegistrateRecipeProvider provider) { Blocks.WATER_CAULDRON, Map.entry(LayeredCauldronBlock.LEVEL, 3), ModBlocks.CEMENT_CAULDRON.getDefaultState(), - new RecipeItem(ModItems.LIME_POWDER, 4), - new RecipeItem(ModBlocks.CINERITE, 4) + RecipeItem.of(ModItems.LIME_POWDER, 4), + RecipeItem.of(ModBlocks.CINERITE, 4) ); fluidHandling( @@ -44,448 +44,448 @@ public static void init(RegistrateRecipeProvider provider) { ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.BLACK), - new RecipeItem(Items.BLACK_DYE) + RecipeItem.of(Items.BLACK_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.BLUE), - new RecipeItem(Items.BLUE_DYE) + RecipeItem.of(Items.BLUE_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.BROWN), - new RecipeItem(Items.BROWN_DYE) + RecipeItem.of(Items.BROWN_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.CYAN), - new RecipeItem(Items.CYAN_DYE) + RecipeItem.of(Items.CYAN_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.GRAY), - new RecipeItem(Items.GRAY_DYE) + RecipeItem.of(Items.GRAY_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.GREEN), - new RecipeItem(Items.GREEN_DYE) + RecipeItem.of(Items.GREEN_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.LIGHT_BLUE), - new RecipeItem(Items.LIGHT_BLUE_DYE) + RecipeItem.of(Items.LIGHT_BLUE_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.LIGHT_GRAY), - new RecipeItem(Items.LIGHT_GRAY_DYE) + RecipeItem.of(Items.LIGHT_GRAY_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.LIME), - new RecipeItem(Items.LIME_DYE) + RecipeItem.of(Items.LIME_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.MAGENTA), - new RecipeItem(Items.MAGENTA_DYE) + RecipeItem.of(Items.MAGENTA_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.ORANGE), - new RecipeItem(Items.ORANGE_DYE) + RecipeItem.of(Items.ORANGE_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.PINK), - new RecipeItem(Items.PINK_DYE) + RecipeItem.of(Items.PINK_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.PURPLE), - new RecipeItem(Items.PURPLE_DYE) + RecipeItem.of(Items.PURPLE_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.RED), - new RecipeItem(Items.RED_DYE) + RecipeItem.of(Items.RED_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.WHITE), - new RecipeItem(Items.WHITE_DYE) + RecipeItem.of(Items.WHITE_DYE) ); fluidHandling( ModBlocks.CEMENT_CAULDRON.getDefaultState().getBlock(), ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.YELLOW), - new RecipeItem(Items.YELLOW_DYE) + RecipeItem.of(Items.YELLOW_DYE) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.BLACK), - new RecipeItem(Items.BLACK_CONCRETE, 16) + RecipeItem.of(Items.BLACK_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.BLACK), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_BLACK, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_BLACK, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.BLUE), - new RecipeItem(Items.BLUE_CONCRETE, 16) + RecipeItem.of(Items.BLUE_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.BLUE), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_BLUE, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_BLUE, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.BROWN), - new RecipeItem(Items.BROWN_CONCRETE, 16) + RecipeItem.of(Items.BROWN_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.BROWN), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_BROWN, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_BROWN, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.CYAN), - new RecipeItem(Items.CYAN_CONCRETE, 16) + RecipeItem.of(Items.CYAN_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.CYAN), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_CYAN, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_CYAN, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.GRAY), - new RecipeItem(Items.GRAY_CONCRETE, 16) + RecipeItem.of(Items.GRAY_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.GRAY), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_GRAY, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_GRAY, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.GREEN), - new RecipeItem(Items.GREEN_CONCRETE, 16) + RecipeItem.of(Items.GREEN_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.GREEN), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_GREEN, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_GREEN, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.LIGHT_BLUE), - new RecipeItem(Items.LIGHT_BLUE_CONCRETE, 16) + RecipeItem.of(Items.LIGHT_BLUE_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.LIGHT_BLUE), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_LIGHT_BLUE, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_LIGHT_BLUE, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.LIGHT_GRAY), - new RecipeItem(Items.LIGHT_GRAY_CONCRETE, 16) + RecipeItem.of(Items.LIGHT_GRAY_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.LIGHT_GRAY), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_LIGHT_GRAY, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_LIGHT_GRAY, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.LIME), - new RecipeItem(Items.LIME_CONCRETE, 16) + RecipeItem.of(Items.LIME_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.LIME), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_LIME, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_LIME, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.MAGENTA), - new RecipeItem(Items.MAGENTA_CONCRETE, 16) + RecipeItem.of(Items.MAGENTA_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.MAGENTA), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_MAGENTA, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_MAGENTA, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.ORANGE), - new RecipeItem(Items.ORANGE_CONCRETE, 16) + RecipeItem.of(Items.ORANGE_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.ORANGE), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_ORANGE, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_ORANGE, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.PINK), - new RecipeItem(Items.PINK_CONCRETE, 16) + RecipeItem.of(Items.PINK_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.PINK), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_PINK, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_PINK, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.PURPLE), - new RecipeItem(Items.PURPLE_CONCRETE, 16) + RecipeItem.of(Items.PURPLE_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.PURPLE), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_PURPLE, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_PURPLE, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.RED), - new RecipeItem(Items.RED_CONCRETE, 16) + RecipeItem.of(Items.RED_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.RED), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_RED, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_RED, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.WHITE), - new RecipeItem(Items.WHITE_CONCRETE, 16) + RecipeItem.of(Items.WHITE_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.WHITE), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_WHITE, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_WHITE, 16) ); concrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 4), - new RecipeItem(Items.SAND, 4) + RecipeItem.of(Items.GRAVEL, 4), + RecipeItem.of(Items.SAND, 4) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.YELLOW), - new RecipeItem(Items.YELLOW_CONCRETE, 16) + RecipeItem.of(Items.YELLOW_CONCRETE, 16) ); reinforcedConcrete( new RecipeItem[] { - new RecipeItem(Items.GRAVEL, 2), - new RecipeItem(Items.SAND, 2), - new RecipeItem(Items.IRON_BARS, 8) + RecipeItem.of(Items.GRAVEL, 2), + RecipeItem.of(Items.SAND, 2), + RecipeItem.of(Items.IRON_BARS, 8) }, ModBlocks.CEMENT_CAULDRON .getDefaultState() .setValue(CementCauldronBlock.COLOR, Color.YELLOW), - new RecipeItem(ModBlocks.REINFORCED_CONCRETE_YELLOW, 16) + RecipeItem.of(ModBlocks.REINFORCED_CONCRETE_YELLOW, 16) ); } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/StampingRecipesLoader.java b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/StampingRecipesLoader.java index 687da8d59..6c0fe9f89 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/StampingRecipesLoader.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/StampingRecipesLoader.java @@ -34,42 +34,42 @@ public class StampingRecipesLoader { */ public static void init(RegistrateRecipeProvider provider) { StampingRecipesLoader.provider = provider; - stamping(Items.IRON_INGOT, new RecipeItem(Items.HEAVY_WEIGHTED_PRESSURE_PLATE)); - stamping(Items.GOLD_INGOT, new RecipeItem(Items.LIGHT_WEIGHTED_PRESSURE_PLATE)); - stamping(Items.SNOWBALL, new RecipeItem(Items.SNOW)); - stamping(ModItems.WOOD_FIBER.get(), new RecipeItem(Items.PAPER)); - stamping(Items.MILK_BUCKET, new RecipeItem(ModItems.CREAM.get(), 4)); - stamping(Items.SUGAR_CANE, new RecipeItem(Items.PAPER), new RecipeItem(0.25, Items.SUGAR)); + stamping(Items.IRON_INGOT, RecipeItem.of(Items.HEAVY_WEIGHTED_PRESSURE_PLATE)); + stamping(Items.GOLD_INGOT, RecipeItem.of(Items.LIGHT_WEIGHTED_PRESSURE_PLATE)); + stamping(Items.SNOWBALL, RecipeItem.of(Items.SNOW)); + stamping(ModItems.WOOD_FIBER.get(), RecipeItem.of(Items.PAPER)); + stamping(Items.MILK_BUCKET, RecipeItem.of(ModItems.CREAM.get(), 4)); + stamping(Items.SUGAR_CANE, RecipeItem.of(Items.PAPER), RecipeItem.of(Items.SUGAR, 0.25d)); stamping( Items.COCOA_BEANS, - new RecipeItem(ModItems.COCOA_BUTTER), - new RecipeItem(ModItems.COCOA_POWDER) + RecipeItem.of(ModItems.COCOA_BUTTER), + RecipeItem.of(ModItems.COCOA_POWDER) ); stamping( Items.HEART_OF_THE_SEA, - new RecipeItem(ModItems.SEA_HEART_SHELL_SHARD, 3), - new RecipeItem(0.5, ModItems.SEA_HEART_SHELL_SHARD), - new RecipeItem(0.5, ModItems.SEA_HEART_SHELL_SHARD), - new RecipeItem(ModItems.SAPPHIRE)); + RecipeItem.of(ModItems.SEA_HEART_SHELL_SHARD, 3), + RecipeItem.of(ModItems.SEA_HEART_SHELL_SHARD, 0.5d), + RecipeItem.of(ModItems.SEA_HEART_SHELL_SHARD, 0.5d), + RecipeItem.of(ModItems.SAPPHIRE)); stamping( ModItems.PRISMARINE_CLUSTER.get(), - new RecipeItem(Items.PRISMARINE_CRYSTALS, 2), - new RecipeItem(0.15, ModItems.PRISMARINE_BLADE), - new RecipeItem(0.5, Items.PRISMARINE_CRYSTALS), - new RecipeItem(Items.PRISMARINE_SHARD)); + RecipeItem.of(Items.PRISMARINE_CRYSTALS, 2), + RecipeItem.of(ModItems.PRISMARINE_BLADE, 0.15d), + RecipeItem.of(Items.PRISMARINE_CRYSTALS, 0.5d), + RecipeItem.of(Items.PRISMARINE_SHARD)); stamping(ModItems.GEODE.get(), - new RecipeItem(Items.AMETHYST_SHARD, 8), - new RecipeItem(ModItems.TOPAZ, 1, true), - new RecipeItem(ModItems.SAPPHIRE, 1, true), - new RecipeItem(ModItems.RUBY, 1, true) + RecipeItem.of(Items.AMETHYST_SHARD, 8), + RecipeItem.of(ModItems.TOPAZ, 1, true), + RecipeItem.of(ModItems.SAPPHIRE, 1, true), + RecipeItem.of(ModItems.RUBY, 1, true) ); stamping( ItemTags.LOGS, - new RecipeItem(ModItems.WOOD_FIBER, 1), - new RecipeItem(0.25, ModItems.RESIN)); + RecipeItem.of(ModItems.WOOD_FIBER, 1), + RecipeItem.of(ModItems.RESIN, 0.25d)); stamping( Items.CHERRY_LEAVES, - new RecipeItem(Items.PINK_PETALS)); + RecipeItem.of(Items.PINK_PETALS)); reclaim(Items.CHAINMAIL_HELMET, Items.CHAIN); reclaim(Items.CHAINMAIL_CHESTPLATE, Items.CHAIN); @@ -118,7 +118,7 @@ public static void init(RegistrateRecipeProvider provider) { */ public static void stamping(RegistrateRecipeProvider provider, Item item, Item item1) { StampingRecipesLoader.provider = provider; - stamping(item, new RecipeItem(item1)); + stamping(item, RecipeItem.of(item1)); } private static void stamping(Item enter, RecipeItem... items) { diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java index 8c326d145..0e7d64b79 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java @@ -11,6 +11,8 @@ import dev.dubhe.anvilcraft.init.ModBlocks; import dev.dubhe.anvilcraft.init.ModItemTags; import dev.dubhe.anvilcraft.init.ModItems; + +import java.util.Arrays; import java.util.Map; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.recipes.RecipeCategory; @@ -31,156 +33,88 @@ public class SuperHeatingRecipesLoader { */ public static void init(RegistrateRecipeProvider provider) { SuperHeatingRecipesLoader.provider = provider; - superHeating(Items.DIAMOND, new RecipeItem(Items.COAL_BLOCK, 16)); - superHeating(Items.COBBLESTONE, 4, Blocks.LAVA_CAULDRON, 1); - superHeating(ModItemTags.STONE, 4, Blocks.LAVA_CAULDRON, 2); - superHeating(ModItemTags.STONE_FORGE, 4, Blocks.LAVA_CAULDRON, 3); - superHeating(Items.IRON_BLOCK, 2, new RecipeItem(Items.RAW_IRON_BLOCK)); - superHeating(Items.GOLD_BLOCK, 2, new RecipeItem(Items.RAW_GOLD_BLOCK)); - superHeating(Items.COPPER_BLOCK, 2, new RecipeItem(Items.RAW_COPPER_BLOCK)); + superHeating(RecipeItem.of(Items.COAL_BLOCK, 16), RecipeItem.of(Items.DIAMOND)); + superHeating(RecipeItem.of(Items.COBBLESTONE, 4), Blocks.LAVA_CAULDRON); + superHeating(RecipeItem.of(ModItemTags.STONE, 4), Blocks.LAVA_CAULDRON); + superHeating(RecipeItem.of(ModItemTags.STONE_FORGE, 4), Blocks.LAVA_CAULDRON); + superHeating(RecipeItem.of(Items.RAW_IRON_BLOCK, 2), RecipeItem.of(Items.IRON_BLOCK)); + superHeating(RecipeItem.of(Items.RAW_GOLD_BLOCK, 2), RecipeItem.of(Items.GOLD_BLOCK)); + superHeating(RecipeItem.of(Items.COPPER_BLOCK, 2), RecipeItem.of(Items.RAW_COPPER_BLOCK)); + superHeating( + new RecipeItem[] { + RecipeItem.of(Items.IRON_INGOT, 3), + RecipeItem.of(Items.DIAMOND), + RecipeItem.of(Items.AMETHYST_SHARD), + RecipeItem.of(ModItemTags.GEMS)}, + RecipeItem.of(ModItems.ROYAL_STEEL_INGOT) + ); superHeating( - ModItems.ROYAL_STEEL_INGOT.get(), - new RecipeItem(Items.IRON_INGOT, 3), - new RecipeItem(Items.DIAMOND), - new RecipeItem(Items.AMETHYST_SHARD), - new RecipeItem(ModItemTags.GEMS) + new RecipeItem[] { + RecipeItem.of(ModBlocks.QUARTZ_SAND, 8), + RecipeItem.of(ModItems.ROYAL_STEEL_INGOT)}, + RecipeItem.of(ModBlocks.TEMPERING_GLASS, 8) ); + superHeating(RecipeItem.of(ModItems.WOOD_FIBER, 4), RecipeItem.of(Items.CHARCOAL)); + superHeating(RecipeItem.of(ModItems.CRAB_CLAW), RecipeItem.of(ModItems.LIME_POWDER)); + superHeating(RecipeItem.of(ModItemTags.DEAD_TUBE), RecipeItem.of(ModItems.LIME_POWDER)); + superHeating(RecipeItem.of(Items.NAUTILUS_SHELL), RecipeItem.of(ModItems.LIME_POWDER)); + superHeating(RecipeItem.of(Items.POINTED_DRIPSTONE), RecipeItem.of(ModItems.LIME_POWDER)); + superHeating(RecipeItem.of(Items.DRIPSTONE_BLOCK), RecipeItem.of(ModItems.LIME_POWDER, 4)); + superHeating(RecipeItem.of(Items.CALCITE), RecipeItem.of(ModItems.LIME_POWDER, 4)); superHeating( - ModBlocks.TEMPERING_GLASS.asItem(), - 8, - new RecipeItem(ModBlocks.QUARTZ_SAND, 8), - new RecipeItem(ModItems.ROYAL_STEEL_INGOT) + new RecipeItem[] { + RecipeItem.of(Items.RAW_IRON), + RecipeItem.of(ModItems.CAPACITOR) + }, + RecipeItem.of(ModItems.MAGNET_INGOT), + RecipeItem.of(ModItems.CAPACITOR_EMPTY) ); - superHeating(Items.CHARCOAL, new RecipeItem(ModItems.WOOD_FIBER.get(), 4)); - superHeating(1, ModItems.LIME_POWDER.get(), new RecipeItem(ModItems.CRAB_CLAW)); - superHeating(2, ModItems.LIME_POWDER.get(), new RecipeItem(ModItemTags.DEAD_TUBE)); - superHeating(3, ModItems.LIME_POWDER.get(), new RecipeItem(Items.NAUTILUS_SHELL)); - superHeating(4, ModItems.LIME_POWDER.get(), new RecipeItem(Items.POINTED_DRIPSTONE)); - superHeating(5, ModItems.LIME_POWDER.get(), 4, new RecipeItem(Items.DRIPSTONE_BLOCK)); - superHeating(6, ModItems.LIME_POWDER.get(), 4, new RecipeItem(Items.CALCITE)); } - private static void superHeating(Item out, int count, RecipeItem... items) { + private static void superHeating(RecipeItem[] inputs, RecipeItem... outputs) { if (SuperHeatingRecipesLoader.provider == null) return; - Builder builder = AnvilRecipe.Builder.create(RecipeCategory.MISC) - .icon(out) - .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) - .hasBlock(Blocks.CAULDRON) - .spawnItem(new Vec3(0.0, -1.0, 0.0), out, count); - for (RecipeItem item : items) { + StringBuilder path = new StringBuilder("heating/"); + Builder builder = Builder.create(RecipeCategory.MISC) + .icon(Arrays.stream(outputs).toList().get(0).getItem()) + .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) + .hasBlock(Blocks.CAULDRON); + for (RecipeItem input : inputs) { builder = builder - .hasItemIngredient(new Vec3(0.0, -1.0, 0.0), item.getCount(), item.getItem()) - .unlockedBy(AnvilCraftDatagen.hasItem(item), AnvilCraftDatagen.has(item)); + .hasItemIngredient(new Vec3(0.0, -1.0, 0.0), input) + .unlockedBy(AnvilCraftDatagen.hasItem(input), AnvilCraftDatagen.has(input)); + path.append("_").append(input.getKey()); } - builder - .save(provider, AnvilCraft.of("heating/" + BuiltInRegistries.ITEM - .getKey(out) - .getPath())); - } - - private static void superHeating(Item output, RecipeItem... items) { - if (SuperHeatingRecipesLoader.provider == null) return; - Builder builder = AnvilRecipe.Builder.create(RecipeCategory.MISC) - .icon(output) - .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) - .hasBlock(Blocks.CAULDRON) - .spawnItem(new Vec3(0.0, -1.0, 0.0), output, 1); - for (RecipeItem item : items) { - if ( - item.getItem() == null) builder = builder.hasItemIngredient(new Vec3(0.0, -1.0, 0.0), - item.getCount(), - item.getItemTagKey() - ); - else builder = builder.hasItemIngredient(new Vec3(0.0, -1.0, 0.0), item.getCount(), item.getItem()) - - .unlockedBy(AnvilCraftDatagen.hasItem(item), AnvilCraftDatagen.has(item)); + path.append("_").append("to"); + for (RecipeItem output : outputs) { + builder = builder.spawnItem(new Vec3(0.0, -1.0, 0.0), output); + path.append("_").append(output.getKey()); } - builder - .save(provider, AnvilCraft.of("heating/" + BuiltInRegistries.ITEM - .getKey(output) - .getPath())); - } - - private static void superHeating(int index, Item output, RecipeItem... items) { - superHeating(index, output, 1, items); + builder.save(provider, AnvilCraft.of(path.toString())); } - private static void superHeating(int index, Item output, int count, RecipeItem... items) { - if (SuperHeatingRecipesLoader.provider == null) return; - Builder builder = AnvilRecipe.Builder.create(RecipeCategory.MISC) - .icon(output) - .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) - .hasBlock(Blocks.CAULDRON) - .spawnItem(new Vec3(0.0, -1.0, 0.0), output, count); - for (RecipeItem item : items) { - if ( - item.getItem() == null) builder = builder.hasItemIngredient(new Vec3(0.0, -1.0, 0.0), - item.getCount(), - item.getItemTagKey() - ); - else builder = builder.hasItemIngredient(new Vec3(0.0, -1.0, 0.0), item.getCount(), item.getItem()) - - .unlockedBy(AnvilCraftDatagen.hasItem(item), AnvilCraftDatagen.has(item)); + private static void superHeating(RecipeItem[] inputs, Block output) { + Builder builder = Builder.create(RecipeCategory.MISC) + .icon(output) + .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) + .hasBlock(Blocks.CAULDRON); + StringBuilder path = new StringBuilder("heating/"); + for (RecipeItem input : inputs) { + builder = builder + .hasItemIngredient(new Vec3(0.0, -1.0, 0.0), input) + .unlockedBy(AnvilCraftDatagen.hasItem(input), AnvilCraftDatagen.has(input)); + path.append("_").append(input.getKey()); } + path.append(BuiltInRegistries.BLOCK.getKey(output)); builder - .save(provider, AnvilCraft.of("heating/" + BuiltInRegistries.ITEM - .getKey(output) - .getPath() + index)); - } - - private static void superHeating(Item enter, int count, Block output) { - AnvilRecipe.Builder.create(RecipeCategory.MISC) - .icon(output) - .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) - .hasBlock(Blocks.CAULDRON) - .hasItemIngredient(new Vec3(0.0, -1.0, 0.0), count, enter) .setBlock(output) - .unlockedBy(AnvilCraftDatagen.hasItem(enter), AnvilCraftDatagen.has(enter)) - .save( - provider, - AnvilCraft.of("heating/" + BuiltInRegistries.BLOCK.getKey(output).getPath()) + "_1" - ); + .save(provider, AnvilCraft.of(path.toString())); } - private static void superHeating(Item enter, int count, Block output, int index) { - AnvilRecipe.Builder.create(RecipeCategory.MISC) - .icon(output) - .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) - .hasBlock(Blocks.CAULDRON) - .hasItemIngredient(new Vec3(0.0, -1.0, 0.0), count, enter) - .setBlock(output) - .unlockedBy(AnvilCraftDatagen.hasItem(enter), AnvilCraftDatagen.has(enter)) - .save( - provider, - AnvilCraft.of("heating/" + BuiltInRegistries.BLOCK.getKey(output).getPath()) + "_" + index - ); + private static void superHeating(RecipeItem input, RecipeItem... outputs) { + superHeating(new RecipeItem[]{input}, outputs); } - private static void superHeating(TagKey enter, int count, Block output) { - AnvilRecipe.Builder.create(RecipeCategory.MISC) - .icon(output) - .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) - .hasBlock(Blocks.CAULDRON) - .hasItemIngredient(new Vec3(0.0, -1.0, 0.0), count, enter) - .setBlock(output) - .unlockedBy(AnvilCraftDatagen.hasItem(enter), AnvilCraftDatagen.has(enter)) - .save( - provider, - AnvilCraft.of("heating/" + BuiltInRegistries.BLOCK.getKey(output).getPath()) + "_2" - ); - } - - private static void superHeating(TagKey enter, int count, Block output, int index) { - AnvilRecipe.Builder.create(RecipeCategory.MISC) - .icon(output) - .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) - .hasBlock(Blocks.CAULDRON) - .hasItemIngredient(new Vec3(0.0, -1.0, 0.0), count, enter) - .setBlock(output) - .unlockedBy(AnvilCraftDatagen.hasItem(enter), AnvilCraftDatagen.has(enter)) - .save( - provider, - AnvilCraft.of("heating/" + BuiltInRegistries.BLOCK.getKey(output).getPath()) + "_" + index - ); + private static void superHeating(RecipeItem input, Block output) { + superHeating(new RecipeItem[]{input}, output); } } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/TimeWarpRecipesLoader.java b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/TimeWarpRecipesLoader.java index b9f0f5a02..313d6ccc7 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/TimeWarpRecipesLoader.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/TimeWarpRecipesLoader.java @@ -28,19 +28,19 @@ public class TimeWarpRecipesLoader { public static void init(RegistrateRecipeProvider provider) { TimeWarpRecipesLoader.provider = provider; timeWarpWithWater(ModItems.SEA_HEART_SHELL_SHARD, ModItems.SEA_HEART_SHELL); - timeWarp(new RecipeItem(ModItems.RESIN), new RecipeItem(ModItems.AMBER)); - timeWarp(new RecipeItem(Items.OBSIDIAN), new RecipeItem(Items.CRYING_OBSIDIAN)); - timeWarp(new RecipeItem(Items.CHARCOAL), new RecipeItem(Items.COAL)); - timeWarp(new RecipeItem(Items.SAND), new RecipeItem(Items.DIRT)); - timeWarp(new RecipeItem(Items.IRON_BLOCK), new RecipeItem(Items.RAW_IRON, 3)); - timeWarp(new RecipeItem(Items.GOLD_BLOCK), new RecipeItem(Items.RAW_GOLD, 3)); - timeWarp(new RecipeItem(Items.COPPER_BLOCK), new RecipeItem(Items.RAW_COPPER, 3)); - timeWarp(new RecipeItem(ModItems.GEODE), new RecipeItem(Items.BUDDING_AMETHYST)); - timeWarp(new RecipeItem(ModBlocks.CINERITE), new RecipeItem(Items.TUFF)); - timeWarp(new RecipeItem(ModBlocks.NETHER_DUST), new RecipeItem(Items.SOUL_SOIL)); - timeWarp(new RecipeItem(ModBlocks.END_DUST), new RecipeItem(Items.END_STONE)); - timeWarp(new RecipeItem(ModItems.LIME_POWDER, 8), new RecipeItem(Items.CALCITE)); - timeWarp(new RecipeItem(ModItems.NETHERITE_CRYSTAL_NUCLEUS), new RecipeItem(Items.ANCIENT_DEBRIS)); + timeWarp(RecipeItem.of(ModItems.RESIN), RecipeItem.of(ModItems.AMBER)); + timeWarp(RecipeItem.of(Items.OBSIDIAN), RecipeItem.of(Items.CRYING_OBSIDIAN)); + timeWarp(RecipeItem.of(Items.CHARCOAL), RecipeItem.of(Items.COAL)); + timeWarp(RecipeItem.of(Items.SAND), RecipeItem.of(Items.DIRT)); + timeWarp(RecipeItem.of(Items.IRON_BLOCK), RecipeItem.of(Items.RAW_IRON, 3)); + timeWarp(RecipeItem.of(Items.GOLD_BLOCK), RecipeItem.of(Items.RAW_GOLD, 3)); + timeWarp(RecipeItem.of(Items.COPPER_BLOCK), RecipeItem.of(Items.RAW_COPPER, 3)); + timeWarp(RecipeItem.of(ModItems.GEODE), RecipeItem.of(Items.BUDDING_AMETHYST)); + timeWarp(RecipeItem.of(ModBlocks.CINERITE), RecipeItem.of(Items.TUFF)); + timeWarp(RecipeItem.of(ModBlocks.NETHER_DUST), RecipeItem.of(Items.SOUL_SOIL)); + timeWarp(RecipeItem.of(ModBlocks.END_DUST), RecipeItem.of(Items.END_STONE)); + timeWarp(RecipeItem.of(ModItems.LIME_POWDER, 8), RecipeItem.of(Items.CALCITE)); + timeWarp(RecipeItem.of(ModItems.NETHERITE_CRYSTAL_NUCLEUS), RecipeItem.of(Items.ANCIENT_DEBRIS)); AnvilRecipe.Builder.create(RecipeCategory.MISC) .icon(Items.WITHER_ROSE) diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipe.java b/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipe.java index 565f648f0..4858b57b3 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipe.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipe.java @@ -810,4 +810,5 @@ public static void init() { RecipeOutcome.register("run_command", RunCommand::new, RunCommand::new); RecipeOutcome.register("select_one", SelectOne::new, SelectOne::new); } + } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipeMap.java b/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipeMap.java deleted file mode 100644 index 0ff122c2e..000000000 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipeMap.java +++ /dev/null @@ -1,46 +0,0 @@ -package dev.dubhe.anvilcraft.data.recipe.anvil; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.crafting.Recipe; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -public class AnvilRecipeMap extends LinkedHashMap> { - /** - * 排序 - */ - public void sort() { - List>> entryList = new ArrayList<>(); - this.entrySet().forEach(entryList::add); - this.clear(); - entryList.sort(this::compare); - entryList.forEach(entry -> this.put(entry.getKey(), entry.getValue())); - } - - /** - * @return 不可变 Map - */ - public Map> unmodifiable() { - return Collections.unmodifiableMap(this); - } - - private int compare( - @NotNull Map.Entry> entry1, - @NotNull Map.Entry> entry2 - ) { - if (!(entry1.getValue() instanceof AnvilRecipe value1 && entry2.getValue() instanceof AnvilRecipe value2)) { - return 0; - } - int size1 = value1.getPredicates().size(); - int size2 = value2.getPredicates().size(); - if (size1 != size2) return size1 - size2; - size1 = value1.getOutcomes().size(); - size2 = value2.getOutcomes().size(); - return size1 - size2; - } -} diff --git a/common/src/main/java/dev/dubhe/anvilcraft/event/AnvilEventListener.java b/common/src/main/java/dev/dubhe/anvilcraft/event/AnvilEventListener.java index 5c760e24b..a47150a7a 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/event/AnvilEventListener.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/event/AnvilEventListener.java @@ -42,6 +42,8 @@ import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.AbstractCookingRecipe; import net.minecraft.world.item.crafting.CraftingRecipe; +import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeManager; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.Level; @@ -99,6 +101,27 @@ public void onLand(@NotNull AnvilFallOnLandEvent event) { belowPos = belowPos.below(); state = level.getBlockState(belowPos); if (state.is(Blocks.STONECUTTER)) brokeBlock(level, belowPos.above(), event); + AnvilCraftingContainer container = new AnvilCraftingContainer(level, pos, event.getEntity()); + RecipeManager manager = server.getRecipeManager(); + HashMap> recipeMap = new HashMap<>(); + for (AnvilRecipe anvilRecipe : manager.getAllRecipesFor(ModRecipeTypes.ANVIL_RECIPE)) { + recipeMap.put(anvilRecipe.getPredicates().size(), anvilRecipe); + } + if (this.isHeating(level, pos)) ; + if (this.isSmoking(level, pos)) return; + if (this.isCompress(level, pos)) return; + if (this.isSmash(level, pos)) return; + /* + Optional optional = server + .getRecipeManager() + .getAllRecipesFor(ModRecipeTypes.ANVIL_RECIPE) + .stream() + .filter(recipe -> recipe.matches(container, level)) + .max(Comparator.comparing(AnvilRecipe::getPredicatesSize)); + if (optional.isPresent()) { + anvilProcess(optional.get(), container, event); + return; + } if (this.isHeating(level, pos) && this.craft(level, pos, this::heating, -1)) return; if (this.isSmoking(level, pos) && this.craft(level, pos, this::smoking, -1)) return; if (this.isCompress(level, pos) && this.craft(level, pos, this::compress, -1)) return; @@ -107,7 +130,9 @@ public void onLand(@NotNull AnvilFallOnLandEvent event) { Optional optional = server .getRecipeManager() .getRecipeFor(ModRecipeTypes.ANVIL_RECIPE, container, level); - optional.ifPresent(anvilRecipe -> anvilProcess(anvilRecipe, container, event)); + optional.ifPresent(anvilRecipe -> anvilProcess(anvilRecipe, container, event));*/ + + } private void hitBeeNest(Level level, BlockState state, BlockPos pos) { diff --git a/common/src/main/java/dev/dubhe/anvilcraft/event/ServerEventListener.java b/common/src/main/java/dev/dubhe/anvilcraft/event/ServerEventListener.java index 7e05d4748..95032cb07 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/event/ServerEventListener.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/event/ServerEventListener.java @@ -1,6 +1,7 @@ package dev.dubhe.anvilcraft.event; import dev.dubhe.anvilcraft.api.event.SubscribeEvent; +import dev.dubhe.anvilcraft.api.event.server.ServerEndDataPackReloadEvent; import dev.dubhe.anvilcraft.api.event.server.ServerStartedEvent; import dev.dubhe.anvilcraft.api.hammer.HammerManager; import dev.dubhe.anvilcraft.init.ModHammerInits; @@ -17,4 +18,10 @@ public void onServerStarted(@NotNull ServerStartedEvent event) { ModHammerInits.init(); HammerManager.register(); } + + @SubscribeEvent + public void onServerEndDataPackReload(@NotNull ServerEndDataPackReloadEvent event) { + + } + } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/init/ModItems.java b/common/src/main/java/dev/dubhe/anvilcraft/init/ModItems.java index 3a186d308..61fc5fec0 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/init/ModItems.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/init/ModItems.java @@ -1158,8 +1158,8 @@ public class ModItems { ) .save(provider); TimeWarpRecipesLoader.timeWarp( - new RecipeItem(ctx.get()), - new RecipeItem(Items.ANCIENT_DEBRIS) + RecipeItem.of(ctx.get()), + RecipeItem.of(Items.ANCIENT_DEBRIS) ); }) .register(); diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/_coal_block_to_diamond.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/_coal_block_to_diamond.json new file mode 100644 index 000000000..b9b5ab092 --- /dev/null +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/_coal_block_to_diamond.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_coal_block": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:coal_block" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:heating/_coal_block_to_diamond" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_coal_block", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:heating/_coal_block_to_diamond" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/_coal_block_to_diamond.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/_coal_block_to_diamond.json new file mode 100644 index 000000000..32442bf42 --- /dev/null +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/_coal_block_to_diamond.json @@ -0,0 +1,67 @@ +{ + "type": "anvilcraft:anvil_processing", + "icon": { + "item": "minecraft:diamond" + }, + "outcomes": [ + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + -1.0, + 0.0 + ], + "result": { + "item": "minecraft:diamond" + } + } + ], + "predicates": [ + { + "type": "has_block", + "match_block": { + "blocks": [ + "anvilcraft:heater" + ], + "state": { + "overload": "false" + } + }, + "offset": [ + 0.0, + -2.0, + 0.0 + ] + }, + { + "type": "has_block", + "match_block": { + "blocks": [ + "minecraft:cauldron" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 16 + }, + "items": [ + "minecraft:coal_block" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + } + ] +} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json index d98103b07..30c17a84a 100644 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json @@ -54,10 +54,10 @@ "min": 1 }, "items": [ - "anvilcraft:topaz_block", - "anvilcraft:sapphire_block", "minecraft:emerald_block", - "anvilcraft:ruby_block" + "anvilcraft:ruby_block", + "anvilcraft:sapphire_block", + "anvilcraft:topaz_block" ] }, "offset": [ From f5869992a400daf04143ed8188b5d986b77812b0 Mon Sep 17 00:00:00 2001 From: dmzz-yyhyy Date: Sun, 9 Jun 2024 17:12:07 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E6=96=B9?= =?UTF-8?q?=E4=BC=98=E5=85=88=E7=BA=A7,=20=E7=83=B9=E9=A5=AA=E3=80=81?= =?UTF-8?q?=E7=86=94=E7=82=BC=E9=85=8D=E6=96=B9=E9=80=82=E9=85=8D=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/recipe/AnvilRecipeManager.java | 51 +++- .../dev/dubhe/anvilcraft/data/RecipeItem.java | 3 +- .../recipe/SuperHeatingRecipesLoader.java | 41 ++- .../recipe/TimeWarpRecipesLoader.java | 40 +-- .../data/generator/tags/ItemTagLoader.java | 37 +++ .../data/recipe/anvil/AnvilRecipe.java | 281 +++++++++++++++++- .../data/recipe/anvil/predicate/HasItem.java | 2 + .../anvilcraft/event/AnvilEventListener.java | 280 +---------------- .../anvilcraft/event/ServerEventListener.java | 4 +- .../dubhe/anvilcraft/init/ModItemTags.java | 4 + .../anvilcraft_dead_tube_to_lime_powder.json | 33 ++ ...c_stone_lime_powder_to_lava_cauldron.json} | 17 +- ...wder6.json => calcite_to_lime_powder.json} | 4 +- .../misc/heating/coal_block_to_diamond.json | 4 +- ...lestone_lime_powder_to_lava_cauldron.json} | 17 +- ... => copper_block_to_raw_copper_block.json} | 10 +- ...er1.json => crab_claw_to_lime_powder.json} | 4 +- ...on => dripstone_block_to_lime_powder.json} | 4 +- ...ge_stone_lime_powder_to_lava_cauldron.json | 17 +- ...anvilcraft_gems_to_royal_steel_ingot.json} | 15 +- .../recipes/misc/heating/lime_powder2.json | 22 -- ...son => nautilus_shell_to_lime_powder.json} | 4 +- ... => pointed_dripstone_to_lime_powder.json} | 4 +- ...royal_steel_ingot_to_tempering_glass.json} | 4 +- ...json => raw_gold_block_to_gold_block.json} | 4 +- ...json => raw_iron_block_to_iron_block.json} | 4 +- ...citor_to_magnet_ingot_capacitor_empty.json | 48 +++ .../misc/heating/wood_fiber_to_charcoal.json | 4 +- ... anvilcraft_dead_tube_to_lime_powder.json} | 0 ...c_stone_lime_powder_to_lava_cauldron.json} | 16 + ...wder6.json => calcite_to_lime_powder.json} | 0 ...iamond.json => coal_block_to_diamond.json} | 0 ...lestone_lime_powder_to_lava_cauldron.json} | 16 + .../copper_block_to_raw_copper_block.json | 8 +- ...er1.json => crab_claw_to_lime_powder.json} | 0 ...on => dripstone_block_to_lime_powder.json} | 0 ...ge_stone_lime_powder_to_lava_cauldron.json | 16 + ...anvilcraft_gems_to_royal_steel_ingot.json} | 0 .../recipes/heating/melt_gem_cauldron.json | 6 +- ...son => nautilus_shell_to_lime_powder.json} | 0 ... => pointed_dripstone_to_lime_powder.json} | 0 ...royal_steel_ingot_to_tempering_glass.json} | 0 .../heating/raw_gold_block_to_gold_block.json | 3 +- ...json => raw_iron_block_to_iron_block.json} | 3 +- ...citor_to_magnet_ingot_capacitor_empty.json | 35 ++- ...rcoal.json => wood_fiber_to_charcoal.json} | 0 .../resources/data/c/tags/items/ores.json | 23 ++ .../resources/data/c/tags/items/raw_ores.json | 19 ++ .../resources/data/forge/tags/items/ores.json | 23 ++ .../data/forge/tags/items/raw_ores.json | 19 ++ .../assets/anvilcraft/lang/en_us.json | 2 +- .../anvilcraft_dead_tube_to_lime_powder.json | 33 ++ ...c_stone_lime_powder_to_lava_cauldron.json} | 17 +- ...wder6.json => calcite_to_lime_powder.json} | 4 +- .../misc/heating/coal_block_to_diamond.json | 4 +- ...lestone_lime_powder_to_lava_cauldron.json} | 17 +- .../recipes/misc/heating/copper_block.json | 35 --- .../copper_block_to_raw_copper_block.json | 10 +- ...er1.json => crab_claw_to_lime_powder.json} | 4 +- ...on => dripstone_block_to_lime_powder.json} | 4 +- ...ge_stone_lime_powder_to_lava_cauldron.json | 17 +- ...anvilcraft_gems_to_royal_steel_ingot.json} | 15 +- .../recipes/misc/heating/lime_powder2.json | 22 -- ...son => nautilus_shell_to_lime_powder.json} | 4 +- ... => pointed_dripstone_to_lime_powder.json} | 4 +- ...royal_steel_ingot_to_tempering_glass.json} | 4 +- ...json => raw_gold_block_to_gold_block.json} | 4 +- ...json => raw_iron_block_to_iron_block.json} | 4 +- ...citor_to_magnet_ingot_capacitor_empty.json | 48 +++ .../misc/heating/wood_fiber_to_charcoal.json | 4 +- ... anvilcraft_dead_tube_to_lime_powder.json} | 0 ...c_stone_lime_powder_to_lava_cauldron.json} | 16 + ...wder6.json => calcite_to_lime_powder.json} | 0 .../heating/coal_block_to_diamond.json | 0 ...lestone_lime_powder_to_lava_cauldron.json} | 16 + .../copper_block_to_raw_copper_block.json | 67 +++++ ...er1.json => crab_claw_to_lime_powder.json} | 0 ...on => dripstone_block_to_lime_powder.json} | 0 ...ge_stone_lime_powder_to_lava_cauldron.json | 16 + ...anvilcraft_gems_to_royal_steel_ingot.json} | 0 .../recipes/heating/melt_gem_cauldron.json | 6 +- ...son => nautilus_shell_to_lime_powder.json} | 0 ... => pointed_dripstone_to_lime_powder.json} | 0 ...royal_steel_ingot_to_tempering_glass.json} | 0 .../heating/raw_gold_block_to_gold_block.json | 3 +- ...json => raw_iron_block_to_iron_block.json} | 3 +- ...citor_to_magnet_ingot_capacitor_empty.json | 35 ++- ...rcoal.json => wood_fiber_to_charcoal.json} | 0 .../resources/data/c/tags/items/ores.json | 23 ++ .../resources/data/c/tags/items/raw_ores.json | 19 ++ .../resources/data/forge/tags/items/ores.json | 23 ++ .../data/forge/tags/items/raw_ores.json | 19 ++ 92 files changed, 1158 insertions(+), 493 deletions(-) create mode 100644 fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/anvilcraft_dead_tube_to_lime_powder.json rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lava_cauldron_2.json => c_stone_lime_powder_to_lava_cauldron.json} (55%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lime_powder6.json => calcite_to_lime_powder.json} (83%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/diamond.json => fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/coal_block_to_diamond.json (83%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lava_cauldron_1.json => cobblestone_lime_powder_to_lava_cauldron.json} (57%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{_coal_block_to_diamond.json => copper_block_to_raw_copper_block.json} (68%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lime_powder1.json => crab_claw_to_lime_powder.json} (82%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lime_powder5.json => dripstone_block_to_lime_powder.json} (81%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_3.json => fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/forge_stone_lime_powder_to_lava_cauldron.json (55%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{royal_steel_ingot.json => iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json} (72%) delete mode 100644 fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder2.json rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lime_powder3.json => nautilus_shell_to_lime_powder.json} (82%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lime_powder4.json => pointed_dripstone_to_lime_powder.json} (81%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{tempering_glass.json => quartz_sand_royal_steel_ingot_to_tempering_glass.json} (83%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{gold_block.json => raw_gold_block_to_gold_block.json} (82%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{iron_block.json => raw_iron_block_to_iron_block.json} (82%) create mode 100644 fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/charcoal.json => fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/wood_fiber_to_charcoal.json (83%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder2.json => anvilcraft_dead_tube_to_lime_powder.json} (100%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{lava_cauldron_2.json => c_stone_lime_powder_to_lava_cauldron.json} (79%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder6.json => calcite_to_lime_powder.json} (100%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{_coal_block_to_diamond.json => coal_block_to_diamond.json} (100%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{lava_cauldron_1.json => cobblestone_lime_powder_to_lava_cauldron.json} (80%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/diamond.json => fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json (86%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder1.json => crab_claw_to_lime_powder.json} (100%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder5.json => dripstone_block_to_lime_powder.json} (100%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_3.json => fabric/src/generated/resources/data/anvilcraft/recipes/heating/forge_stone_lime_powder_to_lava_cauldron.json (79%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{royal_steel_ingot.json => iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json} (100%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder3.json => nautilus_shell_to_lime_powder.json} (100%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder4.json => pointed_dripstone_to_lime_powder.json} (100%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{tempering_glass.json => quartz_sand_royal_steel_ingot_to_tempering_glass.json} (100%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/gold_block.json => fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json (96%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{iron_block.json => raw_iron_block_to_iron_block.json} (96%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block.json => fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json (62%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/{charcoal.json => wood_fiber_to_charcoal.json} (100%) create mode 100644 fabric/src/generated/resources/data/c/tags/items/ores.json create mode 100644 fabric/src/generated/resources/data/c/tags/items/raw_ores.json create mode 100644 fabric/src/generated/resources/data/forge/tags/items/ores.json create mode 100644 fabric/src/generated/resources/data/forge/tags/items/raw_ores.json create mode 100644 forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/anvilcraft_dead_tube_to_lime_powder.json rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lava_cauldron_2.json => c_stone_lime_powder_to_lava_cauldron.json} (55%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lime_powder6.json => calcite_to_lime_powder.json} (83%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/diamond.json => forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/coal_block_to_diamond.json (83%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lava_cauldron_1.json => cobblestone_lime_powder_to_lava_cauldron.json} (57%) delete mode 100644 forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block.json rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block.json => forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json (68%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lime_powder1.json => crab_claw_to_lime_powder.json} (82%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lime_powder5.json => dripstone_block_to_lime_powder.json} (81%) rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_3.json => forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/forge_stone_lime_powder_to_lava_cauldron.json (55%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{royal_steel_ingot.json => iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json} (72%) delete mode 100644 forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder2.json rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lime_powder3.json => nautilus_shell_to_lime_powder.json} (82%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{lime_powder4.json => pointed_dripstone_to_lime_powder.json} (81%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{tempering_glass.json => quartz_sand_royal_steel_ingot_to_tempering_glass.json} (83%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{gold_block.json => raw_gold_block_to_gold_block.json} (82%) rename forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/{iron_block.json => raw_iron_block_to_iron_block.json} (82%) create mode 100644 forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json rename fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/charcoal.json => forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/wood_fiber_to_charcoal.json (83%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder2.json => anvilcraft_dead_tube_to_lime_powder.json} (100%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{lava_cauldron_2.json => c_stone_lime_powder_to_lava_cauldron.json} (79%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder6.json => calcite_to_lime_powder.json} (100%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/diamond.json => forge/src/generated/resources/data/anvilcraft/recipes/heating/coal_block_to_diamond.json (100%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{lava_cauldron_1.json => cobblestone_lime_powder_to_lava_cauldron.json} (80%) create mode 100644 forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder1.json => crab_claw_to_lime_powder.json} (100%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder5.json => dripstone_block_to_lime_powder.json} (100%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_3.json => forge/src/generated/resources/data/anvilcraft/recipes/heating/forge_stone_lime_powder_to_lava_cauldron.json (79%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{royal_steel_ingot.json => iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json} (100%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder3.json => nautilus_shell_to_lime_powder.json} (100%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{lime_powder4.json => pointed_dripstone_to_lime_powder.json} (100%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{tempering_glass.json => quartz_sand_royal_steel_ingot_to_tempering_glass.json} (100%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/gold_block.json => forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json (96%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{iron_block.json => raw_iron_block_to_iron_block.json} (96%) rename fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block.json => forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json (62%) rename forge/src/generated/resources/data/anvilcraft/recipes/heating/{charcoal.json => wood_fiber_to_charcoal.json} (100%) create mode 100644 forge/src/generated/resources/data/c/tags/items/ores.json create mode 100644 forge/src/generated/resources/data/c/tags/items/raw_ores.json create mode 100644 forge/src/generated/resources/data/forge/tags/items/ores.json create mode 100644 forge/src/generated/resources/data/forge/tags/items/raw_ores.json diff --git a/common/src/main/java/dev/dubhe/anvilcraft/api/recipe/AnvilRecipeManager.java b/common/src/main/java/dev/dubhe/anvilcraft/api/recipe/AnvilRecipeManager.java index 5c310b7b1..ef6666dda 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/api/recipe/AnvilRecipeManager.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/api/recipe/AnvilRecipeManager.java @@ -1,20 +1,59 @@ package dev.dubhe.anvilcraft.api.recipe; -import dev.dubhe.anvilcraft.api.event.server.ServerEvent; -import dev.dubhe.anvilcraft.block.state.Half; -import dev.dubhe.anvilcraft.client.renderer.blockentity.LaseRenderer; import dev.dubhe.anvilcraft.data.recipe.anvil.AnvilRecipe; import dev.dubhe.anvilcraft.init.ModRecipeTypes; import net.minecraft.server.MinecraftServer; +import net.minecraft.world.item.crafting.RecipeManager; +import net.minecraft.world.item.crafting.RecipeType; -import java.util.HashMap; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; public class AnvilRecipeManager { - public final static HashMap ANVIL_RECIPE_MAP = new HashMap<>(); + private static List ANVIL_RECIPE_SET = List.of(); + /** + * 更新配方 + * + * @param server 服务器实例 + */ public static void updateRecipes(MinecraftServer server) { - List anvilRecipes = server.getRecipeManager().getAllRecipesFor(ModRecipeTypes.ANVIL_RECIPE); + RecipeManager manager = server.getRecipeManager(); + ArrayList anvilRecipes = new ArrayList<>(manager.getAllRecipesFor(ModRecipeTypes.ANVIL_RECIPE)); + ArrayList smokingRecipes = new ArrayList<>(); + ArrayList smeltingRecipes = new ArrayList<>(); + manager.getAllRecipesFor(RecipeType.SMOKING).forEach( + smokingRecipe -> smokingRecipes.addAll(AnvilRecipe.of(smokingRecipe, server.registryAccess()))); + manager.getAllRecipesFor(RecipeType.CAMPFIRE_COOKING).forEach( + campfireCookingRecipe -> + anvilRecipes.addAll(AnvilRecipe.of(campfireCookingRecipe, server.registryAccess()))); + manager.getAllRecipesFor(RecipeType.BLASTING).forEach( + blastingRecipe -> + anvilRecipes.addAll(AnvilRecipe.of(blastingRecipe, server.registryAccess()))); + manager.getAllRecipesFor(RecipeType.SMELTING).forEach( + smeltingRecipe -> { + List anvilRecipe = + AnvilRecipe.of(smeltingRecipe, server.registryAccess()); + if (!anvilRecipe.isEmpty() + && smokingRecipes.stream().noneMatch((smokingRecipe) -> + anvilRecipe.get(0).getResultItem(server.registryAccess()) + .is(smokingRecipe.getResultItem(server.registryAccess()).getItem()))) + smeltingRecipes.addAll(anvilRecipe); + }); + manager.getAllRecipesFor(RecipeType.CRAFTING).forEach( + craftingRecipe -> + anvilRecipes.addAll(AnvilRecipe.of(craftingRecipe, server.registryAccess()))); + anvilRecipes.addAll(smokingRecipes); + anvilRecipes.addAll(smeltingRecipes); + ANVIL_RECIPE_SET = anvilRecipes + .stream() + .sorted(Comparator.comparing(AnvilRecipe::getWeightCoefficient).reversed()) + .toList(); + } + + public static List getAnvilRecipeList() { + return ANVIL_RECIPE_SET; } } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/RecipeItem.java b/common/src/main/java/dev/dubhe/anvilcraft/data/RecipeItem.java index 14020424d..066463677 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/RecipeItem.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/RecipeItem.java @@ -46,7 +46,6 @@ public static RecipeItem of(ItemLike item, double chance, boolean isSelectOne) { return new RecipeItem(item, null, 1, chance, isSelectOne); } - public static RecipeItem of(TagKey itemTagKey, int count, double chance, boolean isSelectOne) { return new RecipeItem(null, itemTagKey, count, chance, isSelectOne); } @@ -88,7 +87,7 @@ public String getKey() { return this.item == null ? this.itemTagKey == null ? "" - : itemTagKey.location().getPath() + : itemTagKey.location().getNamespace() + "_" + itemTagKey.location().getPath() : BuiltInRegistries.ITEM .getKey(this.item.asItem()).getPath(); } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java index 0e7d64b79..32d444956 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java @@ -6,7 +6,6 @@ import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.data.RecipeItem; import dev.dubhe.anvilcraft.data.generator.AnvilCraftDatagen; -import dev.dubhe.anvilcraft.data.recipe.anvil.AnvilRecipe; import dev.dubhe.anvilcraft.data.recipe.anvil.AnvilRecipe.Builder; import dev.dubhe.anvilcraft.init.ModBlocks; import dev.dubhe.anvilcraft.init.ModItemTags; @@ -16,8 +15,6 @@ import java.util.Map; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.recipes.RecipeCategory; -import net.minecraft.tags.TagKey; -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; @@ -34,9 +31,24 @@ public class SuperHeatingRecipesLoader { public static void init(RegistrateRecipeProvider provider) { SuperHeatingRecipesLoader.provider = provider; superHeating(RecipeItem.of(Items.COAL_BLOCK, 16), RecipeItem.of(Items.DIAMOND)); - superHeating(RecipeItem.of(Items.COBBLESTONE, 4), Blocks.LAVA_CAULDRON); - superHeating(RecipeItem.of(ModItemTags.STONE, 4), Blocks.LAVA_CAULDRON); - superHeating(RecipeItem.of(ModItemTags.STONE_FORGE, 4), Blocks.LAVA_CAULDRON); + superHeating( + new RecipeItem[] { + RecipeItem.of(Items.COBBLESTONE, 4), + RecipeItem.of(ModItems.LIME_POWDER) + }, + Blocks.LAVA_CAULDRON); + superHeating( + new RecipeItem[] { + RecipeItem.of(ModItemTags.STONE, 4), + RecipeItem.of(ModItems.LIME_POWDER) + }, + Blocks.LAVA_CAULDRON); + superHeating( + new RecipeItem[] { + RecipeItem.of(ModItemTags.STONE_FORGE, 4), + RecipeItem.of(ModItems.LIME_POWDER) + }, + Blocks.LAVA_CAULDRON); superHeating(RecipeItem.of(Items.RAW_IRON_BLOCK, 2), RecipeItem.of(Items.IRON_BLOCK)); superHeating(RecipeItem.of(Items.RAW_GOLD_BLOCK, 2), RecipeItem.of(Items.GOLD_BLOCK)); superHeating(RecipeItem.of(Items.COPPER_BLOCK, 2), RecipeItem.of(Items.RAW_COPPER_BLOCK)); @@ -77,18 +89,19 @@ private static void superHeating(RecipeItem[] inputs, RecipeItem... outputs) { Builder builder = Builder.create(RecipeCategory.MISC) .icon(Arrays.stream(outputs).toList().get(0).getItem()) .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) - .hasBlock(Blocks.CAULDRON); + .hasBlock(Blocks.CAULDRON, new Vec3(0.0, -1.0, 0.0)); for (RecipeItem input : inputs) { builder = builder .hasItemIngredient(new Vec3(0.0, -1.0, 0.0), input) .unlockedBy(AnvilCraftDatagen.hasItem(input), AnvilCraftDatagen.has(input)); - path.append("_").append(input.getKey()); + path.append(input.getKey()).append("_"); } - path.append("_").append("to"); + path.append("to_"); for (RecipeItem output : outputs) { builder = builder.spawnItem(new Vec3(0.0, -1.0, 0.0), output); - path.append("_").append(output.getKey()); + path.append(output.getKey()).append("_"); } + path.deleteCharAt(path.length() - 1); builder.save(provider, AnvilCraft.of(path.toString())); } @@ -96,18 +109,18 @@ private static void superHeating(RecipeItem[] inputs, Block output) { Builder builder = Builder.create(RecipeCategory.MISC) .icon(output) .hasBlock(ModBlocks.HEATER.get(), new Vec3(0.0, -2.0, 0.0), Map.entry(OVERLOAD, false)) - .hasBlock(Blocks.CAULDRON); + .hasBlock(Blocks.CAULDRON, new Vec3(0.0, -1.0, 0.0)); StringBuilder path = new StringBuilder("heating/"); for (RecipeItem input : inputs) { builder = builder .hasItemIngredient(new Vec3(0.0, -1.0, 0.0), input) .unlockedBy(AnvilCraftDatagen.hasItem(input), AnvilCraftDatagen.has(input)); - path.append("_").append(input.getKey()); + path.append(input.getKey()).append("_"); } - path.append(BuiltInRegistries.BLOCK.getKey(output)); + path.append("to_").append(BuiltInRegistries.BLOCK.getKey(output).getPath()); builder .setBlock(output) - .save(provider, AnvilCraft.of(path.toString())); + .save(provider, AnvilCraft.of(path.toString().toLowerCase())); } private static void superHeating(RecipeItem input, RecipeItem... outputs) { diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/TimeWarpRecipesLoader.java b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/TimeWarpRecipesLoader.java index de616ec47..1b92f58d8 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/TimeWarpRecipesLoader.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/TimeWarpRecipesLoader.java @@ -28,26 +28,26 @@ public class TimeWarpRecipesLoader { public static void init(RegistrateRecipeProvider provider) { TimeWarpRecipesLoader.provider = provider; timeWarpWithWater(ModItems.SEA_HEART_SHELL_SHARD, ModItems.SEA_HEART_SHELL); - timeWarp(new RecipeItem(ModItems.RESIN), new RecipeItem(ModItems.AMBER)); - timeWarp(new RecipeItem(Items.OBSIDIAN), new RecipeItem(Items.CRYING_OBSIDIAN)); - timeWarp(new RecipeItem(Items.CHARCOAL), new RecipeItem(Items.COAL)); - timeWarp(new RecipeItem(Items.SAND), new RecipeItem(Items.DIRT)); - timeWarp(new RecipeItem(Items.IRON_BLOCK), new RecipeItem(Items.RAW_IRON, 3)); - timeWarp(new RecipeItem(Items.GOLD_BLOCK), new RecipeItem(Items.RAW_GOLD, 3)); - timeWarp(new RecipeItem(Items.COPPER_BLOCK), new RecipeItem(Items.RAW_COPPER, 3)); - timeWarp(new RecipeItem(ModItems.GEODE), new RecipeItem(Items.BUDDING_AMETHYST)); - timeWarp(new RecipeItem(ModBlocks.CINERITE), new RecipeItem(Items.TUFF)); - timeWarp(new RecipeItem(ModBlocks.NETHER_DUST), new RecipeItem(Items.SOUL_SOIL)); - timeWarp(new RecipeItem(ModBlocks.END_DUST), new RecipeItem(Items.END_STONE)); - timeWarp(new RecipeItem(ModItems.LIME_POWDER, 8), new RecipeItem(Items.CALCITE)); - timeWarp(new RecipeItem(ModItems.NETHERITE_CRYSTAL_NUCLEUS), new RecipeItem(Items.ANCIENT_DEBRIS)); - timeWarp(new RecipeItem(ModBlocks.ZINC_BLOCK), new RecipeItem(ModItems.RAW_ZINC, 3)); - timeWarp(new RecipeItem(ModBlocks.TIN_BLOCK), new RecipeItem(ModItems.RAW_TIN, 3)); - timeWarp(new RecipeItem(ModBlocks.TITANIUM_BLOCK), new RecipeItem(ModItems.RAW_TITANIUM, 3)); - timeWarp(new RecipeItem(ModBlocks.TUNGSTEN_BLOCK), new RecipeItem(ModItems.RAW_TUNGSTEN, 3)); - timeWarp(new RecipeItem(ModBlocks.LEAD_BLOCK), new RecipeItem(ModItems.RAW_LEAD, 3)); - timeWarp(new RecipeItem(ModBlocks.SILVER_BLOCK), new RecipeItem(ModItems.RAW_SILVER, 3)); - timeWarp(new RecipeItem(ModBlocks.URANIUM_BLOCK), new RecipeItem(ModItems.RAW_URANIUM, 3)); + timeWarp(RecipeItem.of(ModItems.RESIN), RecipeItem.of(ModItems.AMBER)); + timeWarp(RecipeItem.of(Items.OBSIDIAN), RecipeItem.of(Items.CRYING_OBSIDIAN)); + timeWarp(RecipeItem.of(Items.CHARCOAL), RecipeItem.of(Items.COAL)); + timeWarp(RecipeItem.of(Items.SAND), RecipeItem.of(Items.DIRT)); + timeWarp(RecipeItem.of(Items.IRON_BLOCK), RecipeItem.of(Items.RAW_IRON, 3)); + timeWarp(RecipeItem.of(Items.GOLD_BLOCK), RecipeItem.of(Items.RAW_GOLD, 3)); + timeWarp(RecipeItem.of(Items.COPPER_BLOCK), RecipeItem.of(Items.RAW_COPPER, 3)); + timeWarp(RecipeItem.of(ModItems.GEODE), RecipeItem.of(Items.BUDDING_AMETHYST)); + timeWarp(RecipeItem.of(ModBlocks.CINERITE), RecipeItem.of(Items.TUFF)); + timeWarp(RecipeItem.of(ModBlocks.NETHER_DUST), RecipeItem.of(Items.SOUL_SOIL)); + timeWarp(RecipeItem.of(ModBlocks.END_DUST), RecipeItem.of(Items.END_STONE)); + timeWarp(RecipeItem.of(ModItems.LIME_POWDER, 8), RecipeItem.of(Items.CALCITE)); + timeWarp(RecipeItem.of(ModItems.NETHERITE_CRYSTAL_NUCLEUS), RecipeItem.of(Items.ANCIENT_DEBRIS)); + timeWarp(RecipeItem.of(ModBlocks.ZINC_BLOCK), RecipeItem.of(ModItems.RAW_ZINC, 3)); + timeWarp(RecipeItem.of(ModBlocks.TIN_BLOCK), RecipeItem.of(ModItems.RAW_TIN, 3)); + timeWarp(RecipeItem.of(ModBlocks.TITANIUM_BLOCK), RecipeItem.of(ModItems.RAW_TITANIUM, 3)); + timeWarp(RecipeItem.of(ModBlocks.TUNGSTEN_BLOCK), RecipeItem.of(ModItems.RAW_TUNGSTEN, 3)); + timeWarp(RecipeItem.of(ModBlocks.LEAD_BLOCK), RecipeItem.of(ModItems.RAW_LEAD, 3)); + timeWarp(RecipeItem.of(ModBlocks.SILVER_BLOCK), RecipeItem.of(ModItems.RAW_SILVER, 3)); + timeWarp(RecipeItem.of(ModBlocks.URANIUM_BLOCK), RecipeItem.of(ModItems.RAW_URANIUM, 3)); AnvilRecipe.Builder.create(RecipeCategory.MISC) .icon(Items.WITHER_ROSE) diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/tags/ItemTagLoader.java b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/tags/ItemTagLoader.java index 362dc0ce7..7eda91c60 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/tags/ItemTagLoader.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/tags/ItemTagLoader.java @@ -77,5 +77,42 @@ public static void init(@NotNull RegistrateTagsProvider provider) { .add(ModItems.VOID_MATTER.get()) .add(ModBlocks.VOID_MATTER_BLOCK.asItem()) .add(ModBlocks.VOID_STONE.asItem()); + provider.addTag(ModItemTags.ORES).setReplace(false) + .add(ModBlocks.DEEPSLATE_ZINC_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_TIN_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_TITANIUM_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_TUNGSTEN_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_LEAD_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_SILVER_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_URANIUM_ORE.asItem()) + .add(ModBlocks.VOID_STONE.asItem()) + .add(ModBlocks.EARTH_CORE_SHARD_ORE.asItem()); + provider.addTag(ModItemTags.FORGE_ORES).setReplace(false) + .add(ModBlocks.DEEPSLATE_ZINC_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_TIN_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_TITANIUM_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_TUNGSTEN_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_LEAD_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_SILVER_ORE.asItem()) + .add(ModBlocks.DEEPSLATE_URANIUM_ORE.asItem()) + .add(ModBlocks.VOID_STONE.asItem()) + .add(ModBlocks.EARTH_CORE_SHARD_ORE.asItem()); + provider.addTag(ModItemTags.RAW_ORES).setReplace(false) + .add(ModItems.RAW_ZINC.get()) + .add(ModItems.RAW_TIN.get()) + .add(ModItems.RAW_TITANIUM.get()) + .add(ModItems.RAW_TUNGSTEN.get()) + .add(ModItems.RAW_LEAD.get()) + .add(ModItems.RAW_SILVER.get()) + .add(ModItems.RAW_URANIUM.get()); + provider.addTag(ModItemTags.FORGE_RAW_ORES).setReplace(false) + .add(ModItems.RAW_ZINC.get()) + .add(ModItems.RAW_TIN.get()) + .add(ModItems.RAW_TITANIUM.get()) + .add(ModItems.RAW_TUNGSTEN.get()) + .add(ModItems.RAW_LEAD.get()) + .add(ModItems.RAW_SILVER.get()) + .add(ModItems.RAW_URANIUM.get()); + } } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipe.java b/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipe.java index 41588c8b6..488cbcd74 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipe.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/AnvilRecipe.java @@ -4,6 +4,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonSyntaxException; +import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.data.RecipeItem; import dev.dubhe.anvilcraft.data.recipe.anvil.outcome.DamageAnvil; import dev.dubhe.anvilcraft.data.recipe.anvil.outcome.RunCommand; @@ -18,6 +19,9 @@ import dev.dubhe.anvilcraft.data.recipe.anvil.predicate.HasItemIngredient; import dev.dubhe.anvilcraft.data.recipe.anvil.predicate.HasItemLeaves; import dev.dubhe.anvilcraft.data.recipe.anvil.predicate.NotHasBlock; +import dev.dubhe.anvilcraft.init.ModBlocks; +import dev.dubhe.anvilcraft.init.ModItemTags; +import dev.dubhe.anvilcraft.inventory.SimpleCraftingContainer; import dev.dubhe.anvilcraft.util.IItemStackUtil; import lombok.Getter; import net.minecraft.advancements.Advancement; @@ -39,12 +43,23 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.BlastingRecipe; +import net.minecraft.world.item.crafting.CampfireCookingRecipe; +import net.minecraft.world.item.crafting.CraftingRecipe; +import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.item.crafting.ShapedRecipe; +import net.minecraft.world.item.crafting.ShapelessRecipe; +import net.minecraft.world.item.crafting.SmeltingRecipe; +import net.minecraft.world.item.crafting.SmokingRecipe; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.CampfireBlock; +import net.minecraft.world.level.block.TrapDoorBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.phys.Vec3; @@ -58,6 +73,8 @@ import java.util.Map; import java.util.function.Consumer; +import static dev.dubhe.anvilcraft.api.power.IPowerComponent.OVERLOAD; + @SuppressWarnings("unused") public class AnvilRecipe implements Recipe { private final ResourceLocation id; @@ -73,8 +90,18 @@ public AnvilRecipe(ResourceLocation id, ItemStack icon) { this.icon = icon; } - public int getPredicatesSize() { - return predicates.size(); + /** + * 获取配方权重 + */ + public int getWeightCoefficient() { + int weight = (predicates.size() * 10000); + for (RecipePredicate recipePredicate : predicates) { + if (recipePredicate instanceof HasItem hasItem) { + if (hasItem.getMatchItem().getCount().getMin() != null) + weight += hasItem.getMatchItem().getCount().getMin(); + } + } + return weight; } @SuppressWarnings("UnusedReturnValue") @@ -815,4 +842,254 @@ public static void init() { RecipeOutcome.register("select_one", SelectOne::new, SelectOne::new); } + /** + * 深度复制 + */ + public AnvilRecipe copy() { + AnvilRecipe anvilRecipe = new AnvilRecipe(id, icon); + outcomes.forEach(anvilRecipe::addOutcomes); + predicates.forEach(anvilRecipe::addPredicates); + return anvilRecipe; + } + + /** + * 将熔炉配方转换至铁砧工艺配方 + */ + public static List of(SmeltingRecipe blastingRecipe, RegistryAccess registryAccess) { + List anvilRecipes = new ArrayList<>(); + AnvilRecipe anvilRecipe = new AnvilRecipe( + AnvilCraft.of(blastingRecipe.getId().getPath() + "_translate_from_smelting_recipe"), + blastingRecipe.getResultItem(registryAccess) + ); + anvilRecipe.addPredicates( + new HasBlock( + new Vec3(0, -2, 0), + new HasBlock.ModBlockPredicate().block(ModBlocks.HEATER.get()) + .property(Map.entry(OVERLOAD, false)) + ), + new HasBlock( + new Vec3(0, -1, 0), + new HasBlock.ModBlockPredicate().block(Blocks.CAULDRON)) + ); + NonNullList ingredients = blastingRecipe.getIngredients(); + for (Ingredient ingredient : ingredients) { + for (ItemStack itemStack : ingredient.getItems()) { + AnvilRecipe anvilRecipe1 = anvilRecipe + .copy() + .addPredicates(new HasItemIngredient(new Vec3(0, -1, 0), + HasItem.ModItemPredicate + .of(itemStack.getItem()) + .withCount(MinMaxBounds.Ints.atLeast(itemStack.getCount())))); + ItemStack resultItem = blastingRecipe.getResultItem(registryAccess); + resultItem.setCount( + itemStack.is(ModItemTags.RAW_ORES) + || itemStack.is(ModItemTags.FORGE_RAW_ORES) + || itemStack.is(ModItemTags.ORES) + || itemStack.is(ModItemTags.FORGE_ORES) + ? blastingRecipe.getResultItem(registryAccess).getCount() * 2 + : blastingRecipe.getResultItem(registryAccess).getCount() + ); + anvilRecipe1.addOutcomes(new SpawnItem(new Vec3(0, -1, 0), 1, resultItem)); + anvilRecipes.add(anvilRecipe1); + } + } + return anvilRecipes; + } + + + /** + * 将高炉配方转换至铁砧工艺配方 + */ + public static List of(BlastingRecipe blastingRecipe, RegistryAccess registryAccess) { + List anvilRecipes = new ArrayList<>(); + AnvilRecipe anvilRecipe = new AnvilRecipe( + AnvilCraft.of(blastingRecipe.getId().getPath() + "_translate_from_blasting_recipe"), + blastingRecipe.getResultItem(registryAccess) + ); + anvilRecipe.addPredicates( + new HasBlock( + new Vec3(0, -1, 0), + new HasBlock.ModBlockPredicate().block(Blocks.CAULDRON) + ), + new HasBlock( + new Vec3(0, -2, 0), + new HasBlock.ModBlockPredicate().block(ModBlocks.HEATER.get()) + .property(Map.entry(OVERLOAD, false)) + ) + ); + NonNullList ingredients = blastingRecipe.getIngredients(); + for (Ingredient ingredient : ingredients) { + for (ItemStack itemStack : ingredient.getItems()) { + AnvilRecipe anvilRecipe1 = anvilRecipe + .copy() + .addPredicates(new HasItemIngredient(new Vec3(0, -1, 0), + HasItem.ModItemPredicate + .of(itemStack.getItem()) + .withCount(MinMaxBounds.Ints.atLeast(itemStack.getCount())))); + ItemStack resultItem = blastingRecipe.getResultItem(registryAccess); + resultItem.setCount( + itemStack.is(ModItemTags.RAW_ORES) + || itemStack.is(ModItemTags.FORGE_RAW_ORES) + || itemStack.is(ModItemTags.ORES) + || itemStack.is(ModItemTags.FORGE_ORES) + ? blastingRecipe.getResultItem(registryAccess).getCount() * 2 + : blastingRecipe.getResultItem(registryAccess).getCount() + ); + anvilRecipe1.addOutcomes(new SpawnItem(new Vec3(0, -1, 0), 1, resultItem)); + anvilRecipes.add(anvilRecipe1); + } + } + return anvilRecipes; + } + + + /** + * 将烟熏配方转换至铁砧工艺配方 + */ + public static List of(SmokingRecipe smokingRecipe, RegistryAccess registryAccess) { + List anvilRecipes = new ArrayList<>(); + AnvilRecipe anvilRecipe = new AnvilRecipe( + AnvilCraft.of(smokingRecipe.getId().getPath() + "_translate_from_smoking_recipe"), + smokingRecipe.getResultItem(registryAccess) + ); + anvilRecipe.addPredicates( + new HasBlock( + new Vec3(0, -2, 0), + new HasBlock.ModBlockPredicate().block(Blocks.CAMPFIRE) + .property(CampfireBlock.LIT, true) + ), + new HasBlock( + new Vec3(0, -1, 0), + new HasBlock.ModBlockPredicate().block(Blocks.CAULDRON)) + ); + anvilRecipe.addOutcomes( + new SpawnItem( + new Vec3(0, -1, 0), + 1, + smokingRecipe.getResultItem(registryAccess) + ) + ); + NonNullList ingredients = smokingRecipe.getIngredients(); + for (Ingredient ingredient : ingredients) { + for (ItemStack itemStack : ingredient.getItems()) { + anvilRecipes.add(anvilRecipe.copy().addPredicates(new HasItemIngredient(new Vec3(0, -1, 0), + HasItem.ModItemPredicate + .of(itemStack.getItem()) + .withCount(MinMaxBounds.Ints.atLeast(itemStack.getCount()))))); + } + } + return anvilRecipes; + } + + + /** + * 将篝火配方转换至铁砧工艺配方 + */ + public static List of(CampfireCookingRecipe campfireCookingRecipe, RegistryAccess registryAccess) { + List anvilRecipes = new ArrayList<>(); + AnvilRecipe anvilRecipe = new AnvilRecipe( + AnvilCraft.of(campfireCookingRecipe.getId().getPath() + "_translate_from_campfire_recipe"), + campfireCookingRecipe.getResultItem(registryAccess) + ); + anvilRecipe.addPredicates( + new HasBlock( + new Vec3(0, -2, 0), + new HasBlock.ModBlockPredicate().block(Blocks.CAMPFIRE) + .property(CampfireBlock.LIT, true) + ), + new HasBlock( + new Vec3(0, -1, 0), + new HasBlock.ModBlockPredicate().block(Blocks.CAULDRON)) + ); + anvilRecipe.addOutcomes( + new SpawnItem( + new Vec3(0, -1, 0), + 1, + campfireCookingRecipe.getResultItem(registryAccess) + ) + ); + NonNullList ingredients = campfireCookingRecipe.getIngredients(); + for (Ingredient ingredient : ingredients) { + for (ItemStack itemStack : ingredient.getItems()) { + anvilRecipes.add(anvilRecipe.copy().addPredicates(new HasItemIngredient(new Vec3(0, -1, 0), + HasItem.ModItemPredicate + .of(itemStack.getItem()) + .withCount(MinMaxBounds.Ints.atLeast(itemStack.getCount()))))); + } + } + return anvilRecipes; + } + + /** + * 将工作台配方转换至铁砧工艺配方 + */ + public static List of(CraftingRecipe craftingRecipe, RegistryAccess registryAccess) { + List anvilRecipes = new ArrayList<>(); + AnvilRecipe anvilRecipe = new AnvilRecipe( + AnvilCraft.of(craftingRecipe.getId().getPath() + "_translate_from_crafting_recipe"), + craftingRecipe.getResultItem(registryAccess) + ); + if (craftingRecipe instanceof ShapedRecipe shapedRecipe + && (shapedRecipe.getIngredients().size() == 4 || shapedRecipe.getIngredients().size() == 9)) { + ItemStack[] itemStacks = shapedRecipe.getIngredients().get(0).getItems(); + for (Ingredient ingredient : shapedRecipe.getIngredients()) { + if (Arrays.stream(itemStacks).noneMatch(ingredient)) return anvilRecipes; + itemStacks = ingredient.getItems(); + } + anvilRecipe.addPredicates( + new HasBlock( + new Vec3(0, -1, 0), + new HasBlock.ModBlockPredicate().block(Blocks.CAULDRON)) + ); + anvilRecipe.addOutcomes( + new SpawnItem( + new Vec3(0, -1, 0), + 1, + craftingRecipe.getResultItem(registryAccess) + ) + ); + for (ItemStack itemStack : itemStacks) { + anvilRecipes.add(anvilRecipe.copy().addPredicates(new HasItemIngredient( + new Vec3(0, -1, 0), + HasItem.ModItemPredicate + .of(itemStack.getItem()) + .withCount(MinMaxBounds.Ints.atLeast(shapedRecipe.getIngredients().size()))))); + } + } + if (craftingRecipe instanceof ShapelessRecipe shapelessRecipe + && shapelessRecipe.getResultItem(registryAccess).getCount() > 1) { + anvilRecipe.addPredicates( + new HasBlock( + new Vec3(0, -1, 0), + new HasBlock.ModBlockPredicate().block(Blocks.IRON_TRAPDOOR) + .property(Map.entry(TrapDoorBlock.OPEN, false))) + ); + anvilRecipe.addOutcomes( + new SpawnItem( + new Vec3(0, -1, 0), + 1, + craftingRecipe.getResultItem(registryAccess) + ) + ); + craftingRecipe.getRemainingItems(new SimpleCraftingContainer()).forEach(itemStack -> + anvilRecipe.addOutcomes( + new SpawnItem( + new Vec3(0, -1, 0), + 1, + itemStack + ) + ) + ); + NonNullList ingredients = craftingRecipe.getIngredients(); + for (Ingredient ingredient : ingredients) { + for (ItemStack itemStack : ingredient.getItems()) { + anvilRecipes.add(anvilRecipe.copy().addPredicates(new HasItemIngredient(Vec3.ZERO, + HasItem.ModItemPredicate + .of(itemStack.getItem()) + .withCount(MinMaxBounds.Ints.atLeast(itemStack.getCount()))))); + } + } + } + return anvilRecipes; + } } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/predicate/HasItem.java b/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/predicate/HasItem.java index 22735d1d2..6103a13d7 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/predicate/HasItem.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/recipe/anvil/predicate/HasItem.java @@ -47,6 +47,7 @@ public class HasItem implements RecipePredicate, HasData { @Getter private final String type = "has_item"; protected final Vec3 offset; + @Getter protected final ModItemPredicate matchItem; protected String path = null; @Getter @@ -213,6 +214,7 @@ public static class ModItemPredicate { private final Set items = new HashSet<>(); @Nullable private CompoundTag nbt = null; + @Getter public MinMaxBounds.Ints count = null; private MinMaxBounds.Ints durability = null; private final Map enchantments = new HashMap<>(); diff --git a/common/src/main/java/dev/dubhe/anvilcraft/event/AnvilEventListener.java b/common/src/main/java/dev/dubhe/anvilcraft/event/AnvilEventListener.java index 94aed8ec9..312b76278 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/event/AnvilEventListener.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/event/AnvilEventListener.java @@ -6,27 +6,22 @@ import dev.dubhe.anvilcraft.api.event.SubscribeEvent; import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent; import dev.dubhe.anvilcraft.api.event.entity.AnvilHurtEntityEvent; -import dev.dubhe.anvilcraft.api.power.IPowerComponent; +import dev.dubhe.anvilcraft.api.recipe.AnvilRecipeManager; import dev.dubhe.anvilcraft.block.CrabTrapBlock; import dev.dubhe.anvilcraft.block.entity.CrabTrapBlockEntity; import dev.dubhe.anvilcraft.data.recipe.anvil.AnvilCraftingContainer; import dev.dubhe.anvilcraft.data.recipe.anvil.AnvilRecipe; import dev.dubhe.anvilcraft.init.ModBlockTags; import dev.dubhe.anvilcraft.init.ModBlocks; -import dev.dubhe.anvilcraft.init.ModRecipeTypes; -import dev.dubhe.anvilcraft.inventory.SimpleCraftingContainer; import dev.dubhe.anvilcraft.mixin.accessor.BaseSpawnerAccessor; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.core.RegistryAccess; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; -import net.minecraft.tags.BlockTags; import net.minecraft.util.RandomSource; import net.minecraft.world.Difficulty; -import net.minecraft.world.SimpleContainer; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -36,27 +31,19 @@ import net.minecraft.world.entity.SpawnPlacements; import net.minecraft.world.entity.item.FallingBlockEntity; import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.inventory.CraftingContainer; -import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import net.minecraft.world.item.crafting.AbstractCookingRecipe; -import net.minecraft.world.item.crafting.CraftingRecipe; -import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.Level; import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.SpawnData; import net.minecraft.world.level.block.BeehiveBlock; import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.CampfireBlock; import net.minecraft.world.level.block.LayeredCauldronBlock; import net.minecraft.world.level.block.RedstoneTorchBlock; -import net.minecraft.world.level.block.TrapDoorBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.SpawnerBlockEntity; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.Half; import net.minecraft.world.level.gameevent.GameEvent; import net.minecraft.world.level.storage.loot.LootParams; import net.minecraft.world.level.storage.loot.LootTable; @@ -66,19 +53,10 @@ import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.NotNull; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Optional; public class AnvilEventListener { - private static final RegistryAccess ACCESS = new RegistryAccess.ImmutableRegistryAccess(List.of()); - private static final List PASS = List.of( - Items.IRON_TRAPDOOR, - Items.PRISMARINE - ); /** * 侦听铁砧落地事件 @@ -101,20 +79,9 @@ public void onLand(@NotNull AnvilFallOnLandEvent event) { state = level.getBlockState(belowPos); if (state.is(Blocks.STONECUTTER)) brokeBlock(level, belowPos.above(), event); AnvilCraftingContainer container = new AnvilCraftingContainer(level, pos, event.getEntity()); - Optional optional = server - .getRecipeManager() - .getAllRecipesFor(ModRecipeTypes.ANVIL_RECIPE) - .stream() - .filter(recipe -> recipe.matches(container, level)) - .max(Comparator.comparing(AnvilRecipe::getPredicatesSize)); - if (optional.isPresent()) { - anvilProcess(optional.get(), container, event); - return; - } - if (this.isHeating(level, pos) && this.craft(level, pos, this::heating, -1)) return; - if (this.isSmoking(level, pos) && this.craft(level, pos, this::smoking, -1)) return; - if (this.isCompress(level, pos) && this.craft(level, pos, this::compress, -1)) return; - if (this.isSmash(level, pos) && this.craft(level, pos, this::smash, 0)) return; + Optional optional = AnvilRecipeManager.getAnvilRecipeList().stream() + .filter(recipe -> recipe.matches(container, level)).findFirst(); + optional.ifPresent(anvilRecipe -> anvilProcess(anvilRecipe, container, event)); } private void hitBeeNest(Level level, BlockState state, BlockPos pos) { @@ -154,28 +121,6 @@ private void hitBeeNest(Level level, BlockState state, BlockPos pos) { } } - private List getItemStackForSpace(@NotNull Level level, @NotNull BlockPos pos) { - Map items = new HashMap<>(); - List entities = level.getEntitiesOfClass(ItemEntity.class, new AABB(pos)); - for (ItemEntity entity : entities) { - ItemStack item = entity.getItem(); - Optional optional = items.keySet() - .stream() - .filter(i -> ItemStack.isSameItemSameTags(i, item)) - .findFirst(); - ItemStack type; - type = optional.orElseGet(item::copy); - type.setCount(1); - items.put(type, items.getOrDefault(type, 0) + item.getCount()); - entity.remove(Entity.RemovalReason.DISCARDED); - } - return items.entrySet().stream().map(entry -> { - ItemStack stack = entry.getKey().copy(); - stack.setCount(entry.getValue()); - return stack; - }).toList(); - } - private void returnItems(@NotNull Level level, @NotNull BlockPos pos, @NotNull List items) { for (ItemStack item : items) { ItemStack type = item.copy(); @@ -194,213 +139,6 @@ private void returnItems(@NotNull Level level, @NotNull BlockPos pos, @NotNull L } } - private boolean craft(@NotNull Level level, @NotNull BlockPos pos, Crafting crafting, int inY) { - MinecraftServer server = level.getServer(); - if (server == null) return false; - BlockPos in = pos.offset(0, inY, 0); - List stacks = this.getItemStackForSpace(level, in); - List remainders = new ArrayList<>(); - List results = new ArrayList<>(); - int count = AnvilCraft.config.anvilEfficiency; - crafting.crafting(level, stacks, remainders, results, count); - this.returnItems(level, in, remainders); - this.returnItems(level, pos.below(), results); - return !results.isEmpty(); - } - - private boolean isHeating(@NotNull Level level, @NotNull BlockPos pos) { - BlockState state = level.getBlockState(pos.below()); - BlockState state1 = level.getBlockState(pos.below(2)); - return state.is(Blocks.CAULDRON) - && state1.is(ModBlocks.HEATER.get()) - && !state1.getValue(IPowerComponent.OVERLOAD); - } - - private boolean isSmoking(@NotNull Level level, @NotNull BlockPos pos) { - BlockState state = level.getBlockState(pos.below()); - BlockState state1 = level.getBlockState(pos.below(2)); - return state.is(Blocks.CAULDRON) - && state1.is(BlockTags.CAMPFIRES) - && state1.getValue(CampfireBlock.LIT); - } - - private boolean isCompress(@NotNull Level level, @NotNull BlockPos pos) { - BlockState state = level.getBlockState(pos.below()); - BlockState below = level.getBlockState(pos.below(2)); - return state.is(Blocks.CAULDRON) && !below.is(ModBlockTags.UNDER_CAULDRON); - } - - private boolean isSmash(@NotNull Level level, @NotNull BlockPos pos) { - BlockState state = level.getBlockState(pos.below()); - return state.is(Blocks.IRON_TRAPDOOR) - && !state.getValue(TrapDoorBlock.OPEN) - && state.getValue(TrapDoorBlock.HALF) == Half.TOP; - } - - private void compress( - @NotNull Level level, - @NotNull List stacks, - List remainders, - List results, - int count - ) { - MinecraftServer server = level.getServer(); - if (server == null) return; - for (ItemStack stack : stacks) { - if (count <= 0) { - remainders.add(stack); - continue; - } - ItemStack type = stack.copy(); - type.setCount(1); - int deplete = 9; - CraftingContainer container = SimpleCraftingContainer.create9x(type); - Optional optional = server.getRecipeManager() - .getRecipeFor(RecipeType.CRAFTING, container, level); - if (optional.isEmpty()) { - deplete = 4; - container = SimpleCraftingContainer.create4x(type); - optional = server.getRecipeManager() - .getRecipeFor(RecipeType.CRAFTING, container, level); - } - if (optional.isEmpty() || stack.getCount() < deplete) { - remainders.add(stack); - continue; - } - CraftingRecipe recipe = optional.get(); - ItemStack result = recipe.getResultItem(ACCESS).copy(); - if (PASS.stream().anyMatch(result::is)) { - remainders.add(stack); - continue; - } - int canCraft = stack.getCount() / deplete; - int size = Math.min(count, canCraft); - count -= size; - int resultCount = result.getCount(); - if (resultCount != 1) { - remainders.add(stack); - continue; - } - int remainder = stack.getCount() - size * deplete; - stack.setCount(remainder); - if (remainder != 0) remainders.add(stack); - resultCount *= size; - result.setCount(resultCount); - results.add(result); - results.addAll(recipe.getRemainingItems(container) - .stream() - .map(ItemStack::copy) - .peek(item -> item.setCount(item.getCount() * size)) - .toList() - ); - } - } - - private void smash( - @NotNull Level level, - @NotNull List stacks, - List remainders, - List results, - int count - ) { - MinecraftServer server = level.getServer(); - if (server == null) return; - for (ItemStack stack : stacks) { - if (count <= 0) { - remainders.add(stack); - continue; - } - ItemStack type = stack.copy(); - type.setCount(1); - CraftingContainer container = new SimpleCraftingContainer(type); - Optional optional = server.getRecipeManager() - .getRecipeFor(RecipeType.CRAFTING, container, level); - if (optional.isEmpty()) { - remainders.add(stack); - continue; - } - int size = Math.min(count, stack.getCount()); - count -= size; - CraftingRecipe recipe = optional.get(); - ItemStack result = recipe.getResultItem(ACCESS).copy(); - int resultCount = result.getCount(); - if (resultCount == 1) { - remainders.add(stack); - continue; - } - int remainder = stack.getCount() - size; - stack.setCount(remainder); - if (remainder != 0) remainders.add(stack); - resultCount *= size; - result.setCount(resultCount); - results.add(result); - results.addAll(recipe.getRemainingItems(container) - .stream() - .map(ItemStack::copy) - .peek(item -> item.setCount(item.getCount() * size)) - .toList() - ); - } - } - - private void heating( - @NotNull Level level, - @NotNull List stacks, - List remainders, - List results, - int count - ) { - this.cooking(level, stacks, remainders, results, RecipeType.BLASTING, count, 2); - } - - private void smoking( - @NotNull Level level, - @NotNull List stacks, - List remainders, - List results, - int count - ) { - this.cooking(level, stacks, remainders, results, RecipeType.SMOKING, count, 1); - } - - private void cooking( - @NotNull Level level, - @NotNull List stacks, - List remainders, - List results, - RecipeType recipeType, - int maxProcessCount, - int yield - ) { - MinecraftServer server = level.getServer(); - if (server == null) return; - for (ItemStack stack : stacks) { - if (maxProcessCount <= 0) { - remainders.add(stack); - continue; - } - ItemStack type = stack.copy(); - type.setCount(1); - SimpleContainer container = new SimpleContainer(type); - Optional optional = server.getRecipeManager() - .getRecipeFor(recipeType, container, level); - if (optional.isEmpty()) { - remainders.add(stack); - continue; - } - int size = Math.min(maxProcessCount, stack.getCount()); - maxProcessCount -= size; - int remainder = stack.getCount() - size; - stack.setCount(remainder); - if (remainder != 0) remainders.add(stack); - AbstractCookingRecipe recipe = optional.get(); - ItemStack result = recipe.getResultItem(ACCESS).copy(); - int resultCount = result.getCount() * size * yield; - result.setCount(resultCount); - results.add(result); - } - } - private void hitSpawner(Level level, BlockPos pos, float fallDistance) { if (level instanceof ServerLevel serverLevel) { RandomSource randomSource = serverLevel.getRandom(); @@ -665,14 +403,4 @@ private void dropItems(@NotNull List items, Level level, Vec3 pos) { } } - @FunctionalInterface - interface Crafting { - void crafting( - @NotNull Level level, - List stacks, - List remainders, - List results, - int count - ); - } } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/event/ServerEventListener.java b/common/src/main/java/dev/dubhe/anvilcraft/event/ServerEventListener.java index 95032cb07..1f736cba0 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/event/ServerEventListener.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/event/ServerEventListener.java @@ -4,6 +4,7 @@ import dev.dubhe.anvilcraft.api.event.server.ServerEndDataPackReloadEvent; import dev.dubhe.anvilcraft.api.event.server.ServerStartedEvent; import dev.dubhe.anvilcraft.api.hammer.HammerManager; +import dev.dubhe.anvilcraft.api.recipe.AnvilRecipeManager; import dev.dubhe.anvilcraft.init.ModHammerInits; import org.jetbrains.annotations.NotNull; @@ -17,11 +18,12 @@ public class ServerEventListener { public void onServerStarted(@NotNull ServerStartedEvent event) { ModHammerInits.init(); HammerManager.register(); + AnvilRecipeManager.updateRecipes(event.getServer()); } @SubscribeEvent public void onServerEndDataPackReload(@NotNull ServerEndDataPackReloadEvent event) { - + AnvilRecipeManager.updateRecipes(event.getServer()); } } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/init/ModItemTags.java b/common/src/main/java/dev/dubhe/anvilcraft/init/ModItemTags.java index c137bd01b..443c871cf 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/init/ModItemTags.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/init/ModItemTags.java @@ -83,6 +83,10 @@ public class ModItemTags { public static final TagKey GEM_BLOCKS = bind("gem_blocks"); public static final TagKey DEAD_TUBE = bind("dead_tube"); public static final TagKey VOID_RESISTANT = bind("void_resistant"); + public static final TagKey RAW_ORES = bindC("raw_ores"); + public static final TagKey FORGE_RAW_ORES = bindC("raw_ores"); + public static final TagKey ORES = bindC("ores"); + public static final TagKey FORGE_ORES = bindC("ores"); private static @NotNull TagKey bindC(String id) { diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/anvilcraft_dead_tube_to_lime_powder.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/anvilcraft_dead_tube_to_lime_powder.json new file mode 100644 index 000000000..f6bf510d3 --- /dev/null +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/anvilcraft_dead_tube_to_lime_powder.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dead_tube": { + "conditions": { + "items": [ + { + "tag": "anvilcraft:dead_tube" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:heating/anvilcraft_dead_tube_to_lime_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_dead_tube", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:heating/anvilcraft_dead_tube_to_lime_powder" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_2.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/c_stone_lime_powder_to_lava_cauldron.json similarity index 55% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_2.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/c_stone_lime_powder_to_lava_cauldron.json index a08212603..03a9d7041 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_2.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/c_stone_lime_powder_to_lava_cauldron.json @@ -1,6 +1,18 @@ { "parent": "minecraft:recipes/root", "criteria": { + "has_lime_powder": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:lime_powder" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_stone": { "conditions": { "items": [ @@ -13,7 +25,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lava_cauldron_2" + "recipe": "anvilcraft:heating/c_stone_lime_powder_to_lava_cauldron" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +33,13 @@ "requirements": [ [ "has_stone", + "has_lime_powder", "has_the_recipe" ] ], "rewards": { "recipes": [ - "anvilcraft:heating/lava_cauldron_2" + "anvilcraft:heating/c_stone_lime_powder_to_lava_cauldron" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder6.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/calcite_to_lime_powder.json similarity index 83% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder6.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/calcite_to_lime_powder.json index abe855a15..15b16740f 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder6.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/calcite_to_lime_powder.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lime_powder6" + "recipe": "anvilcraft:heating/calcite_to_lime_powder" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/lime_powder6" + "anvilcraft:heating/calcite_to_lime_powder" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/diamond.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/coal_block_to_diamond.json similarity index 83% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/diamond.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/coal_block_to_diamond.json index f146018f0..f35de32cc 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/diamond.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/coal_block_to_diamond.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/diamond" + "recipe": "anvilcraft:heating/coal_block_to_diamond" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/diamond" + "anvilcraft:heating/coal_block_to_diamond" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_1.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/cobblestone_lime_powder_to_lava_cauldron.json similarity index 57% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_1.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/cobblestone_lime_powder_to_lava_cauldron.json index ef2b63828..cf48e4d1c 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_1.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/cobblestone_lime_powder_to_lava_cauldron.json @@ -13,9 +13,21 @@ }, "trigger": "minecraft:inventory_changed" }, + "has_lime_powder": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:lime_powder" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lava_cauldron_1" + "recipe": "anvilcraft:heating/cobblestone_lime_powder_to_lava_cauldron" }, "trigger": "minecraft:recipe_unlocked" } @@ -23,12 +35,13 @@ "requirements": [ [ "has_cobblestone", + "has_lime_powder", "has_the_recipe" ] ], "rewards": { "recipes": [ - "anvilcraft:heating/lava_cauldron_1" + "anvilcraft:heating/cobblestone_lime_powder_to_lava_cauldron" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/_coal_block_to_diamond.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json similarity index 68% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/_coal_block_to_diamond.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json index b9b5ab092..cec86f6fa 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/_coal_block_to_diamond.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json @@ -1,12 +1,12 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_coal_block": { + "has_copper_block": { "conditions": { "items": [ { "items": [ - "minecraft:coal_block" + "minecraft:copper_block" ] } ] @@ -15,20 +15,20 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/_coal_block_to_diamond" + "recipe": "anvilcraft:heating/copper_block_to_raw_copper_block" }, "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ - "has_coal_block", + "has_copper_block", "has_the_recipe" ] ], "rewards": { "recipes": [ - "anvilcraft:heating/_coal_block_to_diamond" + "anvilcraft:heating/copper_block_to_raw_copper_block" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder1.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/crab_claw_to_lime_powder.json similarity index 82% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder1.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/crab_claw_to_lime_powder.json index 3f398be48..10c5950b0 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder1.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/crab_claw_to_lime_powder.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lime_powder1" + "recipe": "anvilcraft:heating/crab_claw_to_lime_powder" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/lime_powder1" + "anvilcraft:heating/crab_claw_to_lime_powder" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder5.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/dripstone_block_to_lime_powder.json similarity index 81% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder5.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/dripstone_block_to_lime_powder.json index aca1e7824..33a2188fc 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder5.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/dripstone_block_to_lime_powder.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lime_powder5" + "recipe": "anvilcraft:heating/dripstone_block_to_lime_powder" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/lime_powder5" + "anvilcraft:heating/dripstone_block_to_lime_powder" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_3.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/forge_stone_lime_powder_to_lava_cauldron.json similarity index 55% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_3.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/forge_stone_lime_powder_to_lava_cauldron.json index ea7e52bd5..dc44a6381 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_3.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/forge_stone_lime_powder_to_lava_cauldron.json @@ -1,6 +1,18 @@ { "parent": "minecraft:recipes/root", "criteria": { + "has_lime_powder": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:lime_powder" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_stone": { "conditions": { "items": [ @@ -13,7 +25,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lava_cauldron_3" + "recipe": "anvilcraft:heating/forge_stone_lime_powder_to_lava_cauldron" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +33,13 @@ "requirements": [ [ "has_stone", + "has_lime_powder", "has_the_recipe" ] ], "rewards": { "recipes": [ - "anvilcraft:heating/lava_cauldron_3" + "anvilcraft:heating/forge_stone_lime_powder_to_lava_cauldron" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/royal_steel_ingot.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json similarity index 72% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/royal_steel_ingot.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json index 6c7909de7..d85b1ec29 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/royal_steel_ingot.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json @@ -25,6 +25,16 @@ }, "trigger": "minecraft:inventory_changed" }, + "has_gems": { + "conditions": { + "items": [ + { + "tag": "anvilcraft:gems" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_iron_ingot": { "conditions": { "items": [ @@ -39,7 +49,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/royal_steel_ingot" + "recipe": "anvilcraft:heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot" }, "trigger": "minecraft:recipe_unlocked" } @@ -49,12 +59,13 @@ "has_iron_ingot", "has_diamond", "has_amethyst_shard", + "has_gems", "has_the_recipe" ] ], "rewards": { "recipes": [ - "anvilcraft:heating/royal_steel_ingot" + "anvilcraft:heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder2.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder2.json deleted file mode 100644 index 3551c7e7f..000000000 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder2.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heating/lime_powder2" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:heating/lime_powder2" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder3.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/nautilus_shell_to_lime_powder.json similarity index 82% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder3.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/nautilus_shell_to_lime_powder.json index 514a337ee..33e78e9d9 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder3.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/nautilus_shell_to_lime_powder.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lime_powder3" + "recipe": "anvilcraft:heating/nautilus_shell_to_lime_powder" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/lime_powder3" + "anvilcraft:heating/nautilus_shell_to_lime_powder" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder4.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/pointed_dripstone_to_lime_powder.json similarity index 81% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder4.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/pointed_dripstone_to_lime_powder.json index 43cef0be3..d9b759e86 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder4.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/pointed_dripstone_to_lime_powder.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lime_powder4" + "recipe": "anvilcraft:heating/pointed_dripstone_to_lime_powder" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/lime_powder4" + "anvilcraft:heating/pointed_dripstone_to_lime_powder" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/tempering_glass.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/quartz_sand_royal_steel_ingot_to_tempering_glass.json similarity index 83% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/tempering_glass.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/quartz_sand_royal_steel_ingot_to_tempering_glass.json index e940ae520..5a6800dc9 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/tempering_glass.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/quartz_sand_royal_steel_ingot_to_tempering_glass.json @@ -27,7 +27,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/tempering_glass" + "recipe": "anvilcraft:heating/quartz_sand_royal_steel_ingot_to_tempering_glass" }, "trigger": "minecraft:recipe_unlocked" } @@ -41,7 +41,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/tempering_glass" + "anvilcraft:heating/quartz_sand_royal_steel_ingot_to_tempering_glass" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/gold_block.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json similarity index 82% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/gold_block.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json index a7c0c2def..7cdc311c3 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/gold_block.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/gold_block" + "recipe": "anvilcraft:heating/raw_gold_block_to_gold_block" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/gold_block" + "anvilcraft:heating/raw_gold_block_to_gold_block" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_block.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json similarity index 82% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_block.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json index c79e5062d..2dcd33743 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_block.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/iron_block" + "recipe": "anvilcraft:heating/raw_iron_block_to_iron_block" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/iron_block" + "anvilcraft:heating/raw_iron_block_to_iron_block" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json new file mode 100644 index 000000000..78e342d94 --- /dev/null +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_capacitor": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:capacitor" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_raw_iron": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:raw_iron" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_raw_iron", + "has_capacitor", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/charcoal.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/wood_fiber_to_charcoal.json similarity index 83% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/charcoal.json rename to fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/wood_fiber_to_charcoal.json index 19cbdce55..0ee1d3bd5 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/charcoal.json +++ b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/wood_fiber_to_charcoal.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/charcoal" + "recipe": "anvilcraft:heating/wood_fiber_to_charcoal" }, "trigger": "minecraft:recipe_unlocked" }, @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/charcoal" + "anvilcraft:heating/wood_fiber_to_charcoal" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder2.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/anvilcraft_dead_tube_to_lime_powder.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder2.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/anvilcraft_dead_tube_to_lime_powder.json diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_2.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/c_stone_lime_powder_to_lava_cauldron.json similarity index 79% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_2.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/c_stone_lime_powder_to_lava_cauldron.json index fede2e28b..f59846ba0 100644 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_2.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/c_stone_lime_powder_to_lava_cauldron.json @@ -60,6 +60,22 @@ -1.0, 0.0 ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:lime_powder" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] } ] } \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder6.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/calcite_to_lime_powder.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder6.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/calcite_to_lime_powder.json diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/_coal_block_to_diamond.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/coal_block_to_diamond.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/_coal_block_to_diamond.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/coal_block_to_diamond.json diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_1.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/cobblestone_lime_powder_to_lava_cauldron.json similarity index 80% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_1.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/cobblestone_lime_powder_to_lava_cauldron.json index 9ae8c4f3c..96eb66f62 100644 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_1.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/cobblestone_lime_powder_to_lava_cauldron.json @@ -62,6 +62,22 @@ -1.0, 0.0 ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:lime_powder" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] } ] } \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/diamond.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json similarity index 86% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/diamond.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json index 32442bf42..be9c7a7b8 100644 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/diamond.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json @@ -1,7 +1,7 @@ { "type": "anvilcraft:anvil_processing", "icon": { - "item": "minecraft:diamond" + "item": "minecraft:raw_copper_block" }, "outcomes": [ { @@ -13,7 +13,7 @@ 0.0 ], "result": { - "item": "minecraft:diamond" + "item": "minecraft:raw_copper_block" } } ], @@ -51,10 +51,10 @@ "type": "has_item_ingredient", "match_item": { "count": { - "min": 16 + "min": 2 }, "items": [ - "minecraft:coal_block" + "minecraft:copper_block" ] }, "offset": [ diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder1.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/crab_claw_to_lime_powder.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder1.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/crab_claw_to_lime_powder.json diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder5.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/dripstone_block_to_lime_powder.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder5.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/dripstone_block_to_lime_powder.json diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_3.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/forge_stone_lime_powder_to_lava_cauldron.json similarity index 79% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_3.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/forge_stone_lime_powder_to_lava_cauldron.json index 241834cd7..ca4f3ad5d 100644 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_3.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/forge_stone_lime_powder_to_lava_cauldron.json @@ -60,6 +60,22 @@ -1.0, 0.0 ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:lime_powder" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] } ] } \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/royal_steel_ingot.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/royal_steel_ingot.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json index 75abfd42d..30c17a84a 100644 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json @@ -54,10 +54,10 @@ "min": 1 }, "items": [ - "anvilcraft:sapphire_block", - "anvilcraft:topaz_block", + "minecraft:emerald_block", "anvilcraft:ruby_block", - "minecraft:emerald_block" + "anvilcraft:sapphire_block", + "anvilcraft:topaz_block" ] }, "offset": [ diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder3.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/nautilus_shell_to_lime_powder.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder3.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/nautilus_shell_to_lime_powder.json diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder4.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/pointed_dripstone_to_lime_powder.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder4.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/pointed_dripstone_to_lime_powder.json diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/tempering_glass.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/quartz_sand_royal_steel_ingot_to_tempering_glass.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/tempering_glass.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/quartz_sand_royal_steel_ingot_to_tempering_glass.json diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/gold_block.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json similarity index 96% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/gold_block.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json index 16b472dd0..d57b9eedc 100644 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/gold_block.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json @@ -13,7 +13,6 @@ 0.0 ], "result": { - "count": 2, "item": "minecraft:gold_block" } } @@ -52,7 +51,7 @@ "type": "has_item_ingredient", "match_item": { "count": { - "min": 1 + "min": 2 }, "items": [ "minecraft:raw_gold_block" diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/iron_block.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json similarity index 96% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/iron_block.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json index 777bfafd7..141411dab 100644 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/iron_block.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json @@ -13,7 +13,6 @@ 0.0 ], "result": { - "count": 2, "item": "minecraft:iron_block" } } @@ -52,7 +51,7 @@ "type": "has_item_ingredient", "match_item": { "count": { - "min": 1 + "min": 2 }, "items": [ "minecraft:raw_iron_block" diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json similarity index 62% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json index 90906054e..bafd772a1 100644 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json @@ -1,7 +1,7 @@ { "type": "anvilcraft:anvil_processing", "icon": { - "item": "minecraft:copper_block" + "item": "anvilcraft:magnet_ingot" }, "outcomes": [ { @@ -13,8 +13,19 @@ 0.0 ], "result": { - "count": 2, - "item": "minecraft:copper_block" + "item": "anvilcraft:magnet_ingot" + } + }, + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + -1.0, + 0.0 + ], + "result": { + "item": "anvilcraft:capacitor_empty" } } ], @@ -55,7 +66,23 @@ "min": 1 }, "items": [ - "minecraft:raw_copper_block" + "minecraft:raw_iron" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:capacitor" ] }, "offset": [ diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/charcoal.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/wood_fiber_to_charcoal.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/charcoal.json rename to fabric/src/generated/resources/data/anvilcraft/recipes/heating/wood_fiber_to_charcoal.json diff --git a/fabric/src/generated/resources/data/c/tags/items/ores.json b/fabric/src/generated/resources/data/c/tags/items/ores.json new file mode 100644 index 000000000..de4115bb6 --- /dev/null +++ b/fabric/src/generated/resources/data/c/tags/items/ores.json @@ -0,0 +1,23 @@ +{ + "replace": false, + "values": [ + "anvilcraft:deepslate_zinc_ore", + "anvilcraft:deepslate_tin_ore", + "anvilcraft:deepslate_titanium_ore", + "anvilcraft:deepslate_tungsten_ore", + "anvilcraft:deepslate_lead_ore", + "anvilcraft:deepslate_silver_ore", + "anvilcraft:deepslate_uranium_ore", + "anvilcraft:void_stone", + "anvilcraft:earth_core_shard_ore", + "anvilcraft:deepslate_zinc_ore", + "anvilcraft:deepslate_tin_ore", + "anvilcraft:deepslate_titanium_ore", + "anvilcraft:deepslate_tungsten_ore", + "anvilcraft:deepslate_lead_ore", + "anvilcraft:deepslate_silver_ore", + "anvilcraft:deepslate_uranium_ore", + "anvilcraft:void_stone", + "anvilcraft:earth_core_shard_ore" + ] +} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/c/tags/items/raw_ores.json b/fabric/src/generated/resources/data/c/tags/items/raw_ores.json new file mode 100644 index 000000000..4bc9961b0 --- /dev/null +++ b/fabric/src/generated/resources/data/c/tags/items/raw_ores.json @@ -0,0 +1,19 @@ +{ + "replace": false, + "values": [ + "anvilcraft:raw_zinc", + "anvilcraft:raw_tin", + "anvilcraft:raw_titanium", + "anvilcraft:raw_tungsten", + "anvilcraft:raw_lead", + "anvilcraft:raw_silver", + "anvilcraft:raw_uranium", + "anvilcraft:raw_zinc", + "anvilcraft:raw_tin", + "anvilcraft:raw_titanium", + "anvilcraft:raw_tungsten", + "anvilcraft:raw_lead", + "anvilcraft:raw_silver", + "anvilcraft:raw_uranium" + ] +} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/forge/tags/items/ores.json b/fabric/src/generated/resources/data/forge/tags/items/ores.json new file mode 100644 index 000000000..de4115bb6 --- /dev/null +++ b/fabric/src/generated/resources/data/forge/tags/items/ores.json @@ -0,0 +1,23 @@ +{ + "replace": false, + "values": [ + "anvilcraft:deepslate_zinc_ore", + "anvilcraft:deepslate_tin_ore", + "anvilcraft:deepslate_titanium_ore", + "anvilcraft:deepslate_tungsten_ore", + "anvilcraft:deepslate_lead_ore", + "anvilcraft:deepslate_silver_ore", + "anvilcraft:deepslate_uranium_ore", + "anvilcraft:void_stone", + "anvilcraft:earth_core_shard_ore", + "anvilcraft:deepslate_zinc_ore", + "anvilcraft:deepslate_tin_ore", + "anvilcraft:deepslate_titanium_ore", + "anvilcraft:deepslate_tungsten_ore", + "anvilcraft:deepslate_lead_ore", + "anvilcraft:deepslate_silver_ore", + "anvilcraft:deepslate_uranium_ore", + "anvilcraft:void_stone", + "anvilcraft:earth_core_shard_ore" + ] +} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/forge/tags/items/raw_ores.json b/fabric/src/generated/resources/data/forge/tags/items/raw_ores.json new file mode 100644 index 000000000..4bc9961b0 --- /dev/null +++ b/fabric/src/generated/resources/data/forge/tags/items/raw_ores.json @@ -0,0 +1,19 @@ +{ + "replace": false, + "values": [ + "anvilcraft:raw_zinc", + "anvilcraft:raw_tin", + "anvilcraft:raw_titanium", + "anvilcraft:raw_tungsten", + "anvilcraft:raw_lead", + "anvilcraft:raw_silver", + "anvilcraft:raw_uranium", + "anvilcraft:raw_zinc", + "anvilcraft:raw_tin", + "anvilcraft:raw_titanium", + "anvilcraft:raw_tungsten", + "anvilcraft:raw_lead", + "anvilcraft:raw_silver", + "anvilcraft:raw_uranium" + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/assets/anvilcraft/lang/en_us.json b/forge/src/generated/resources/assets/anvilcraft/lang/en_us.json index 60bedc5f2..c2b83f87f 100644 --- a/forge/src/generated/resources/assets/anvilcraft/lang/en_us.json +++ b/forge/src/generated/resources/assets/anvilcraft/lang/en_us.json @@ -383,4 +383,4 @@ "tooltip.anvilcraft.item.transmission_pole": "Build a power grid with a transmission distance of 8", "tooltip.anvilcraft.jade.power_information": "Power Grid: %d/%d KW", "tooltip.anvilcraft.ruby_prism.power": "Laser level: %d" -} \ No newline at end of file +} diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/anvilcraft_dead_tube_to_lime_powder.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/anvilcraft_dead_tube_to_lime_powder.json new file mode 100644 index 000000000..f6bf510d3 --- /dev/null +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/anvilcraft_dead_tube_to_lime_powder.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dead_tube": { + "conditions": { + "items": [ + { + "tag": "anvilcraft:dead_tube" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:heating/anvilcraft_dead_tube_to_lime_powder" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_dead_tube", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:heating/anvilcraft_dead_tube_to_lime_powder" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_2.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/c_stone_lime_powder_to_lava_cauldron.json similarity index 55% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_2.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/c_stone_lime_powder_to_lava_cauldron.json index a08212603..03a9d7041 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_2.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/c_stone_lime_powder_to_lava_cauldron.json @@ -1,6 +1,18 @@ { "parent": "minecraft:recipes/root", "criteria": { + "has_lime_powder": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:lime_powder" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_stone": { "conditions": { "items": [ @@ -13,7 +25,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lava_cauldron_2" + "recipe": "anvilcraft:heating/c_stone_lime_powder_to_lava_cauldron" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +33,13 @@ "requirements": [ [ "has_stone", + "has_lime_powder", "has_the_recipe" ] ], "rewards": { "recipes": [ - "anvilcraft:heating/lava_cauldron_2" + "anvilcraft:heating/c_stone_lime_powder_to_lava_cauldron" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder6.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/calcite_to_lime_powder.json similarity index 83% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder6.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/calcite_to_lime_powder.json index abe855a15..15b16740f 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder6.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/calcite_to_lime_powder.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lime_powder6" + "recipe": "anvilcraft:heating/calcite_to_lime_powder" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/lime_powder6" + "anvilcraft:heating/calcite_to_lime_powder" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/diamond.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/coal_block_to_diamond.json similarity index 83% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/diamond.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/coal_block_to_diamond.json index f146018f0..f35de32cc 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/diamond.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/coal_block_to_diamond.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/diamond" + "recipe": "anvilcraft:heating/coal_block_to_diamond" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/diamond" + "anvilcraft:heating/coal_block_to_diamond" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_1.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/cobblestone_lime_powder_to_lava_cauldron.json similarity index 57% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_1.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/cobblestone_lime_powder_to_lava_cauldron.json index ef2b63828..cf48e4d1c 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_1.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/cobblestone_lime_powder_to_lava_cauldron.json @@ -13,9 +13,21 @@ }, "trigger": "minecraft:inventory_changed" }, + "has_lime_powder": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:lime_powder" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lava_cauldron_1" + "recipe": "anvilcraft:heating/cobblestone_lime_powder_to_lava_cauldron" }, "trigger": "minecraft:recipe_unlocked" } @@ -23,12 +35,13 @@ "requirements": [ [ "has_cobblestone", + "has_lime_powder", "has_the_recipe" ] ], "rewards": { "recipes": [ - "anvilcraft:heating/lava_cauldron_1" + "anvilcraft:heating/cobblestone_lime_powder_to_lava_cauldron" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block.json deleted file mode 100644 index 976f05ddd..000000000 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_raw_copper_block": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:raw_copper_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heating/copper_block" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_raw_copper_block", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:heating/copper_block" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json similarity index 68% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json index 976f05ddd..cec86f6fa 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json @@ -1,12 +1,12 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_raw_copper_block": { + "has_copper_block": { "conditions": { "items": [ { "items": [ - "minecraft:raw_copper_block" + "minecraft:copper_block" ] } ] @@ -15,20 +15,20 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/copper_block" + "recipe": "anvilcraft:heating/copper_block_to_raw_copper_block" }, "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ - "has_raw_copper_block", + "has_copper_block", "has_the_recipe" ] ], "rewards": { "recipes": [ - "anvilcraft:heating/copper_block" + "anvilcraft:heating/copper_block_to_raw_copper_block" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder1.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/crab_claw_to_lime_powder.json similarity index 82% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder1.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/crab_claw_to_lime_powder.json index 3f398be48..10c5950b0 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder1.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/crab_claw_to_lime_powder.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lime_powder1" + "recipe": "anvilcraft:heating/crab_claw_to_lime_powder" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/lime_powder1" + "anvilcraft:heating/crab_claw_to_lime_powder" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder5.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/dripstone_block_to_lime_powder.json similarity index 81% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder5.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/dripstone_block_to_lime_powder.json index aca1e7824..33a2188fc 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder5.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/dripstone_block_to_lime_powder.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lime_powder5" + "recipe": "anvilcraft:heating/dripstone_block_to_lime_powder" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/lime_powder5" + "anvilcraft:heating/dripstone_block_to_lime_powder" ] }, "sends_telemetry_event": false diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_3.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/forge_stone_lime_powder_to_lava_cauldron.json similarity index 55% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_3.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/forge_stone_lime_powder_to_lava_cauldron.json index ea7e52bd5..dc44a6381 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lava_cauldron_3.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/forge_stone_lime_powder_to_lava_cauldron.json @@ -1,6 +1,18 @@ { "parent": "minecraft:recipes/root", "criteria": { + "has_lime_powder": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:lime_powder" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_stone": { "conditions": { "items": [ @@ -13,7 +25,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lava_cauldron_3" + "recipe": "anvilcraft:heating/forge_stone_lime_powder_to_lava_cauldron" }, "trigger": "minecraft:recipe_unlocked" } @@ -21,12 +33,13 @@ "requirements": [ [ "has_stone", + "has_lime_powder", "has_the_recipe" ] ], "rewards": { "recipes": [ - "anvilcraft:heating/lava_cauldron_3" + "anvilcraft:heating/forge_stone_lime_powder_to_lava_cauldron" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/royal_steel_ingot.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json similarity index 72% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/royal_steel_ingot.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json index 6c7909de7..d85b1ec29 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/royal_steel_ingot.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json @@ -25,6 +25,16 @@ }, "trigger": "minecraft:inventory_changed" }, + "has_gems": { + "conditions": { + "items": [ + { + "tag": "anvilcraft:gems" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, "has_iron_ingot": { "conditions": { "items": [ @@ -39,7 +49,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/royal_steel_ingot" + "recipe": "anvilcraft:heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot" }, "trigger": "minecraft:recipe_unlocked" } @@ -49,12 +59,13 @@ "has_iron_ingot", "has_diamond", "has_amethyst_shard", + "has_gems", "has_the_recipe" ] ], "rewards": { "recipes": [ - "anvilcraft:heating/royal_steel_ingot" + "anvilcraft:heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder2.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder2.json deleted file mode 100644 index 3551c7e7f..000000000 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder2.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heating/lime_powder2" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:heating/lime_powder2" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder3.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/nautilus_shell_to_lime_powder.json similarity index 82% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder3.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/nautilus_shell_to_lime_powder.json index 514a337ee..33e78e9d9 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder3.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/nautilus_shell_to_lime_powder.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lime_powder3" + "recipe": "anvilcraft:heating/nautilus_shell_to_lime_powder" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/lime_powder3" + "anvilcraft:heating/nautilus_shell_to_lime_powder" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder4.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/pointed_dripstone_to_lime_powder.json similarity index 81% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder4.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/pointed_dripstone_to_lime_powder.json index 43cef0be3..d9b759e86 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/lime_powder4.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/pointed_dripstone_to_lime_powder.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/lime_powder4" + "recipe": "anvilcraft:heating/pointed_dripstone_to_lime_powder" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/lime_powder4" + "anvilcraft:heating/pointed_dripstone_to_lime_powder" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/tempering_glass.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/quartz_sand_royal_steel_ingot_to_tempering_glass.json similarity index 83% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/tempering_glass.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/quartz_sand_royal_steel_ingot_to_tempering_glass.json index e940ae520..5a6800dc9 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/tempering_glass.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/quartz_sand_royal_steel_ingot_to_tempering_glass.json @@ -27,7 +27,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/tempering_glass" + "recipe": "anvilcraft:heating/quartz_sand_royal_steel_ingot_to_tempering_glass" }, "trigger": "minecraft:recipe_unlocked" } @@ -41,7 +41,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/tempering_glass" + "anvilcraft:heating/quartz_sand_royal_steel_ingot_to_tempering_glass" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/gold_block.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json similarity index 82% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/gold_block.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json index a7c0c2def..7cdc311c3 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/gold_block.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/gold_block" + "recipe": "anvilcraft:heating/raw_gold_block_to_gold_block" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/gold_block" + "anvilcraft:heating/raw_gold_block_to_gold_block" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_block.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json similarity index 82% rename from forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_block.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json index c79e5062d..2dcd33743 100644 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/iron_block.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/iron_block" + "recipe": "anvilcraft:heating/raw_iron_block_to_iron_block" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/iron_block" + "anvilcraft:heating/raw_iron_block_to_iron_block" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json new file mode 100644 index 000000000..78e342d94 --- /dev/null +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_capacitor": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:capacitor" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_raw_iron": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:raw_iron" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_raw_iron", + "has_capacitor", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "anvilcraft:heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/charcoal.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/wood_fiber_to_charcoal.json similarity index 83% rename from fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/charcoal.json rename to forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/wood_fiber_to_charcoal.json index 19cbdce55..0ee1d3bd5 100644 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/charcoal.json +++ b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/wood_fiber_to_charcoal.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:heating/charcoal" + "recipe": "anvilcraft:heating/wood_fiber_to_charcoal" }, "trigger": "minecraft:recipe_unlocked" }, @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:heating/charcoal" + "anvilcraft:heating/wood_fiber_to_charcoal" ] }, "sends_telemetry_event": false diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder2.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/anvilcraft_dead_tube_to_lime_powder.json similarity index 100% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder2.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/anvilcraft_dead_tube_to_lime_powder.json diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_2.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/c_stone_lime_powder_to_lava_cauldron.json similarity index 79% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_2.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/c_stone_lime_powder_to_lava_cauldron.json index fede2e28b..f59846ba0 100644 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_2.json +++ b/forge/src/generated/resources/data/anvilcraft/recipes/heating/c_stone_lime_powder_to_lava_cauldron.json @@ -60,6 +60,22 @@ -1.0, 0.0 ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:lime_powder" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] } ] } \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder6.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/calcite_to_lime_powder.json similarity index 100% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder6.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/calcite_to_lime_powder.json diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/diamond.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/coal_block_to_diamond.json similarity index 100% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/diamond.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/coal_block_to_diamond.json diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_1.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/cobblestone_lime_powder_to_lava_cauldron.json similarity index 80% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_1.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/cobblestone_lime_powder_to_lava_cauldron.json index 9ae8c4f3c..96eb66f62 100644 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_1.json +++ b/forge/src/generated/resources/data/anvilcraft/recipes/heating/cobblestone_lime_powder_to_lava_cauldron.json @@ -62,6 +62,22 @@ -1.0, 0.0 ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:lime_powder" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] } ] } \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json new file mode 100644 index 000000000..be9c7a7b8 --- /dev/null +++ b/forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json @@ -0,0 +1,67 @@ +{ + "type": "anvilcraft:anvil_processing", + "icon": { + "item": "minecraft:raw_copper_block" + }, + "outcomes": [ + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + -1.0, + 0.0 + ], + "result": { + "item": "minecraft:raw_copper_block" + } + } + ], + "predicates": [ + { + "type": "has_block", + "match_block": { + "blocks": [ + "anvilcraft:heater" + ], + "state": { + "overload": "false" + } + }, + "offset": [ + 0.0, + -2.0, + 0.0 + ] + }, + { + "type": "has_block", + "match_block": { + "blocks": [ + "minecraft:cauldron" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 2 + }, + "items": [ + "minecraft:copper_block" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + } + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder1.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/crab_claw_to_lime_powder.json similarity index 100% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder1.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/crab_claw_to_lime_powder.json diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder5.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/dripstone_block_to_lime_powder.json similarity index 100% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder5.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/dripstone_block_to_lime_powder.json diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_3.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/forge_stone_lime_powder_to_lava_cauldron.json similarity index 79% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_3.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/forge_stone_lime_powder_to_lava_cauldron.json index 241834cd7..ca4f3ad5d 100644 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/lava_cauldron_3.json +++ b/forge/src/generated/resources/data/anvilcraft/recipes/heating/forge_stone_lime_powder_to_lava_cauldron.json @@ -60,6 +60,22 @@ -1.0, 0.0 ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:lime_powder" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] } ] } \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/royal_steel_ingot.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json similarity index 100% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/royal_steel_ingot.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/iron_ingot_diamond_amethyst_shard_anvilcraft_gems_to_royal_steel_ingot.json diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json index 75abfd42d..30c17a84a 100644 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json +++ b/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json @@ -54,10 +54,10 @@ "min": 1 }, "items": [ - "anvilcraft:sapphire_block", - "anvilcraft:topaz_block", + "minecraft:emerald_block", "anvilcraft:ruby_block", - "minecraft:emerald_block" + "anvilcraft:sapphire_block", + "anvilcraft:topaz_block" ] }, "offset": [ diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder3.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/nautilus_shell_to_lime_powder.json similarity index 100% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder3.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/nautilus_shell_to_lime_powder.json diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder4.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/pointed_dripstone_to_lime_powder.json similarity index 100% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/lime_powder4.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/pointed_dripstone_to_lime_powder.json diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/tempering_glass.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/quartz_sand_royal_steel_ingot_to_tempering_glass.json similarity index 100% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/tempering_glass.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/quartz_sand_royal_steel_ingot_to_tempering_glass.json diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/gold_block.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json similarity index 96% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/gold_block.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json index 16b472dd0..d57b9eedc 100644 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/gold_block.json +++ b/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json @@ -13,7 +13,6 @@ 0.0 ], "result": { - "count": 2, "item": "minecraft:gold_block" } } @@ -52,7 +51,7 @@ "type": "has_item_ingredient", "match_item": { "count": { - "min": 1 + "min": 2 }, "items": [ "minecraft:raw_gold_block" diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/iron_block.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json similarity index 96% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/iron_block.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json index 777bfafd7..141411dab 100644 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/iron_block.json +++ b/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json @@ -13,7 +13,6 @@ 0.0 ], "result": { - "count": 2, "item": "minecraft:iron_block" } } @@ -52,7 +51,7 @@ "type": "has_item_ingredient", "match_item": { "count": { - "min": 1 + "min": 2 }, "items": [ "minecraft:raw_iron_block" diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json similarity index 62% rename from fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json index 90906054e..bafd772a1 100644 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block.json +++ b/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_capacitor_to_magnet_ingot_capacitor_empty.json @@ -1,7 +1,7 @@ { "type": "anvilcraft:anvil_processing", "icon": { - "item": "minecraft:copper_block" + "item": "anvilcraft:magnet_ingot" }, "outcomes": [ { @@ -13,8 +13,19 @@ 0.0 ], "result": { - "count": 2, - "item": "minecraft:copper_block" + "item": "anvilcraft:magnet_ingot" + } + }, + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + -1.0, + 0.0 + ], + "result": { + "item": "anvilcraft:capacitor_empty" } } ], @@ -55,7 +66,23 @@ "min": 1 }, "items": [ - "minecraft:raw_copper_block" + "minecraft:raw_iron" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:capacitor" ] }, "offset": [ diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/charcoal.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/wood_fiber_to_charcoal.json similarity index 100% rename from forge/src/generated/resources/data/anvilcraft/recipes/heating/charcoal.json rename to forge/src/generated/resources/data/anvilcraft/recipes/heating/wood_fiber_to_charcoal.json diff --git a/forge/src/generated/resources/data/c/tags/items/ores.json b/forge/src/generated/resources/data/c/tags/items/ores.json new file mode 100644 index 000000000..de4115bb6 --- /dev/null +++ b/forge/src/generated/resources/data/c/tags/items/ores.json @@ -0,0 +1,23 @@ +{ + "replace": false, + "values": [ + "anvilcraft:deepslate_zinc_ore", + "anvilcraft:deepslate_tin_ore", + "anvilcraft:deepslate_titanium_ore", + "anvilcraft:deepslate_tungsten_ore", + "anvilcraft:deepslate_lead_ore", + "anvilcraft:deepslate_silver_ore", + "anvilcraft:deepslate_uranium_ore", + "anvilcraft:void_stone", + "anvilcraft:earth_core_shard_ore", + "anvilcraft:deepslate_zinc_ore", + "anvilcraft:deepslate_tin_ore", + "anvilcraft:deepslate_titanium_ore", + "anvilcraft:deepslate_tungsten_ore", + "anvilcraft:deepslate_lead_ore", + "anvilcraft:deepslate_silver_ore", + "anvilcraft:deepslate_uranium_ore", + "anvilcraft:void_stone", + "anvilcraft:earth_core_shard_ore" + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/c/tags/items/raw_ores.json b/forge/src/generated/resources/data/c/tags/items/raw_ores.json new file mode 100644 index 000000000..4bc9961b0 --- /dev/null +++ b/forge/src/generated/resources/data/c/tags/items/raw_ores.json @@ -0,0 +1,19 @@ +{ + "replace": false, + "values": [ + "anvilcraft:raw_zinc", + "anvilcraft:raw_tin", + "anvilcraft:raw_titanium", + "anvilcraft:raw_tungsten", + "anvilcraft:raw_lead", + "anvilcraft:raw_silver", + "anvilcraft:raw_uranium", + "anvilcraft:raw_zinc", + "anvilcraft:raw_tin", + "anvilcraft:raw_titanium", + "anvilcraft:raw_tungsten", + "anvilcraft:raw_lead", + "anvilcraft:raw_silver", + "anvilcraft:raw_uranium" + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/forge/tags/items/ores.json b/forge/src/generated/resources/data/forge/tags/items/ores.json new file mode 100644 index 000000000..de4115bb6 --- /dev/null +++ b/forge/src/generated/resources/data/forge/tags/items/ores.json @@ -0,0 +1,23 @@ +{ + "replace": false, + "values": [ + "anvilcraft:deepslate_zinc_ore", + "anvilcraft:deepslate_tin_ore", + "anvilcraft:deepslate_titanium_ore", + "anvilcraft:deepslate_tungsten_ore", + "anvilcraft:deepslate_lead_ore", + "anvilcraft:deepslate_silver_ore", + "anvilcraft:deepslate_uranium_ore", + "anvilcraft:void_stone", + "anvilcraft:earth_core_shard_ore", + "anvilcraft:deepslate_zinc_ore", + "anvilcraft:deepslate_tin_ore", + "anvilcraft:deepslate_titanium_ore", + "anvilcraft:deepslate_tungsten_ore", + "anvilcraft:deepslate_lead_ore", + "anvilcraft:deepslate_silver_ore", + "anvilcraft:deepslate_uranium_ore", + "anvilcraft:void_stone", + "anvilcraft:earth_core_shard_ore" + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/forge/tags/items/raw_ores.json b/forge/src/generated/resources/data/forge/tags/items/raw_ores.json new file mode 100644 index 000000000..4bc9961b0 --- /dev/null +++ b/forge/src/generated/resources/data/forge/tags/items/raw_ores.json @@ -0,0 +1,19 @@ +{ + "replace": false, + "values": [ + "anvilcraft:raw_zinc", + "anvilcraft:raw_tin", + "anvilcraft:raw_titanium", + "anvilcraft:raw_tungsten", + "anvilcraft:raw_lead", + "anvilcraft:raw_silver", + "anvilcraft:raw_uranium", + "anvilcraft:raw_zinc", + "anvilcraft:raw_tin", + "anvilcraft:raw_titanium", + "anvilcraft:raw_tungsten", + "anvilcraft:raw_lead", + "anvilcraft:raw_silver", + "anvilcraft:raw_uranium" + ] +} \ No newline at end of file From f5104695b85a9344df79a31ae91a610a5523629b Mon Sep 17 00:00:00 2001 From: dmzz-yyhyy Date: Sun, 9 Jun 2024 20:04:38 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E6=96=B9?= =?UTF-8?q?=E4=BC=98=E5=85=88=E7=BA=A7,=20=E7=83=B9=E9=A5=AA=E3=80=81?= =?UTF-8?q?=E7=86=94=E7=82=BC=E9=85=8D=E6=96=B9=E9=80=82=E9=85=8D=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recipe/SuperHeatingRecipesLoader.java | 3 - .../copper_block_to_raw_copper_block.json | 35 ---------- .../heating/raw_gold_block_to_gold_block.json | 35 ---------- .../heating/raw_iron_block_to_iron_block.json | 35 ---------- .../copper_block_to_raw_copper_block.json | 67 ------------------- .../recipes/heating/melt_gem_cauldron.json | 2 +- .../heating/raw_gold_block_to_gold_block.json | 67 ------------------- .../heating/raw_iron_block_to_iron_block.json | 67 ------------------- .../copper_block_to_raw_copper_block.json | 35 ---------- .../heating/raw_gold_block_to_gold_block.json | 35 ---------- .../heating/raw_iron_block_to_iron_block.json | 35 ---------- .../copper_block_to_raw_copper_block.json | 67 ------------------- .../recipes/heating/melt_gem_cauldron.json | 2 +- .../heating/raw_gold_block_to_gold_block.json | 67 ------------------- .../heating/raw_iron_block_to_iron_block.json | 67 ------------------- 15 files changed, 2 insertions(+), 617 deletions(-) delete mode 100644 fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json delete mode 100644 fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json delete mode 100644 fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json delete mode 100644 fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json delete mode 100644 fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json delete mode 100644 fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json delete mode 100644 forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json delete mode 100644 forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json delete mode 100644 forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json delete mode 100644 forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json delete mode 100644 forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json delete mode 100644 forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json diff --git a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java index 32d444956..c36fbba1e 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/data/generator/recipe/SuperHeatingRecipesLoader.java @@ -49,9 +49,6 @@ public static void init(RegistrateRecipeProvider provider) { RecipeItem.of(ModItems.LIME_POWDER) }, Blocks.LAVA_CAULDRON); - superHeating(RecipeItem.of(Items.RAW_IRON_BLOCK, 2), RecipeItem.of(Items.IRON_BLOCK)); - superHeating(RecipeItem.of(Items.RAW_GOLD_BLOCK, 2), RecipeItem.of(Items.GOLD_BLOCK)); - superHeating(RecipeItem.of(Items.COPPER_BLOCK, 2), RecipeItem.of(Items.RAW_COPPER_BLOCK)); superHeating( new RecipeItem[] { RecipeItem.of(Items.IRON_INGOT, 3), diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json deleted file mode 100644 index cec86f6fa..000000000 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_copper_block": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:copper_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heating/copper_block_to_raw_copper_block" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_copper_block", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:heating/copper_block_to_raw_copper_block" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json deleted file mode 100644 index 7cdc311c3..000000000 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_raw_gold_block": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:raw_gold_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heating/raw_gold_block_to_gold_block" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_raw_gold_block", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:heating/raw_gold_block_to_gold_block" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json b/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json deleted file mode 100644 index 2dcd33743..000000000 --- a/fabric/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_raw_iron_block": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:raw_iron_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heating/raw_iron_block_to_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_raw_iron_block", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:heating/raw_iron_block_to_iron_block" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json deleted file mode 100644 index be9c7a7b8..000000000 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "type": "anvilcraft:anvil_processing", - "icon": { - "item": "minecraft:raw_copper_block" - }, - "outcomes": [ - { - "type": "spawn_item", - "chance": 1.0, - "offset": [ - 0.0, - -1.0, - 0.0 - ], - "result": { - "item": "minecraft:raw_copper_block" - } - } - ], - "predicates": [ - { - "type": "has_block", - "match_block": { - "blocks": [ - "anvilcraft:heater" - ], - "state": { - "overload": "false" - } - }, - "offset": [ - 0.0, - -2.0, - 0.0 - ] - }, - { - "type": "has_block", - "match_block": { - "blocks": [ - "minecraft:cauldron" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - }, - { - "type": "has_item_ingredient", - "match_item": { - "count": { - "min": 2 - }, - "items": [ - "minecraft:copper_block" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - } - ] -} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json index 30c17a84a..8cfb78a62 100644 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json @@ -54,8 +54,8 @@ "min": 1 }, "items": [ - "minecraft:emerald_block", "anvilcraft:ruby_block", + "minecraft:emerald_block", "anvilcraft:sapphire_block", "anvilcraft:topaz_block" ] diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json deleted file mode 100644 index d57b9eedc..000000000 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "type": "anvilcraft:anvil_processing", - "icon": { - "item": "minecraft:gold_block" - }, - "outcomes": [ - { - "type": "spawn_item", - "chance": 1.0, - "offset": [ - 0.0, - -1.0, - 0.0 - ], - "result": { - "item": "minecraft:gold_block" - } - } - ], - "predicates": [ - { - "type": "has_block", - "match_block": { - "blocks": [ - "anvilcraft:heater" - ], - "state": { - "overload": "false" - } - }, - "offset": [ - 0.0, - -2.0, - 0.0 - ] - }, - { - "type": "has_block", - "match_block": { - "blocks": [ - "minecraft:cauldron" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - }, - { - "type": "has_item_ingredient", - "match_item": { - "count": { - "min": 2 - }, - "items": [ - "minecraft:raw_gold_block" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - } - ] -} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json deleted file mode 100644 index 141411dab..000000000 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "type": "anvilcraft:anvil_processing", - "icon": { - "item": "minecraft:iron_block" - }, - "outcomes": [ - { - "type": "spawn_item", - "chance": 1.0, - "offset": [ - 0.0, - -1.0, - 0.0 - ], - "result": { - "item": "minecraft:iron_block" - } - } - ], - "predicates": [ - { - "type": "has_block", - "match_block": { - "blocks": [ - "anvilcraft:heater" - ], - "state": { - "overload": "false" - } - }, - "offset": [ - 0.0, - -2.0, - 0.0 - ] - }, - { - "type": "has_block", - "match_block": { - "blocks": [ - "minecraft:cauldron" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - }, - { - "type": "has_item_ingredient", - "match_item": { - "count": { - "min": 2 - }, - "items": [ - "minecraft:raw_iron_block" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - } - ] -} \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json deleted file mode 100644 index cec86f6fa..000000000 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/copper_block_to_raw_copper_block.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_copper_block": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:copper_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heating/copper_block_to_raw_copper_block" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_copper_block", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:heating/copper_block_to_raw_copper_block" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json deleted file mode 100644 index 7cdc311c3..000000000 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_gold_block_to_gold_block.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_raw_gold_block": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:raw_gold_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heating/raw_gold_block_to_gold_block" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_raw_gold_block", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:heating/raw_gold_block_to_gold_block" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json b/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json deleted file mode 100644 index 2dcd33743..000000000 --- a/forge/src/generated/resources/data/anvilcraft/advancements/recipes/misc/heating/raw_iron_block_to_iron_block.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_raw_iron_block": { - "conditions": { - "items": [ - { - "items": [ - "minecraft:raw_iron_block" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:heating/raw_iron_block_to_iron_block" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_raw_iron_block", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "anvilcraft:heating/raw_iron_block_to_iron_block" - ] - }, - "sends_telemetry_event": false -} \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json deleted file mode 100644 index be9c7a7b8..000000000 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/copper_block_to_raw_copper_block.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "type": "anvilcraft:anvil_processing", - "icon": { - "item": "minecraft:raw_copper_block" - }, - "outcomes": [ - { - "type": "spawn_item", - "chance": 1.0, - "offset": [ - 0.0, - -1.0, - 0.0 - ], - "result": { - "item": "minecraft:raw_copper_block" - } - } - ], - "predicates": [ - { - "type": "has_block", - "match_block": { - "blocks": [ - "anvilcraft:heater" - ], - "state": { - "overload": "false" - } - }, - "offset": [ - 0.0, - -2.0, - 0.0 - ] - }, - { - "type": "has_block", - "match_block": { - "blocks": [ - "minecraft:cauldron" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - }, - { - "type": "has_item_ingredient", - "match_item": { - "count": { - "min": 2 - }, - "items": [ - "minecraft:copper_block" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - } - ] -} \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json index 30c17a84a..8cfb78a62 100644 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json +++ b/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json @@ -54,8 +54,8 @@ "min": 1 }, "items": [ - "minecraft:emerald_block", "anvilcraft:ruby_block", + "minecraft:emerald_block", "anvilcraft:sapphire_block", "anvilcraft:topaz_block" ] diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json deleted file mode 100644 index d57b9eedc..000000000 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_gold_block_to_gold_block.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "type": "anvilcraft:anvil_processing", - "icon": { - "item": "minecraft:gold_block" - }, - "outcomes": [ - { - "type": "spawn_item", - "chance": 1.0, - "offset": [ - 0.0, - -1.0, - 0.0 - ], - "result": { - "item": "minecraft:gold_block" - } - } - ], - "predicates": [ - { - "type": "has_block", - "match_block": { - "blocks": [ - "anvilcraft:heater" - ], - "state": { - "overload": "false" - } - }, - "offset": [ - 0.0, - -2.0, - 0.0 - ] - }, - { - "type": "has_block", - "match_block": { - "blocks": [ - "minecraft:cauldron" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - }, - { - "type": "has_item_ingredient", - "match_item": { - "count": { - "min": 2 - }, - "items": [ - "minecraft:raw_gold_block" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - } - ] -} \ No newline at end of file diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json deleted file mode 100644 index 141411dab..000000000 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/raw_iron_block_to_iron_block.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "type": "anvilcraft:anvil_processing", - "icon": { - "item": "minecraft:iron_block" - }, - "outcomes": [ - { - "type": "spawn_item", - "chance": 1.0, - "offset": [ - 0.0, - -1.0, - 0.0 - ], - "result": { - "item": "minecraft:iron_block" - } - } - ], - "predicates": [ - { - "type": "has_block", - "match_block": { - "blocks": [ - "anvilcraft:heater" - ], - "state": { - "overload": "false" - } - }, - "offset": [ - 0.0, - -2.0, - 0.0 - ] - }, - { - "type": "has_block", - "match_block": { - "blocks": [ - "minecraft:cauldron" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - }, - { - "type": "has_item_ingredient", - "match_item": { - "count": { - "min": 2 - }, - "items": [ - "minecraft:raw_iron_block" - ] - }, - "offset": [ - 0.0, - -1.0, - 0.0 - ] - } - ] -} \ No newline at end of file From 42e56dc7963aa76ab8eec6d55e18672b5a1a943c Mon Sep 17 00:00:00 2001 From: dmzz-yyhyy Date: Sun, 9 Jun 2024 21:28:20 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dforge=20tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/dev/dubhe/anvilcraft/init/ModItemTags.java | 4 ++-- .../recipes/heating/melt_gem_cauldron.json | 6 +++--- .../generated/resources/data/c/tags/items/ores.json | 9 --------- .../resources/data/c/tags/items/raw_ores.json | 7 ------- .../resources/data/forge/tags/items/ores.json | 9 --------- .../data/forge/tags/items/raw_materials.json | 12 ++++++++++++ .../resources/data/forge/tags/items/raw_ores.json | 7 ------- .../recipes/heating/melt_gem_cauldron.json | 6 +++--- .../generated/resources/data/c/tags/items/ores.json | 9 --------- .../resources/data/c/tags/items/raw_ores.json | 7 ------- .../resources/data/forge/tags/items/ores.json | 9 --------- .../data/forge/tags/items/raw_materials.json | 12 ++++++++++++ .../resources/data/forge/tags/items/raw_ores.json | 7 ------- 13 files changed, 32 insertions(+), 72 deletions(-) create mode 100644 fabric/src/generated/resources/data/forge/tags/items/raw_materials.json create mode 100644 forge/src/generated/resources/data/forge/tags/items/raw_materials.json diff --git a/common/src/main/java/dev/dubhe/anvilcraft/init/ModItemTags.java b/common/src/main/java/dev/dubhe/anvilcraft/init/ModItemTags.java index 443c871cf..5fbc7c3a6 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/init/ModItemTags.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/init/ModItemTags.java @@ -84,9 +84,9 @@ public class ModItemTags { public static final TagKey DEAD_TUBE = bind("dead_tube"); public static final TagKey VOID_RESISTANT = bind("void_resistant"); public static final TagKey RAW_ORES = bindC("raw_ores"); - public static final TagKey FORGE_RAW_ORES = bindC("raw_ores"); + public static final TagKey FORGE_RAW_ORES = bindForge("raw_materials"); public static final TagKey ORES = bindC("ores"); - public static final TagKey FORGE_ORES = bindC("ores"); + public static final TagKey FORGE_ORES = bindForge("ores"); private static @NotNull TagKey bindC(String id) { diff --git a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json index 8cfb78a62..8b7b330f4 100644 --- a/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json +++ b/fabric/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json @@ -54,10 +54,10 @@ "min": 1 }, "items": [ - "anvilcraft:ruby_block", "minecraft:emerald_block", - "anvilcraft:sapphire_block", - "anvilcraft:topaz_block" + "anvilcraft:ruby_block", + "anvilcraft:topaz_block", + "anvilcraft:sapphire_block" ] }, "offset": [ diff --git a/fabric/src/generated/resources/data/c/tags/items/ores.json b/fabric/src/generated/resources/data/c/tags/items/ores.json index de4115bb6..622594d1b 100644 --- a/fabric/src/generated/resources/data/c/tags/items/ores.json +++ b/fabric/src/generated/resources/data/c/tags/items/ores.json @@ -1,15 +1,6 @@ { "replace": false, "values": [ - "anvilcraft:deepslate_zinc_ore", - "anvilcraft:deepslate_tin_ore", - "anvilcraft:deepslate_titanium_ore", - "anvilcraft:deepslate_tungsten_ore", - "anvilcraft:deepslate_lead_ore", - "anvilcraft:deepslate_silver_ore", - "anvilcraft:deepslate_uranium_ore", - "anvilcraft:void_stone", - "anvilcraft:earth_core_shard_ore", "anvilcraft:deepslate_zinc_ore", "anvilcraft:deepslate_tin_ore", "anvilcraft:deepslate_titanium_ore", diff --git a/fabric/src/generated/resources/data/c/tags/items/raw_ores.json b/fabric/src/generated/resources/data/c/tags/items/raw_ores.json index 4bc9961b0..ae0b090b8 100644 --- a/fabric/src/generated/resources/data/c/tags/items/raw_ores.json +++ b/fabric/src/generated/resources/data/c/tags/items/raw_ores.json @@ -1,13 +1,6 @@ { "replace": false, "values": [ - "anvilcraft:raw_zinc", - "anvilcraft:raw_tin", - "anvilcraft:raw_titanium", - "anvilcraft:raw_tungsten", - "anvilcraft:raw_lead", - "anvilcraft:raw_silver", - "anvilcraft:raw_uranium", "anvilcraft:raw_zinc", "anvilcraft:raw_tin", "anvilcraft:raw_titanium", diff --git a/fabric/src/generated/resources/data/forge/tags/items/ores.json b/fabric/src/generated/resources/data/forge/tags/items/ores.json index de4115bb6..622594d1b 100644 --- a/fabric/src/generated/resources/data/forge/tags/items/ores.json +++ b/fabric/src/generated/resources/data/forge/tags/items/ores.json @@ -1,15 +1,6 @@ { "replace": false, "values": [ - "anvilcraft:deepslate_zinc_ore", - "anvilcraft:deepslate_tin_ore", - "anvilcraft:deepslate_titanium_ore", - "anvilcraft:deepslate_tungsten_ore", - "anvilcraft:deepslate_lead_ore", - "anvilcraft:deepslate_silver_ore", - "anvilcraft:deepslate_uranium_ore", - "anvilcraft:void_stone", - "anvilcraft:earth_core_shard_ore", "anvilcraft:deepslate_zinc_ore", "anvilcraft:deepslate_tin_ore", "anvilcraft:deepslate_titanium_ore", diff --git a/fabric/src/generated/resources/data/forge/tags/items/raw_materials.json b/fabric/src/generated/resources/data/forge/tags/items/raw_materials.json new file mode 100644 index 000000000..ae0b090b8 --- /dev/null +++ b/fabric/src/generated/resources/data/forge/tags/items/raw_materials.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "anvilcraft:raw_zinc", + "anvilcraft:raw_tin", + "anvilcraft:raw_titanium", + "anvilcraft:raw_tungsten", + "anvilcraft:raw_lead", + "anvilcraft:raw_silver", + "anvilcraft:raw_uranium" + ] +} \ No newline at end of file diff --git a/fabric/src/generated/resources/data/forge/tags/items/raw_ores.json b/fabric/src/generated/resources/data/forge/tags/items/raw_ores.json index 4bc9961b0..ae0b090b8 100644 --- a/fabric/src/generated/resources/data/forge/tags/items/raw_ores.json +++ b/fabric/src/generated/resources/data/forge/tags/items/raw_ores.json @@ -1,13 +1,6 @@ { "replace": false, "values": [ - "anvilcraft:raw_zinc", - "anvilcraft:raw_tin", - "anvilcraft:raw_titanium", - "anvilcraft:raw_tungsten", - "anvilcraft:raw_lead", - "anvilcraft:raw_silver", - "anvilcraft:raw_uranium", "anvilcraft:raw_zinc", "anvilcraft:raw_tin", "anvilcraft:raw_titanium", diff --git a/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json b/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json index 8cfb78a62..8b7b330f4 100644 --- a/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json +++ b/forge/src/generated/resources/data/anvilcraft/recipes/heating/melt_gem_cauldron.json @@ -54,10 +54,10 @@ "min": 1 }, "items": [ - "anvilcraft:ruby_block", "minecraft:emerald_block", - "anvilcraft:sapphire_block", - "anvilcraft:topaz_block" + "anvilcraft:ruby_block", + "anvilcraft:topaz_block", + "anvilcraft:sapphire_block" ] }, "offset": [ diff --git a/forge/src/generated/resources/data/c/tags/items/ores.json b/forge/src/generated/resources/data/c/tags/items/ores.json index de4115bb6..622594d1b 100644 --- a/forge/src/generated/resources/data/c/tags/items/ores.json +++ b/forge/src/generated/resources/data/c/tags/items/ores.json @@ -1,15 +1,6 @@ { "replace": false, "values": [ - "anvilcraft:deepslate_zinc_ore", - "anvilcraft:deepslate_tin_ore", - "anvilcraft:deepslate_titanium_ore", - "anvilcraft:deepslate_tungsten_ore", - "anvilcraft:deepslate_lead_ore", - "anvilcraft:deepslate_silver_ore", - "anvilcraft:deepslate_uranium_ore", - "anvilcraft:void_stone", - "anvilcraft:earth_core_shard_ore", "anvilcraft:deepslate_zinc_ore", "anvilcraft:deepslate_tin_ore", "anvilcraft:deepslate_titanium_ore", diff --git a/forge/src/generated/resources/data/c/tags/items/raw_ores.json b/forge/src/generated/resources/data/c/tags/items/raw_ores.json index 4bc9961b0..ae0b090b8 100644 --- a/forge/src/generated/resources/data/c/tags/items/raw_ores.json +++ b/forge/src/generated/resources/data/c/tags/items/raw_ores.json @@ -1,13 +1,6 @@ { "replace": false, "values": [ - "anvilcraft:raw_zinc", - "anvilcraft:raw_tin", - "anvilcraft:raw_titanium", - "anvilcraft:raw_tungsten", - "anvilcraft:raw_lead", - "anvilcraft:raw_silver", - "anvilcraft:raw_uranium", "anvilcraft:raw_zinc", "anvilcraft:raw_tin", "anvilcraft:raw_titanium", diff --git a/forge/src/generated/resources/data/forge/tags/items/ores.json b/forge/src/generated/resources/data/forge/tags/items/ores.json index de4115bb6..622594d1b 100644 --- a/forge/src/generated/resources/data/forge/tags/items/ores.json +++ b/forge/src/generated/resources/data/forge/tags/items/ores.json @@ -1,15 +1,6 @@ { "replace": false, "values": [ - "anvilcraft:deepslate_zinc_ore", - "anvilcraft:deepslate_tin_ore", - "anvilcraft:deepslate_titanium_ore", - "anvilcraft:deepslate_tungsten_ore", - "anvilcraft:deepslate_lead_ore", - "anvilcraft:deepslate_silver_ore", - "anvilcraft:deepslate_uranium_ore", - "anvilcraft:void_stone", - "anvilcraft:earth_core_shard_ore", "anvilcraft:deepslate_zinc_ore", "anvilcraft:deepslate_tin_ore", "anvilcraft:deepslate_titanium_ore", diff --git a/forge/src/generated/resources/data/forge/tags/items/raw_materials.json b/forge/src/generated/resources/data/forge/tags/items/raw_materials.json new file mode 100644 index 000000000..ae0b090b8 --- /dev/null +++ b/forge/src/generated/resources/data/forge/tags/items/raw_materials.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "anvilcraft:raw_zinc", + "anvilcraft:raw_tin", + "anvilcraft:raw_titanium", + "anvilcraft:raw_tungsten", + "anvilcraft:raw_lead", + "anvilcraft:raw_silver", + "anvilcraft:raw_uranium" + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/forge/tags/items/raw_ores.json b/forge/src/generated/resources/data/forge/tags/items/raw_ores.json index 4bc9961b0..ae0b090b8 100644 --- a/forge/src/generated/resources/data/forge/tags/items/raw_ores.json +++ b/forge/src/generated/resources/data/forge/tags/items/raw_ores.json @@ -1,13 +1,6 @@ { "replace": false, "values": [ - "anvilcraft:raw_zinc", - "anvilcraft:raw_tin", - "anvilcraft:raw_titanium", - "anvilcraft:raw_tungsten", - "anvilcraft:raw_lead", - "anvilcraft:raw_silver", - "anvilcraft:raw_uranium", "anvilcraft:raw_zinc", "anvilcraft:raw_tin", "anvilcraft:raw_titanium",