diff options
Diffstat (limited to 'src/Java/miscutil/core/gui')
-rw-r--r-- | src/Java/miscutil/core/gui/ModGUI.java | 53 | ||||
-rw-r--r-- | src/Java/miscutil/core/gui/beta/Gui_ID_Registry.java | 56 | ||||
-rw-r--r-- | src/Java/miscutil/core/gui/beta/Gui_Types.java | 8 | ||||
-rw-r--r-- | src/Java/miscutil/core/gui/beta/MU_GuiId.java | 32 |
4 files changed, 96 insertions, 53 deletions
diff --git a/src/Java/miscutil/core/gui/ModGUI.java b/src/Java/miscutil/core/gui/ModGUI.java deleted file mode 100644 index 82f6ebf3bf..0000000000 --- a/src/Java/miscutil/core/gui/ModGUI.java +++ /dev/null @@ -1,53 +0,0 @@ -package miscutil.core.gui; - -import miscutil.MiscUtils; -import miscutil.core.block.machine.heliumgen.container.ContainerHeliumGenerator; -import miscutil.core.block.machine.heliumgen.gui.GUIHeliumGenerator; -import miscutil.core.block.machine.heliumgen.tileentity.TileEntityHeliumGenerator; -import miscutil.core.handler.GuiHandler; -import miscutil.core.util.Utils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import cpw.mods.fml.common.network.IGuiHandler; -import cpw.mods.fml.common.network.NetworkRegistry; - -public class ModGUI { - - - public static void init(){ - - Utils.LOG_INFO("Registering GUIs."); - NetworkRegistry.INSTANCE.registerGuiHandler(MiscUtils.instance, new GuiHandler()); - //Register GuiHandler - //NetworkRegistry.INSTANCE.registerGuiHandler(MiscUtils.instance, new GuiHandler()); - } -} - -class GUI_HANDLER implements IGuiHandler { - - @Override - public Object getClientGuiElement (int ID, EntityPlayer player, World world, int x, int y, int z){ - if(ID == 0) - return false; - else if(ID == 1) - return false; - else if(ID == 2) - return new GUIHeliumGenerator(player.inventory, (TileEntityHeliumGenerator)world.getTileEntity(x, y, z)); - else if(ID == 3) - return false; - return null; - } - - @Override - public Object getServerGuiElement (int ID, EntityPlayer player, World world, int x, int y, int z){ - if(ID == 0) - return false; - else if(ID == 1) - return false; - else if(ID == 2) - return new ContainerHeliumGenerator(player.inventory, (TileEntityHeliumGenerator)world.getTileEntity(x, y, z)); - else if(ID == 3) - return false; - return null; - } -} 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<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/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<? 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; + } + } + |