diff options
author | Alkalus <draknyte1@hotmail.com> | 2017-08-04 11:46:19 +1000 |
---|---|---|
committer | Alkalus <draknyte1@hotmail.com> | 2017-08-04 11:46:19 +1000 |
commit | 02d62fb6c09c5c03bafaa0afe8443e4125bf2c76 (patch) | |
tree | f733f69d25a73da8b7c4ecbe908629b62a42ceb8 /src/Java | |
parent | 8ea753b53ebc6a921c4aff1a0bbf7bcdf5ef46ba (diff) | |
download | GT5-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.java | 11 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TesseractHelper.java | 70 |
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; + } + +} |