From 80a4ff83190f076f0d8ab58d56c68aa46c4f7ef0 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 2 Aug 2022 11:52:46 +0200 Subject: [PATCH] [Feature] BCLRecipeBuilder --- .../WoodenComplexMaterial.java | 268 +++++++++--------- .../items/complex/EquipmentDescription.java | 6 +- .../betterx/bclib/recipes/AlloyingRecipe.java | 43 +-- .../betterx/bclib/recipes/AnvilRecipe.java | 4 +- .../bclib/recipes/BCLRecipeBuilder.java | 36 +++ .../bclib/recipes/BlastFurnaceRecipe.java | 4 +- .../bclib/recipes/CraftingRecipes.java | 132 ++++----- .../betterx/bclib/recipes/FurnaceRecipe.java | 40 ++- .../org/betterx/bclib/recipes/GridRecipe.java | 13 +- .../betterx/bclib/recipes/SmelterRecipe.java | 31 -- .../bclib/recipes/SmithingTableRecipe.java | 5 +- .../bclib/recipes/StoneCutterRecipe.java | 6 +- 12 files changed, 308 insertions(+), 280 deletions(-) create mode 100644 src/main/java/org/betterx/bclib/recipes/BCLRecipeBuilder.java delete mode 100644 src/main/java/org/betterx/bclib/recipes/SmelterRecipe.java diff --git a/src/main/java/org/betterx/bclib/complexmaterials/WoodenComplexMaterial.java b/src/main/java/org/betterx/bclib/complexmaterials/WoodenComplexMaterial.java index 5c1b4eff..0eceebdd 100644 --- a/src/main/java/org/betterx/bclib/complexmaterials/WoodenComplexMaterial.java +++ b/src/main/java/org/betterx/bclib/complexmaterials/WoodenComplexMaterial.java @@ -4,7 +4,7 @@ import org.betterx.bclib.BCLib; import org.betterx.bclib.blocks.*; import org.betterx.bclib.complexmaterials.entry.BlockEntry; import org.betterx.bclib.complexmaterials.entry.RecipeEntry; -import org.betterx.bclib.recipes.GridRecipe; +import org.betterx.bclib.recipes.BCLRecipeBuilder; import org.betterx.worlds.together.tag.v3.CommonBlockTags; import org.betterx.worlds.together.tag.v3.CommonItemTags; import org.betterx.worlds.together.tag.v3.CommonPoiTags; @@ -257,177 +257,177 @@ public class WoodenComplexMaterial extends ComplexMaterial { Block bark_stripped = getBlock(BLOCK_STRIPPED_BARK); Block log = getBlock(BLOCK_LOG); Block bark = getBlock(BLOCK_BARK); - GridRecipe.make(id, planks) - .checkConfig(config) - .setOutputCount(4) - .setList("#") - .addMaterial('#', log, bark, log_stripped, bark_stripped) - .setGroup(receipGroupPrefix + "_planks") - .build(); + BCLRecipeBuilder.crafting(id, planks) + .checkConfig(config) + .setOutputCount(4) + .setList("#") + .addMaterial('#', log, bark, log_stripped, bark_stripped) + .setGroup(receipGroupPrefix + "_planks") + .build(); })); addRecipeEntry(new RecipeEntry("stairs", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_STAIRS)) - .checkConfig(config) - .setOutputCount(4) - .setShape("# ", "## ", "###") - .addMaterial('#', planks) - .setGroup(receipGroupPrefix + "_planks_stairs") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_STAIRS)) + .checkConfig(config) + .setOutputCount(4) + .setShape("# ", "## ", "###") + .addMaterial('#', planks) + .setGroup(receipGroupPrefix + "_planks_stairs") + .build(); })); addRecipeEntry(new RecipeEntry("slab", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_SLAB)) - .checkConfig(config) - .setOutputCount(6) - .setShape("###") - .addMaterial('#', planks) - .setGroup(receipGroupPrefix + "_planks_slabs") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_SLAB)) + .checkConfig(config) + .setOutputCount(6) + .setShape("###") + .addMaterial('#', planks) + .setGroup(receipGroupPrefix + "_planks_slabs") + .build(); })); addRecipeEntry(new RecipeEntry("fence", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_FENCE)) - .checkConfig(config) - .setOutputCount(3) - .setShape("#I#", "#I#") - .addMaterial('#', planks) - .addMaterial('I', Items.STICK) - .setGroup(receipGroupPrefix + "_planks_fences") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_FENCE)) + .checkConfig(config) + .setOutputCount(3) + .setShape("#I#", "#I#") + .addMaterial('#', planks) + .addMaterial('I', Items.STICK) + .setGroup(receipGroupPrefix + "_planks_fences") + .build(); })); addRecipeEntry(new RecipeEntry("gate", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_GATE)) - .checkConfig(config) - .setShape("I#I", "I#I") - .addMaterial('#', planks) - .addMaterial('I', Items.STICK) - .setGroup(receipGroupPrefix + "_planks_gates") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_GATE)) + .checkConfig(config) + .setShape("I#I", "I#I") + .addMaterial('#', planks) + .addMaterial('I', Items.STICK) + .setGroup(receipGroupPrefix + "_planks_gates") + .build(); })); addRecipeEntry(new RecipeEntry("button", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_BUTTON)) - .checkConfig(config) - .setList("#") - .addMaterial('#', planks) - .setGroup(receipGroupPrefix + "_planks_buttons") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_BUTTON)) + .checkConfig(config) + .setList("#") + .addMaterial('#', planks) + .setGroup(receipGroupPrefix + "_planks_buttons") + .build(); })); addRecipeEntry(new RecipeEntry("pressure_plate", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_PRESSURE_PLATE)) - .checkConfig(config) - .setShape("##") - .addMaterial('#', planks) - .setGroup(receipGroupPrefix + "_planks_plates") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_PRESSURE_PLATE)) + .checkConfig(config) + .setShape("##") + .addMaterial('#', planks) + .setGroup(receipGroupPrefix + "_planks_plates") + .build(); })); addRecipeEntry(new RecipeEntry("trapdoor", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_TRAPDOOR)) - .checkConfig(config) - .setOutputCount(2) - .setShape("###", "###") - .addMaterial('#', planks) - .setGroup(receipGroupPrefix + "_trapdoors") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_TRAPDOOR)) + .checkConfig(config) + .setOutputCount(2) + .setShape("###", "###") + .addMaterial('#', planks) + .setGroup(receipGroupPrefix + "_trapdoors") + .build(); })); addRecipeEntry(new RecipeEntry("door", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_DOOR)) - .checkConfig(config) - .setOutputCount(3) - .setShape("##", "##", "##") - .addMaterial('#', planks) - .setGroup(receipGroupPrefix + "_doors") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_DOOR)) + .checkConfig(config) + .setOutputCount(3) + .setShape("##", "##", "##") + .addMaterial('#', planks) + .setGroup(receipGroupPrefix + "_doors") + .build(); })); addRecipeEntry(new RecipeEntry("crafting_table", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_CRAFTING_TABLE)) - .checkConfig(config) - .setShape("##", "##") - .addMaterial('#', planks) - .setGroup(receipGroupPrefix + "_tables") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_CRAFTING_TABLE)) + .checkConfig(config) + .setShape("##", "##") + .addMaterial('#', planks) + .setGroup(receipGroupPrefix + "_tables") + .build(); })); addRecipeEntry(new RecipeEntry("ladder", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_LADDER)) - .checkConfig(config) - .setOutputCount(3) - .setShape("I I", "I#I", "I I") - .addMaterial('#', planks) - .addMaterial('I', Items.STICK) - .setGroup(receipGroupPrefix + "_ladders") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_LADDER)) + .checkConfig(config) + .setOutputCount(3) + .setShape("I I", "I#I", "I I") + .addMaterial('#', planks) + .addMaterial('I', Items.STICK) + .setGroup(receipGroupPrefix + "_ladders") + .build(); })); addRecipeEntry(new RecipeEntry("sign", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_SIGN)) - .checkConfig(config) - .setOutputCount(3) - .setShape("###", "###", " I ") - .addMaterial('#', planks) - .addMaterial('I', Items.STICK) - .setGroup(receipGroupPrefix + "_signs") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_SIGN)) + .checkConfig(config) + .setOutputCount(3) + .setShape("###", "###", " I ") + .addMaterial('#', planks) + .addMaterial('I', Items.STICK) + .setGroup(receipGroupPrefix + "_signs") + .build(); })); addRecipeEntry(new RecipeEntry("chest", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_CHEST)) - .checkConfig(config) - .setShape("###", "# #", "###") - .addMaterial('#', planks) - .setGroup(receipGroupPrefix + "_chests") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_CHEST)) + .checkConfig(config) + .setShape("###", "# #", "###") + .addMaterial('#', planks) + .setGroup(receipGroupPrefix + "_chests") + .build(); })); addRecipeEntry(new RecipeEntry("barrel", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_BARREL)) - .checkConfig(config) - .setShape("#S#", "# #", "#S#") - .addMaterial('#', planks) - .addMaterial('S', getBlock(BLOCK_SLAB)) - .setGroup(receipGroupPrefix + "_barrels") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_BARREL)) + .checkConfig(config) + .setShape("#S#", "# #", "#S#") + .addMaterial('#', planks) + .addMaterial('S', getBlock(BLOCK_SLAB)) + .setGroup(receipGroupPrefix + "_barrels") + .build(); })); addRecipeEntry(new RecipeEntry("bookshelf", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_BOOKSHELF)) - .checkConfig(config) - .setShape("###", "PPP", "###") - .addMaterial('#', planks) - .addMaterial('P', Items.BOOK) - .setGroup(receipGroupPrefix + "_bookshelves") - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_BOOKSHELF)) + .checkConfig(config) + .setShape("###", "PPP", "###") + .addMaterial('#', planks) + .addMaterial('P', Items.BOOK) + .setGroup(receipGroupPrefix + "_bookshelves") + .build(); })); addRecipeEntry(new RecipeEntry("bark", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_BARK)) - .checkConfig(config) - .setShape("##", "##") - .addMaterial('#', getBlock(BLOCK_LOG)) - .setOutputCount(3) - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_BARK)) + .checkConfig(config) + .setShape("##", "##") + .addMaterial('#', getBlock(BLOCK_LOG)) + .setOutputCount(3) + .build(); })); addRecipeEntry(new RecipeEntry("log", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_LOG)) - .checkConfig(config) - .setShape("##", "##") - .addMaterial('#', getBlock(BLOCK_BARK)) - .setOutputCount(3) - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_LOG)) + .checkConfig(config) + .setShape("##", "##") + .addMaterial('#', getBlock(BLOCK_BARK)) + .setOutputCount(3) + .build(); })); addRecipeEntry(new RecipeEntry("stripped_bark", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_STRIPPED_BARK)) - .checkConfig(config) - .setShape("##", "##") - .addMaterial('#', getBlock(BLOCK_STRIPPED_LOG)) - .setOutputCount(3) - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_STRIPPED_BARK)) + .checkConfig(config) + .setShape("##", "##") + .addMaterial('#', getBlock(BLOCK_STRIPPED_LOG)) + .setOutputCount(3) + .build(); })); addRecipeEntry(new RecipeEntry("stripped_log", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_STRIPPED_LOG)) - .checkConfig(config) - .setShape("##", "##") - .addMaterial('#', getBlock(BLOCK_STRIPPED_BARK)) - .setOutputCount(3) - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_STRIPPED_LOG)) + .checkConfig(config) + .setShape("##", "##") + .addMaterial('#', getBlock(BLOCK_STRIPPED_BARK)) + .setOutputCount(3) + .build(); })); addRecipeEntry(new RecipeEntry("composter", (material, config, id) -> { - GridRecipe.make(id, getBlock(BLOCK_COMPOSTER)) - .checkConfig(config) - .setShape("# #", "# #", "###") - .addMaterial('#', getBlock(BLOCK_SLAB)) - .build(); + BCLRecipeBuilder.crafting(id, getBlock(BLOCK_COMPOSTER)) + .checkConfig(config) + .setShape("# #", "# #", "###") + .addMaterial('#', getBlock(BLOCK_SLAB)) + .build(); })); } } \ No newline at end of file diff --git a/src/main/java/org/betterx/bclib/items/complex/EquipmentDescription.java b/src/main/java/org/betterx/bclib/items/complex/EquipmentDescription.java index 68c14f4b..a03e699c 100644 --- a/src/main/java/org/betterx/bclib/items/complex/EquipmentDescription.java +++ b/src/main/java/org/betterx/bclib/items/complex/EquipmentDescription.java @@ -1,6 +1,7 @@ package org.betterx.bclib.items.complex; import org.betterx.bclib.items.BaseArmorItem; +import org.betterx.bclib.recipes.BCLRecipeBuilder; import org.betterx.bclib.recipes.GridRecipe; import org.betterx.bclib.registry.ItemRegistry; @@ -34,9 +35,8 @@ public class EquipmentDescription { if (repairItems == null || repairItems.length == 0) return; final ItemLike ingot = repairItems[0].getItem(); - var builder = GridRecipe - .make(id, tool) - .addMaterial('#', ingot); + var builder = BCLRecipeBuilder.crafting(id, tool) + .addMaterial('#', ingot); if (buildRecipe(tool, stick, builder)) return; builder diff --git a/src/main/java/org/betterx/bclib/recipes/AlloyingRecipe.java b/src/main/java/org/betterx/bclib/recipes/AlloyingRecipe.java index afda4629..a6fb2be9 100644 --- a/src/main/java/org/betterx/bclib/recipes/AlloyingRecipe.java +++ b/src/main/java/org/betterx/bclib/recipes/AlloyingRecipe.java @@ -133,27 +133,26 @@ public class AlloyingRecipe implements Recipe, UnknownReceipBookCateg private final static Builder INSTANCE = new Builder(); private static boolean exist; - protected static Builder create(ResourceLocation id, PathConfig config) { + static Builder create(ResourceLocation id, ItemLike output) { INSTANCE.id = id; INSTANCE.group = String.format("%s_%s", GROUP, id); INSTANCE.primaryInput = null; INSTANCE.secondaryInput = null; - INSTANCE.output = null; + INSTANCE.output = output; INSTANCE.experience = 0.0F; INSTANCE.smeltTime = 350; - exist = config.getBoolean("alloying", id.getPath(), true); + INSTANCE.count = 1; + INSTANCE.alright = RecipeHelper.exists(output); + exist = true; return INSTANCE; } - protected static Builder create(String modID, String id, PathConfig config) { - return create(new ResourceLocation(modID, id), config); - } - + private int count = 1; private ResourceLocation id; private Ingredient primaryInput; private Ingredient secondaryInput; - private ItemStack output; + private ItemLike output; private String group; private float experience; private int smeltTime; @@ -162,11 +161,21 @@ public class AlloyingRecipe implements Recipe, UnknownReceipBookCateg protected Builder() { } + public Builder checkConfig(PathConfig config) { + exist &= config.getBoolean("alloying", id.getPath(), true); + return this; + } + public Builder setGroup(String group) { this.group = group; return this; } + public Builder setOutputCount(int count) { + this.count = count; + return this; + } + public Builder setPrimaryInput(ItemLike... inputs) { for (ItemLike item : inputs) { this.alright &= RecipeHelper.exists(item); @@ -205,13 +214,7 @@ public class AlloyingRecipe implements Recipe, UnknownReceipBookCateg return this; } - public Builder setOutput(ItemLike output, int amount) { - this.alright &= RecipeHelper.exists(output); - this.output = new ItemStack(output, amount); - return this; - } - - public Builder setExpiriense(float amount) { + public Builder setExperience(float amount) { this.experience = amount; return this; } @@ -251,7 +254,15 @@ public class AlloyingRecipe implements Recipe, UnknownReceipBookCateg } BCLRecipeManager.addRecipe( TYPE, - new AlloyingRecipe(id, group, primaryInput, secondaryInput, output, experience, smeltTime) + new AlloyingRecipe( + id, + group, + primaryInput, + secondaryInput, + new ItemStack(output, count), + experience, + smeltTime + ) ); } } diff --git a/src/main/java/org/betterx/bclib/recipes/AnvilRecipe.java b/src/main/java/org/betterx/bclib/recipes/AnvilRecipe.java index 2e63cd68..b18f329a 100644 --- a/src/main/java/org/betterx/bclib/recipes/AnvilRecipe.java +++ b/src/main/java/org/betterx/bclib/recipes/AnvilRecipe.java @@ -79,11 +79,11 @@ public class AnvilRecipe implements Recipe, UnknownReceipBookCategory this.damage = damage; } - public static Builder create(String id) { + static Builder create(String id) { return create(BCLib.makeID(id)); } - public static Builder create(ResourceLocation id) { + static Builder create(ResourceLocation id) { Builder.INSTANCE.id = id; Builder.INSTANCE.input = null; Builder.INSTANCE.output = null; diff --git a/src/main/java/org/betterx/bclib/recipes/BCLRecipeBuilder.java b/src/main/java/org/betterx/bclib/recipes/BCLRecipeBuilder.java new file mode 100644 index 00000000..31f30bc8 --- /dev/null +++ b/src/main/java/org/betterx/bclib/recipes/BCLRecipeBuilder.java @@ -0,0 +1,36 @@ +package org.betterx.bclib.recipes; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.ItemLike; + +public class BCLRecipeBuilder { + public static AlloyingRecipe.Builder alloying(ResourceLocation id, ItemLike output) { + return AlloyingRecipe.Builder.create(id, output); + } + + public static AnvilRecipe.Builder anvil(ResourceLocation id) { + return AnvilRecipe.create(id); + } + + public static BlastFurnaceRecipe blasting(ResourceLocation id, ItemLike output) { + return BlastFurnaceRecipe.make(id, output); + } + + public static GridRecipe crafting(ResourceLocation id, ItemLike output) { + return BCLRecipeBuilder.crafting( + + id, output); + } + + public static FurnaceRecipe smelting(ResourceLocation id, ItemLike output) { + return FurnaceRecipe.make(id, output); + } + + public static SmithingTableRecipe smithing(ResourceLocation id, ItemLike output) { + return SmithingTableRecipe.make(id, output); + } + + public static StoneCutterRecipe stonecutting(ResourceLocation id, ItemLike output) { + return StoneCutterRecipe.make(id, output); + } +} diff --git a/src/main/java/org/betterx/bclib/recipes/BlastFurnaceRecipe.java b/src/main/java/org/betterx/bclib/recipes/BlastFurnaceRecipe.java index 16ecc71f..373f015c 100644 --- a/src/main/java/org/betterx/bclib/recipes/BlastFurnaceRecipe.java +++ b/src/main/java/org/betterx/bclib/recipes/BlastFurnaceRecipe.java @@ -12,11 +12,11 @@ public class BlastFurnaceRecipe extends CookingRecipe tag) { + this.input = Ingredient.of(tag); + unlockedBy(tag); + return this; + } + public FurnaceRecipe checkConfig(PathConfig config) { exist &= config.getBoolean("furnace", id.getPath(), true); return this; @@ -51,12 +66,12 @@ public class FurnaceRecipe extends AbstractAdvancementRecipe { return this; } - public FurnaceRecipe setXP(float xp) { + public FurnaceRecipe setExperience(float xp) { this.xp = xp; return this; } - public FurnaceRecipe setCookTime(int time) { + public FurnaceRecipe setCookingTime(int time) { this.time = time; return this; } @@ -81,7 +96,7 @@ public class FurnaceRecipe extends AbstractAdvancementRecipe { SmeltingRecipe recipe = new SmeltingRecipe( new ResourceLocation(id + "_smelting"), group, - Ingredient.of(input), + input, new ItemStack(output, count), xp, time @@ -93,11 +108,12 @@ public class FurnaceRecipe extends AbstractAdvancementRecipe { BlastingRecipe recipe2 = new BlastingRecipe( new ResourceLocation(id + "_blasting"), group, - Ingredient.of(input), + input, new ItemStack(output, count), xp, time / 2 ); + BCLRecipeManager.addRecipe(RecipeType.BLASTING, recipe2); } @@ -105,7 +121,7 @@ public class FurnaceRecipe extends AbstractAdvancementRecipe { CampfireCookingRecipe recipe2 = new CampfireCookingRecipe( new ResourceLocation(id + "_campfire"), group, - Ingredient.of(input), + input, new ItemStack(output, count), xp, time * 3 @@ -118,7 +134,7 @@ public class FurnaceRecipe extends AbstractAdvancementRecipe { SmokingRecipe recipe2 = new SmokingRecipe( new ResourceLocation(id + "_smoker"), group, - Ingredient.of(input), + input, new ItemStack(output, count), xp, time / 2 diff --git a/src/main/java/org/betterx/bclib/recipes/GridRecipe.java b/src/main/java/org/betterx/bclib/recipes/GridRecipe.java index a7e173f8..9d82a4a3 100644 --- a/src/main/java/org/betterx/bclib/recipes/GridRecipe.java +++ b/src/main/java/org/betterx/bclib/recipes/GridRecipe.java @@ -34,11 +34,14 @@ public class GridRecipe extends AbstractAdvancementRecipe { private GridRecipe() { } - public static GridRecipe make(String modID, String name, ItemLike output) { - return make(new ResourceLocation(modID, name), output); - } - - public static GridRecipe make(ResourceLocation id, ItemLike output) { + /** + * Please use {@link BCLRecipeBuilder#crafting(ResourceLocation, ItemLike)} instead + * + * @param id + * @param output + * @return + */ + static GridRecipe make(ResourceLocation id, ItemLike output) { INSTANCE.id = id; INSTANCE.output = output; diff --git a/src/main/java/org/betterx/bclib/recipes/SmelterRecipe.java b/src/main/java/org/betterx/bclib/recipes/SmelterRecipe.java deleted file mode 100644 index 4becd7eb..00000000 --- a/src/main/java/org/betterx/bclib/recipes/SmelterRecipe.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.betterx.bclib.recipes; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.Container; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.RecipeType; -import net.minecraft.world.item.crafting.SmeltingRecipe; -import net.minecraft.world.level.ItemLike; - -public class SmelterRecipe extends CookingRecipe { - SmelterRecipe( - ResourceLocation id, ItemLike output - ) { - super(id, RecipeType.SMELTING, output); - } - - public static SmelterRecipe make(String modID, String name, ItemLike output) { - return make(new ResourceLocation(modID, name), output); - } - - public static SmelterRecipe make(ResourceLocation id, ItemLike output) { - SmelterRecipe res = new SmelterRecipe(id, output); - res.createAdvancement(id, false); - return res; - } - - @Override - protected SmeltingRecipe buildRecipe() { - return new SmeltingRecipe(id, group, input, new ItemStack(output, count), experience, cookingTime); - } -} diff --git a/src/main/java/org/betterx/bclib/recipes/SmithingTableRecipe.java b/src/main/java/org/betterx/bclib/recipes/SmithingTableRecipe.java index e81bbe23..1caac126 100644 --- a/src/main/java/org/betterx/bclib/recipes/SmithingTableRecipe.java +++ b/src/main/java/org/betterx/bclib/recipes/SmithingTableRecipe.java @@ -19,11 +19,8 @@ public class SmithingTableRecipe extends AbstractSimpleRecipe