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 cd9750197..3d16ae45b 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/gui/crafting_monitor.png and b/src/main/resources/assets/refinedstorage/textures/gui/crafting_monitor.png differ