From 6312636fd9a4d0f56dc7c9ff474a99d879bcb4e9 Mon Sep 17 00:00:00 2001 From: OnyxDarkKnight Date: Mon, 23 Mar 2015 14:51:06 +0000 Subject: Reworked the whole repo. --- .../jewelrycraft/client/TabRegistry.java | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/main/java/darkknight/jewelrycraft/client/TabRegistry.java (limited to 'src/main/java/darkknight/jewelrycraft/client/TabRegistry.java') 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 tabList = new ArrayList(); + + public static void registerTab (AbstractTab tab) + { + tabList.add(tab); + } + + public static ArrayList 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 -- cgit v1.2.3