package mekanism.common.recipe.machines;
import mekanism.api.gas.GasStack;
import mekanism.api.gas.GasTank;
import mekanism.common.recipe.inputs.FluidInput;
import mekanism.common.recipe.inputs.GasInput;
import mekanism.common.recipe.outputs.GasOutput;
import mekanism.common.tile.TileEntityChemicalWasher;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTank;
public class WasherRecipe extends MachineRecipe<GasInput, GasOutput, WasherRecipe>
{
public FluidInput waterInput = new FluidInput(new FluidStack(FluidRegistry.WATER, TileEntityChemicalWasher.WATER_USAGE));
public WasherRecipe(GasInput input, GasOutput output)
{
super(input, output);
}
public WasherRecipe(GasStack input, GasStack output)
{
this(new GasInput(input), new GasOutput(output));
}
@Override
public WasherRecipe copy()
{
return new WasherRecipe(getInput().copy(), getOutput().copy());
}
public boolean canOperate(GasTank inputTank, FluidTank fluidTank, GasTank outputTank)
{
return getInput().useGas(inputTank, false, 1) && waterInput.useFluid(fluidTank, false, 1) && getOutput().applyOutputs(outputTank, false, 1);
}
public void operate(GasTank inputTank, FluidTank fluidTank, GasTank outputTank, int scale)
{
if(getInput().useGas(inputTank, true, scale) && waterInput.useFluid(fluidTank, true, scale))
{
getOutput().applyOutputs(outputTank, true, scale);
}
}
}