summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/client/TabRegistry.java
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-03-23 14:51:06 +0000
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-03-23 14:51:06 +0000
commit6312636fd9a4d0f56dc7c9ff474a99d879bcb4e9 (patch)
treee3279753210bfb169a00cd3f146a80baf624150e /src/main/java/darkknight/jewelrycraft/client/TabRegistry.java
parente86949a1ad3269ec66c9de65e2c92f5e66251411 (diff)
Reworked the whole repo.
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/client/TabRegistry.java')
-rw-r--r--src/main/java/darkknight/jewelrycraft/client/TabRegistry.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/client/TabRegistry.java b/src/main/java/darkknight/jewelrycraft/client/TabRegistry.java
new file mode 100644
index 0000000..2765b73
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/client/TabRegistry.java
@@ -0,0 +1,86 @@
+package darkknight.jewelrycraft.client;
+
+import java.util.ArrayList;
+import java.util.List;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.inventory.GuiInventory;
+import net.minecraft.network.play.client.C0DPacketCloseWindow;
+import net.minecraftforge.client.event.GuiScreenEvent;
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import darkknight.jewelrycraft.client.*;
+
+/**
+ * @author TinkersConstruct
+ */
+public class TabRegistry
+{
+ private static ArrayList<AbstractTab> tabList = new ArrayList<AbstractTab>();
+
+ public static void registerTab (AbstractTab tab)
+ {
+ tabList.add(tab);
+ }
+
+ public static ArrayList<AbstractTab> getTabList ()
+ {
+ return tabList;
+ }
+
+ @SideOnly(Side.CLIENT)
+ @SubscribeEvent
+ public void guiPostInit (GuiScreenEvent.InitGuiEvent.Post event)
+ {
+ if ((event.gui instanceof GuiInventory))
+ {
+ int xSize = 176;
+ int ySize = 166;
+ int guiLeft = (event.gui.width - xSize) / 2;
+ int guiTop = (event.gui.height - ySize) / 2;
+ if(!mc.thePlayer.getActivePotionEffects().isEmpty()) guiLeft += 60;
+
+ updateTabValues(guiLeft, guiTop, InventoryTabVanilla.class);
+ addTabsToList(event.buttonList);
+ }
+ }
+
+ private static Minecraft mc = FMLClientHandler.instance().getClient();
+
+ public static void openInventoryGui ()
+ {
+ mc.thePlayer.sendQueue.addToSendQueue(new C0DPacketCloseWindow(mc.thePlayer.openContainer.windowId));
+ GuiInventory inventory = new GuiInventory(mc.thePlayer);
+ mc.displayGuiScreen(inventory);
+ }
+
+ public static void updateTabValues (int cornerX, int cornerY, Class<?> selectedButton)
+ {
+ int count = 2;
+ for (int i = 0; i < tabList.size(); i++)
+ {
+ AbstractTab t = tabList.get(i);
+
+ if (t.shouldAddToList())
+ {
+ t.id = count;
+ t.xPosition = cornerX + (count - 2) * 28;
+ t.yPosition = cornerY - 28;
+ t.enabled = !t.getClass().equals(selectedButton);
+ count++;
+ }
+ }
+ }
+
+ public static void addTabsToList (List buttonList)
+ {
+ for (AbstractTab tab : tabList)
+ {
+ if (tab.shouldAddToList())
+ {
+ buttonList.add(tab);
+ }
+ }
+ }
+} \ No newline at end of file