From 4272c4cb6d007d6ff3dd5d18f09769f747215be0 Mon Sep 17 00:00:00 2001 From: "Aidan C. Brady" Date: Sun, 27 Oct 2013 11:44:19 -0400 Subject: [PATCH] Fix up custom slot render, got scroll bar working --- .../client/gui/GuiItemStackFilter.java | 8 +- .../client/gui/GuiLogisticalSorter.java | 76 ++++++++++++++++-- .../mekanism/client/gui/GuiOreDictFilter.java | 8 +- .../render/block/MachineRenderingHandler.java | 1 - common/mekanism/common/HashList.java | 5 ++ .../common/transporter/TransporterFilter.java | 7 +- .../mekanism/gui/GuiLogisticalSorter.png | Bin 3309 -> 3576 bytes .../mekanism/gui/GuiPasswordModify copy.png | Bin 2840 -> 0 bytes 8 files changed, 78 insertions(+), 27 deletions(-) delete mode 100644 resources/assets/mekanism/gui/GuiPasswordModify copy.png diff --git a/common/mekanism/client/gui/GuiItemStackFilter.java b/common/mekanism/client/gui/GuiItemStackFilter.java index 4d1bf2882..e398da19a 100644 --- a/common/mekanism/client/gui/GuiItemStackFilter.java +++ b/common/mekanism/client/gui/GuiItemStackFilter.java @@ -53,12 +53,6 @@ public class GuiItemStackFilter extends GuiMekanism filter.color = TransporterUtils.colors.get(0); } - @Override - public boolean doesGuiPauseGame() - { - return false; - } - @Override public void initGui() { @@ -110,7 +104,7 @@ public class GuiItemStackFilter extends GuiMekanism { GL11.glPushMatrix(); GL11.glEnable(GL11.GL_LIGHTING); - itemRenderer.renderItemIntoGUI(fontRenderer, mc.getTextureManager(), filter.itemType, 12, 19); + itemRenderer.renderItemAndEffectIntoGUI(fontRenderer, mc.getTextureManager(), filter.itemType, 12, 19); GL11.glDisable(GL11.GL_LIGHTING); GL11.glPopMatrix(); } diff --git a/common/mekanism/client/gui/GuiLogisticalSorter.java b/common/mekanism/client/gui/GuiLogisticalSorter.java index 384ba0aa9..5a6d8000f 100644 --- a/common/mekanism/client/gui/GuiLogisticalSorter.java +++ b/common/mekanism/client/gui/GuiLogisticalSorter.java @@ -26,6 +26,12 @@ public class GuiLogisticalSorter extends GuiMekanism { public TileEntityLogisticalSorter tileEntity; + public boolean isDragging = false; + + public int dragOffset = 0; + + public float scroll; + public GuiLogisticalSorter(EntityPlayer player, TileEntityLogisticalSorter tentity) { super(new ContainerNull(player, tentity)); @@ -33,10 +39,55 @@ public class GuiLogisticalSorter extends GuiMekanism guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiLogisticalSorter.png"))); } - @Override - public boolean doesGuiPauseGame() + public int getScroll() { - return false; + return Math.max(Math.min((int)(scroll*125), 125), 0); + } + + public int getFilterIndex() + { + return 0; + } + + @Override + public void mouseClicked(int mouseX, int mouseY, int button) + { + super.mouseClicked(mouseX, mouseY, button); + + int xAxis = (mouseX - (width - xSize) / 2); + int yAxis = (mouseY - (height - ySize) / 2); + + if(xAxis >= 154 && xAxis <= 166 && yAxis >= getScroll()+18 && yAxis <= getScroll()+18+15) + { + dragOffset = yAxis - (getScroll()+18); + isDragging = true; + } + } + + @Override + protected void mouseClickMove(int mouseX, int mouseY, int button, long ticks) + { + super.mouseClickMove(mouseX, mouseY, button, ticks); + + int xAxis = (mouseX - (width - xSize) / 2); + int yAxis = (mouseY - (height - ySize) / 2); + + if(isDragging) + { + scroll = (float)(yAxis-18-dragOffset)/123F; + } + } + + @Override + protected void mouseMovedOrUp(int x, int y, int type) + { + super.mouseMovedOrUp(x, y, type); + + if(type == 0 && isDragging) + { + dragOffset = 0; + isDragging = false; + } } @Override @@ -76,10 +127,10 @@ public class GuiLogisticalSorter extends GuiMekanism int yAxis = (mouseY - (height - ySize) / 2); fontRenderer.drawString("Logistical Sorter", 43, 6, 0x404040); - fontRenderer.drawString("Filters:", 11, 17, 0x00CD00); - fontRenderer.drawString("T: " + tileEntity.filters.size(), 11, 26, 0x00CD00); - fontRenderer.drawString("IS: " + getItemStackFilters().size(), 11, 35, 0x00CD00); - fontRenderer.drawString("OD: " + getOreDictFilters().size(), 11, 44, 0x00CD00); + fontRenderer.drawString("Filters:", 11, 19, 0x00CD00); + fontRenderer.drawString("T: " + tileEntity.filters.size(), 11, 28, 0x00CD00); + fontRenderer.drawString("IS: " + getItemStackFilters().size(), 11, 37, 0x00CD00); + fontRenderer.drawString("OD: " + getOreDictFilters().size(), 11, 46, 0x00CD00); super.drawGuiContainerForegroundLayer(mouseX, mouseY); } @@ -94,6 +145,17 @@ public class GuiLogisticalSorter extends GuiMekanism int guiWidth = (width - xSize) / 2; int guiHeight = (height - ySize) / 2; drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize); + + drawTexturedModalRect(guiWidth + 154, guiHeight + 18 + getScroll(), 232, 0, 12, 15); + + for(int i = 0; i < 4; i++) + { + if(tileEntity.filters.get(getFilterIndex()+i) != null) + { + TransporterFilter filter = tileEntity.filters.get(getFilterIndex()+i); + int yStart = i*29 + 18; + } + } } public ArrayList getItemStackFilters() diff --git a/common/mekanism/client/gui/GuiOreDictFilter.java b/common/mekanism/client/gui/GuiOreDictFilter.java index 6620fbeaa..8a0867dbc 100644 --- a/common/mekanism/client/gui/GuiOreDictFilter.java +++ b/common/mekanism/client/gui/GuiOreDictFilter.java @@ -67,12 +67,6 @@ public class GuiOreDictFilter extends GuiMekanism filter.color = TransporterUtils.colors.get(0); } - @Override - public boolean doesGuiPauseGame() - { - return false; - } - @Override public void initGui() { @@ -146,7 +140,7 @@ public class GuiOreDictFilter extends GuiMekanism { GL11.glPushMatrix(); GL11.glEnable(GL11.GL_LIGHTING); - itemRenderer.renderItemIntoGUI(fontRenderer, mc.getTextureManager(), renderStack, 12, 19); + itemRenderer.renderItemAndEffectIntoGUI(fontRenderer, mc.getTextureManager(), renderStack, 12, 19); GL11.glDisable(GL11.GL_LIGHTING); GL11.glPopMatrix(); } diff --git a/common/mekanism/client/render/block/MachineRenderingHandler.java b/common/mekanism/client/render/block/MachineRenderingHandler.java index 7a9f47f3f..25e415cd3 100644 --- a/common/mekanism/client/render/block/MachineRenderingHandler.java +++ b/common/mekanism/client/render/block/MachineRenderingHandler.java @@ -28,7 +28,6 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler public ModelTheoreticalElementizer theoreticalElementizer = new ModelTheoreticalElementizer(); public ModelElectricPump electricPump = new ModelElectricPump(); public ModelMetallurgicInfuser metallurgicInfuser = new ModelMetallurgicInfuser(); - public ModelChest electricChest = new ModelChest(); public ModelChargepad chargepad = new ModelChargepad(); @Override diff --git a/common/mekanism/common/HashList.java b/common/mekanism/common/HashList.java index dbb4e3e65..98403b187 100644 --- a/common/mekanism/common/HashList.java +++ b/common/mekanism/common/HashList.java @@ -19,6 +19,11 @@ public class HashList implements Iterable public T get(int index) { + if(index > size()-1) + { + return null; + } + return list.get(index); } diff --git a/common/mekanism/common/transporter/TransporterFilter.java b/common/mekanism/common/transporter/TransporterFilter.java index fe1b8e5d7..5cfe19451 100644 --- a/common/mekanism/common/transporter/TransporterFilter.java +++ b/common/mekanism/common/transporter/TransporterFilter.java @@ -9,14 +9,11 @@ import net.minecraft.nbt.NBTTagCompound; import com.google.common.io.ByteArrayDataInput; -public class TransporterFilter +public abstract class TransporterFilter { public EnumColor color; - public boolean canFilter(ItemStack itemStack) - { - return false; - } + public abstract boolean canFilter(ItemStack itemStack); public void write(NBTTagCompound nbtTags) { diff --git a/resources/assets/mekanism/gui/GuiLogisticalSorter.png b/resources/assets/mekanism/gui/GuiLogisticalSorter.png index dc0a78021587985adb6f921385b4873277f5d479..07db177e3224cfc3567366a0fb17b3c4816ae333 100644 GIT binary patch literal 3576 zcmeHK=~vS08vTJlIOME2mN}MQhq5aP6;^iCOfZMC9MHPQAyYHaoDe*jrIj4B*{PGI zrYUwT%>ltIrHmX)QURw_ju;w>n249Z;NJW3+_n0&_j=Z|-*-RnxSkwutlMTK10?_e zHhZ|c`Tzh(PC)=1CWoL4mEiyYF^@WQ$lK%4ArtQlap6(teg%L%8khZfaU*`(`*Y%a z9_wOE0^F|TzNPy61~wTQ)O5l;3ZBd#(S5>aTboazkU38cH;wQcs&HwUNSGAl@7Y~oQL|4wl{BD+}UAxZ8$GLIiTzL0<{x=y`Y(`JL zHrkhCietp;7!&m+D#tzyMmKnB(>JY2q8eeNBBO-?CkVJ2e3w|HncUZ9wGX=uqnOug zJ*QIxZ-wn`Wry20hT#?Tm<8khv4+j2;raD7H^VOUjN4P<8+UG~*%c-(34$*LtQ9?J zI`c{`hifDDYs@luPzmKne>ymM>#?P$H;Dx9j2j+bqs@hJp=o{R zE0n#~&L-|mGtztBw`?(Yk7>4NC^15_{xO0qJT7^`J~NwN$@GmH3ma=cLae%ve-M9s zI*Zd?f9n1Ruo>lF^a|D#c@r7)qNcSH%IZfU9Utj__dF3DTl@6DaP5PW$CTH1-A9K| zm^)%xZoj^@wOh40=@0#G-6NfSd`nVIcxr^kFdN!Zf*Ah2l+!OD!1Pksm{yeiG|Xru zc+lr`Lm9(u*45Pvt807u)6*m9$KEBoZoQ%X;_P$DvmMp03RSuggVM1cAZ}k4 zwc--}bWvFE?@|}y_N&J}ei0h{U{Pe*59&N^mdtRyJ9h`pYng1)icCcI@2`lC#t2mR zzK69)KF+sAM-!y+q8prRFqm15C!0;z&4X{Z<=a7>TZFVy3w9b6AEw304UYU2UHVTeU+nv|Da6-X(pKr8 zdkyQfoA6r-DyC=)0!1-PW!;#jM^LIi>-93tb`hetTg?Ji3>)h7dz)2F&^hnJKHg}toc3>Z)Kkw^j4(7MlI3+jW^xU?fX@PISIrkpEI=40suvd zhwA~qWYGNRKCE$sHf+q(_4a2Qre$Q1X$sWuozsG~z}jmnH+Oe9)YUH^T23+bjJj!Q z=-#iHEr~dHSRrWDfl3zzz5C8iXqqXSQK5E{h2f&{_(b9?;*$Nif#m!r)eJ%+rK>)o z=i8#7x|+Y*61QHiW>nOlTm}~i1V<5bAGeD}ow`<6S7UHZ&ZLx-6w#V!rbj51?f}xi z^K!Zid>~jH4v8z-8>IuLhR{w;k))DEw;A5$b~lpqS_hZQWtDO{pjJ#Gfv_ZFgECz+ zCnqOaGMQ{zAb92lPyeBqF%rTh{>BrxQoszWjhLX1S^;ij?cadU`Z#|u8Pz0)pk_FPmN5s z0sZlLj4?1cbOCBeVcaAGf3v{FR2+j(T(+~bYulqFR4RJDD~-wS*hqYyuzvT%5T!7| z&CP9N#fao)a%4;*k(8I#*Vpq`_y%IO4+8^g$P$G?eo_cD<1meK=MgI6|uJS}*ToI+umWB#Br@RMd|1qJ}YgF+IvzI(%qjeMlJH_%I^@ zgja~n0O`>ixdGeM4^gwFD`{@&zi;C(dE@S`%hQR-i$tAc{`QSl%M4nHTn!KX}JPu=B JYY&G0_HSNBBD4Si delta 1836 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