aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/core/util/player/PlayerUtils.java16
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java215
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractGenerator.java68
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractTerminal.java50
4 files changed, 243 insertions, 106 deletions
diff --git a/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java b/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java
index 6a2253ab54..9c43b39f92 100644
--- a/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java
+++ b/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java
@@ -122,5 +122,21 @@ public class PlayerUtils {
return null;
}
+
+ public final static EntityPlayer getPlayerEntityByName(String aPlayerName){
+ EntityPlayer player = PlayerUtils.getPlayer(aPlayerName);
+ if (player != null){
+ return player;
+ }
+ return null;
+ }
+
+ public final static UUID getPlayersUUIDByName(String aPlayerName){
+ EntityPlayer player = PlayerUtils.getPlayer(aPlayerName);
+ if (player != null){
+ return player.getUniqueID();
+ }
+ return null;
+ }
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java
index 2204400261..cab4b2de0b 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java
@@ -10,145 +10,220 @@ import java.util.Map.Entry;
import static gtPlusPlus.core.lib.CORE.sTesseractGeneratorOwnershipMap;
import static gtPlusPlus.core.lib.CORE.sTesseractTerminalOwnershipMap;
+import gtPlusPlus.core.util.Utils;
import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_TesseractGenerator;
import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_TesseractTerminal;
import net.minecraft.entity.player.EntityPlayer;
public class TesseractHelper {
-
+
/**
* Tesseract Generator Helpers
*
* @param player
* @return
*/
-
- public final boolean isGeneratorOwnedByPlayer(EntityPlayer player, GT_MetaTileEntity_TesseractGenerator generator){
+
+ //Checks if a Generator is owned by a player.
+ public final static boolean isGeneratorOwnedByPlayer(EntityPlayer player,
+ GT_MetaTileEntity_TesseractGenerator generator) {
UUID playerIdentifier = player.getUniqueID();
- if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null){
+ if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null) {
Map<Integer, GT_MetaTileEntity_TesseractGenerator> generators = getGeneratorOwnershipByPlayer(player);
Set<Entry<Integer, GT_MetaTileEntity_TesseractGenerator>> players = generators.entrySet();
Iterator<Entry<Integer, GT_MetaTileEntity_TesseractGenerator>> i = players.iterator();
- while(i.hasNext()) {
+ while (i.hasNext()) {
Entry<Integer, GT_MetaTileEntity_TesseractGenerator> current = i.next();
- if (current.getValue().equals(generator)){
+ if (current.getValue().equals(generator)) {
return true;
- }
- }
- }
- return false;
+ }
+ }
+ }
+ return false;
}
-
- public final boolean setGeneratorOwnershipByPlayer(EntityPlayer player, int freq, GT_MetaTileEntity_TesseractGenerator generator){
+
+ //Saves A Generator to the Players UUID map along with the Freq.
+ public final static boolean setGeneratorOwnershipByPlayer(EntityPlayer player, int freq,
+ GT_MetaTileEntity_TesseractGenerator generator) {
UUID playerIdentifier = player.getUniqueID();
- if (playerIdentifier != null){
- Map<Integer, GT_MetaTileEntity_TesseractGenerator> playerOwned = sTesseractGeneratorOwnershipMap.get(playerIdentifier);
- if (playerOwned == null || playerOwned.isEmpty()){
+ Utils.LOG_INFO("Setting Generator on "+freq+" for "+player.getDisplayName()+".");
+ if (playerIdentifier != null) {
+ Map<Integer, GT_MetaTileEntity_TesseractGenerator> playerOwned = sTesseractGeneratorOwnershipMap
+ .get(playerIdentifier);
+ if (playerOwned == null || playerOwned.isEmpty()) {
Map<Integer, GT_MetaTileEntity_TesseractGenerator> newOwnershipMap = new HashMap<Integer, GT_MetaTileEntity_TesseractGenerator>();
newOwnershipMap.put(freq, generator);
sTesseractGeneratorOwnershipMap.put(playerIdentifier, newOwnershipMap);
+ Utils.LOG_INFO("Success! [Empty Map]");
return true;
- }
- else if (sTesseractGeneratorOwnershipMap.containsKey(playerIdentifier)){
- Map<Integer, GT_MetaTileEntity_TesseractGenerator> ownershipMap = sTesseractGeneratorOwnershipMap.get(playerIdentifier);
+ } else if (sTesseractGeneratorOwnershipMap.containsKey(playerIdentifier)) {
+ Map<Integer, GT_MetaTileEntity_TesseractGenerator> ownershipMap = sTesseractGeneratorOwnershipMap
+ .get(playerIdentifier);
ownershipMap.put(freq, generator);
sTesseractGeneratorOwnershipMap.put(playerIdentifier, ownershipMap);
+ Utils.LOG_INFO("Success!");
return true;
}
- }
+ }
+ Utils.LOG_INFO("Failed.");
return false;
}
-
-
-
+
+ //Gets Generator based on Frequency.
+ public final static GT_MetaTileEntity_TesseractGenerator getGeneratorByFrequency(EntityPlayer player,
+ int freq) {
+ UUID playerIdentifier = player.getUniqueID();
+ Utils.LOG_INFO("Getting Generator on "+freq+" for "+player.getDisplayName()+".");
+ if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null) {
+ Map<Integer, GT_MetaTileEntity_TesseractGenerator> generators = getGeneratorOwnershipByPlayer(player);
+ Set<Entry<Integer, GT_MetaTileEntity_TesseractGenerator>> players = generators.entrySet();
+ Iterator<Entry<Integer, GT_MetaTileEntity_TesseractGenerator>> i = players.iterator();
+ while (i.hasNext()) {
+ Entry<Integer, GT_MetaTileEntity_TesseractGenerator> current = i.next();
+ if (current.getKey().equals(freq)) {
+ Utils.LOG_INFO("Success!");
+ return current.getValue();
+ }
+ }
+ }
+ Utils.LOG_INFO("Failed.");
+ return null;
+ }
+
+ //Remove Tesseract Generator
+ public final static boolean removeGenerator(EntityPlayer player, int frequency) {
+ UUID playerIdentifier = player.getUniqueID();
+ if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null) {
+ sTesseractGeneratorOwnershipMap.get(playerIdentifier).remove(frequency);
+ return true;
+ }
+ return false;
+ }
+
/**
*
* Tesseract Terminal Helpers
*
* @param player
* @return
- */
-
-
- public final boolean isTerminalOwnedByPlayer(EntityPlayer player, GT_MetaTileEntity_TesseractTerminal generator){
+ */
+
+ //Checks if a Terminal is owned by a player.
+ public final static boolean isTerminalOwnedByPlayer(EntityPlayer player,
+ GT_MetaTileEntity_TesseractTerminal generator) {
UUID playerIdentifier = player.getUniqueID();
- if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null){
+ if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null) {
Map<Integer, GT_MetaTileEntity_TesseractTerminal> generators = getTerminalOwnershipByPlayer(player);
Set<Entry<Integer, GT_MetaTileEntity_TesseractTerminal>> players = generators.entrySet();
Iterator<Entry<Integer, GT_MetaTileEntity_TesseractTerminal>> i = players.iterator();
- while(i.hasNext()) {
+ while (i.hasNext()) {
Entry<Integer, GT_MetaTileEntity_TesseractTerminal> current = i.next();
- if (current.getValue().equals(generator)){
+ if (current.getValue().equals(generator)) {
return true;
- }
- }
- }
- return false;
+ }
+ }
+ }
+ return false;
}
-
- public final boolean setTerminalOwnershipByPlayer(EntityPlayer player, int freq, GT_MetaTileEntity_TesseractTerminal generator){
+
+ //Saves A Terminal to the Players UUID map along with the Freq.
+ public final static boolean setTerminalOwnershipByPlayer(EntityPlayer player, int freq,
+ GT_MetaTileEntity_TesseractTerminal generator) {
UUID playerIdentifier = player.getUniqueID();
- if (playerIdentifier != null){
- Map<Integer, GT_MetaTileEntity_TesseractTerminal> playerOwned = sTesseractTerminalOwnershipMap.get(playerIdentifier);
- if (playerOwned == null || playerOwned.isEmpty()){
+ if (playerIdentifier != null) {
+ Utils.LOG_INFO("Setting Terminal on "+freq+" for "+player.getDisplayName()+".");
+ Map<Integer, GT_MetaTileEntity_TesseractTerminal> playerOwned = sTesseractTerminalOwnershipMap
+ .get(playerIdentifier);
+ if (playerOwned == null || playerOwned.isEmpty()) {
Map<Integer, GT_MetaTileEntity_TesseractTerminal> newOwnershipMap = new HashMap<Integer, GT_MetaTileEntity_TesseractTerminal>();
newOwnershipMap.put(freq, generator);
sTesseractTerminalOwnershipMap.put(playerIdentifier, newOwnershipMap);
+ Utils.LOG_INFO("Success! [Empty Map]");
return true;
- }
- else if (sTesseractTerminalOwnershipMap.containsKey(playerIdentifier)){
- Map<Integer, GT_MetaTileEntity_TesseractTerminal> ownershipMap = sTesseractTerminalOwnershipMap.get(playerIdentifier);
+ } else if (sTesseractTerminalOwnershipMap.containsKey(playerIdentifier)) {
+ Map<Integer, GT_MetaTileEntity_TesseractTerminal> ownershipMap = sTesseractTerminalOwnershipMap
+ .get(playerIdentifier);
ownershipMap.put(freq, generator);
sTesseractTerminalOwnershipMap.put(playerIdentifier, ownershipMap);
+ Utils.LOG_INFO("Success!");
return true;
}
- }
+ }
+ Utils.LOG_INFO("Failed.");
return false;
}
-
-
-
-
-
-
-
+
+ //Gets Terminal based on Frequency.
+ public final static GT_MetaTileEntity_TesseractTerminal getTerminalByFrequency(EntityPlayer player,
+ int freq) {
+ UUID playerIdentifier = player.getUniqueID();
+ Utils.LOG_INFO("Getting Terminal on "+freq+" for "+player.getDisplayName()+".");
+ if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null) {
+ Map<Integer, GT_MetaTileEntity_TesseractTerminal> generators = getTerminalOwnershipByPlayer(player);
+ Set<Entry<Integer, GT_MetaTileEntity_TesseractTerminal>> players = generators.entrySet();
+ Iterator<Entry<Integer, GT_MetaTileEntity_TesseractTerminal>> i = players.iterator();
+ while (i.hasNext()) {
+ Entry<Integer, GT_MetaTileEntity_TesseractTerminal> current = i.next();
+ if (current.getKey().equals(freq)) {
+ Utils.LOG_INFO("Success!");
+ return current.getValue();
+ }
+ }
+ }
+ Utils.LOG_INFO("Failed.");
+ return null;
+ }
+
+ //Remove Tesseract Terminal
+ public final static boolean removeTerminal(EntityPlayer player, int frequency) {
+ UUID playerIdentifier = player.getUniqueID();
+ if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null) {
+ sTesseractTerminalOwnershipMap.get(playerIdentifier).remove(frequency);
+ return true;
+ }
+ return false;
+ }
+
/**
*
* Internal Methods
- *
+ *
*/
-
- private final Map<Integer, GT_MetaTileEntity_TesseractGenerator> getGeneratorOwnershipByPlayer(EntityPlayer player){
+
+ private final static Map<Integer, GT_MetaTileEntity_TesseractGenerator> getGeneratorOwnershipByPlayer(
+ EntityPlayer player) {
UUID playerIdentifier = player.getUniqueID();
- if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null){
- Set<Entry<UUID, Map<Integer, GT_MetaTileEntity_TesseractGenerator>>> players = sTesseractGeneratorOwnershipMap.entrySet();
+ if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null) {
+ Set<Entry<UUID, Map<Integer, GT_MetaTileEntity_TesseractGenerator>>> players = sTesseractGeneratorOwnershipMap
+ .entrySet();
Iterator<Entry<UUID, Map<Integer, GT_MetaTileEntity_TesseractGenerator>>> i = players.iterator();
- while(i.hasNext()) {
+ while (i.hasNext()) {
Entry<UUID, Map<Integer, GT_MetaTileEntity_TesseractGenerator>> current = i.next();
- if (current.getKey().compareTo(playerIdentifier) == 0){
+ if (current.getKey().compareTo(playerIdentifier) == 0) {
return current.getValue();
}
-
- }
- }
+
+ }
+ }
return null;
}
-
- private final Map<Integer, GT_MetaTileEntity_TesseractTerminal> getTerminalOwnershipByPlayer(EntityPlayer player){
+
+ private final static Map<Integer, GT_MetaTileEntity_TesseractTerminal> getTerminalOwnershipByPlayer(
+ EntityPlayer player) {
UUID playerIdentifier = player.getUniqueID();
- if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null){
- Set<Entry<UUID, Map<Integer, GT_MetaTileEntity_TesseractTerminal>>> players = sTesseractTerminalOwnershipMap.entrySet();
+ if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null) {
+ Set<Entry<UUID, Map<Integer, GT_MetaTileEntity_TesseractTerminal>>> players = sTesseractTerminalOwnershipMap
+ .entrySet();
Iterator<Entry<UUID, Map<Integer, GT_MetaTileEntity_TesseractTerminal>>> i = players.iterator();
- while(i.hasNext()) {
+ while (i.hasNext()) {
Entry<UUID, Map<Integer, GT_MetaTileEntity_TesseractTerminal>> current = i.next();
- if (current.getKey().compareTo(playerIdentifier) == 0){
+ if (current.getKey().compareTo(playerIdentifier) == 0) {
return current.getValue();
}
-
- }
- }
+
+ }
+ }
return null;
}
-
-
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractGenerator.java
index ece61fa04d..313b7049e3 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractGenerator.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractGenerator.java
@@ -1,6 +1,9 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.automation;
-import static gtPlusPlus.core.lib.CORE.sTesseractGenerators;
+import static gtPlusPlus.core.lib.CORE.sTesseractGeneratorOwnershipMap;
+import static gtPlusPlus.core.lib.CORE.sTesseractTerminalOwnershipMap;
+
+import java.util.UUID;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
@@ -14,6 +17,7 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.player.PlayerUtils;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
+import gtPlusPlus.xmod.gregtech.common.helpers.tesseract.TesseractHelper;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
@@ -21,6 +25,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.*;
@@ -33,6 +38,7 @@ extends GT_MetaTileEntity_BasicTank
public int oFrequency = 0;
public int mNeededEnergy = 0;
public int mFrequency = 0;
+ public UUID mOwner;
public GT_MetaTileEntity_TesseractGenerator(final int aID, final String aName, final String aNameRegional, final int aTier) {
super(aID, aName, aNameRegional, aTier, 3, "");
@@ -145,7 +151,7 @@ extends GT_MetaTileEntity_BasicTank
@Override
public int getProgresstime()
{
- return (sTesseractGenerators.get(Integer.valueOf(this.mFrequency)) == this) && (this.isWorking >= 20) ? 999 : 0;
+ return (TesseractHelper.getGeneratorByFrequency(PlayerUtils.getPlayerOnServerFromUUID(mOwner), this.mFrequency) == this) && (this.isWorking >= 20) ? 999 : 0;
}
@Override
@@ -158,12 +164,14 @@ extends GT_MetaTileEntity_BasicTank
public void saveNBTData(final NBTTagCompound aNBT)
{
aNBT.setInteger("mFrequency", this.mFrequency);
+ aNBT.setString("mOwner", mOwner.toString());
}
@Override
public void loadNBTData(final NBTTagCompound aNBT)
{
this.mFrequency = aNBT.getInteger("mFrequency");
+ this.mOwner = UUID.fromString(aNBT.getString("mOnwer"));
}
@Override
@@ -176,12 +184,14 @@ extends GT_MetaTileEntity_BasicTank
@Override
public void onServerStart()
{
- sTesseractGenerators.clear();
+ sTesseractGeneratorOwnershipMap.clear();
+ sTesseractTerminalOwnershipMap.clear();
}
public void onServerStop()
{
- sTesseractGenerators.clear();
+ sTesseractGeneratorOwnershipMap.clear();
+ sTesseractTerminalOwnershipMap.clear();
}
@Override
@@ -201,7 +211,7 @@ extends GT_MetaTileEntity_BasicTank
break;
}
PlayerUtils.messagePlayer(aPlayer, "Frequency: " + this.mFrequency);
- PlayerUtils.messagePlayer(aPlayer, ((sTesseractGenerators.get(Integer.valueOf(this.mFrequency)) != null) && (sTesseractGenerators.get(Integer.valueOf(this.mFrequency)) != this) ? EnumChatFormatting.RED + " (Occupied)" : ""));
+ PlayerUtils.messagePlayer(aPlayer, ((getGeneratorEntity() != null) && (getGeneratorEntity() != this)) ? EnumChatFormatting.RED + " (Occupied)" : "");
}
return true;
}
@@ -226,7 +236,7 @@ extends GT_MetaTileEntity_BasicTank
case 3:
this.mFrequency += 512;
}
- GT_Utility.sendChatToPlayer(aPlayer, "Frequency: " + this.mFrequency + ((sTesseractGenerators.get(Integer.valueOf(this.mFrequency)) != null) && (sTesseractGenerators.get(Integer.valueOf(this.mFrequency)) != this) ? EnumChatFormatting.RED + " (Occupied)" : ""));
+ GT_Utility.sendChatToPlayer(aPlayer, "Frequency: " + this.mFrequency + ((getGeneratorEntity() != null && getGeneratorEntity() != this) ? EnumChatFormatting.RED + " (Occupied)" : ""));
}
}
@@ -242,7 +252,7 @@ extends GT_MetaTileEntity_BasicTank
if ((tTileEntity != null) && (this.getBaseMetaTileEntity().isAllowedToWork()) && ((tTileEntity instanceof IGregTechDeviceInformation)) && (((IGregTechDeviceInformation)tTileEntity).isGivingInformation())) {
return ((IGregTechDeviceInformation)tTileEntity).getInfoData();
}
- return new String[] { "Tesseract Generator", "Freqency:", "" + this.mFrequency, (sTesseractGenerators.get(Integer.valueOf(this.mFrequency)) == this) && (this.isWorking >= 20) ? "Active" : "Inactive" };
+ return new String[] { "Tesseract Generator", "Freqency:", "" + this.mFrequency, (getGeneratorEntity() == this) && (this.isWorking >= 20) ? "Active" : "Inactive" };
}
@Override
@@ -493,9 +503,9 @@ extends GT_MetaTileEntity_BasicTank
Utils.LOG_INFO("mFreq != oFreq");
- if (sTesseractGenerators.get(Integer.valueOf(this.oFrequency)) == this)
+ if (getGeneratorEntity() == this)
{
- sTesseractGenerators.remove(Integer.valueOf(this.oFrequency));
+ getGeneratorEntity(this.oFrequency);
this.getBaseMetaTileEntity().issueBlockUpdate();
Utils.LOG_INFO("this Gen == oFreq on map - do block update");
}
@@ -505,22 +515,22 @@ extends GT_MetaTileEntity_BasicTank
if ((this.getBaseMetaTileEntity().isAllowedToWork()) && (this.getBaseMetaTileEntity().decreaseStoredEnergyUnits(this.mNeededEnergy, false)))
{
Utils.LOG_INFO("Can Work & Has Energy");
- if ((sTesseractGenerators.get(Integer.valueOf(this.mFrequency)) == null) || (!sTesseractGenerators.get(Integer.valueOf(this.mFrequency)).isValidTesseractGenerator(null, true))) {
+ if ((getGeneratorEntity(Integer.valueOf(this.mFrequency)) == null) || (!getGeneratorEntity(Integer.valueOf(this.mFrequency)).isValidTesseractGenerator(null, true))) {
Utils.LOG_INFO("storing TE I think to mFreq map?");
- sTesseractGenerators.put(Integer.valueOf(this.mFrequency), this);
+ TesseractHelper.setGeneratorOwnershipByPlayer(PlayerUtils.getPlayerOnServerFromUUID(mOwner), this.mFrequency, this);
}
}
else
{
- if (sTesseractGenerators.get(Integer.valueOf(this.mFrequency)) == this)
+ if (getGeneratorEntity(Integer.valueOf(this.mFrequency)) == this)
{
Utils.LOG_INFO("this gen == mFreq on map - do block update");
- sTesseractGenerators.remove(Integer.valueOf(this.mFrequency));
+ TesseractHelper.removeGenerator(PlayerUtils.getPlayerOnServerFromUUID(mOwner), this.mFrequency);
this.getBaseMetaTileEntity().issueBlockUpdate();
}
this.isWorking = 0;
}
- if (sTesseractGenerators.get(Integer.valueOf(this.mFrequency)) == this)
+ if (getGeneratorEntity(Integer.valueOf(this.mFrequency)) == this)
{
Utils.LOG_INFO("mFreq == this - do work related things");
if (this.isWorking < 20) {
@@ -596,4 +606,34 @@ extends GT_MetaTileEntity_BasicTank
public boolean displaysStackSize() {
return false;
}
+
+ private GT_MetaTileEntity_TesseractGenerator getGeneratorEntity(){
+ GT_MetaTileEntity_TesseractGenerator thisGenerator = TesseractHelper.getGeneratorByFrequency(PlayerUtils.getPlayerOnServerFromUUID(mOwner), this.mFrequency);
+ if (thisGenerator != null){
+ return thisGenerator;
+ }
+ return null;
+ }
+
+ private GT_MetaTileEntity_TesseractGenerator getGeneratorEntity(int frequency){
+ GT_MetaTileEntity_TesseractGenerator thisGenerator = TesseractHelper.getGeneratorByFrequency(PlayerUtils.getPlayerOnServerFromUUID(mOwner), frequency);
+ if (thisGenerator != null){
+ return thisGenerator;
+ }
+ return null;
+ }
+
+ @Override
+ public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) {
+ mOwner = aPlayer.getUniqueID();
+ super.onCreated(aStack, aWorld, aPlayer);
+ }
+
+ @Override
+ public void onRemoval() {
+ try {
+ CORE.sTesseractGeneratorOwnershipMap.get(mOwner).remove(this.mFrequency);
+ } catch (Throwable t){}
+ super.onRemoval();
+ }
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractTerminal.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractTerminal.java
index e4dd51500e..b378654fd5 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractTerminal.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_TesseractTerminal.java
@@ -1,5 +1,7 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.automation;
+import java.util.UUID;
+
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -12,10 +14,12 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.player.PlayerUtils;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
+import gtPlusPlus.xmod.gregtech.common.helpers.tesseract.TesseractHelper;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.*;
@@ -23,6 +27,7 @@ public class GT_MetaTileEntity_TesseractTerminal
extends GT_MetaTileEntity_BasicTank
{
public int mFrequency = 0;
+ public UUID mOwner;
public boolean mDidWork = false;
public static boolean sInterDimensionalTesseractAllowed = true;
@@ -126,12 +131,14 @@ extends GT_MetaTileEntity_BasicTank
public void saveNBTData(final NBTTagCompound aNBT)
{
aNBT.setInteger("mFrequency", this.mFrequency);
+ aNBT.setString("mOwner", mOwner.toString());
}
@Override
public void loadNBTData(final NBTTagCompound aNBT)
{
this.mFrequency = aNBT.getInteger("mFrequency");
+ this.mOwner = UUID.fromString(aNBT.getString("mOnwer"));
}
@Override
@@ -140,24 +147,6 @@ extends GT_MetaTileEntity_BasicTank
sInterDimensionalTesseractAllowed = true;
}
- /*public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ)
- {
- if (aSide == getBaseMetaTileEntity().getFrontFacing())
- {
- float[] tCoords = GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ);
- switch ((byte)((byte)(int)(tCoords[0] * 2.0F) + 2 * (byte)(int)(tCoords[1] * 2.0F)))
- {
- case 0:
- this.mFrequency -= 1;
- break;
- case 1:
- this.mFrequency += 1;
- }
- GT_Utility.sendChatToPlayer(aPlayer, "Frequency: " + this.mFrequency + (getTesseract(this.mFrequency, false) == null ? "" : new StringBuilder().append(EnumChatFormatting.GREEN).append(" (Connected)").toString()));
- }
- return true;
- }*/
-
@Override
public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer, final byte aSide, final float aX, final float aY, final float aZ){
if (aSide == this.getBaseMetaTileEntity().getFrontFacing()){
@@ -211,13 +200,16 @@ extends GT_MetaTileEntity_BasicTank
public GT_MetaTileEntity_TesseractGenerator getTesseract(final int aFrequency, final boolean aWorkIrrelevant)
{
- final GT_MetaTileEntity_TesseractGenerator rTesseract = CORE.sTesseractGenerators.get(Integer.valueOf(aFrequency));
+ final GT_MetaTileEntity_TesseractGenerator rTesseract = TesseractHelper.getGeneratorByFrequency(PlayerUtils.getPlayerOnServerFromUUID(mOwner), aFrequency);
if (rTesseract == null) {
return null;
}
+ if (!TesseractHelper.isGeneratorOwnedByPlayer(PlayerUtils.getPlayerOnServerFromUUID(mOwner), rTesseract)){
+ return null;
+ }
if (rTesseract.mFrequency != aFrequency)
{
- CORE.sTesseractGenerators.put(Integer.valueOf(aFrequency), null);return null;
+ TesseractHelper.setTerminalOwnershipByPlayer(PlayerUtils.getPlayerOnServerFromUUID(mOwner), Integer.valueOf(aFrequency), null);return null;
}
if (!rTesseract.isValidTesseractGenerator(this.getBaseMetaTileEntity().getOwnerName(), aWorkIrrelevant)) {
return null;
@@ -465,10 +457,10 @@ extends GT_MetaTileEntity_BasicTank
}
}
}
-
+
@Override
public String[] getDescription() {
- return new String[]{this.mDescription, "Accesses Tesseracts remotely", CORE.GT_Tooltip};
+ return new String[]{this.mDescription, "Accesses Tesseract Generators remotely", CORE.GT_Tooltip};
}
@Override
@@ -522,4 +514,18 @@ extends GT_MetaTileEntity_BasicTank
return false;
}
+ @Override
+ public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer) {
+ mOwner = aPlayer.getUniqueID();
+ super.onCreated(aStack, aWorld, aPlayer);
+ }
+
+ @Override
+ public void onRemoval() {
+ try {
+ CORE.sTesseractTerminalOwnershipMap.get(mOwner).remove(this.mFrequency);
+ } catch (Throwable t){}
+ super.onRemoval();
+ }
+
}