From 221c2f0fe81430e7dd4087e5f5845bd7c62ec56d Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 7 Sep 2016 16:36:25 +1000 Subject: % Refactored the entire project to stop using MiscUtils everywhere possible, now it's gtPlusPlus. --- .../gtPlusPlus/core/gui/beta/Gui_ID_Registry.java | 56 ++++++++++++++++++++++ src/Java/gtPlusPlus/core/gui/beta/Gui_Types.java | 8 ++++ src/Java/gtPlusPlus/core/gui/beta/MU_GuiId.java | 32 +++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 src/Java/gtPlusPlus/core/gui/beta/Gui_ID_Registry.java create mode 100644 src/Java/gtPlusPlus/core/gui/beta/Gui_Types.java create mode 100644 src/Java/gtPlusPlus/core/gui/beta/MU_GuiId.java (limited to 'src/Java/gtPlusPlus/core/gui/beta') 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, MU_GuiId> classMap = new HashMap(); + private static final Map 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> guiHandlerClasses) + { + for (Class 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 guiHandlerClass = guiHandler.getClass(); + MU_GuiId guiId = (MU_GuiId)classMap.get(guiHandlerClass); + if (guiId == null) { + for (Map.Entry, 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 guiHandlerClass; + + MU_GuiId(int id, Gui_Types MU_GuiType, Class guiHandlerClass) + { + this.id = id; + this.MU_GuiType = MU_GuiType; + this.guiHandlerClass = guiHandlerClass; + } + + public Gui_Types getGuiType() + { + return this.MU_GuiType; + } + + public Class getGuiHandlerClass() + { + return this.guiHandlerClass; + } + + public int getId() + { + return this.id; + } + } + -- cgit