aboutsummaryrefslogtreecommitdiff
path: root/src/Java
diff options
context:
space:
mode:
authorAlkalus <draknyte1@hotmail.com>2017-11-16 13:54:21 +1000
committerAlkalus <draknyte1@hotmail.com>2017-11-16 13:54:21 +1000
commitb5ae94feabc22cbc94e72350f3ae0f12bae781af (patch)
tree25ee16375cd198ae0c24f4d0b13b53f0d3e9da05 /src/Java
parent161828da23fa09495fb1c2b16411e30c3c4fed01 (diff)
downloadGT5-Unofficial-b5ae94feabc22cbc94e72350f3ae0f12bae781af.tar.gz
GT5-Unofficial-b5ae94feabc22cbc94e72350f3ae0f12bae781af.tar.bz2
GT5-Unofficial-b5ae94feabc22cbc94e72350f3ae0f12bae781af.zip
$ Fixed voltage used to charge items.
Diffstat (limited to 'src/Java')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java43
1 files changed, 35 insertions, 8 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java
index 5bbe6bcb02..fa11fe9fbd 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java
@@ -8,6 +8,7 @@ import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import gregtech.api.enums.GT_Values;
import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GT_ModHandler;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.array.BlockPos;
import gtPlusPlus.core.util.array.Pair;
@@ -116,7 +117,7 @@ public class ChargingHelper {
}
else {
- Utils.LOG_INFO("Voltage: "+mVoltage+" | Eu Storage: "+mEuStored);
+ //Utils.LOG_INFO("Voltage: "+mVoltage+" | Eu Storage: "+mEuStored);
}
}
}
@@ -236,16 +237,35 @@ public class ChargingHelper {
}
int mChargedItems = 0;
final int mTier = mEntity.getTier();
- final long mVoltage = mEntity.getInputTier();
+ final long mVoltage = mEntity.maxEUInput();
long mEuStored = mEntity.getEUVar();
final long mEuStoredOriginal = mEntity.getEUVar();
for (ItemStack mTemp : mItems){
if (isItemValid(mTemp)){
- ElectricItem.manager.charge(mTemp, mVoltage, mTier, false, false);
- mEntity.setEUVar(mEuStored-mVoltage);
- mEuStored = mEntity.getEUVar();
- mChargedItems++;
- Utils.LOG_INFO("Charged "+mTemp.getDisplayName()+" by "+mVoltage+" for "+mPlayer.getCommandSenderName());
+ double mItemTier = ((IElectricItem) mTemp.getItem()).getTransferLimit(mTemp);
+ if (mEuStored >= mItemTier){
+ double mItemMaxCharge = ((IElectricItem) mTemp.getItem()).getMaxCharge(mTemp);
+ double mitemCurrentCharge = ElectricItem.manager.getCharge(mTemp);
+
+ double mVoltageDecrease;
+ if (mItemTier >= mVoltage){
+ mVoltageDecrease = mVoltage;
+ }
+ else if (mItemTier < mVoltage){
+ mVoltageDecrease = mItemTier;
+ }
+ else {
+ mVoltageDecrease = mItemTier;
+ }
+
+ if ((mitemCurrentCharge + mVoltageDecrease) <= (mItemMaxCharge - mVoltageDecrease)){
+ ElectricItem.manager.charge(mTemp, mVoltageDecrease, mTier, false, false);
+ mEntity.setEUVar((long) (mEuStored-mVoltage));
+ mEuStored = mEntity.getEUVar();
+ mChargedItems++;
+ Utils.LOG_INFO("Charged "+mTemp.getDisplayName()+" by "+mItemTier+" for "+mPlayer.getCommandSenderName());
+ }
+ }
}
}
if (mChargedItems < 1){
@@ -255,7 +275,10 @@ public class ChargingHelper {
}
public boolean isItemValid(final ItemStack itemstack) {
- if ((accepts(itemstack)) || (itemstack.getItem() instanceof GT_MetaGenerated_Tool) || (itemstack.getItem() instanceof IElectricItem)) {
+ if (itemstack == null){
+ return false;
+ }
+ if ((accepts(itemstack)) || (itemstack.getItem() instanceof IElectricItem)) {
return true;
}
return false;
@@ -265,6 +288,10 @@ public class ChargingHelper {
if (stack == null) {
return false;
}
+ if (GT_ModHandler.isElectricItem(stack)){
+ return true;
+ }
+
return (Info.itemEnergy.getEnergyValue(stack) > 0.0D)
|| (ElectricItem.manager.discharge(stack, (1.0D / 0.0D), 4, true, true, true) > 0.0D);
}