diff options
author | Johannes Gäßler <updrn@student.kit.edu> | 2017-05-29 00:09:38 +0200 |
---|---|---|
committer | Johannes Gäßler <updrn@student.kit.edu> | 2017-05-29 00:09:38 +0200 |
commit | c38cc2bc7b7aff708c560fcd552c44c26686f884 (patch) | |
tree | 5607db667bcdea1a712f9ed39cd97d69cd70eb89 /src/main/java/gregtech/common | |
parent | 3d83a381d6374f9f17d578c49be696df60d7e85a (diff) | |
download | GT5-Unofficial-c38cc2bc7b7aff708c560fcd552c44c26686f884.tar.gz GT5-Unofficial-c38cc2bc7b7aff708c560fcd552c44c26686f884.tar.bz2 GT5-Unofficial-c38cc2bc7b7aff708c560fcd552c44c26686f884.zip |
Changed the Distillation Tower so that it outputs fluids only at the
correct levels.
Adjusted existing distillation recipes so that they line up with this
change.
Slightly rebalanced Charcoal Byproducts.
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java index ed2188f535..e2fba442c2 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java @@ -9,6 +9,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import net.minecraft.block.Block; @@ -24,7 +25,7 @@ import java.util.Arrays; public class GT_MetaTileEntity_DistillationTower extends GT_MetaTileEntity_MultiBlockBase { private static final int CASING_INDEX = 49; - private static boolean controller; + private short controllerY; public GT_MetaTileEntity_DistillationTower(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); @@ -128,6 +129,7 @@ public class GT_MetaTileEntity_DistillationTower } public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + controllerY = aBaseMetaTileEntity.getYCoord(); int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX; int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ; int y = 0; //height @@ -197,8 +199,39 @@ public class GT_MetaTileEntity_DistillationTower return 0; } - public boolean explodesOnComponentBreak(ItemStack aStack) { return false; } + + @Override + public boolean addOutput(FluidStack aLiquid) { + if (aLiquid == null) return false; + FluidStack tLiquid = aLiquid.copy(); + for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) { + if (isValidMetaTileEntity(tHatch) && GT_ModHandler.isSteam(aLiquid) ? tHatch.outputsSteam() : tHatch.outputsLiquids()) { + if (tHatch.getBaseMetaTileEntity().getYCoord() == this.controllerY + 1) { + int tAmount = tHatch.fill(tLiquid, false); + if (tAmount >= tLiquid.amount) { + return tHatch.fill(tLiquid, true) >= tLiquid.amount; + } else if (tAmount > 0) { + tLiquid.amount = tLiquid.amount - tHatch.fill(tLiquid, true); + } + } + } + } + return false; + } + + @Override + protected void addFluidOutputs(FluidStack[] mOutputFluids2) { + for (int i = 0; i < mOutputFluids2.length; i++) { + if (mOutputHatches.size() > i && mOutputHatches.get(i) != null && mOutputFluids2[i] != null && isValidMetaTileEntity(mOutputHatches.get(i))) { + if (mOutputHatches.get(i).getBaseMetaTileEntity().getYCoord() == this.controllerY + 1 + i) { + mOutputHatches.get(i).fill(mOutputFluids2[i], true); + } + } + } + + } + }
\ No newline at end of file |