aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2022-01-13 00:53:00 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2022-01-13 00:53:00 +0000
commit0540e62299cb368a3c430493da0327dba1cf23f1 (patch)
treee189638b1337e336d42e6bab08b6f9d4958a9ebf /src
parent3e519e890249825dc8face0087cc631684d36e8c (diff)
downloadGT5-Unofficial-0540e62299cb368a3c430493da0327dba1cf23f1.tar.gz
GT5-Unofficial-0540e62299cb368a3c430493da0327dba1cf23f1.tar.bz2
GT5-Unofficial-0540e62299cb368a3c430493da0327dba1cf23f1.zip
Hopefully make Wireless Chargers more responsive.
Added more information to Hi-Amp xformers.
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java1
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java46
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java49
3 files changed, 54 insertions, 42 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java
index 768a57f8b2..d0021f8358 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java
@@ -87,6 +87,7 @@ public class GregtechMetaTransformerHiAmp extends GT_MetaTileEntity_Transformer
public String[] getDescription() {
return new String[] { this.mDescription,
"Accepts 4A and outputs 16A",
+ "Toggle 2A/8A half-mode with Screwdriver",
CORE.GT_Tooltip};
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java
index 70c7b2da23..be9db74eef 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/ChargingHelper.java
@@ -6,17 +6,11 @@ import java.util.UUID;
import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.item.ItemStack;
-
import gregtech.api.enums.GT_Values;
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_Tool_01;
-
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.Pair;
import gtPlusPlus.api.objects.minecraft.BlockPos;
@@ -25,14 +19,16 @@ import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.NBTUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
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;
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
public class ChargingHelper {
- private static Map<EntityPlayer, Pair<GregtechMetaWirelessCharger, Byte>> mValidPlayers = new HashMap<EntityPlayer, Pair<GregtechMetaWirelessCharger, Byte>>();
+ private static Map<String, Pair<GregtechMetaWirelessCharger, Byte>> mValidPlayers = new HashMap<String, Pair<GregtechMetaWirelessCharger, Byte>>();
protected static Map<BlockPos, GregtechMetaWirelessCharger> mChargerMap = new HashMap<BlockPos, GregtechMetaWirelessCharger>();
private int mTickTimer = 0;
private final int mTickMultiplier = 20;
@@ -58,7 +54,7 @@ public class ChargingHelper {
long mVoltage = 0;
long mEuStored = 0;
- if (!mChargerMap.isEmpty() && mValidPlayers.containsKey(mPlayerMan)){
+ if (!mChargerMap.isEmpty() && mValidPlayers.containsKey(mPlayerMan.getDisplayName())){
InventoryPlayer mPlayerInventory = mPlayerMan.inventory;
ItemStack[] mArmourContents = mPlayerInventory.armorInventory.clone();
ItemStack[] mInventoryContents = mPlayerInventory.mainInventory.clone();
@@ -70,30 +66,30 @@ public class ChargingHelper {
mEuStored = mEntityTemp.getEUVar();
if (mVoltage > 0 && mEuStored >= mVoltage){
- Map<EntityPlayer, UUID> LR = mEntityTemp.getLongRangeMap();
- Map<UUID, EntityPlayer> LO = mEntityTemp.getLocalMap();
+ Map<String, UUID> LR = mEntityTemp.getLongRangeMap();
+ Map<String, UUID> LO = mEntityTemp.getLocalMap();
long mStartingEu = mEntityTemp.getEUVar();
long mCurrentEu = mEntityTemp.getEUVar();
long mEuUsed = 0;
if (mEntityTemp.getMode() == 0){
- if (!LR.isEmpty() && LR.containsKey(mPlayerMan)){
+ if (!LR.isEmpty() && LR.containsKey(mPlayerMan.getDisplayName())){
mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
}
}
else if (mEntityTemp.getMode() == 1){
- if (!LO.isEmpty() && LO.containsValue(mPlayerMan)){
+ if (!LO.isEmpty() && LO.containsKey(mPlayerMan.getDisplayName())){
mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
}
}
else {
- if (!LR.isEmpty() && LR.containsKey(mPlayerMan)){
+ if (!LR.isEmpty() && LR.containsKey(mPlayerMan.getDisplayName())){
mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
}
- if (!LO.isEmpty() && LO.containsValue(mPlayerMan)){
+ if (!LO.isEmpty() && LO.containsKey(mPlayerMan.getDisplayName())){
mCurrentEu = chargeItems(mEntityTemp, mArmourContents, mPlayerMan);
mCurrentEu = chargeItems(mEntityTemp, mInventoryContents, mPlayerMan);
}
@@ -136,13 +132,13 @@ public class ChargingHelper {
catch (Throwable t){
//Utils.LOG_WARNING("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);
+ if (!mChargerMap.isEmpty()){
+ for (BlockPos aPos : mChargerMap.keySet()) {
+ GregtechMetaWirelessCharger r = mChargerMap.get(aPos);
+ if (r == null || r.getBaseMetaTileEntity().isInvalidTileEntity()){
+ mChargerMap.remove(aPos);
}
- }
+ }
}
//t.printStackTrace();
}
@@ -163,7 +159,7 @@ public class ChargingHelper {
}
}
else {
- return false;
+ return true;
}
}
@@ -189,14 +185,14 @@ public class ChargingHelper {
return false;
}
Logger.WARNING("trying to map new player");
- if (mValidPlayers.containsKey(mPlayer)){
+ if (mValidPlayers.containsKey(mPlayer.getDisplayName())){
Logger.WARNING("Key contains player already?");
return false;
}
else {
Logger.WARNING("key not found, adding");
Pair<GregtechMetaWirelessCharger, Byte> mEntry = new Pair<GregtechMetaWirelessCharger, Byte>(mEntity, (byte) mEntity.getMode());
- if (mValidPlayers.put(mPlayer, mEntry) == null){
+ if (mValidPlayers.put(mPlayer.getDisplayName(), mEntry) == null){
Logger.WARNING("Added a Player to the Tick Map.");
return true;
}
@@ -212,7 +208,7 @@ public class ChargingHelper {
return false;
}
Logger.WARNING("trying to remove player from map");
- if (mValidPlayers.containsKey(mPlayer)){
+ if (mValidPlayers.containsKey(mPlayer.getDisplayName())){
Logger.WARNING("key found, removing");
Pair<GregtechMetaWirelessCharger, Byte> mEntry = new Pair<GregtechMetaWirelessCharger, Byte>(mEntity, (byte) mEntity.getMode());
if (mValidPlayers.remove(mPlayer, mEntry)){
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java
index ffaa77a0be..b50031ac00 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java
@@ -17,6 +17,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.minecraft.BlockPos;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.minecraft.EntityUtils;
@@ -64,11 +65,11 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
return this.mCurrentDimension;
}
- public Map<UUID, EntityPlayer> getLocalMap(){
+ public Map<String, UUID> getLocalMap(){
return this.mLocalChargingMap;
}
- public Map<EntityPlayer, UUID> getLongRangeMap(){
+ public Map<String, UUID> getLongRangeMap(){
return this.mWirelessChargingMap;
}
@@ -364,8 +365,8 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
}
- private Map<EntityPlayer, UUID> mWirelessChargingMap = new HashMap<EntityPlayer, UUID>();
- private Map<UUID, EntityPlayer> mLocalChargingMap = new HashMap<UUID, EntityPlayer>();
+ private Map<String, UUID> mWirelessChargingMap = new HashMap<String, UUID>();
+ private Map<String, UUID> mLocalChargingMap = new HashMap<String, UUID>();
@Override
public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) {
@@ -379,7 +380,7 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
if (!mHasBeenMapped && ChargingHelper.addEntry(getTileEntityPosition(), this)){
mHasBeenMapped = true;
}
-
+
if (aTick % 20 == 0 && mHasBeenMapped){
if (!aBaseMetaTileEntity.getWorld().playerEntities.isEmpty()){
for (Object mTempPlayer : aBaseMetaTileEntity.getWorld().playerEntities){
@@ -389,15 +390,15 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
if (this.mMode == 1 || this.mMode == 2){
int tempRange = (this.mMode == 1 ? this.mTier*20 : this.mTier*10);
if (getDistanceBetweenTwoPositions(getTileEntityPosition(), getPositionOfEntity(mTemp)) < tempRange){
- if (!mLocalChargingMap.containsKey(mTemp.getPersistentID())){
- mLocalChargingMap.put(mTemp.getPersistentID(), mTemp);
+ if (!mLocalChargingMap.containsKey(mTemp.getDisplayName())){
+ mLocalChargingMap.put(mTemp.getDisplayName(), mTemp.getPersistentID());
ChargingHelper.addValidPlayer(mTemp, this);
//PlayerUtils.messagePlayer(mTemp, "You have entered charging range. ["+tempRange+"m - Local].");
}
}
else {
- if (mLocalChargingMap.containsKey(mTemp.getPersistentID())){
- if (mLocalChargingMap.remove(mTemp.getPersistentID()) != null){
+ if (mLocalChargingMap.containsKey(mTemp.getDisplayName())){
+ if (mLocalChargingMap.remove(mTemp.getDisplayName()) != null){
//PlayerUtils.messagePlayer(mTemp, "You have left charging range. ["+tempRange+"m - Local].");
ChargingHelper.removeValidPlayer(mTemp, this);
}
@@ -407,24 +408,24 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
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)){
+ if (!mWirelessChargingMap.containsKey(mTemp.getDisplayName())){
if (mTemp.getDisplayName().equalsIgnoreCase(this.getBaseMetaTileEntity().getOwnerName())) {
- mWirelessChargingMap.put(mTemp, mTemp.getPersistentID());
+ mWirelessChargingMap.put(mTemp.getDisplayName(), mTemp.getPersistentID());
ChargingHelper.addValidPlayer(mTemp, this);
PlayerUtils.messagePlayer(mTemp, "You have entered charging range. ["+tempRange+"m - Long-Range].");
}
}
}
else {
- if (mWirelessChargingMap.containsKey(mTemp)){
- if (mWirelessChargingMap.remove(mTemp) != null){
+ if (mWirelessChargingMap.containsKey(mTemp.getDisplayName())){
+ if (mWirelessChargingMap.remove(mTemp.getDisplayName()) != null){
PlayerUtils.messagePlayer(mTemp, "You have left charging range. ["+tempRange+"m - Long Range].");
ChargingHelper.removeValidPlayer(mTemp, this);
}
}
}
- if (mWirelessChargingMap.containsKey(mTemp) && !mTemp.getDisplayName().equalsIgnoreCase(this.getBaseMetaTileEntity().getOwnerName())){
- if (mWirelessChargingMap.remove(mTemp) != null){
+ if (mWirelessChargingMap.containsKey(mTemp.getDisplayName()) && !mTemp.getDisplayName().equalsIgnoreCase(this.getBaseMetaTileEntity().getOwnerName())){
+ if (mWirelessChargingMap.remove(mTemp.getDisplayName()) != null){
ChargingHelper.removeValidPlayer(mTemp, this);
}
}
@@ -516,15 +517,29 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
}
if (this.mMode == 2){
- PlayerUtils.messagePlayer(aPlayer, "Mixed Mode | Local: "+this.mTier*10+"m | Long: "+tempRange+"m");
+ PlayerUtils.messagePlayer(aPlayer, "Mixed Mode | Local: "+this.mTier*10+"m | Long: "+tempRange+"m");
+ PlayerUtils.messagePlayer(aPlayer, "Players with access:");
+ for (String name : this.getLocalMap().keySet()) {
+ PlayerUtils.messagePlayer(aPlayer, "Local: "+name);
+ }
+ for (String name : this.getLongRangeMap().keySet()) {
+ PlayerUtils.messagePlayer(aPlayer, "Long: "+name);
+ }
}
else if (this.mMode == 1){
PlayerUtils.messagePlayer(aPlayer, "Local Mode: "+this.mTier*20+"m");
+ PlayerUtils.messagePlayer(aPlayer, "Players with access:");
+ for (String name : this.getLocalMap().keySet()) {
+ PlayerUtils.messagePlayer(aPlayer, ""+name);
+ }
}
else {
PlayerUtils.messagePlayer(aPlayer, "Long-range Mode: "+tempRange+"m");
-
+ PlayerUtils.messagePlayer(aPlayer, "Players with access:");
+ for (String name : this.getLongRangeMap().keySet()) {
+ PlayerUtils.messagePlayer(aPlayer, ""+name);
+ }
}
return super.onRightclick(aBaseMetaTileEntity, aPlayer, aSide, aX, aY, aZ);