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