From 3e7187610a60e99f51d0f6f4435904da86b5fddc Mon Sep 17 00:00:00 2001 From: WayofTime Date: Wed, 31 Aug 2016 07:26:22 -0400 Subject: [PATCH] Further un-stupified the routing GUI. --- .../client/gui/GuiItemRoutingNode.java | 86 +++++++++++++++--- .../container/ContainerItemRoutingNode.java | 12 ++- .../tile/routing/TileFilteredRoutingNode.java | 6 ++ .../tile/routing/TileInputRoutingNode.java | 12 +-- .../tile/routing/TileOutputRoutingNode.java | 12 +-- .../bloodmagic/textures/gui/routingNode.png | Bin 1856 -> 1881 bytes 6 files changed, 99 insertions(+), 29 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/client/gui/GuiItemRoutingNode.java b/src/main/java/WayofTime/bloodmagic/client/gui/GuiItemRoutingNode.java index a4fd6354..af4ca641 100644 --- a/src/main/java/WayofTime/bloodmagic/client/gui/GuiItemRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/client/gui/GuiItemRoutingNode.java @@ -1,21 +1,27 @@ package WayofTime.bloodmagic.client.gui; +import io.netty.buffer.Unpooled; + +import java.io.IOException; + +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.client.CPacketCustomPayload; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.network.BloodMagicPacketHandler; import WayofTime.bloodmagic.network.ItemRouterButtonPacketProcessor; import WayofTime.bloodmagic.tile.container.ContainerItemRoutingNode; import WayofTime.bloodmagic.tile.routing.TileFilteredRoutingNode; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.io.IOException; @SideOnly(Side.CLIENT) public class GuiItemRoutingNode extends GuiContainer @@ -29,7 +35,10 @@ public class GuiItemRoutingNode extends GuiContainer private GuiButton incrementButton; private GuiButton decrementButton; + private GuiTextField textBox; + private TileFilteredRoutingNode inventory; + private ContainerItemRoutingNode container; private int left, top; @@ -39,6 +48,7 @@ public class GuiItemRoutingNode extends GuiContainer this.xSize = 176; this.ySize = 169; inventory = (TileFilteredRoutingNode) tileRoutingNode; + container = (ContainerItemRoutingNode) this.inventorySlots; } private int getCurrentActiveSlotPriority() @@ -69,6 +79,60 @@ public class GuiItemRoutingNode extends GuiContainer this.buttonList.add(this.incrementButton = new GuiButton(6, left + 97, top + 14, 18, 17, "^")); this.buttonList.add(this.decrementButton = new GuiButton(7, left + 97, top + 50, 18, 17, "v")); disableDirectionalButton(inventory.currentActiveSlot); + + this.textBox = new GuiTextField(0, this.fontRendererObj, left + 9, top + 73, 103, 12); + this.textBox.setEnableBackgroundDrawing(false); + this.textBox.setText("Test"); + } + + @Override + protected void keyTyped(char typedChar, int keyCode) throws IOException + { + if (this.textBox.textboxKeyTyped(typedChar, keyCode)) + { +// System.out.println(typedChar + ", " + keyCode); +// this.renameItem(); + } else + { + super.keyTyped(typedChar, keyCode); + } + } + + private void renameItem() + { + String s = this.textBox.getText(); + Slot slot = this.container.getSlot(1); + + if (slot != null && slot.getHasStack() && !slot.getStack().hasDisplayName() && s.equals(slot.getStack().getDisplayName())) + { + s = ""; + } + +// this.container.updateItemName(s); + this.mc.thePlayer.connection.sendPacket(new CPacketCustomPayload("MC|ItemName", (new PacketBuffer(Unpooled.buffer())).writeString(s))); + } + + /** + * Called when the mouse is clicked. Args : mouseX, mouseY, clickedButton + */ + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException + { + super.mouseClicked(mouseX, mouseY, mouseButton); + this.textBox.mouseClicked(mouseX, mouseY, mouseButton); + } + + /** + * Draws the screen and all the components in it. + */ + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) + { + super.drawScreen(mouseX, mouseY, partialTicks); + + GlStateManager.disableLighting(); + GlStateManager.disableBlend(); + this.textBox.drawTextBox(); } /** diff --git a/src/main/java/WayofTime/bloodmagic/tile/container/ContainerItemRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/container/ContainerItemRoutingNode.java index 669d492d..5af44a4a 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/container/ContainerItemRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/tile/container/ContainerItemRoutingNode.java @@ -18,19 +18,20 @@ import net.minecraft.item.ItemStack; public class ContainerItemRoutingNode extends Container { private final IInventory tileItemRoutingNode; - private final ItemInventory itemInventory; +// private final ItemInventory itemInventory; private int slotsOccupied; private final TileFilteredRoutingNode inventory; + public int lastGhostSlotClicked = -1; + public ContainerItemRoutingNode(InventoryPlayer inventoryPlayer, IInventory tileItemRoutingNode) { this.tileItemRoutingNode = tileItemRoutingNode; inventory = (TileFilteredRoutingNode) tileItemRoutingNode; this.addSlotToContainer(new SlotItemFilter(this, tileItemRoutingNode, 0, 8, 33)); - ItemStack masterStack = tileItemRoutingNode.getStackInSlot(inventory.currentActiveSlot); - itemInventory = new ItemInventory(masterStack, 9, ""); + ItemInventory itemInventory = inventory.itemInventory; for (int i = 0; i < 3; i++) { @@ -58,7 +59,7 @@ public class ContainerItemRoutingNode extends Container public void resetItemInventory(ItemStack masterStack) { - itemInventory.initializeInventory(masterStack); + inventory.itemInventory.initializeInventory(masterStack); } /** @@ -76,6 +77,9 @@ public class ContainerItemRoutingNode extends Container if (slot instanceof SlotGhostItem) //TODO: make the slot clicking work! { + lastGhostSlotClicked = slot.getSlotIndex(); +// System.out.println(lastGhostSlotClicked); + if ((dragType == 0 || dragType == 1) && (clickTypeIn == ClickType.PICKUP || clickTypeIn == ClickType.QUICK_MOVE)) { ItemStack slotStack = slot.getStack(); diff --git a/src/main/java/WayofTime/bloodmagic/tile/routing/TileFilteredRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/routing/TileFilteredRoutingNode.java index 126ae5dd..81e14cab 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/routing/TileFilteredRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/tile/routing/TileFilteredRoutingNode.java @@ -7,12 +7,15 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.EnumFacing; import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.item.inventory.ItemInventory; public class TileFilteredRoutingNode extends TileRoutingNode implements ISidedInventory { public int currentActiveSlot = 0; public int[] priorities = new int[6]; + public ItemInventory itemInventory = new ItemInventory(null, 9, ""); + public TileFilteredRoutingNode(int size, String name) { super(size, name); @@ -63,6 +66,8 @@ public class TileFilteredRoutingNode extends TileRoutingNode implements ISidedIn } } } + + itemInventory = new ItemInventory(getStackInSlot(currentActiveSlot), 9, ""); } @Override @@ -78,6 +83,7 @@ public class TileFilteredRoutingNode extends TileRoutingNode implements ISidedIn public void swapFilters(int requestedSlot) { currentActiveSlot = requestedSlot; + itemInventory.initializeInventory(getStackInSlot(currentActiveSlot)); this.markDirty(); } diff --git a/src/main/java/WayofTime/bloodmagic/tile/routing/TileInputRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/routing/TileInputRoutingNode.java index a8ecefb9..3ac56f0b 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/routing/TileInputRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/tile/routing/TileInputRoutingNode.java @@ -1,22 +1,20 @@ package WayofTime.bloodmagic.tile.routing; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.items.IItemHandler; import WayofTime.bloodmagic.item.routing.IItemFilterProvider; import WayofTime.bloodmagic.routing.DefaultItemFilter; import WayofTime.bloodmagic.routing.IInputItemRoutingNode; import WayofTime.bloodmagic.routing.IItemFilter; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.IItemHandler; public class TileInputRoutingNode extends TileFilteredRoutingNode implements IInputItemRoutingNode { public TileInputRoutingNode() { - super(7, "inputNode"); + super(6, "inputNode"); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/tile/routing/TileOutputRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/routing/TileOutputRoutingNode.java index 65afdafa..a538eebb 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/routing/TileOutputRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/tile/routing/TileOutputRoutingNode.java @@ -1,22 +1,20 @@ package WayofTime.bloodmagic.tile.routing; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.items.IItemHandler; import WayofTime.bloodmagic.item.routing.IItemFilterProvider; import WayofTime.bloodmagic.routing.DefaultItemFilter; import WayofTime.bloodmagic.routing.IItemFilter; import WayofTime.bloodmagic.routing.IOutputItemRoutingNode; import WayofTime.bloodmagic.util.Utils; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.IItemHandler; public class TileOutputRoutingNode extends TileFilteredRoutingNode implements IOutputItemRoutingNode { public TileOutputRoutingNode() { - super(7, "outputNode"); + super(6, "outputNode"); } @Override diff --git a/src/main/resources/assets/bloodmagic/textures/gui/routingNode.png b/src/main/resources/assets/bloodmagic/textures/gui/routingNode.png index 80fc4bcfad4589e1b8ed786bffa74400a6a5cb15..845aa520afe797be1b3eec8172ae946a9a00c2fd 100644 GIT binary patch delta 1668 zcmZXUeN@s{7{~AL7brz>U^&4|#9BI!xsh5^Ou@ij9P06{a=O9|wPt9UOi~kaMdqCI zge{l4Elu-CzGQ`p)ksaPW0Hp$8pAA`8YcNpK- zI3MK*d92bce3J@*)yN)3KqT+!geD+)IFevJDG%Ee0y68!CA{-Vw}~H}&&(?*a@fbh z)i=}qYCG)u1qgJ%EC<@@f!2B`E+0Nu)-i8dxU$=`#(3-G1C#y^-jsw}`esGd<*~)< zv7cn(KX<*aR4PS|De7$x8}oB>TU%TC(HOQ`GD2N@qR;kzds2E!Y^SNdo{Vf;Z0~5?JUo96TWk!X0oelEe|Dy7J&X?Zd&zHgz=FbK zsD7Ayf_mE|PCO%Tbnt}${gAp@J+rsm9rW;~@oP)p!N9+`Bh>HV$xPGA&}<0k^U8VC zTT~DDjh=!>35wR8L9SXUF{*4X!>{}8wY}m1?VkrXQZKzpWKu=(OFzRyBO@bmZL?uf zQBSyjHI(Cb(~L%=RL_4~6hDwus@Ie!O^343M~@%(>`&Q4Hn`k`$p)Vb&lbIPT;N)n zt5%=Ak>k@sHpDGOw~wpp9VxJ1y7QK*8PSa+5How^<4POX$^gvGM0?;&^+DV#-NA~R zrr&jHARC;XVVlW@=Z5cPY_b#nE|BWfxI-kLLbdv$=r&tb*4t>M_Zp|`lSwH zHZ!xk^~~jH^ZD$)DCI|T$g=zOUBn&F*|wKw`OZ@j^O`@l&#Bu!4cTId2+FkP)o@eG zuvgcOM$E79W`7{R?9wp^#zMB5(jLE}OwLZUd3I9hwRu9Ly`HYsW&7&AW9EN7fh2eF zL;Syfjq>VxbM=k)@3V5wouw($FVu31VBOE+reqj({*nF2s6?_hUq@GG!4nx1YjD9ru+X(HWBOqRl|q)co`Qi z?MWB1BHe%+)SZQ#ACflO4jTLb0m>X~LYvdgOFU{#Dc_?R~bEef+D@Rv~{fz=QS zkmyoa>}jN||FKTSEU1%7-g7nJzGT-K$gl|vyBVw?#C9J;K9+EC;3I$DgtI#`iaR9*5Yq42IQKDx$YEAe+fj+ioOYvxw)9#(-N^|Rk7 z{uTA@Q#Lr9&WasG)U3&Me~SZNfM)IET~SeC zs#_H8`dCp4(w%Q9Tnc;oNMSX+Tn@YGT_ORG!v%&h6kb+%bCYj!?8VB5hsbsqVEsfg z(e4Y8k>+fz;;P+gR}WwM(Z6}%h}Em{13y(-R7a=O3Q5h16zJc9vW(ku+GO;)oa$wZ zgd}ExkYusQ#!Q>VBcYJQLSonDkXrNF%Q1cor` IcCd2(27OKB^Z)<= literal 1856 zcmb_ceKeDM9REEt49Rv{4Q<(u8)=oqEnBgb?GCrN(i9nbckexUDMJy@ike<(z2pLGlktlm z%hKG|8~|YHA6gl6d~~!3Qce z{^rUTSl7b|p}h2@TZDT8?>wHRcR6f1$6D_#-yN4@cGIlCs!REP*WqFt<_@1b;&9QO zE@$R&p@p|s>*$8dA(r!k*zC~oaGLI|SaW*LT|U2BB02e-9?#jL7c?EHnl&R#a$Y%G zKU_grHK1w1?UFkh5&LOj;-E@%Ub@WxxAv;*5B9(R&>wY#-FPGj*cnSD2?I6tIhVSk za2U*|5znCW?AYe1^yqnH-mQJ3E;>@#QR%%vvwc=m?p7S^a9l=we-sArCt32V7sYsl zg}+CSgn$Owv8V@#?3#f`qb}w3jt?`10CtJvbP^KDt<%8fCAtGh$2tI8IlK+b(kdQ# zK9M6l8qdzTyYyMIdKyPSvVp z2$rX8L+z%dOY3{~C3{7z(|XmC%H4ENbO)4r&Cb1^$e|hO4~=12OI}K$Rj^r+Ey6;O z-!`JxtCnWvT`{r{*l9hctjQV9E=!kLH7L2l9?Dp$Cjy#svDa}2+OS7P{x)@0Z(FoQ z_^A!r)ogAI99SyQq`9ly^DFJ7E`r3#9;C@8^i&b0Xpi4x-j+z*DX053zq8%$Kd!b5 zOdaefZhTlVT2F>4@!AvXSp}37npdN)I5kSsGEhhO_-9J)^PVgP7F!`4b`F8){hmwi z=B%~zhQQlo$9&nsS(l9g5)j8sUjuv5?+xxDl_S0&C_o1Q0jd+;P~oeF@*%7Or}$aE zB6~%agVqNTQTgy@$CYT)gxXe&T8A65PB`f?ctta6Mc^T&UZ{ggT#P!ph?0QJ%{@Xz z#6ER}J(2JvBRY!S3lWjTzW^GMy#t`2oUFo6(82fpVA2Nx$z5YE^#w>64R?N@*|Y?t zfud&{Q*lx*B2T_(Z^TM6AVW>b#&6c47-^aG44d|XqS55Rcm8WJ7>>E zFX8ha3=CcjDcvt=skL5J_NkAJWv;UT6BKhwi%G;CwCM=)XUb>*gK-t$B(V{3*ATP@ zG6*q_PNpWJstqPh<%vY6f3@YdQLbg)uE3eYdNb?OVohZ3PXunJxR5QJ3t}>+g5|+% zcI?`^1?V8qqaGTf?mulk{I&Ynujbo^SbWX&a*?P+v-1rufJHcSj?WisuJQS)KZYqV z-a@Cg9i5oSD;-S6&6K)<@P@qg#tItbrA{ntR#2%3iqSX2`)4mS*lUPqlL)-F6UhWW z7K_Mr2xqYhEK0$UV+4v2-DVSF0JnUh|1TeCfDlr&L7oLg_SsZHS;I^GD-<%&@G$qY zkMPgCNd;nQ-||12pNXY;PUDq1(Mp?;#wV91a=v9f(FX?ekwgGbdTD;4xknR2y@n9r zIlQgVc(`J%-ZgU*1IrAE+uC6p+7xT7;Bqd8l^rsX#Q=AM^iTCdxVgbTy-}$=nz8ua zwC<%HRdzG`;w6OQvZUZ+eI?uDgpJYu9iq&duck+Vh}urelJRa#Mw$fjkrhgyi=X50 zamshIZr)t!66lNpBU9!xII32+L)1Pz=YJu_2*9>hmEK6luLc~|t)15w+Wyc0b@Q)@ zlM)@l$`~$p6Z&>L;$3^yh-ZzJ{hNYCh0U$p8Fe08&r`M2KKpZGH;*e^SwP~C zk0=tgY?~W$f>u+MuEpIA36Wt1I<3gvV2J-b{JNckaU1Ze#^WJlxjsxkhIm=T?!N)P CCffV}