From c97a0654292dff739d682d6b084b1fa2877c0e46 Mon Sep 17 00:00:00 2001 From: Rseifert Date: Wed, 31 Oct 2012 23:29:31 -0400 Subject: [PATCH] Finished Sorter GUI created a simple GUI to allow for turning off slots, and toggling rejection state. Also fixed a bug with the rejection checker where it was always false. Though now i have a bug with the packets never making i to the server. --- .../machines/TileEntitySorter.java | 18 ++-- .../assemblyline/gui/GuiButtonImage.java | 46 ++++++++ src/minecraft/assemblyline/gui/GuiSorter.java | 98 ++++++++++++++---- src/minecraft/assemblyline/textures/gui@.png | Bin 0 -> 19802 bytes .../assemblyline/textures/gui_ejector.png | Bin 3800 -> 3856 bytes 5 files changed, 132 insertions(+), 30 deletions(-) create mode 100644 src/minecraft/assemblyline/gui/GuiButtonImage.java create mode 100644 src/minecraft/assemblyline/textures/gui@.png diff --git a/src/common/assemblyline/machines/TileEntitySorter.java b/src/common/assemblyline/machines/TileEntitySorter.java index f0f158c5..f3cce69d 100644 --- a/src/common/assemblyline/machines/TileEntitySorter.java +++ b/src/common/assemblyline/machines/TileEntitySorter.java @@ -46,7 +46,7 @@ public class TileEntitySorter extends TileEntityBase implements /** * on/off value for the GUI buttons */ - public boolean[] onOff = new boolean[5]; + public boolean[] onOff = new boolean[]{true,true,true,true,true}; /** * the belt found in the search area */ @@ -131,6 +131,7 @@ public class TileEntitySorter extends TileEntityBase implements this.beltSide.ignoreEntity(entity); } + System.out.print(" \n fire "); entity.motionX = (double) side.offsetX * 0.1; entity.motionY += 0.10000000298023224D; entity.motionZ = (double) side.offsetZ * 0.1; @@ -202,16 +203,14 @@ public class TileEntitySorter extends TileEntityBase implements if (i >= this.onOff.length) { return; } - boolean cc = this.onOff[i]; - if (cc) { - cc = false; + if (this.onOff[i]) { + this.onOff[i] = false; } else { - cc = true; + this.onOff[i] = true; } - this.onOff[i] = cc; if (worldObj.isRemote) { Packet packet = PacketManager.getPacket("asmLine", this, - new Object[] { tPacketID.SETTINGON, i }); + tPacketID.SETTINGON.ordinal(), i ); PacketDispatcher.sendPacketToServer(packet); } } @@ -261,17 +260,18 @@ public class TileEntitySorter extends TileEntityBase implements try{ int id = dataStream.readInt(); tPacketID pID = tPacketID.values()[id]; + System.out.print("\n id:"+id+" "); if(pID == tPacketID.ANIMATION) { this.firePiston = dataStream.readBoolean(); - } + }else if(pID == tPacketID.GUI) { for(int i =0; i < this.onOff.length; i++) { this.onOff[i] = dataStream.readBoolean(); } - } + }else if(pID == tPacketID.SETTINGON) { int num = dataStream.readInt(); diff --git a/src/minecraft/assemblyline/gui/GuiButtonImage.java b/src/minecraft/assemblyline/gui/GuiButtonImage.java new file mode 100644 index 00000000..b343fc41 --- /dev/null +++ b/src/minecraft/assemblyline/gui/GuiButtonImage.java @@ -0,0 +1,46 @@ +package assemblyline.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.src.GuiButton; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.common.Side; +import cpw.mods.fml.common.asm.SideOnly; +/** + * Copied from GSM lib and modified for this mod only + * @author Rseifert + * + */ +@SideOnly(Side.CLIENT) +public class GuiButtonImage extends GuiButton +{ + private int type = 0; + public GuiButtonImage(int par1, int par2, int par3,int type) + { + super(par1, par2, par3, 12, 12, ""); + this.type = type; + } + + /** + * Draws this button to the screen. + */ + @Override + public void drawButton(Minecraft par1Minecraft, int width, int hight) + { + if (this.drawButton) + { + GL11.glBindTexture(GL11.GL_TEXTURE_2D, par1Minecraft.renderEngine.getTexture("/assemblyline/textures/gui@.png")); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + boolean var4 = width >= this.xPosition && hight >= this.yPosition && width < this.xPosition + this.width && hight < this.yPosition + this.height; + int var5 = 106; + int var6 = 0; + if (var4) + { + var5 += this.height; + } + + this.drawTexturedModalRect(this.xPosition, this.yPosition, var6, var5, this.width, this.height); + } + } +} \ No newline at end of file diff --git a/src/minecraft/assemblyline/gui/GuiSorter.java b/src/minecraft/assemblyline/gui/GuiSorter.java index 7108fd04..bc94df77 100644 --- a/src/minecraft/assemblyline/gui/GuiSorter.java +++ b/src/minecraft/assemblyline/gui/GuiSorter.java @@ -1,53 +1,109 @@ package assemblyline.gui; +import net.minecraft.src.GuiButton; import net.minecraft.src.GuiContainer; import net.minecraft.src.InventoryPlayer; import net.minecraft.src.StatCollector; +import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import assemblyline.AssemblyLine; import assemblyline.machines.ContainerSorter; import assemblyline.machines.TileEntitySorter; -public class GuiSorter extends GuiContainer -{ +public class GuiSorter extends GuiContainer { private TileEntitySorter tileEntity; private int containerWidth; private int containerHeight; - public GuiSorter(InventoryPlayer par1InventoryPlayer, TileEntitySorter tileEntity) - { + public GuiSorter(InventoryPlayer par1InventoryPlayer, + TileEntitySorter tileEntity) { super(new ContainerSorter(par1InventoryPlayer, tileEntity)); this.tileEntity = tileEntity; } - /** - * Draw the foreground layer for the - * GuiContainer (everything in front of the - * items) - */ - @Override - protected void drawGuiContainerForegroundLayer(int par1, int par2) - { - this.fontRenderer.drawString("Ejector Settings", 55, 6, 4210752); - this.fontRenderer.drawString("Voltage: " + (int) this.tileEntity.getVoltage(), 95, 60, 4210752); - this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + public void initGui() { + super.initGui(); + Keyboard.enableRepeatEvents(true); + this.controlList.clear(); + int wid = (this.width - this.xSize) / 2; + int hig = (this.height - this.ySize) / 2; + this.controlList.add(new GuiButton(0, wid + 112, hig + 32, 44,19, "Toggle")); + for(int i = 1; i < this.tileEntity.onOff.length; i++) + { + this.controlList.add(new GuiButtonImage(i, wid + 17 + i*18, hig + 17, 0)); + } + } + + public void updateScreen() { + super.updateScreen(); } /** - * Draw the background layer for the - * GuiContainer (everything behind the items) + * Fired when a control is clicked. This is the equivalent of + * ActionListener.actionPerformed(ActionEvent e). + */ + protected void actionPerformed(GuiButton button) + { + if(button.id < 5) + { + this.tileEntity.changeOnOff(button.id); + } + super.actionPerformed(button); + } + + protected void keyTyped(char par1, int par2) { + super.keyTyped(par1, par2); + } + + protected void mouseClicked(int par1, int par2, int par3) { + super.mouseClicked(par1, par2, par3); + } + + public void onGuiClosed() { + super.onGuiClosed(); + } + + /** + * Draw the foreground layer for the GuiContainer (everything in front of + * the items) */ @Override - protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) - { - int var4 = this.mc.renderEngine.getTexture(AssemblyLine.TEXTURE_PATH + "gui_ejector.png"); + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + this.fontRenderer.drawString("Ejector Settings", 55, 6, 4210752); + this.fontRenderer.drawString( + "Voltage: " + (int) this.tileEntity.getVoltage(), 95, 60, + 4210752); + this.fontRenderer.drawString( + StatCollector.translateToLocal("container.inventory"), 8, + this.ySize - 96 + 2, 4210752); + } + + /** + * Draw the background layer for the GuiContainer (everything behind the + * items) + */ + @Override + protected void drawGuiContainerBackgroundLayer(float par1, int par2, + int par3) { + int var4 = this.mc.renderEngine.getTexture(AssemblyLine.TEXTURE_PATH + + "gui_ejector.png"); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.renderEngine.bindTexture(var4); containerWidth = (this.width - this.xSize) / 2; containerHeight = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(containerWidth, containerHeight, 0, 0, this.xSize, this.ySize); + this.drawTexturedModalRect(containerWidth, containerHeight, 0, 0, + this.xSize, this.ySize); + + //GUI button changes + for(int i = 1; i < this.tileEntity.onOff.length; i++) + { + this.drawTexturedModalRect(containerWidth+17+i*18, containerHeight+17, 176, +(tileEntity.onOff[i] ? 12 : 0), 12, 12); + } + this.fontRenderer.drawString( + "Reject: "+(tileEntity.onOff[0] ? "Inv" : "Other"), containerWidth + 108, + containerHeight +22, 4210752); } } diff --git a/src/minecraft/assemblyline/textures/gui@.png b/src/minecraft/assemblyline/textures/gui@.png new file mode 100644 index 0000000000000000000000000000000000000000..5755b10e5a31ca55997897ffc74d3b24e9988fcf GIT binary patch literal 19802 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 W1Z2Ej#(|*m8RYBZcYxs?p7uXD?6N}u literal 0 HcmV?d00001 diff --git a/src/minecraft/assemblyline/textures/gui_ejector.png b/src/minecraft/assemblyline/textures/gui_ejector.png index b9b396faae2b358afc0a6a55d85c64bb22cff4d5..2123e869cab1dee3e427a064f61122e59f6ec3ee 100644 GIT binary patch delta 784 zcmca1J3(&4TCRF-MkY1Ji<0g!3=Awzo-U3d6}R5rwGX=OAada0cF8c5-N!-H8^uN=3xv00PFw}X{|g+YM9fq{V$$f%It z&wXHxZQb9@^ZR49;i89^$T7`(_5Xl=DW8rJ!}4Eiw=X@%xE*9U_b%2OIc8Uli_TsA z{#WVwo>J++-6bjOwpZ)CkaRe=^VR3s%R2YH7q>hfpOf~HalyTf(d~A#=C@R^O)lh< zGcq`Kv|iTYxs31S8Nnyl-!^jV>Im}c?ATC~)OKx$;ELSa9UU)r>3M0MEI-(@o?*uy zX|Bm1cw{HfzBkB1*bYu|hQU_SeOpcCR1p3BtUpPhW}h2=k%U#(0V>KU_4e1)Mx zyYHT}p4`u)>~Krw4*P`SzGa!K_IFr5Gw{_^^3qgQdbIy2w;9t+<5tV{=1g02r3D3J zue)lhR!Yx*$(8V*>B@$W$L8F!G-Ij+xm!kq=>dlWLxboh!4q>%o_|=A!(x>FsW^va z*9Fl7|5#TfKJK;L3gmv`nLL44%9e$J<$xeCsI*g*Cs=81Y#lP;|{m;@p zvHbU79+!S0^wYWdH(CS3j3^P6o-U3d6}R5rjm?|wAkuKrIy5XbKiRCQCHx_~ z7}IS7o$OBm3se8b-LB}#-hA~|&bo?iLh-s^zqaKjOSHwF z`zSv9W-Y^t?|0Wa+n@D!vSFUwz$0VI!ccMSwmsjR;=XOUXIDOXyv;`0)kSlui%W#v zMo0HM99K$XU0lA@$}gSrBzD6?ZH9aGP7fs~Kjf2`{DF@X4YTPS_+Rzo`N7%CR{mqN zd@j*;P^Ng^yvP0v_G>bH<_=h#dmAcb>^s@`>SRMcSr-ll1%?9`ZSJs706Adw{!Yth z8~iktyfjsn9<4vhZN@ZnbDQON>Be2_x;r}dy0gU0WThL=ME;eLZoF5*YOtTdG-r?D^0K~Ohk1;X8~LPd z8yGBDfEF{}iGvNesiXSQa3rCh%pE-I50FUx2fUC(B5E~J)?NP=nQ$T1AmyV zZ1{R@&Miwhzul~$a0_58-~cLQ-XwZs&eih|OLJJ$igQ@YxEVkml6m)Oerk=2icv^p1#%gHz|+;wWt~$(69AQ5Gv5FJ