package mekanism.common.recipe.machines; import mekanism.api.gas.GasStack; import mekanism.api.gas.GasTank; import mekanism.common.recipe.inputs.ChemicalPairInput; import mekanism.common.recipe.outputs.GasOutput; public class ChemicalInfuserRecipe extends MachineRecipe<ChemicalPairInput, GasOutput, ChemicalInfuserRecipe> { public ChemicalInfuserRecipe(ChemicalPairInput input, GasOutput output) { super(input, output); } public ChemicalInfuserRecipe(GasStack leftInput, GasStack rightInput, GasStack output) { this(new ChemicalPairInput(leftInput, rightInput), new GasOutput(output)); } @Override public ChemicalInfuserRecipe copy() { return new ChemicalInfuserRecipe(getInput().copy(), getOutput().copy()); } public boolean canOperate(GasTank leftTank, GasTank rightTank, GasTank outputTank) { return getInput().useGas(leftTank, rightTank, false, 1) && getOutput().applyOutputs(outputTank, false, 1); } public void operate(GasTank leftInput, GasTank rightInput, GasTank outputTank, int scale) { if(getInput().useGas(leftInput, rightInput, true, scale)) { getOutput().applyOutputs(outputTank, true, scale); } } }