package mekanism.common.recipe.machines; import mekanism.common.InfuseStorage; import mekanism.common.recipe.inputs.InfusionInput; import mekanism.common.recipe.outputs.ItemStackOutput; import net.minecraft.item.ItemStack; public class MetallurgicInfuserRecipe extends MachineRecipe<InfusionInput, ItemStackOutput, MetallurgicInfuserRecipe> { public MetallurgicInfuserRecipe(InfusionInput input, ItemStackOutput output) { super(input, output); } public MetallurgicInfuserRecipe(InfusionInput input, ItemStack output) { this(input, new ItemStackOutput(output)); } public boolean canOperate(ItemStack[] inventory, InfuseStorage infuse) { return getInput().use(inventory, 2, infuse, false) && getOutput().applyOutputs(inventory, 3, false); } @Override public MetallurgicInfuserRecipe copy() { return new MetallurgicInfuserRecipe(getInput(), getOutput()); } public void output(ItemStack[] inventory, InfuseStorage infuseStored) { if(getInput().use(inventory, 2, infuseStored, true)) { getOutput().applyOutputs(inventory, 3, true); } } }