aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/detrav
diff options
context:
space:
mode:
authorDetrav <witalyezep@gmail.com>2016-04-07 21:24:23 +0300
committerDetrav <witalyezep@gmail.com>2016-04-07 21:24:23 +0300
commitd547d565d330afe26e70a65d3f158e526e2552fe (patch)
tree8e054b4b270c4a56af4f9ca5aab6d212c6a5fada /src/main/java/com/detrav
parent11af7aba55850727f3e9d68da0ba812f44a7f2dc (diff)
downloadGT5-Unofficial-d547d565d330afe26e70a65d3f158e526e2552fe.tar.gz
GT5-Unofficial-d547d565d330afe26e70a65d3f158e526e2552fe.tar.bz2
GT5-Unofficial-d547d565d330afe26e70a65d3f158e526e2552fe.zip
FakeElectricCharge
Diffstat (limited to 'src/main/java/com/detrav')
-rw-r--r--src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java b/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java
index 862979319a..2736047d9f 100644
--- a/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java
+++ b/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java
@@ -78,14 +78,35 @@ public class DetravPortableChargerContainer extends Container {
}
public void onUpdate(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer) {
- ItemStack item = this.slots.getStackInSlotOnClosing(0);
+ if(mItem==null) return;
+
+ ItemStack item = this.slots.getStackInSlot(0);
if(item == null) return;
+
Long[] itemStats = DetravMetaGeneratedTool01.INSTANCE.getElectricStats(item);
if(itemStats == null) return;
- long tCharge = DetravMetaGeneratedTool01.INSTANCE.getRealCharge(mItem);
- if(tCharge <=0) return;
+ long itemCharge = DetravMetaGeneratedTool01.INSTANCE.getRealCharge(item);
+ if(itemCharge <=0) return;
+ long needEnergy = itemStats[1] - itemCharge;
+ if(needEnergy == 0) return;
+
+ Long[] selfStats = DetravMetaGeneratedTool01.INSTANCE.getElectricStats(mItem);
+ if(selfStats == null) return;
+
+ long selfCharge = DetravMetaGeneratedTool01.INSTANCE.getRealCharge(mItem);
+ if(selfCharge <=0) return;
+
long loss = DetravMetaGeneratedTool01.INSTANCE.getElectricStatsLoss(mItem);
if(loss<0) return;
+
+ long energyToTransfer = (Math.min(selfStats[1],itemStats[1]) - loss)*aTimer ;
+
+ if(needEnergy<energyToTransfer)
+ energyToTransfer = needEnergy;
+ long removeEnergy = Math.min(energyToTransfer+loss*aTimer,selfCharge);
+
+ DetravMetaGeneratedTool01.INSTANCE.setCharge(item,itemCharge+energyToTransfer);
+ DetravMetaGeneratedTool01.INSTANCE.setCharge(mItem,selfCharge-removeEnergy);
}
/*@Override