From 16f9a9cb59f5059a65b276bf780a74ac8aec4d6d Mon Sep 17 00:00:00 2001 From: Alkalus Date: Fri, 4 Aug 2017 12:01:58 +1000 Subject: % Finished work on Getters/Setters for Tesseract Generator & Terminal ownership. --- .../common/helpers/tesseract/TesseractHelper.java | 154 +++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java new file mode 100644 index 0000000000..2204400261 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/tesseract/TesseractHelper.java @@ -0,0 +1,154 @@ +package gtPlusPlus.xmod.gregtech.common.helpers.tesseract; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.Map.Entry; + +import static gtPlusPlus.core.lib.CORE.sTesseractGeneratorOwnershipMap; +import static gtPlusPlus.core.lib.CORE.sTesseractTerminalOwnershipMap; + +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){ + UUID playerIdentifier = player.getUniqueID(); + if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null){ + Map generators = getGeneratorOwnershipByPlayer(player); + Set> players = generators.entrySet(); + Iterator> i = players.iterator(); + while(i.hasNext()) { + Entry current = i.next(); + if (current.getValue().equals(generator)){ + return true; + } + } + } + return false; + } + + public final boolean setGeneratorOwnershipByPlayer(EntityPlayer player, int freq, GT_MetaTileEntity_TesseractGenerator generator){ + UUID playerIdentifier = player.getUniqueID(); + if (playerIdentifier != null){ + Map playerOwned = sTesseractGeneratorOwnershipMap.get(playerIdentifier); + if (playerOwned == null || playerOwned.isEmpty()){ + Map newOwnershipMap = new HashMap(); + newOwnershipMap.put(freq, generator); + sTesseractGeneratorOwnershipMap.put(playerIdentifier, newOwnershipMap); + return true; + } + else if (sTesseractGeneratorOwnershipMap.containsKey(playerIdentifier)){ + Map ownershipMap = sTesseractGeneratorOwnershipMap.get(playerIdentifier); + ownershipMap.put(freq, generator); + sTesseractGeneratorOwnershipMap.put(playerIdentifier, ownershipMap); + return true; + } + } + return false; + } + + + + /** + * + * Tesseract Terminal Helpers + * + * @param player + * @return + */ + + + public final boolean isTerminalOwnedByPlayer(EntityPlayer player, GT_MetaTileEntity_TesseractTerminal generator){ + UUID playerIdentifier = player.getUniqueID(); + if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null){ + Map generators = getTerminalOwnershipByPlayer(player); + Set> players = generators.entrySet(); + Iterator> i = players.iterator(); + while(i.hasNext()) { + Entry current = i.next(); + if (current.getValue().equals(generator)){ + return true; + } + } + } + return false; + } + + public final boolean setTerminalOwnershipByPlayer(EntityPlayer player, int freq, GT_MetaTileEntity_TesseractTerminal generator){ + UUID playerIdentifier = player.getUniqueID(); + if (playerIdentifier != null){ + Map playerOwned = sTesseractTerminalOwnershipMap.get(playerIdentifier); + if (playerOwned == null || playerOwned.isEmpty()){ + Map newOwnershipMap = new HashMap(); + newOwnershipMap.put(freq, generator); + sTesseractTerminalOwnershipMap.put(playerIdentifier, newOwnershipMap); + return true; + } + else if (sTesseractTerminalOwnershipMap.containsKey(playerIdentifier)){ + Map ownershipMap = sTesseractTerminalOwnershipMap.get(playerIdentifier); + ownershipMap.put(freq, generator); + sTesseractTerminalOwnershipMap.put(playerIdentifier, ownershipMap); + return true; + } + } + return false; + } + + + + + + + + /** + * + * Internal Methods + * + */ + + private final Map getGeneratorOwnershipByPlayer(EntityPlayer player){ + UUID playerIdentifier = player.getUniqueID(); + if (!sTesseractGeneratorOwnershipMap.isEmpty() && playerIdentifier != null){ + Set>> players = sTesseractGeneratorOwnershipMap.entrySet(); + Iterator>> i = players.iterator(); + while(i.hasNext()) { + Entry> current = i.next(); + if (current.getKey().compareTo(playerIdentifier) == 0){ + return current.getValue(); + } + + } + } + return null; + } + + private final Map getTerminalOwnershipByPlayer(EntityPlayer player){ + UUID playerIdentifier = player.getUniqueID(); + if (!sTesseractTerminalOwnershipMap.isEmpty() && playerIdentifier != null){ + Set>> players = sTesseractTerminalOwnershipMap.entrySet(); + Iterator>> i = players.iterator(); + while(i.hasNext()) { + Entry> current = i.next(); + if (current.getKey().compareTo(playerIdentifier) == 0){ + return current.getValue(); + } + + } + } + return null; + } + + +} -- cgit