IndustrialElectrolyzer now uses fluids

IndustrialElectrolyzer now renders fluids in gui
IndustrialElectrolyzer recipe handler now renders fluids
This commit is contained in:
Gig 2015-06-26 17:56:09 +01:00
parent 6cc1071961
commit 6e74b9197b
6 changed files with 175 additions and 15 deletions

View file

@ -1,11 +1,17 @@
package techreborn.api.recipe.machines;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.fluids.FluidStack;
import techreborn.api.recipe.BaseRecipe;
import techreborn.tiles.TileGrinder;
import techreborn.tiles.TileIndustrialElectrolyzer;
public class IndustrialElectrolyzerRecipe extends BaseRecipe {
public FluidStack fluidStack;
public IndustrialElectrolyzerRecipe(ItemStack inputCells, ItemStack input2, ItemStack output1, ItemStack output2, ItemStack output3, ItemStack output4, int tickTime, int euPerTick)
public IndustrialElectrolyzerRecipe(ItemStack inputCells, ItemStack input2, FluidStack fluidStack, ItemStack output1, ItemStack output2, ItemStack output3, ItemStack output4, int tickTime, int euPerTick)
{
super("industrialElectrolyzerRecipe", tickTime, euPerTick);
if (inputCells != null)
@ -20,5 +26,49 @@ public class IndustrialElectrolyzerRecipe extends BaseRecipe {
addOutput(output3);
if (output4 != null)
addOutput(output4);
this.fluidStack = fluidStack;
}
@Override
public boolean canCraft(TileEntity tile) {
if (fluidStack == null) {
return true;
}
if (tile instanceof TileIndustrialElectrolyzer) {
TileIndustrialElectrolyzer grinder = (TileIndustrialElectrolyzer) tile;
if (grinder.tank.getFluid() == null) {
return false;
}
if (grinder.tank.getFluid().getFluidID() == fluidStack.getFluidID()) {
if (grinder.tank.getFluidAmount() >= fluidStack.amount) {
return true;
}
}
}
return false;
}
@Override
public boolean onCraft(TileEntity tile) {
if (fluidStack == null) {
return true;
}
if (tile instanceof TileIndustrialElectrolyzer) {
TileIndustrialElectrolyzer grinder = (TileIndustrialElectrolyzer) tile;
if (grinder.tank.getFluid() == null) {
return false;
}
if (grinder.tank.getFluid().getFluidID() == fluidStack.getFluidID()) {
if (grinder.tank.getFluidAmount() >= fluidStack.amount) {
if (grinder.tank.getFluidAmount() > 0) {
grinder.tank.setFluid(new FluidStack(fluidStack.getFluid(), grinder.tank.getFluidAmount() - fluidStack.amount));
} else {
grinder.tank.setFluid(null);
}
return true;
}
}
}
return false;
}
}