From b1c319fa2d6fbf34d0db684f4fc3d7dc51b43a54 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Mon, 4 Jul 2016 15:21:58 +1000 Subject: + Added in base and Abstract classes to begin usage of RainsinToastCore. + Started work on a new GUI handler based off others, featuring dynamic ID ranges. (Internal code changes) - Removed a very old GUI handler class, left the current one until the new one is done. --- .../miscutil/core/gui/beta/Gui_ID_Registry.java | 56 ++++++++++++++++++++++ src/Java/miscutil/core/gui/beta/Gui_Types.java | 8 ++++ src/Java/miscutil/core/gui/beta/MU_GuiId.java | 32 +++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 src/Java/miscutil/core/gui/beta/Gui_ID_Registry.java create mode 100644 src/Java/miscutil/core/gui/beta/Gui_Types.java create mode 100644 src/Java/miscutil/core/gui/beta/MU_GuiId.java (limited to 'src/Java/miscutil/core/gui/beta') diff --git a/src/Java/miscutil/core/gui/beta/Gui_ID_Registry.java b/src/Java/miscutil/core/gui/beta/Gui_ID_Registry.java new file mode 100644 index 0000000000..11c97e8f9a --- /dev/null +++ b/src/Java/miscutil/core/gui/beta/Gui_ID_Registry.java @@ -0,0 +1,56 @@ +package miscutil.core.gui.beta; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import miscutil.core.interfaces.IGuiManagerMiscUtils; + +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/miscutil/core/gui/beta/Gui_Types.java b/src/Java/miscutil/core/gui/beta/Gui_Types.java new file mode 100644 index 0000000000..79e5a21dbd --- /dev/null +++ b/src/Java/miscutil/core/gui/beta/Gui_Types.java @@ -0,0 +1,8 @@ +package miscutil.core.gui.beta; + +public enum Gui_Types + { + Item, Tile, Entity; + + private Gui_Types() {} + } \ No newline at end of file diff --git a/src/Java/miscutil/core/gui/beta/MU_GuiId.java b/src/Java/miscutil/core/gui/beta/MU_GuiId.java new file mode 100644 index 0000000000..2c97e62039 --- /dev/null +++ b/src/Java/miscutil/core/gui/beta/MU_GuiId.java @@ -0,0 +1,32 @@ +package miscutil.core.gui.beta; +import miscutil.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