diff options
author | Antifluxfield <lyj_299792458@163.com> | 2017-10-21 00:02:40 +0800 |
---|---|---|
committer | Antifluxfield <lyj_299792458@163.com> | 2017-10-21 00:02:40 +0800 |
commit | b3e0abed70d89c775f31f0449ad50de40b55c6cc (patch) | |
tree | ceb3c1eba4985217852507a4c307bc0da3698f64 /src/main/java | |
parent | 2d8df8d14518d41ff075a63084950ff429a9b09b (diff) | |
download | GT5-Unofficial-b3e0abed70d89c775f31f0449ad50de40b55c6cc.tar.gz GT5-Unofficial-b3e0abed70d89c775f31f0449ad50de40b55c6cc.tar.bz2 GT5-Unofficial-b3e0abed70d89c775f31f0449ad50de40b55c6cc.zip |
Fix overflow when charging ultimate battery
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/api/items/GT_MetaBase_Item.java | 3 |
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 237b15fae9..c7430e9246 100644 --- a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java +++ b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java @@ -256,7 +256,8 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpeci Long[] tStats = getElectricStats(aStack); if (tStats == null || tStats[2] > aTier || !(tStats[3] == -1 || tStats[3] == -3 || (tStats[3] < 0 && aCharge == Integer.MAX_VALUE)) || aStack.stackSize != 1) return 0; - 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 tTransfer = aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge); + long tChargeBefore = getRealCharge(aStack), tNewCharge = aCharge == Integer.MAX_VALUE ? Long.MAX_VALUE : Math.min(Math.abs(tStats[0]), Long.MAX_VALUE - tTransfer >= tChargeBefore ? tChargeBefore + tTransfer : Long.MAX_VALUE); if (!aSimulate) setCharge(aStack, tNewCharge); return tNewCharge - tChargeBefore; } |