aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/gui/GT_Container.java2
-rw-r--r--src/main/java/gregtech/api/gui/GT_Container_BasicTank.java9
-rw-r--r--src/main/java/gregtech/api/interfaces/IFluidAccess.java10
3 files changed, 20 insertions, 1 deletions
diff --git a/src/main/java/gregtech/api/gui/GT_Container.java b/src/main/java/gregtech/api/gui/GT_Container.java
index 2b7959d6cb..843d34c1f3 100644
--- a/src/main/java/gregtech/api/gui/GT_Container.java
+++ b/src/main/java/gregtech/api/gui/GT_Container.java
@@ -691,7 +691,7 @@ public class GT_Container extends Container {
tNewFillableStack.amount = tAmountTaken * tParallel;
aFluidAccess.set(tNewFillableStack);
} else {
- aFluidAccess.get().amount += tAmountTaken * tParallel;
+ aFluidAccess.addAmount(tAmountTaken * tParallel);
}
tStackEmptied.stackSize = tParallel;
replaceCursorItemStack(aPlayer, tStackEmptied);
diff --git a/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java b/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java
index 4d533f76c3..d294b60ca9 100644
--- a/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java
+++ b/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java
@@ -6,6 +6,7 @@ import gregtech.api.interfaces.IFluidAccess;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank;
import gregtech.api.util.GT_Utility;
+import gregtech.common.tileentities.storage.GT_MetaTileEntity_DigitalTankBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
@@ -129,6 +130,14 @@ public class GT_Container_BasicTank extends GT_ContainerMetaTile_Machine {
return mTank.getCapacity();
}
+ @Override
+ public int getRealCapacity() {
+ if (mTank instanceof GT_MetaTileEntity_DigitalTankBase) {
+ return ((GT_MetaTileEntity_DigitalTankBase) mTank).getRealCapacity();
+ }
+ return IFluidAccess.super.getRealCapacity();
+ }
+
static BasicTankFluidAccess from(GT_MetaTileEntity_BasicTank aTank, boolean aIsFillableStack) {
return new BasicTankFluidAccess(aTank, aIsFillableStack);
}
diff --git a/src/main/java/gregtech/api/interfaces/IFluidAccess.java b/src/main/java/gregtech/api/interfaces/IFluidAccess.java
index bbe198ddcb..01b6fb6d0b 100644
--- a/src/main/java/gregtech/api/interfaces/IFluidAccess.java
+++ b/src/main/java/gregtech/api/interfaces/IFluidAccess.java
@@ -9,4 +9,14 @@ public interface IFluidAccess {
FluidStack get();
int getCapacity();
+
+ default int getRealCapacity() {
+ return getCapacity();
+ }
+
+ default void addAmount(int amount) {
+ if (get() != null) {
+ get().amount = Math.min(get().amount + amount, getRealCapacity());
+ }
+ }
}