diff options
author | Martin Robertz <dream-master@gmx.net> | 2021-03-20 19:19:16 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-20 19:19:16 +0100 |
commit | 61c8f1e5901773c02522f5461b60f19e2ade6d34 (patch) | |
tree | d6b730a04d8b3adf232c7e78d8cddc0609d6aede /src/main/java/gregtech/api/metatileentity | |
parent | eb8dfedcaf55c3d5187b965c39455afb40b57431 (diff) | |
parent | bbb90b49bb96886508bf4652c9f3a3a976bc39b2 (diff) | |
download | GT5-Unofficial-61c8f1e5901773c02522f5461b60f19e2ade6d34.tar.gz GT5-Unofficial-61c8f1e5901773c02522f5461b60f19e2ade6d34.tar.bz2 GT5-Unofficial-61c8f1e5901773c02522f5461b60f19e2ade6d34.zip |
Merge pull request #468 from GTNewHorizons/separate-fluid-tank-info
Expose all fluid tanks properly when there are more than one internal tank
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
2 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index fa653df16f..4775158319 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -382,6 +382,11 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } @Override + public boolean isDrainableStackSeparate() { + return true; + } + + @Override public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { if (aBaseMetaTileEntity.isClientSide()) return true; if(!GT_Mod.gregtechproxy.mForceFreeFace) { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java index f4a70b2ee5..9222029854 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java @@ -9,7 +9,9 @@ import gregtech.api.util.GT_Utility; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; /** * NEVER INCLUDE THIS FILE IN YOUR MOD!!! @@ -100,6 +102,9 @@ public abstract class GT_MetaTileEntity_BasicTank extends GT_MetaTileEntity_Tier return mFluid; } + /** + * If you override this and change the field returned, be sure to override {@link #isDrainableStackSeparate()} as well! + */ public FluidStack getDrainableStack() { return mFluid; } @@ -109,6 +114,10 @@ public abstract class GT_MetaTileEntity_BasicTank extends GT_MetaTileEntity_Tier return mFluid; } + public boolean isDrainableStackSeparate() { + return false; + } + public FluidStack getDisplayedFluid() { return getDrainableStack(); } @@ -249,6 +258,19 @@ public abstract class GT_MetaTileEntity_BasicTank extends GT_MetaTileEntity_Tier } @Override + public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { + if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[]{}; + if (isDrainableStackSeparate()) { + return new FluidTankInfo[]{ + new FluidTankInfo(getFillableStack(), getCapacity()), + new FluidTankInfo(getDrainableStack(), getCapacity()) + }; + } else { + return new FluidTankInfo[]{new FluidTankInfo(this)}; + } + } + + @Override public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { return aIndex == getOutputSlot(); } |