package mekanism.common.recipe.machines; import mekanism.api.gas.GasStack; import mekanism.api.gas.GasTank; import mekanism.common.recipe.inputs.ItemStackInput; import mekanism.common.recipe.outputs.GasOutput; import net.minecraft.item.ItemStack; public class DissolutionRecipe extends MachineRecipe<ItemStackInput, GasOutput, DissolutionRecipe> { public DissolutionRecipe(ItemStackInput input, GasOutput output) { super(input, output); } public DissolutionRecipe(ItemStack input, GasStack output) { this(new ItemStackInput(input), new GasOutput(output)); } public boolean canOperate(ItemStack[] inventory, GasTank outputTank) { return getInput().useItemStackFromInventory(inventory, 1, false) && getOutput().applyOutputs(outputTank, false, 1); } public void operate(ItemStack[] inventory, GasTank outputTank) { if(getInput().useItemStackFromInventory(inventory, 1, true)) { getOutput().applyOutputs(outputTank, true, 1); } } @Override public DissolutionRecipe copy() { return new DissolutionRecipe(getInput().copy(), getOutput().copy()); } }