aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorAntifluxfield <lyj_299792458@163.com>2017-10-21 02:04:14 +0800
committerAntifluxfield <lyj_299792458@163.com>2017-10-21 02:04:14 +0800
commitea2bfd612c6cef642611e41fc70a534dfd15a942 (patch)
tree87b5dd4bb1cf7b5e20fa43f67ce729ab08f81bcf /src/main/java/gregtech
parent81f7bbd39963f03699748d2b6248ff0048b196e2 (diff)
downloadGT5-Unofficial-ea2bfd612c6cef642611e41fc70a534dfd15a942.tar.gz
GT5-Unofficial-ea2bfd612c6cef642611e41fc70a534dfd15a942.tar.bz2
GT5-Unofficial-ea2bfd612c6cef642611e41fc70a534dfd15a942.zip
fix charging overflow
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/api/items/GT_MetaBase_Item.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java
index 2ae98b9dfb..2f5174beb7 100644
--- a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java
+++ b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java
@@ -259,7 +259,8 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpeci
return 0;
//REALLY?? THIS IS THE CULPRIT THAT CHARGES ITEMS AT INSTANT!!!
//long tChargeBefore = getRealCharge(aStack), tNewCharge = aCharge == Integer.MAX_VALUE ? Long.MAX_VALUE : Math.min(Math.abs(tStats[0]), tChargeBefore + (aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge)));
- long tChargeBefore = getRealCharge(aStack), tNewCharge = Math.min(Math.abs(tStats[0]), tChargeBefore + (aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge)));
+ long tTransfer = aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge);
+ long tChargeBefore = getRealCharge(aStack), tNewCharge = Math.min(Math.abs(tStats[0]), Long.MAX_VALUE - tTransfer >= tChargeBefore ? tChargeBefore + tTransfer : Long.MAX_VALUE);
if (!aSimulate) setCharge(aStack, tNewCharge);
return tNewCharge - tChargeBefore;
}