From a8dad24d3278531aee5258a3f373a1d937acfa73 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 6 May 2016 15:31:41 +0200 Subject: [PATCH] Selecting tasks in monitor --- .../gui/GuiCraftingMonitor.java | 42 ++++++++++++++++++ .../textures/gui/crafting_monitor.png | Bin 1841 -> 1858 bytes 2 files changed, 42 insertions(+) diff --git a/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java b/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java index ae698b8f9..b38e3dd60 100755 --- a/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java +++ b/src/main/java/refinedstorage/gui/GuiCraftingMonitor.java @@ -8,13 +8,21 @@ import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.tile.autocrafting.TileCraftingMonitor; import scala.actors.threadpool.Arrays; +import java.io.IOException; import java.util.List; public class GuiCraftingMonitor extends GuiBase { public static final int VISIBLE_ROWS = 3; + public static final int ITEM_WIDTH = 72; + public static final int ITEM_HEIGHT = 30; + private TileCraftingMonitor craftingMonitor; + private int itemSelected = -1; + private int itemSelectedX; + private int itemSelectedY; + private Scrollbar scrollbar = new Scrollbar(157, 20, 12, 89); public GuiCraftingMonitor(ContainerCraftingMonitor container, TileCraftingMonitor craftingMonitor) { @@ -32,6 +40,10 @@ public class GuiCraftingMonitor extends GuiBase { public void update(int x, int y) { scrollbar.setCanScroll(getRows() > VISIBLE_ROWS); scrollbar.setScrollDelta((float) scrollbar.getScrollbarHeight() / (float) getRows()); + + if (itemSelected >= craftingMonitor.getTasks().size()) { + itemSelected = -1; + } } @Override @@ -40,6 +52,10 @@ public class GuiCraftingMonitor extends GuiBase { drawTexture(x, y, 0, 0, width, height); + if (itemSelected != -1) { + drawTexture(x + itemSelectedX, y + itemSelectedY, 178, 0, ITEM_WIDTH, ITEM_HEIGHT); + } + scrollbar.draw(this); } @@ -120,4 +136,30 @@ public class GuiCraftingMonitor extends GuiBase { return max < 0 ? 0 : max; } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + super.mouseClicked(mouseX, mouseY, mouseButton); + + itemSelected = -1; + + if (mouseButton == 0) { + int i = 0; + + for (int y = 0; y < 3; ++y) { + for (int x = 0; x < 2; ++x) { + int ix = 8 + (x * ITEM_WIDTH); + int iy = 20 + (y * ITEM_HEIGHT); + + if (inBounds(ix, iy, ITEM_WIDTH, ITEM_HEIGHT, mouseX - guiLeft, mouseY - guiTop) && i < craftingMonitor.getTasks().size()) { + itemSelected = i; + itemSelectedX = ix; + itemSelectedY = iy; + } + + i++; + } + } + } + } } diff --git a/src/main/resources/assets/refinedstorage/textures/gui/crafting_monitor.png b/src/main/resources/assets/refinedstorage/textures/gui/crafting_monitor.png index cd9750197cc56f61f67f42d7f1eb06506b08cb48..3d16ae45b837700e468867a578b9efeb0abb738b 100755 GIT binary patch literal 1858 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(0|PTd zfKP}kP~6=EAy|19_M4YUM-lOy0hobiaLi&9s2#X=*{#_W8fnfrF9+o;U&5Nd=U)Zk?VSe)J&E z^u8#hV*BLEFIT)w9qw(ZZq@&stqoO$;+|4-%e`c%KgI#E_#fkwcVAb0s5AfkV&&AV zhCf?&hW}uGyA=}b2tR;qZrFAEPMr2phGZ6o19uqYRT-v#-Ff(m{DW^()B7(hWlE^! zcFVk9a-K`hGK|4!Ij_UBEsQ7Tm@&+}%%)I$iy_5Ny5USF^90LW(j{+g`osE1cIP2S Soi9Zomw3ARxvX`sfJr)Te4I{p%ZPh>_i4xa{lHmNb zlJdl&REC1Y%)Ao4ywnl}6Fmbx%N*l6KL!S-7Ec$)kczmscQ0lsISRC0j7+}vz5db7 z(Ek?P_c|^=^$UKk9B@HAxzd2es!`|lt}~ad_NB(^eGXCBaOTTD{ritu^BC@LF0tYj z-@)|cr7#NvL&FOkBFKl5Aq%7S<%R8L=fX!qPRYp46IV*KP;9r7cw?maN{ zzyM|qh!apg+4$8G35D-^(XHjyGo$tAhA=;w{B6aD!+-8!vtYqHwe%~Vh6iLI4t&k7 zP`*C8_4{t9&gEwpACk{_KNn&V1H-288(>U^S9!(mb48fX2r@A2W%N^JIQ@0!WfQpv z@5ATWI(xGo_!?~B{e7u>*oPB4nI_ycW0;xCObyC6`nrARwcumBv+jKdImOe}&t;uc GLK6T{^c&Ow