aboutsummaryrefslogtreecommitdiff
path: root/src/Java
diff options
context:
space:
mode:
authorAlkalus <draknyte1@hotmail.com>2017-08-04 11:46:19 +1000
committerAlkalus <draknyte1@hotmail.com>2017-08-04 11:46:19 +1000
commit02d62fb6c09c5c03bafaa0afe8443e4125bf2c76 (patch)
treef733f69d25a73da8b7c4ecbe908629b62a42ceb8 /src/Java
parent8ea753b53ebc6a921c4aff1a0bbf7bcdf5ef46ba (diff)
downloadGT5-Unofficial-02d62fb6c09c5c03bafaa0afe8443e4125bf2c76.tar.gz
GT5-Unofficial-02d62fb6c09c5c03bafaa0afe8443e4125bf2c76.tar.bz2
GT5-Unofficial-02d62fb6c09c5c03bafaa0afe8443e4125bf2c76.zip
+ Basic framework for Tesseract reworking.
> Tesseracts now have a frequency range per play, which is unique to them.
Diffstat (limited to 'src/Java')
-rw-r--r--src/Java/gtPlusPlus/core/lib/CORE.java11
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TesseractHelper.java70
2 files changed, 73 insertions, 8 deletions
diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java
index 18d9c808ba..db46364920 100644
--- a/src/Java/gtPlusPlus/core/lib/CORE.java
+++ b/src/Java/gtPlusPlus/core/lib/CORE.java
@@ -13,6 +13,7 @@ import gtPlusPlus.xmod.gregtech.api.interfaces.internal.IGregtech_RecipeAdder;
import gtPlusPlus.xmod.gregtech.api.objects.XSTR;
import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_TesseractGenerator;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.common.config.Configuration;
@@ -62,14 +63,8 @@ public class CORE {
*/
public static final GT_Materials[] sMU_GeneratedMaterials = new GT_Materials[1000];
- //Tesseract map
- public static final Map<Integer, GT_MetaTileEntity_TesseractGenerator> sTesseractGenerators = new HashMap<>();
-
- //GUIS
- public enum GUI_ENUM
- {
- ENERGYBUFFER, TOOLBUILDER, NULL, NULL1, NULL2
- }
+ //Tesseract map
+ public static final Map<UUID, Map<Integer, GT_MetaTileEntity_TesseractGenerator>> sTesseractGeneratorOwnershipMap = new HashMap<UUID, Map<Integer, GT_MetaTileEntity_TesseractGenerator>>();
/**
* File Paths and Resource Paths
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TesseractHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TesseractHelper.java
new file mode 100644
index 0000000000..4494af54d9
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TesseractHelper.java
@@ -0,0 +1,70 @@
+package gtPlusPlus.xmod.gregtech.common.helpers;
+
+import static gtPlusPlus.core.lib.CORE.sTesseractGeneratorOwnershipMap;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.UUID;
+
+import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_TesseractGenerator;
+import net.minecraft.entity.player.EntityPlayer;
+
+public class TesseractHelper {
+
+ public Map<Integer, GT_MetaTileEntity_TesseractGenerator> getOwnershipByPlayer(EntityPlayer player){
+ UUID playerIdentifier = player.getUniqueID();
+ 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()) {
+ Entry<UUID, Map<Integer, GT_MetaTileEntity_TesseractGenerator>> current = i.next();
+ if (current.getKey().compareTo(playerIdentifier) == 0){
+ return current.getValue();
+ }
+
+ }
+ }
+ return null;
+ }
+
+ public boolean isTesseractOwnedByPlayer(EntityPlayer player, GT_MetaTileEntity_TesseractGenerator generator){
+ UUID playerIdentifier = player.getUniqueID();
+ if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null){
+
+ Map<Integer, GT_MetaTileEntity_TesseractGenerator> generators = getOwnershipByPlayer(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.getValue().equals(generator)){
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public boolean setOwnershipByPlayer(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()){
+ Map<Integer, GT_MetaTileEntity_TesseractGenerator> newOwnershipMap = new HashMap<Integer, GT_MetaTileEntity_TesseractGenerator>();
+ newOwnershipMap.put(freq, generator);
+ sTesseractGeneratorOwnershipMap.put(playerIdentifier, newOwnershipMap);
+ return true;
+ }
+ else if (sTesseractGeneratorOwnershipMap.containsKey(playerIdentifier)){
+ Map<Integer, GT_MetaTileEntity_TesseractGenerator> ownershipMap = sTesseractGeneratorOwnershipMap.get(playerIdentifier);
+ ownershipMap.put(freq, generator);
+ sTesseractGeneratorOwnershipMap.put(playerIdentifier, ownershipMap);
+ return true;
+ }
+ }
+ return false;
+ }
+
+}