aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/common/helpers
diff options
context:
space:
mode:
authorAlkalus <draknyte1@hotmail.com>2017-11-16 16:29:01 +1000
committerAlkalus <draknyte1@hotmail.com>2017-11-16 16:29:01 +1000
commite76e27e165640bda7363f5c6996ff1a7655bc535 (patch)
tree28fcab1200dff34acd08db2aa2cba3082b04cc6e /src/Java/gtPlusPlus/xmod/gregtech/common/helpers
parent5144539962acc7d02248ed7075507b850044d877 (diff)
downloadGT5-Unofficial-e76e27e165640bda7363f5c6996ff1a7655bc535.tar.gz
GT5-Unofficial-e76e27e165640bda7363f5c6996ff1a7655bc535.tar.bz2
GT5-Unofficial-e76e27e165640bda7363f5c6996ff1a7655bc535.zip
$ First fix towards invalid tile entity mapping.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java151
1 files changed, 78 insertions, 73 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java
index 41ae1a911b..4a59a621f7 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java
@@ -7,13 +7,10 @@ import java.util.UUID;
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 gregtech.common.items.GT_MetaGenerated_Item_01;
import gregtech.common.items.GT_MetaGenerated_Item_02;
-import gregtech.common.items.GT_MetaGenerated_Item_03;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
-import gregtech.common.tools.GT_Tool;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.array.BlockPos;
import gtPlusPlus.core.util.array.Pair;
@@ -33,98 +30,95 @@ public class ChargingHelper {
private static Map<EntityPlayer, Pair<GregtechMetaWirelessCharger, Byte>> mValidPlayers = new HashMap<EntityPlayer, Pair<GregtechMetaWirelessCharger, Byte>>();
protected static Map<BlockPos, GregtechMetaWirelessCharger> mChargerMap = new HashMap<BlockPos, GregtechMetaWirelessCharger>();
private int mTickTimer = 0;
-
+ private final int mTickMultiplier = 20;
+
//Called whenever the player is updated or ticked.
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void onPlayerTick(LivingUpdateEvent event) {
try {
- if (event.entity != null && event.entityLiving != null){
- if (event.entityLiving instanceof EntityPlayer){
- EntityPlayer mPlayerMan = (EntityPlayer) event.entityLiving;
-
+ if (event.entity != null && event.entityLiving != null){
+ if (event.entityLiving instanceof EntityPlayer){
+ EntityPlayer mPlayerMan = (EntityPlayer) event.entityLiving;
- if (mPlayerMan != null){
- //Utils.LOG_INFO("Found Player.");
- if (Utils.isServer()){
- //Utils.LOG_INFO("Found Server-Side.");
+ if (mPlayerMan != null){
+ //Utils.LOG_INFO("Found Player.");
- mTickTimer++;
- if (mTickTimer % 10 == 0){
+ if (Utils.isServer()){
+ //Utils.LOG_INFO("Found Server-Side.");
- long mVoltage = 0;
- long mEuStored = 0;
+ mTickTimer++;
+ if (mTickTimer % mTickMultiplier == 0){
- if (!mChargerMap.isEmpty() && mValidPlayers.containsKey(mPlayerMan)){
+ long mVoltage = 0;
+ long mEuStored = 0;
- InventoryPlayer mPlayerInventory = mPlayerMan.inventory;
- ItemStack[] mArmourContents = mPlayerInventory.armorInventory.clone();
- ItemStack[] mInventoryContents = mPlayerInventory.mainInventory.clone();
+ if (!mChargerMap.isEmpty() && mValidPlayers.containsKey(mPlayerMan)){
- for (GregtechMetaWirelessCharger mEntityTemp : mChargerMap.values()){
- if (mEntityTemp != null){
- mVoltage = mEntityTemp.getInputTier();
- mEuStored = mEntityTemp.getEUVar();
- if (mVoltage > 0 && mEuStored >= mVoltage){
+ InventoryPlayer mPlayerInventory = mPlayerMan.inventory;
+ ItemStack[] mArmourContents = mPlayerInventory.armorInventory.clone();
+ ItemStack[] mInventoryContents = mPlayerInventory.mainInventory.clone();
- Map<EntityPlayer, UUID> LR = mEntityTemp.getLongRangeMap();
- Map<UUID, EntityPlayer> LO = mEntityTemp.getLocalMap();
+ for (GregtechMetaWirelessCharger mEntityTemp : mChargerMap.values()){
+ if (mEntityTemp != null){
+ mVoltage = mEntityTemp.maxEUInput();
+ mEuStored = mEntityTemp.getEUVar();
+ if (mVoltage > 0 && mEuStored >= mVoltage){
- long mStartingEu = mEntityTemp.getEUVar();
- long mCurrentEu = mEntityTemp.getEUVar();
- long mEuUsed = 0;
- if (mEntityTemp.getMode() == 0){
+ Map<EntityPlayer, UUID> LR = mEntityTemp.getLongRangeMap();
+ Map<UUID, EntityPlayer> LO = mEntityTemp.getLocalMap();
- if (!LR.isEmpty() && LR.containsKey(mPlayerMan)){
- mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
- mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
- }
- }
- else if (mEntityTemp.getMode() == 1){
- if (!LO.isEmpty() && LO.containsValue(mPlayerMan)){
- mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
- mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
- }
- }
- else {
- if (!LR.isEmpty() && LR.containsKey(mPlayerMan)){
- mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
- mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
- }
- if (!LO.isEmpty() && LO.containsValue(mPlayerMan)){
- mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
- mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
- }
- }
-
- if ((mEuUsed = (mStartingEu - mCurrentEu)) <= 0 && mEntityTemp != null){
- long mMaxDistance;
+ long mStartingEu = mEntityTemp.getEUVar();
+ long mCurrentEu = mEntityTemp.getEUVar();
+ long mEuUsed = 0;
if (mEntityTemp.getMode() == 0){
- mMaxDistance = (4*GT_Values.V[mEntityTemp.getTier()]);
+
+ if (!LR.isEmpty() && LR.containsKey(mPlayerMan)){
+ mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
+ mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
+ }
}
else if (mEntityTemp.getMode() == 1){
- mMaxDistance = (mEntityTemp.getTier()*10);
+ if (!LO.isEmpty() && LO.containsValue(mPlayerMan)){
+ mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
+ mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
+ }
}
else {
- mMaxDistance = (4*GT_Values.V[mEntityTemp.getTier()]/2);
- }
- double mDistance = calculateDistance(mEntityTemp, mPlayerMan);
- long mVoltageCost = MathUtils.findPercentageOfInt(mMaxDistance, (float) mDistance);
+ if (!LR.isEmpty() && LR.containsKey(mPlayerMan)){
+ mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
+ mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
+ }
+ if (!LO.isEmpty() && LO.containsValue(mPlayerMan)){
+ mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
+ mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
+ }
+ }
- if (mVoltageCost > 0){
- if (mVoltageCost > mEntityTemp.maxEUInput()){
- mEntityTemp.setEUVar((mEntityTemp.getEUVar()-mEntityTemp.maxEUInput()));
+ if ((mEuUsed = (mStartingEu - mCurrentEu)) <= 0 && mEntityTemp != null){
+ long mMaxDistance;
+ if (mEntityTemp.getMode() == 0){
+ mMaxDistance = (4*GT_Values.V[mEntityTemp.getTier()]);
+ }
+ else if (mEntityTemp.getMode() == 1){
+ mMaxDistance = (mEntityTemp.getTier()*10);
}
else {
- mEntityTemp.setEUVar((mEntityTemp.getEUVar()-mVoltageCost));
+ mMaxDistance = (4*GT_Values.V[mEntityTemp.getTier()]/2);
+ }
+ double mDistance = calculateDistance(mEntityTemp, mPlayerMan);
+ long mVoltageCost = MathUtils.findPercentageOfInt(mMaxDistance, (float) mDistance);
+
+ if (mVoltageCost > 0){
+ if (mVoltageCost > mEntityTemp.maxEUInput()){
+ mEntityTemp.setEUVar((mEntityTemp.getEUVar()-mEntityTemp.maxEUInput()));
+ }
+ else {
+ mEntityTemp.setEUVar((mEntityTemp.getEUVar()-mVoltageCost));
+ }
}
}
-
}
-
- }
- else {
- //Utils.LOG_INFO("Voltage: "+mVoltage+" | Eu Storage: "+mEuStored);
}
}
}
@@ -134,10 +128,21 @@ public class ChargingHelper {
}
}
}
- }
+
catch (Throwable t){
- Utils.LOG_INFO("State of Wireless Charger changed in an invalid way, this prevented a crash.");
+ //Utils.LOG_INFO("State of Wireless Charger changed in an invalid way, this prevented a crash.");
+
+ if (!mChargerMap.isEmpty()){
+ for (GregtechMetaWirelessCharger r : mChargerMap.values()){
+ if (r == null){
+ mChargerMap.remove(r);
+ }
+ }
+ }
+ //t.printStackTrace();
}
+
+
}
public static boolean addEntry(BlockPos mPos, GregtechMetaWirelessCharger mEntity){
@@ -320,7 +325,7 @@ public class ChargingHelper {
else {
mVoltageIncrease = mItemEuTLimit;
}
-
+
Utils.LOG_INFO("4");
int mMulti;