From 30cb683d7cf0d7d83e07ecb0d3d7cb3a6ecdbe16 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Thu, 16 Nov 2017 11:52:20 +1000 Subject: + Created the base framework for wireless charging. --- .../gregtech/common/helpers/ChargingHelper.java | 251 +++++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java new file mode 100644 index 0000000000..98d7442429 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java @@ -0,0 +1,251 @@ +package gtPlusPlus.xmod.gregtech.common.helpers; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.TickEvent; +import cpw.mods.fml.relauncher.Side; +import gregtech.api.enums.GT_Values; +import gregtech.api.items.GT_MetaGenerated_Tool; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.array.BlockPos; +import gtPlusPlus.core.util.array.Pair; +import gtPlusPlus.core.util.math.MathUtils; +import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaWirelessCharger; +import ic2.api.info.Info; +import ic2.api.item.ElectricItem; +import ic2.api.item.IElectricItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; + +public class ChargingHelper { + + protected static Map mChargerMap = new HashMap(); + private int mTickTimer = 0; + + public static boolean addEntry(BlockPos mPos, GregtechMetaWirelessCharger mEntity){ + if (!mChargerMap.containsKey(mPos)){ + if (mChargerMap.put(mPos, mEntity) == null){ + return true; + } + else { + return false; + } + } + else { + return false; + } + } + + public static boolean removeEntry(BlockPos mPos, GregtechMetaWirelessCharger mEntity){ + if (mChargerMap.containsKey(mPos)){ + if (mChargerMap.remove(mPos, mEntity)){ + return true; + } + else { + return false; + } + } + else { + return false; + } + } + + private static Map> mValidPlayers = new HashMap>(); + + public static boolean addValidPlayer(EntityPlayer mPlayer, GregtechMetaWirelessCharger mEntity){ + if (!mValidPlayers.containsKey(mPlayer)){ + Pair mEntry = new Pair(mEntity, (byte) mEntity.getMode()); + if (mValidPlayers.put(mPlayer, mEntry) == null){ + Utils.LOG_INFO("Added a Player to the Tick Map."); + return true; + } + else { + return false; + } + } + else { + return false; + } + } + + public static boolean removeValidPlayer(EntityPlayer mPlayer, GregtechMetaWirelessCharger mEntity){ + if (mValidPlayers.containsKey(mPlayer)){ + Pair mEntry = new Pair(mEntity, (byte) mEntity.getMode()); + if (mValidPlayers.remove(mPlayer, mEntry)){ + Utils.LOG_INFO("Removed a Player to the Tick Map."); + return true; + } + else { + return false; + } + } + else { + return false; + } + } + + + //Called whenever the player is updated or ticked. + @SubscribeEvent + public void onPlayerTick(TickEvent.PlayerTickEvent event) { + if (event.player != null){ + Utils.LOG_INFO("Found Player."); + if (event.side == Side.SERVER){ + Utils.LOG_INFO("Found Server-Side."); + + mTickTimer++; + + if (mTickTimer % 20 == 0){ + + long mVoltage = 0; + long mEuStored = 0; + + if (!mChargerMap.isEmpty() && mValidPlayers.containsKey(event.player)){ + + for (GregtechMetaWirelessCharger mEntityTemp : mChargerMap.values()){ + mVoltage = mEntityTemp.getInputTier(); + mEuStored = mEntityTemp.getEUVar(); + if (mVoltage > 0 && mEuStored >= mVoltage){ + + InventoryPlayer mPlayerInventory = event.player.inventory; + ItemStack[] mArmourContents = mPlayerInventory.armorInventory; + ItemStack[] mInventoryContents = mPlayerInventory.mainInventory; + + Map LR = mEntityTemp.getLongRangeMap(); + Map LO = mEntityTemp.getLocalMap(); + + long mStartingEu = mEntityTemp.getEUVar(); + long mCurrentEu = mEntityTemp.getEUVar(); + long mEuUsed = 0; + if (mEntityTemp.getMode() == 0){ + + if (!LR.isEmpty() && LR.containsKey(event.player)){ + mCurrentEu = chargeItems(mEntityTemp, mArmourContents, event.player); + mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, event.player); + } + } + else if (mEntityTemp.getMode() == 1){ + if (!LO.isEmpty() && LO.containsValue(event.player)){ + mCurrentEu = chargeItems(mEntityTemp, mArmourContents, event.player); + mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, event.player); + } + } + else { + if (!LR.isEmpty() && LR.containsKey(event.player)){ + mCurrentEu = chargeItems(mEntityTemp, mArmourContents, event.player); + mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, event.player); + } + if (!LO.isEmpty() && LO.containsValue(event.player)){ + mCurrentEu = chargeItems(mEntityTemp, mArmourContents, event.player); + mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, event.player); + } + } + + if ((mEuUsed = (mStartingEu - mCurrentEu)) <= 0){ + long mMaxDistance; + if (mEntityTemp.getMode() == 0){ + mMaxDistance = (4*GT_Values.V[mEntityTemp.getTier()]); + } + else if (mEntityTemp.getMode() == 1){ + mMaxDistance = (mEntityTemp.getTier()*10); + } + else { + mMaxDistance = (4*GT_Values.V[mEntityTemp.getTier()]/2); + } + double mDistance = calculateDistance(mEntityTemp, event); + 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); + } + } + } + } + } + } + } + + public double calculateDistance(GregtechMetaWirelessCharger mEntityTemp, TickEvent.PlayerTickEvent event){ + return mEntityTemp.getDistanceBetweenTwoPositions(mEntityTemp.getTileEntityPosition(), mEntityTemp.getPositionOfEntity(event.player)); + } + + public long chargeItems(GregtechMetaWirelessCharger mEntity, ItemStack[] mItems, EntityPlayer mPlayer){ + if (mEntity == null || mItems == null || mItems.length == 0){ + return mEntity.getEUVar(); + } + int mChargedItems = 0; + final int mTier = mEntity.getTier(); + final long mVoltage = mEntity.getInputTier(); + 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()); + } + } + if (mChargedItems < 1){ + return mEuStoredOriginal; + } + return mEntity.getEUVar(); + } + + public boolean isItemValid(final ItemStack itemstack) { + if ((accepts(itemstack)) || (itemstack.getItem() instanceof GT_MetaGenerated_Tool) || (itemstack.getItem() instanceof IElectricItem)) { + return true; + } + return false; + } + + public boolean accepts(final ItemStack stack) { + if (stack == null) { + return false; + } + return (Info.itemEnergy.getEnergyValue(stack) > 0.0D) + || (ElectricItem.manager.discharge(stack, (1.0D / 0.0D), 4, true, true, true) > 0.0D); + } + + //Called when the client ticks. + @SubscribeEvent + public void onClientTick(TickEvent.ClientTickEvent event) { + + } + + //Called when the server ticks. Usually 20 ticks a second. + @SubscribeEvent + public void onServerTick(TickEvent.ServerTickEvent event) { + + } + + //Called when a new frame is displayed (See fps) + @SubscribeEvent + public void onRenderTick(TickEvent.RenderTickEvent event) { + + } + + //Called when the world ticks + @SubscribeEvent + public void onWorldTick(TickEvent.WorldTickEvent event) { + + } + +} -- cgit From 161828da23fa09495fb1c2b16411e30c3c4fed01 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Thu, 16 Nov 2017 12:55:51 +1000 Subject: $ Redid the LivingEntityUpdate event, fix it not working as intended. $ Fixed persistent player mappings to null Wireless Chargers. --- src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java | 10 - .../gregtech/common/helpers/ChargingHelper.java | 279 +++++++++++---------- .../basic/GregtechMetaWirelessCharger.java | 33 ++- .../gregtech/GregtechWirelessChargers.java | 8 +- 4 files changed, 180 insertions(+), 150 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java index b95ab04024..8251387aff 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java @@ -1,27 +1,19 @@ package gtPlusPlus.xmod.gregtech; -import java.io.File; import java.util.ArrayList; import java.util.List; -import cpw.mods.fml.common.FMLCommonHandler; -import gregtech.api.GregTech_API; import gregtech.api.util.GT_Config; -import gregtech.api.util.MultiblockRecipeMapHandler; -import gregtech.api.world.GT_Worldgen; import gtPlusPlus.core.handler.COMPAT_HANDLER; import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.recipe.RECIPES_LaserEngraver; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import gtPlusPlus.xmod.gregtech.api.util.GTPP_Config; import gtPlusPlus.xmod.gregtech.api.world.GTPP_Worldgen; import gtPlusPlus.xmod.gregtech.common.blocks.fluid.GregtechFluidHandler; -import gtPlusPlus.xmod.gregtech.common.helpers.ChargingHelper; import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechItems; import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools; import gtPlusPlus.xmod.gregtech.loaders.*; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechConduits; -import net.minecraftforge.common.config.Configuration; public class HANDLER_GT { @@ -30,7 +22,6 @@ public class HANDLER_GT { public static GTPP_Config sCustomWorldgenFile = null; public static final List sCustomWorldgenList = new ArrayList(); - @SuppressWarnings("unused") public static void preInit(){ new MetaGeneratedGregtechItems(); @@ -40,7 +31,6 @@ public class HANDLER_GT { GregtechFluidHandler.run(); } - @SuppressWarnings("unused") public static void init(){ //Load General Blocks and set up some Basic Meta Tile Entitie states diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java index 98d7442429..5bbe6bcb02 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java @@ -4,9 +4,8 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; +import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.TickEvent; -import cpw.mods.fml.relauncher.Side; import gregtech.api.enums.GT_Values; import gregtech.api.items.GT_MetaGenerated_Tool; import gtPlusPlus.core.util.Utils; @@ -20,13 +19,119 @@ import ic2.api.item.IElectricItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; public class ChargingHelper { + private static Map> mValidPlayers = new HashMap>(); protected static Map mChargerMap = new HashMap(); private int mTickTimer = 0; + //Called whenever the player is updated or ticked. + @SubscribeEvent(priority = EventPriority.HIGHEST) + public void onPlayerTick(LivingUpdateEvent event) { + 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."); + + mTickTimer++; + if (mTickTimer % 20 == 0){ + + long mVoltage = 0; + long mEuStored = 0; + + 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; + ItemStack[] mInventoryContents = mPlayerInventory.mainInventory; + + Map LR = mEntityTemp.getLongRangeMap(); + Map LO = mEntityTemp.getLocalMap(); + + long mStartingEu = mEntityTemp.getEUVar(); + long mCurrentEu = mEntityTemp.getEUVar(); + long mEuUsed = 0; + if (mEntityTemp.getMode() == 0){ + + 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; + if (mEntityTemp.getMode() == 0){ + mMaxDistance = (4*GT_Values.V[mEntityTemp.getTier()]); + } + else if (mEntityTemp.getMode() == 1){ + mMaxDistance = (mEntityTemp.getTier()*10); + } + else { + 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); + } + } + } + } + } + } + } + } + } + } + public static boolean addEntry(BlockPos mPos, GregtechMetaWirelessCharger mEntity){ + if (mEntity == null){ + return false; + } if (!mChargerMap.containsKey(mPos)){ if (mChargerMap.put(mPos, mEntity) == null){ return true; @@ -39,8 +144,11 @@ public class ChargingHelper { return false; } } - + public static boolean removeEntry(BlockPos mPos, GregtechMetaWirelessCharger mEntity){ + if (mEntity == null){ + return false; + } if (mChargerMap.containsKey(mPos)){ if (mChargerMap.remove(mPos, mEntity)){ return true; @@ -54,139 +162,76 @@ public class ChargingHelper { } } - private static Map> mValidPlayers = new HashMap>(); - public static boolean addValidPlayer(EntityPlayer mPlayer, GregtechMetaWirelessCharger mEntity){ - if (!mValidPlayers.containsKey(mPlayer)){ + if (mEntity == null){ + return false; + } + Utils.LOG_INFO("trying to map new player"); + if (mValidPlayers.containsKey(mPlayer)){ + Utils.LOG_INFO("Key contains player already?"); + return false; + } + else { + Utils.LOG_INFO("key not found, adding"); Pair mEntry = new Pair(mEntity, (byte) mEntity.getMode()); if (mValidPlayers.put(mPlayer, mEntry) == null){ Utils.LOG_INFO("Added a Player to the Tick Map."); return true; } else { + Utils.LOG_INFO("Tried to add player but it was already there?"); return false; } } - else { - return false; - } } - + public static boolean removeValidPlayer(EntityPlayer mPlayer, GregtechMetaWirelessCharger mEntity){ + if (mEntity == null){ + return false; + } + Utils.LOG_INFO("trying to remove player from map"); if (mValidPlayers.containsKey(mPlayer)){ + Utils.LOG_INFO("key found, removing"); Pair mEntry = new Pair(mEntity, (byte) mEntity.getMode()); if (mValidPlayers.remove(mPlayer, mEntry)){ Utils.LOG_INFO("Removed a Player to the Tick Map."); return true; } else { + Utils.LOG_INFO("Tried to remove player but it was not there?"); return false; } } else { + Utils.LOG_INFO("Key does not contain player?"); return false; } } - - - //Called whenever the player is updated or ticked. - @SubscribeEvent - public void onPlayerTick(TickEvent.PlayerTickEvent event) { - if (event.player != null){ - Utils.LOG_INFO("Found Player."); - if (event.side == Side.SERVER){ - Utils.LOG_INFO("Found Server-Side."); - - mTickTimer++; - - if (mTickTimer % 20 == 0){ - - long mVoltage = 0; - long mEuStored = 0; - - if (!mChargerMap.isEmpty() && mValidPlayers.containsKey(event.player)){ - - for (GregtechMetaWirelessCharger mEntityTemp : mChargerMap.values()){ - mVoltage = mEntityTemp.getInputTier(); - mEuStored = mEntityTemp.getEUVar(); - if (mVoltage > 0 && mEuStored >= mVoltage){ - - InventoryPlayer mPlayerInventory = event.player.inventory; - ItemStack[] mArmourContents = mPlayerInventory.armorInventory; - ItemStack[] mInventoryContents = mPlayerInventory.mainInventory; - - Map LR = mEntityTemp.getLongRangeMap(); - Map LO = mEntityTemp.getLocalMap(); - - long mStartingEu = mEntityTemp.getEUVar(); - long mCurrentEu = mEntityTemp.getEUVar(); - long mEuUsed = 0; - if (mEntityTemp.getMode() == 0){ - - if (!LR.isEmpty() && LR.containsKey(event.player)){ - mCurrentEu = chargeItems(mEntityTemp, mArmourContents, event.player); - mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, event.player); - } - } - else if (mEntityTemp.getMode() == 1){ - if (!LO.isEmpty() && LO.containsValue(event.player)){ - mCurrentEu = chargeItems(mEntityTemp, mArmourContents, event.player); - mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, event.player); - } - } - else { - if (!LR.isEmpty() && LR.containsKey(event.player)){ - mCurrentEu = chargeItems(mEntityTemp, mArmourContents, event.player); - mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, event.player); - } - if (!LO.isEmpty() && LO.containsValue(event.player)){ - mCurrentEu = chargeItems(mEntityTemp, mArmourContents, event.player); - mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, event.player); - } - } - - if ((mEuUsed = (mStartingEu - mCurrentEu)) <= 0){ - long mMaxDistance; - if (mEntityTemp.getMode() == 0){ - mMaxDistance = (4*GT_Values.V[mEntityTemp.getTier()]); - } - else if (mEntityTemp.getMode() == 1){ - mMaxDistance = (mEntityTemp.getTier()*10); - } - else { - mMaxDistance = (4*GT_Values.V[mEntityTemp.getTier()]/2); - } - double mDistance = calculateDistance(mEntityTemp, event); - 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); - } - } - } - } - } + + public double calculateDistance(GregtechMetaWirelessCharger mEntityTemp, EntityPlayer mPlayerMan){ + if (mEntityTemp == null || mPlayerMan == null){ + return 0; } + return mEntityTemp.getDistanceBetweenTwoPositions(mEntityTemp.getTileEntityPosition(), mEntityTemp.getPositionOfEntity(mPlayerMan)); } - public double calculateDistance(GregtechMetaWirelessCharger mEntityTemp, TickEvent.PlayerTickEvent event){ - return mEntityTemp.getDistanceBetweenTwoPositions(mEntityTemp.getTileEntityPosition(), mEntityTemp.getPositionOfEntity(event.player)); + public long chargeItems(GregtechMetaWirelessCharger mEntity, ItemStack[] mItems, EntityPlayer mPlayer){ + if (mEntity == null){ + return -100; + } + if (mItems == null || mItems.length == 0){ + return mEntity.getEUVar(); + } + long mInitialValue = mEntity.getEUVar(); + long mReturnValue = chargeItemsEx(mEntity, mItems, mPlayer); + return ((mReturnValue < mInitialValue) ? mReturnValue : mInitialValue); } - public long chargeItems(GregtechMetaWirelessCharger mEntity, ItemStack[] mItems, EntityPlayer mPlayer){ - if (mEntity == null || mItems == null || mItems.length == 0){ + public long chargeItemsEx(GregtechMetaWirelessCharger mEntity, ItemStack[] mItems, EntityPlayer mPlayer){ + if (mEntity == null){ + return -100; + } + if (mItems == null || mItems.length == 0){ return mEntity.getEUVar(); } int mChargedItems = 0; @@ -224,28 +269,4 @@ public class ChargingHelper { || (ElectricItem.manager.discharge(stack, (1.0D / 0.0D), 4, true, true, true) > 0.0D); } - //Called when the client ticks. - @SubscribeEvent - public void onClientTick(TickEvent.ClientTickEvent event) { - - } - - //Called when the server ticks. Usually 20 ticks a second. - @SubscribeEvent - public void onServerTick(TickEvent.ServerTickEvent event) { - - } - - //Called when a new frame is displayed (See fps) - @SubscribeEvent - public void onRenderTick(TickEvent.RenderTickEvent event) { - - } - - //Called when the world ticks - @SubscribeEvent - public void onWorldTick(TickEvent.WorldTickEvent event) { - - } - } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java index 9b84916459..1ceb4c6a7b 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java @@ -27,7 +27,7 @@ import net.minecraft.nbt.NBTTagCompound; public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { private boolean mHasBeenMapped = false; - + public GregtechMetaWirelessCharger(final int aID, final String aName, final String aNameRegional, final int aTier, final String aDescription, final int aSlotCount) { super(aID, aName, aNameRegional, aTier, aSlotCount, aDescription); } @@ -47,19 +47,19 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { "gets half the distances each singular mode gets.", CORE.GT_Tooltip}; } - + public int getTier(){ return this.mTier; } - + public int getMode(){ return this.mMode; } - + public Map getLocalMap(){ return this.mLocalChargingMap; } - + public Map getLongRangeMap(){ return this.mWirelessChargingMap; } @@ -139,6 +139,18 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { @Override public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + mWirelessChargingMap.clear(); + mLocalChargingMap.clear(); + + if (!this.getBaseMetaTileEntity().getWorld().playerEntities.isEmpty()){ + for (Object mTempPlayer : this.getBaseMetaTileEntity().getWorld().playerEntities){ + if (mTempPlayer instanceof EntityPlayer || mTempPlayer instanceof EntityPlayerMP){ + EntityPlayer mTemp = (EntityPlayer) mTempPlayer; + ChargingHelper.removeValidPlayer(mTemp, this); + } + } + } + if (this.mMode >= 2){ this.mMode = 0; } @@ -438,8 +450,17 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { public void onRemoval() { mWirelessChargingMap.clear(); mLocalChargingMap.clear(); + if (!this.getBaseMetaTileEntity().getWorld().playerEntities.isEmpty()){ + for (Object mTempPlayer : this.getBaseMetaTileEntity().getWorld().playerEntities){ + if (mTempPlayer instanceof EntityPlayer || mTempPlayer instanceof EntityPlayerMP){ + EntityPlayer mTemp = (EntityPlayer) mTempPlayer; + ChargingHelper.removeValidPlayer(mTemp, this); + } + } + } + ChargingHelper.removeEntry(getTileEntityPosition(), this); - + super.onRemoval(); } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechWirelessChargers.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechWirelessChargers.java index bd5f1abc54..688b522c2b 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechWirelessChargers.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechWirelessChargers.java @@ -1,14 +1,11 @@ package gtPlusPlus.xmod.gregtech.registration.gregtech; import cpw.mods.fml.common.FMLCommonHandler; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import gtPlusPlus.xmod.gregtech.common.helpers.ChargingHelper; import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaWirelessCharger; -import net.minecraft.item.ItemStack; +import net.minecraftforge.common.MinecraftForge; public class GregtechWirelessChargers { @@ -19,7 +16,8 @@ public class GregtechWirelessChargers { | GT_ModHandler.RecipeBits.REVERSIBLE | GT_ModHandler.RecipeBits.BUFFERED; int mID = 890; - FMLCommonHandler.instance().bus().register(ChargingHelper.class); + FMLCommonHandler.instance().bus().register(new ChargingHelper()); + MinecraftForge.EVENT_BUS.register(new ChargingHelper()); GregtechItemList.Charger_LV.set(new GregtechMetaWirelessCharger(mID++, "wificharger.01.tier.single", "Wireless Charger MK I", 1, "Hopefully won't give you cancer.", 0).getStackForm(1L)); -- cgit From b5ae94feabc22cbc94e72350f3ae0f12bae781af Mon Sep 17 00:00:00 2001 From: Alkalus Date: Thu, 16 Nov 2017 13:54:21 +1000 Subject: $ Fixed voltage used to charge items. --- .../gregtech/common/helpers/ChargingHelper.java | 43 ++++++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') 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); } -- cgit From bb0a717685f78af4a7eca688bfffe02e80c8aeaa Mon Sep 17 00:00:00 2001 From: Alkalus Date: Thu, 16 Nov 2017 15:12:12 +1000 Subject: $ Made Electric Item Checking within player inventories work better. --- .../gregtech/common/helpers/ChargingHelper.java | 119 ++++++++++++++++----- 1 file changed, 94 insertions(+), 25 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java index fa11fe9fbd..291e3856b8 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java @@ -9,10 +9,16 @@ 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; import gtPlusPlus.core.util.math.MathUtils; +import gtPlusPlus.core.util.nbt.NBTUtils; import gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic.GregtechMetaWirelessCharger; import ic2.api.info.Info; import ic2.api.item.ElectricItem; @@ -43,12 +49,16 @@ public class ChargingHelper { //Utils.LOG_INFO("Found Server-Side."); mTickTimer++; - if (mTickTimer % 20 == 0){ + if (mTickTimer % 10 == 0){ long mVoltage = 0; long mEuStored = 0; - if (!mChargerMap.isEmpty() && mValidPlayers.containsKey(mPlayerMan)){ + if (!mChargerMap.isEmpty() && mValidPlayers.containsKey(mPlayerMan)){ + + InventoryPlayer mPlayerInventory = mPlayerMan.inventory; + ItemStack[] mArmourContents = mPlayerInventory.armorInventory.clone(); + ItemStack[] mInventoryContents = mPlayerInventory.mainInventory.clone(); for (GregtechMetaWirelessCharger mEntityTemp : mChargerMap.values()){ if (mEntityTemp != null){ @@ -56,10 +66,6 @@ public class ChargingHelper { mEuStored = mEntityTemp.getEUVar(); if (mVoltage > 0 && mEuStored >= mVoltage){ - InventoryPlayer mPlayerInventory = mPlayerMan.inventory; - ItemStack[] mArmourContents = mPlayerInventory.armorInventory; - ItemStack[] mInventoryContents = mPlayerInventory.mainInventory; - Map LR = mEntityTemp.getLongRangeMap(); Map LO = mEntityTemp.getLocalMap(); @@ -215,7 +221,7 @@ public class ChargingHelper { } return mEntityTemp.getDistanceBetweenTwoPositions(mEntityTemp.getTileEntityPosition(), mEntityTemp.getPositionOfEntity(mPlayerMan)); } - + public long chargeItems(GregtechMetaWirelessCharger mEntity, ItemStack[] mItems, EntityPlayer mPlayer){ if (mEntity == null){ return -100; @@ -229,42 +235,106 @@ public class ChargingHelper { } public long chargeItemsEx(GregtechMetaWirelessCharger mEntity, ItemStack[] mItems, EntityPlayer mPlayer){ + + //Bad Entity if (mEntity == null){ return -100; } + //Bad Inventory if (mItems == null || mItems.length == 0){ return mEntity.getEUVar(); } + //Set Variables to Charge int mChargedItems = 0; final int mTier = mEntity.getTier(); final long mVoltage = mEntity.maxEUInput(); long mEuStored = mEntity.getEUVar(); final long mEuStoredOriginal = mEntity.getEUVar(); + //For Inventory Contents + + int mItemSlot = 0; + for (ItemStack mTemp : mItems){ + mItemSlot++; + //Is item Electrical if (isItemValid(mTemp)){ - double mItemTier = ((IElectricItem) mTemp.getItem()).getTransferLimit(mTemp); - if (mEuStored >= mItemTier){ + + //Transfer Limit + double mItemEuTLimit = ((IElectricItem) mTemp.getItem()).getTransferLimit(mTemp); + //Check if Tile has more or equal EU to what can be transferred into the item. + if (mEuStored >= mItemEuTLimit){ + double mItemMaxCharge = ((IElectricItem) mTemp.getItem()).getMaxCharge(mTemp); double mitemCurrentCharge = ElectricItem.manager.getCharge(mTemp); - - double mVoltageDecrease; - if (mItemTier >= mVoltage){ - mVoltageDecrease = mVoltage; + + //Try get charge direct from NBT for GT and IC2 stacks + try { + if (mTemp.getItem() instanceof GT_MetaGenerated_Tool_01 + || mTemp.getItem() instanceof GT_MetaGenerated_Item_01 + || mTemp.getItem() instanceof GT_MetaGenerated_Item_02 + || Class.forName("gregtech.common.items.GT_MetaGenerated_Item_03").isInstance(mTemp.getItem()) + || mTemp.getItem().getClass().getName().toLowerCase().equals(("gregtech.common.items.GT_MetaGenerated_Tool_01").toLowerCase())){ + if (!NBTUtils.hasKey(mTemp, "GT.ItemCharge")){ + if (!mTemp.getDisplayName().toLowerCase().contains("battery")){ + if (!GT_ModHandler.isElectricItem(mTemp)){ + continue; + } + } + else { + mitemCurrentCharge = 0; + } + } + else { + mitemCurrentCharge = NBTUtils.getLong(mTemp, "GT.ItemCharge"); + } + } + else if (mTemp.getItem() instanceof IElectricItem){ + mitemCurrentCharge = NBTUtils.getLong(mTemp, "charge"); + } + } catch (ClassNotFoundException e) { + + } + + double mVoltageIncrease; + if (mItemEuTLimit >= mVoltage){ + mVoltageIncrease = mVoltage; + } + else if (mItemEuTLimit < mVoltage){ + mVoltageIncrease = mItemEuTLimit; + } + else { + mVoltageIncrease = mItemEuTLimit; + } + + int mMulti; + if ((mitemCurrentCharge + (mVoltageIncrease*20)) <= (mItemMaxCharge - (mVoltageIncrease*20))){ + mMulti = 20; + } + else if ((mitemCurrentCharge + (mVoltageIncrease*10)) <= (mItemMaxCharge - (mVoltageIncrease*10))){ + mMulti = 10; + } + else if ((mitemCurrentCharge + (mVoltageIncrease*5)) <= (mItemMaxCharge - (mVoltageIncrease*5))){ + mMulti = 5; } - else if (mItemTier < mVoltage){ - mVoltageDecrease = mItemTier; + else if ((mitemCurrentCharge + mVoltageIncrease) <= (mItemMaxCharge - mVoltageIncrease)){ + mMulti = 1; } else { - mVoltageDecrease = mItemTier; + mMulti = 1; } - - if ((mitemCurrentCharge + mVoltageDecrease) <= (mItemMaxCharge - mVoltageDecrease)){ - ElectricItem.manager.charge(mTemp, mVoltageDecrease, mTier, false, false); - mEntity.setEUVar((long) (mEuStored-mVoltage)); + + int mMultiVoltage = (int) (mMulti*mVoltageIncrease); + + if ((mitemCurrentCharge + (mVoltageIncrease*mMulti)) <= (mItemMaxCharge - (mVoltageIncrease*mMulti))){ + GT_ModHandler.chargeElectricItem(mTemp, mMultiVoltage, mTier, false, false); + //ElectricItem.manager.charge(mTemp, (mItemMaxCharge), mTier, false, false); + mEntity.setEUVar((long) (mEuStored-(mVoltage*mMulti))); mEuStored = mEntity.getEUVar(); + Utils.LOG_INFO("Charged "+mTemp.getDisplayName()+" | Slot: "+mItemSlot+" | EU Multiplier: "+mMulti+" | EU/t input: "+mVoltageIncrease+" | EU/t consumed by Tile: "+mVoltage+" | Item Max Charge: "+mItemMaxCharge+" | Item Start Charge: "+mitemCurrentCharge+" | Item New Charge"+ElectricItem.manager.getCharge(mTemp)); mChargedItems++; - Utils.LOG_INFO("Charged "+mTemp.getDisplayName()+" by "+mItemTier+" for "+mPlayer.getCommandSenderName()); } + + } } } @@ -278,6 +348,9 @@ public class ChargingHelper { if (itemstack == null){ return false; } + if (GT_ModHandler.isElectricItem(itemstack)){ + return true; + } if ((accepts(itemstack)) || (itemstack.getItem() instanceof IElectricItem)) { return true; } @@ -288,10 +361,6 @@ 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); } -- cgit From c4963cab1c91ef09eb7b5694e8fa59ccb1023184 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Thu, 16 Nov 2017 15:30:01 +1000 Subject: $ Improved handling of fully Charged and non-charged items. --- .../gregtech/common/helpers/ChargingHelper.java | 38 ++++++++++++++++------ 1 file changed, 28 insertions(+), 10 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java index 291e3856b8..f4e53bc5dc 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java @@ -256,6 +256,7 @@ public class ChargingHelper { for (ItemStack mTemp : mItems){ mItemSlot++; + Utils.LOG_INFO("Trying to Tick slot "+mItemSlot); //Is item Electrical if (isItemValid(mTemp)){ @@ -267,6 +268,10 @@ public class ChargingHelper { double mItemMaxCharge = ((IElectricItem) mTemp.getItem()).getMaxCharge(mTemp); double mitemCurrentCharge = ElectricItem.manager.getCharge(mTemp); + if (mitemCurrentCharge >= mItemMaxCharge){ + continue; + } + //Try get charge direct from NBT for GT and IC2 stacks try { if (mTemp.getItem() instanceof GT_MetaGenerated_Tool_01 @@ -316,31 +321,44 @@ public class ChargingHelper { else if ((mitemCurrentCharge + (mVoltageIncrease*5)) <= (mItemMaxCharge - (mVoltageIncrease*5))){ mMulti = 5; } - else if ((mitemCurrentCharge + mVoltageIncrease) <= (mItemMaxCharge - mVoltageIncrease)){ - mMulti = 1; - } else { mMulti = 1; } + int mMultiVoltage = (int) (mMulti*mVoltageIncrease); - if ((mitemCurrentCharge + (mVoltageIncrease*mMulti)) <= (mItemMaxCharge - (mVoltageIncrease*mMulti))){ - GT_ModHandler.chargeElectricItem(mTemp, mMultiVoltage, mTier, false, false); - //ElectricItem.manager.charge(mTemp, (mItemMaxCharge), mTier, false, false); - mEntity.setEUVar((long) (mEuStored-(mVoltage*mMulti))); - mEuStored = mEntity.getEUVar(); - Utils.LOG_INFO("Charged "+mTemp.getDisplayName()+" | Slot: "+mItemSlot+" | EU Multiplier: "+mMulti+" | EU/t input: "+mVoltageIncrease+" | EU/t consumed by Tile: "+mVoltage+" | Item Max Charge: "+mItemMaxCharge+" | Item Start Charge: "+mitemCurrentCharge+" | Item New Charge"+ElectricItem.manager.getCharge(mTemp)); - mChargedItems++; + if ((mitemCurrentCharge + mMultiVoltage) <= mItemMaxCharge){ + if (GT_ModHandler.chargeElectricItem(mTemp, mMultiVoltage, mTier, true, false) == 0){ + for (int i=0; i mitemCurrentCharge){ + mEntity.setEUVar((long) (mEuStored-(mVoltage*mMulti))); + mEuStored = mEntity.getEUVar(); + Utils.LOG_INFO("Charged "+mTemp.getDisplayName()+" | Slot: "+mItemSlot+" | EU Multiplier: "+mMulti+" | EU/t input: "+mVoltageIncrease+" | EU/t consumed by Tile: "+mVoltage+" | Item Max Charge: "+mItemMaxCharge+" | Item Start Charge: "+mitemCurrentCharge+" | Item New Charge"+ElectricItem.manager.getCharge(mTemp)); + mChargedItems++; + } } } } + else { + if (mTemp != null){ + Utils.LOG_INFO("Found Non-Valid item."+mTemp.getDisplayName()); + } + } } + + //Return Values if (mChargedItems < 1){ return mEuStoredOriginal; } + return mEntity.getEUVar(); } -- cgit From 5144539962acc7d02248ed7075507b850044d877 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Thu, 16 Nov 2017 15:50:56 +1000 Subject: + Added in annoying logging. $ Fixed NPE when tickhandler tries to get null Tile entity. % Tweaked Stored Energy and A/in/t for Wireless Charger. --- .../gregtech/common/helpers/ChargingHelper.java | 22 +++++++++++++++++++--- .../basic/GregtechMetaWirelessCharger.java | 6 +++--- 2 files changed, 22 insertions(+), 6 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java index f4e53bc5dc..41ae1a911b 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java @@ -37,6 +37,7 @@ public class ChargingHelper { //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; @@ -133,6 +134,10 @@ public class ChargingHelper { } } } + } + catch (Throwable t){ + Utils.LOG_INFO("State of Wireless Charger changed in an invalid way, this prevented a crash."); + } } public static boolean addEntry(BlockPos mPos, GregtechMetaWirelessCharger mEntity){ @@ -256,14 +261,18 @@ public class ChargingHelper { for (ItemStack mTemp : mItems){ mItemSlot++; - Utils.LOG_INFO("Trying to Tick slot "+mItemSlot); + if (mTemp != null){ + Utils.LOG_INFO("Slot "+mItemSlot+" contains "+mTemp.getDisplayName()); + } //Is item Electrical if (isItemValid(mTemp)){ + Utils.LOG_INFO("1"); //Transfer Limit double mItemEuTLimit = ((IElectricItem) mTemp.getItem()).getTransferLimit(mTemp); //Check if Tile has more or equal EU to what can be transferred into the item. if (mEuStored >= mItemEuTLimit){ + Utils.LOG_INFO("2"); double mItemMaxCharge = ((IElectricItem) mTemp.getItem()).getMaxCharge(mTemp); double mitemCurrentCharge = ElectricItem.manager.getCharge(mTemp); @@ -273,7 +282,8 @@ public class ChargingHelper { } //Try get charge direct from NBT for GT and IC2 stacks - try { + try { + Utils.LOG_INFO("3"); if (mTemp.getItem() instanceof GT_MetaGenerated_Tool_01 || mTemp.getItem() instanceof GT_MetaGenerated_Item_01 || mTemp.getItem() instanceof GT_MetaGenerated_Item_02 @@ -310,6 +320,8 @@ public class ChargingHelper { else { mVoltageIncrease = mItemEuTLimit; } + + Utils.LOG_INFO("4"); int mMulti; if ((mitemCurrentCharge + (mVoltageIncrease*20)) <= (mItemMaxCharge - (mVoltageIncrease*20))){ @@ -324,12 +336,15 @@ public class ChargingHelper { else { mMulti = 1; } + Utils.LOG_INFO("5"); int mMultiVoltage = (int) (mMulti*mVoltageIncrease); if ((mitemCurrentCharge + mMultiVoltage) <= mItemMaxCharge){ + Utils.LOG_INFO("6"); if (GT_ModHandler.chargeElectricItem(mTemp, mMultiVoltage, mTier, true, false) == 0){ + Utils.LOG_INFO("6.5"); for (int i=0; i mitemCurrentCharge){ + Utils.LOG_INFO("7"); mEntity.setEUVar((long) (mEuStored-(mVoltage*mMulti))); mEuStored = mEntity.getEUVar(); Utils.LOG_INFO("Charged "+mTemp.getDisplayName()+" | Slot: "+mItemSlot+" | EU Multiplier: "+mMulti+" | EU/t input: "+mVoltageIncrease+" | EU/t consumed by Tile: "+mVoltage+" | Item Max Charge: "+mItemMaxCharge+" | Item Start Charge: "+mitemCurrentCharge+" | Item New Charge"+ElectricItem.manager.getCharge(mTemp)); @@ -349,7 +365,7 @@ public class ChargingHelper { } else { if (mTemp != null){ - Utils.LOG_INFO("Found Non-Valid item."+mTemp.getDisplayName()); + Utils.LOG_INFO("Found Non-Valid item. "+mTemp.getDisplayName()); } } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java index 1ceb4c6a7b..f0b2958c17 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java @@ -184,7 +184,7 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { @Override public boolean isOutputFacing(final byte aSide) {return aSide==this.getBaseMetaTileEntity().getFrontFacing();} @Override public boolean isTeleporterCompatible() {return false;} @Override public long getMinimumStoredEU() {return 0;} - @Override public long maxEUStore() {return GT_Values.V[this.mTier]*32;} + @Override public long maxEUStore() {return GT_Values.V[this.mTier]*128;} @Override public int getCapacity() { @@ -207,10 +207,10 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { return 2; } else if (this.mMode == 1){ - return this.mLocalChargingMap.size(); + return this.mLocalChargingMap.size()*8; } else { - return (this.mLocalChargingMap.size()+this.mWirelessChargingMap.size()); + return ((this.mLocalChargingMap.size()*4)+this.mWirelessChargingMap.size()); } } -- cgit From e76e27e165640bda7363f5c6996ff1a7655bc535 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Thu, 16 Nov 2017 16:29:01 +1000 Subject: $ First fix towards invalid tile entity mapping. --- .../gregtech/common/helpers/ChargingHelper.java | 151 +++++++++++---------- .../basic/GregtechMetaWirelessCharger.java | 16 ++- 2 files changed, 93 insertions(+), 74 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') 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> mValidPlayers = new HashMap>(); protected static Map mChargerMap = new HashMap(); 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 LR = mEntityTemp.getLongRangeMap(); - Map 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 LR = mEntityTemp.getLongRangeMap(); + Map 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; diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java index f0b2958c17..a2714c4bab 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java @@ -448,6 +448,9 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { @Override public void onRemoval() { + + ChargingHelper.removeEntry(getTileEntityPosition(), this); + mWirelessChargingMap.clear(); mLocalChargingMap.clear(); if (!this.getBaseMetaTileEntity().getWorld().playerEntities.isEmpty()){ @@ -459,7 +462,6 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { } } - ChargingHelper.removeEntry(getTileEntityPosition(), this); super.onRemoval(); } @@ -502,4 +504,16 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { super.onServerStart(); } + @Override + public void onExplosion() { + ChargingHelper.removeEntry(getTileEntityPosition(), this); + super.onExplosion(); + } + + @Override + public void doExplosion(long aExplosionPower) { + ChargingHelper.removeEntry(getTileEntityPosition(), this); + super.doExplosion(aExplosionPower); + } + } \ No newline at end of file -- cgit From af9369d63b91b26515a45f7a3419c98e4d6f8f05 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Thu, 16 Nov 2017 17:50:23 +1000 Subject: + Added recipes for Wireless Chargers. $ Fixed exploit using Long-Range mode, temporarily disabled. --- .../gtPlusPlus/core/recipe/RECIPES_Machines.java | 47 ++++++++++++++++++ .../gregtech/common/helpers/ChargingHelper.java | 56 +++++++++++----------- .../basic/GregtechMetaWirelessCharger.java | 9 ++-- 3 files changed, 80 insertions(+), 32 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java index 124e109f25..a8a4e5ad13 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java @@ -1053,6 +1053,53 @@ public class RECIPES_Machines { "plateStainlessSteel",CI.emitter_ULV,"plateStainlessSteel", ItemUtils.getSimpleStack(ModBlocks.blockProjectTable)); } + + //Wireless Chargers + RecipeUtils.addShapedGregtechRecipe( + CI.emitter_LV, CI.circuitTier1, CI.emitter_LV, + CI.component_Plate[3], CI.machineHull_LV, CI.component_Plate[3], + CI.sensor_LV, CI.fieldGenerator_LV, CI.sensor_LV, + GregtechItemList.Charger_LV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.emitter_MV, CI.circuitTier2, CI.emitter_MV, + CI.component_Plate[4], CI.machineHull_MV, CI.component_Plate[4], + CI.sensor_MV, CI.fieldGenerator_MV, CI.sensor_MV, + GregtechItemList.Charger_MV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.emitter_HV, CI.circuitTier3, CI.emitter_HV, + CI.component_Plate[5], CI.machineHull_HV, CI.component_Plate[5], + CI.sensor_HV, CI.fieldGenerator_HV, CI.sensor_HV, + GregtechItemList.Charger_HV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.emitter_EV, CI.circuitTier4, CI.emitter_EV, + CI.component_Plate[6], CI.machineHull_EV, CI.component_Plate[6], + CI.sensor_EV, CI.fieldGenerator_EV, CI.sensor_EV, + GregtechItemList.Charger_EV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.emitter_IV, CI.circuitTier5, CI.emitter_IV, + CI.component_Plate[7], CI.machineHull_IV, CI.component_Plate[7], + CI.sensor_IV, CI.fieldGenerator_IV, CI.sensor_IV, + GregtechItemList.Charger_IV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.emitter_LuV, CI.circuitTier6, CI.emitter_LuV, + CI.component_Plate[8], CI.machineHull_LuV, CI.component_Plate[8], + CI.sensor_LuV, CI.fieldGenerator_LuV, CI.sensor_LuV, + GregtechItemList.Charger_LuV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.emitter_ZPM, CI.circuitTier7, CI.emitter_ZPM, + CI.component_Plate[9], CI.machineHull_ZPM, CI.component_Plate[9], + CI.sensor_ZPM, CI.fieldGenerator_ZPM, CI.sensor_ZPM, + GregtechItemList.Charger_ZPM.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.emitter_UV, CI.circuitTier8, CI.emitter_UV, + CI.component_Plate[10], CI.machineHull_UV, CI.component_Plate[10], + CI.sensor_UV, CI.fieldGenerator_UV, CI.sensor_UV, + GregtechItemList.Charger_UV.get(1)); + RecipeUtils.addShapedGregtechRecipe( + CI.emitter_MAX, CI.circuitTier9, CI.emitter_MAX, + CI.component_Plate[11], CI.machineHull_MAX, CI.component_Plate[11], + CI.sensor_MAX, CI.fieldGenerator_MAX, CI.sensor_MAX, + GregtechItemList.Charger_MAX.get(1)); } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java index 4a59a621f7..6ff0536c85 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java @@ -42,10 +42,10 @@ public class ChargingHelper { if (mPlayerMan != null){ - //Utils.LOG_INFO("Found Player."); + //Utils.LOG_WARNING("Found Player."); if (Utils.isServer()){ - //Utils.LOG_INFO("Found Server-Side."); + //Utils.LOG_WARNING("Found Server-Side."); mTickTimer++; if (mTickTimer % mTickMultiplier == 0){ @@ -73,10 +73,10 @@ public class ChargingHelper { long mEuUsed = 0; if (mEntityTemp.getMode() == 0){ - if (!LR.isEmpty() && LR.containsKey(mPlayerMan)){ + /*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)){ @@ -85,10 +85,10 @@ public class ChargingHelper { } } else { - if (!LR.isEmpty() && LR.containsKey(mPlayerMan)){ + /*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); @@ -130,7 +130,7 @@ public class ChargingHelper { } catch (Throwable t){ - //Utils.LOG_INFO("State of Wireless Charger changed in an invalid way, this prevented a crash."); + //Utils.LOG_WARNING("State of Wireless Charger changed in an invalid way, this prevented a crash."); if (!mChargerMap.isEmpty()){ for (GregtechMetaWirelessCharger r : mChargerMap.values()){ @@ -183,20 +183,20 @@ public class ChargingHelper { if (mEntity == null){ return false; } - Utils.LOG_INFO("trying to map new player"); + Utils.LOG_WARNING("trying to map new player"); if (mValidPlayers.containsKey(mPlayer)){ - Utils.LOG_INFO("Key contains player already?"); + Utils.LOG_WARNING("Key contains player already?"); return false; } else { - Utils.LOG_INFO("key not found, adding"); + Utils.LOG_WARNING("key not found, adding"); Pair mEntry = new Pair(mEntity, (byte) mEntity.getMode()); if (mValidPlayers.put(mPlayer, mEntry) == null){ - Utils.LOG_INFO("Added a Player to the Tick Map."); + Utils.LOG_WARNING("Added a Player to the Tick Map."); return true; } else { - Utils.LOG_INFO("Tried to add player but it was already there?"); + Utils.LOG_WARNING("Tried to add player but it was already there?"); return false; } } @@ -206,21 +206,21 @@ public class ChargingHelper { if (mEntity == null){ return false; } - Utils.LOG_INFO("trying to remove player from map"); + Utils.LOG_WARNING("trying to remove player from map"); if (mValidPlayers.containsKey(mPlayer)){ - Utils.LOG_INFO("key found, removing"); + Utils.LOG_WARNING("key found, removing"); Pair mEntry = new Pair(mEntity, (byte) mEntity.getMode()); if (mValidPlayers.remove(mPlayer, mEntry)){ - Utils.LOG_INFO("Removed a Player to the Tick Map."); + Utils.LOG_WARNING("Removed a Player to the Tick Map."); return true; } else { - Utils.LOG_INFO("Tried to remove player but it was not there?"); + Utils.LOG_WARNING("Tried to remove player but it was not there?"); return false; } } else { - Utils.LOG_INFO("Key does not contain player?"); + Utils.LOG_WARNING("Key does not contain player?"); return false; } } @@ -267,17 +267,17 @@ public class ChargingHelper { for (ItemStack mTemp : mItems){ mItemSlot++; if (mTemp != null){ - Utils.LOG_INFO("Slot "+mItemSlot+" contains "+mTemp.getDisplayName()); + Utils.LOG_WARNING("Slot "+mItemSlot+" contains "+mTemp.getDisplayName()); } //Is item Electrical if (isItemValid(mTemp)){ - Utils.LOG_INFO("1"); + Utils.LOG_WARNING("1"); //Transfer Limit double mItemEuTLimit = ((IElectricItem) mTemp.getItem()).getTransferLimit(mTemp); //Check if Tile has more or equal EU to what can be transferred into the item. if (mEuStored >= mItemEuTLimit){ - Utils.LOG_INFO("2"); + Utils.LOG_WARNING("2"); double mItemMaxCharge = ((IElectricItem) mTemp.getItem()).getMaxCharge(mTemp); double mitemCurrentCharge = ElectricItem.manager.getCharge(mTemp); @@ -288,7 +288,7 @@ public class ChargingHelper { //Try get charge direct from NBT for GT and IC2 stacks try { - Utils.LOG_INFO("3"); + Utils.LOG_WARNING("3"); if (mTemp.getItem() instanceof GT_MetaGenerated_Tool_01 || mTemp.getItem() instanceof GT_MetaGenerated_Item_01 || mTemp.getItem() instanceof GT_MetaGenerated_Item_02 @@ -326,7 +326,7 @@ public class ChargingHelper { mVoltageIncrease = mItemEuTLimit; } - Utils.LOG_INFO("4"); + Utils.LOG_WARNING("4"); int mMulti; if ((mitemCurrentCharge + (mVoltageIncrease*20)) <= (mItemMaxCharge - (mVoltageIncrease*20))){ @@ -341,15 +341,15 @@ public class ChargingHelper { else { mMulti = 1; } - Utils.LOG_INFO("5"); + Utils.LOG_WARNING("5"); int mMultiVoltage = (int) (mMulti*mVoltageIncrease); if ((mitemCurrentCharge + mMultiVoltage) <= mItemMaxCharge){ - Utils.LOG_INFO("6"); + Utils.LOG_WARNING("6"); if (GT_ModHandler.chargeElectricItem(mTemp, mMultiVoltage, mTier, true, false) == 0){ - Utils.LOG_INFO("6.5"); + Utils.LOG_WARNING("6.5"); for (int i=0; i mitemCurrentCharge){ - Utils.LOG_INFO("7"); + Utils.LOG_WARNING("7"); mEntity.setEUVar((long) (mEuStored-(mVoltage*mMulti))); mEuStored = mEntity.getEUVar(); - Utils.LOG_INFO("Charged "+mTemp.getDisplayName()+" | Slot: "+mItemSlot+" | EU Multiplier: "+mMulti+" | EU/t input: "+mVoltageIncrease+" | EU/t consumed by Tile: "+mVoltage+" | Item Max Charge: "+mItemMaxCharge+" | Item Start Charge: "+mitemCurrentCharge+" | Item New Charge"+ElectricItem.manager.getCharge(mTemp)); + Utils.LOG_WARNING("Charged "+mTemp.getDisplayName()+" | Slot: "+mItemSlot+" | EU Multiplier: "+mMulti+" | EU/t input: "+mVoltageIncrease+" | EU/t consumed by Tile: "+mVoltage+" | Item Max Charge: "+mItemMaxCharge+" | Item Start Charge: "+mitemCurrentCharge+" | Item New Charge"+ElectricItem.manager.getCharge(mTemp)); mChargedItems++; } } @@ -370,7 +370,7 @@ public class ChargingHelper { } else { if (mTemp != null){ - Utils.LOG_INFO("Found Non-Valid item. "+mTemp.getDisplayName()); + Utils.LOG_WARNING("Found Non-Valid item. "+mTemp.getDisplayName()); } } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java index a2714c4bab..0bd3e6b3bd 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java @@ -45,6 +45,7 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { "Mixed: Provides both 2A of long range and 1A per player locally.", "Mixed mode is more conservative of power and as a result only", "gets half the distances each singular mode gets.", + "Long-Range mode currently disabled.", CORE.GT_Tooltip}; } @@ -158,7 +159,7 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { this.mMode++; } if (this.mMode == 0){ - PlayerUtils.messagePlayer(aPlayer, "Now in Long-Range Mode."); + PlayerUtils.messagePlayer(aPlayer, "Now in Long-Range Mode. [Disabled]"); } else if (this.mMode == 1){ PlayerUtils.messagePlayer(aPlayer, "Now in Local Charge Mode."); @@ -394,7 +395,7 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { } } } - if (this.mMode == 0 || this.mMode == 2){ + /*if (this.mMode == 0 || this.mMode == 2){ int tempRange = (int) (this.mMode == 0 ? 4*GT_Values.V[this.mTier] : 2*GT_Values.V[this.mTier]); if (getDistanceBetweenTwoPositions(getTileEntityPosition(), getPositionOfEntity(mTemp)) < tempRange){ if (!mWirelessChargingMap.containsKey(mTemp)){ @@ -411,7 +412,7 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { } } } - } + } */ } } @@ -487,7 +488,7 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity { } else { - PlayerUtils.messagePlayer(aPlayer, "Long-range Mode: "+tempRange+"m"); + PlayerUtils.messagePlayer(aPlayer, "Long-range Mode: "+tempRange+"m [Disabled]"); } -- cgit