aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/gui/beta
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-09-07 16:36:25 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-09-07 16:36:25 +1000
commit221c2f0fe81430e7dd4087e5f5845bd7c62ec56d (patch)
treed6e0faaef01b9d517828557e1be82500d476f95e /src/Java/gtPlusPlus/core/gui/beta
parent5872c0947ce7bc788b03fa2fb690b8815d3d0a04 (diff)
downloadGT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.tar.gz
GT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.tar.bz2
GT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.zip
% Refactored the entire project to stop using MiscUtils everywhere possible, now it's gtPlusPlus.
Diffstat (limited to 'src/Java/gtPlusPlus/core/gui/beta')
-rw-r--r--src/Java/gtPlusPlus/core/gui/beta/Gui_ID_Registry.java56
-rw-r--r--src/Java/gtPlusPlus/core/gui/beta/Gui_Types.java8
-rw-r--r--src/Java/gtPlusPlus/core/gui/beta/MU_GuiId.java32
3 files changed, 96 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/core/gui/beta/Gui_ID_Registry.java b/src/Java/gtPlusPlus/core/gui/beta/Gui_ID_Registry.java
new file mode 100644
index 0000000000..b3531ceb3e
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/gui/beta/Gui_ID_Registry.java
@@ -0,0 +1,56 @@
+package gtPlusPlus.core.gui.beta;
+
+import gtPlusPlus.core.interfaces.IGuiManagerMiscUtils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class Gui_ID_Registry
+{
+ private static final Map<Class<? extends IGuiManagerMiscUtils>, MU_GuiId> classMap = new HashMap();
+ private static final Map<Integer, MU_GuiId> idMap = new HashMap();
+ private static int nextId = 0;
+
+ static
+ {
+ //registerGuiHandlers(Gui_Types.Tile, Arrays.asList(new Class[] {TileAlveary.class}));
+ //registerGuiHandlers(MU_GuiType.Item, Arrays.asList(new Class[] { ItemBackpack.class, ItemBackpackNaturalist.class, ItemBeealyzer.class, ItemCatalogue.class, ItemFlutterlyzer.class, ItemHabitatLocator.class, ItemImprinter.class, ItemInfuser.class, ItemLetter.class, ItemSolderingIron.class, ItemTreealyzer.class }));
+ //registerGuiHandlers(MU_GuiType.Entity, Arrays.asList(new Class[] { EntityMinecartApiary.class, EntityMinecartBeehouse.class }));
+ }
+
+ private static void registerGuiHandlers(Gui_Types MU_GuiType, List<Class<? extends IGuiManagerMiscUtils>> guiHandlerClasses)
+ {
+ for (Class<? extends IGuiManagerMiscUtils> tileGuiHandlerClass : guiHandlerClasses)
+ {
+ MU_GuiId guiId = new MU_GuiId(nextId++, MU_GuiType, tileGuiHandlerClass);
+ classMap.put(tileGuiHandlerClass, guiId);
+ idMap.put(Integer.valueOf(guiId.getId()), guiId);
+ }
+ }
+
+ public static MU_GuiId getGuiIdForGuiHandler(IGuiManagerMiscUtils guiHandler)
+ {
+ Class<? extends IGuiManagerMiscUtils> guiHandlerClass = guiHandler.getClass();
+ MU_GuiId guiId = (MU_GuiId)classMap.get(guiHandlerClass);
+ if (guiId == null) {
+ for (Map.Entry<Class<? extends IGuiManagerMiscUtils>, MU_GuiId> classGuiIdEntry : classMap.entrySet()) {
+ if (((Class)classGuiIdEntry.getKey()).isAssignableFrom(guiHandlerClass))
+ {
+ guiId = (MU_GuiId)classGuiIdEntry.getValue();
+ break;
+ }
+ }
+ }
+ if (guiId == null) {
+ throw new IllegalStateException("No gui ID for gui handler: " + guiHandler);
+ }
+ return guiId;
+ }
+
+ public static MU_GuiId getGuiId(int id)
+ {
+ return (MU_GuiId)idMap.get(Integer.valueOf(id));
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/core/gui/beta/Gui_Types.java b/src/Java/gtPlusPlus/core/gui/beta/Gui_Types.java
new file mode 100644
index 0000000000..428cae93d5
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/gui/beta/Gui_Types.java
@@ -0,0 +1,8 @@
+package gtPlusPlus.core.gui.beta;
+
+public enum Gui_Types
+ {
+ Item, Tile, Entity;
+
+ private Gui_Types() {}
+ } \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/gui/beta/MU_GuiId.java b/src/Java/gtPlusPlus/core/gui/beta/MU_GuiId.java
new file mode 100644
index 0000000000..7d17870743
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/gui/beta/MU_GuiId.java
@@ -0,0 +1,32 @@
+package gtPlusPlus.core.gui.beta;
+import gtPlusPlus.core.interfaces.IGuiManagerMiscUtils;
+
+public class MU_GuiId
+ {
+ private final int id;
+ private final Gui_Types MU_GuiType;
+ private final Class<? extends IGuiManagerMiscUtils> guiHandlerClass;
+
+ MU_GuiId(int id, Gui_Types MU_GuiType, Class<? extends IGuiManagerMiscUtils> guiHandlerClass)
+ {
+ this.id = id;
+ this.MU_GuiType = MU_GuiType;
+ this.guiHandlerClass = guiHandlerClass;
+ }
+
+ public Gui_Types getGuiType()
+ {
+ return this.MU_GuiType;
+ }
+
+ public Class<? extends IGuiManagerMiscUtils> getGuiHandlerClass()
+ {
+ return this.guiHandlerClass;
+ }
+
+ public int getId()
+ {
+ return this.id;
+ }
+ }
+