diff --git a/src/main/java/dev/micle/totemofreviving/item/crafting/ChargeRecipe.java b/src/main/java/dev/micle/totemofreviving/item/crafting/ChargeRecipe.java new file mode 100644 index 0000000..314b438 --- /dev/null +++ b/src/main/java/dev/micle/totemofreviving/item/crafting/ChargeRecipe.java @@ -0,0 +1,33 @@ +package dev.micle.totemofreviving.item.crafting; + +import dev.micle.totemofreviving.item.charge.ChargeItem; +import dev.micle.totemofreviving.setup.ModRecipes; +import net.minecraft.inventory.CraftingInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipeSerializer; +import net.minecraft.item.crafting.ShapedRecipe; +import net.minecraft.world.World; + +public class ChargeRecipe extends ExtendedShapedRecipe { + public ChargeRecipe(ShapedRecipe recipe) { + super(recipe); + } + + @Override + public IRecipeSerializer getSerializer() { + return ModRecipes.CHARGE_RECIPE.get(); + } + + @Override + public boolean matches(CraftingInventory inventory, World world) { + if (!ChargeItem.isEnabled(getResultItem())) { + return false; + } + return getBaseRecipe().matches(inventory, world); + } + + @Override + public ItemStack assemble(CraftingInventory inventory) { + return getBaseRecipe().getResultItem(); + } +} diff --git a/src/main/java/dev/micle/totemofreviving/setup/ModRecipes.java b/src/main/java/dev/micle/totemofreviving/setup/ModRecipes.java index 2c08d8a..91d6d1d 100644 --- a/src/main/java/dev/micle/totemofreviving/setup/ModRecipes.java +++ b/src/main/java/dev/micle/totemofreviving/setup/ModRecipes.java @@ -1,5 +1,6 @@ package dev.micle.totemofreviving.setup; +import dev.micle.totemofreviving.item.crafting.ChargeRecipe; import dev.micle.totemofreviving.item.crafting.ExtendedShapedRecipe; import dev.micle.totemofreviving.item.crafting.TotemRecipe; import net.minecraft.item.crafting.IRecipeSerializer; @@ -8,6 +9,8 @@ import net.minecraftforge.fml.RegistryObject; public class ModRecipes { public static final RegistryObject> TOTEM_RECIPE = Registration.RECIPE_SERIALIZERS.register("totem_recipe", () -> ExtendedShapedRecipe.Serializer.basic(TotemRecipe::new)); + public static final RegistryObject> CHARGE_RECIPE = + Registration.RECIPE_SERIALIZERS.register("charge_recipe", () -> ExtendedShapedRecipe.Serializer.basic(ChargeRecipe::new)); public static void register() {} }