Selecting tasks in monitor
This commit is contained in:
@@ -8,13 +8,21 @@ import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
|||||||
import refinedstorage.tile.autocrafting.TileCraftingMonitor;
|
import refinedstorage.tile.autocrafting.TileCraftingMonitor;
|
||||||
import scala.actors.threadpool.Arrays;
|
import scala.actors.threadpool.Arrays;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class GuiCraftingMonitor extends GuiBase {
|
public class GuiCraftingMonitor extends GuiBase {
|
||||||
public static final int VISIBLE_ROWS = 3;
|
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 TileCraftingMonitor craftingMonitor;
|
||||||
|
|
||||||
|
private int itemSelected = -1;
|
||||||
|
private int itemSelectedX;
|
||||||
|
private int itemSelectedY;
|
||||||
|
|
||||||
private Scrollbar scrollbar = new Scrollbar(157, 20, 12, 89);
|
private Scrollbar scrollbar = new Scrollbar(157, 20, 12, 89);
|
||||||
|
|
||||||
public GuiCraftingMonitor(ContainerCraftingMonitor container, TileCraftingMonitor craftingMonitor) {
|
public GuiCraftingMonitor(ContainerCraftingMonitor container, TileCraftingMonitor craftingMonitor) {
|
||||||
@@ -32,6 +40,10 @@ public class GuiCraftingMonitor extends GuiBase {
|
|||||||
public void update(int x, int y) {
|
public void update(int x, int y) {
|
||||||
scrollbar.setCanScroll(getRows() > VISIBLE_ROWS);
|
scrollbar.setCanScroll(getRows() > VISIBLE_ROWS);
|
||||||
scrollbar.setScrollDelta((float) scrollbar.getScrollbarHeight() / (float) getRows());
|
scrollbar.setScrollDelta((float) scrollbar.getScrollbarHeight() / (float) getRows());
|
||||||
|
|
||||||
|
if (itemSelected >= craftingMonitor.getTasks().size()) {
|
||||||
|
itemSelected = -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -40,6 +52,10 @@ public class GuiCraftingMonitor extends GuiBase {
|
|||||||
|
|
||||||
drawTexture(x, y, 0, 0, width, height);
|
drawTexture(x, y, 0, 0, width, height);
|
||||||
|
|
||||||
|
if (itemSelected != -1) {
|
||||||
|
drawTexture(x + itemSelectedX, y + itemSelectedY, 178, 0, ITEM_WIDTH, ITEM_HEIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
scrollbar.draw(this);
|
scrollbar.draw(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,4 +136,30 @@ public class GuiCraftingMonitor extends GuiBase {
|
|||||||
|
|
||||||
return max < 0 ? 0 : max;
|
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++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Reference in New Issue
Block a user