From e4bd7f458f48fcbfbb9c7dbbf2627c0b466fd639 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Thu, 8 Dec 2016 15:24:02 +0100 Subject: [PATCH] The Grid now resizes based on screen size, fixes #130 --- CHANGELOG.md | 2 + .../container/ContainerGrid.java | 49 +++---- .../refinedstorage/gui/GuiBase.java | 19 ++- .../refinedstorage/gui/GuiConstructor.java | 2 +- .../refinedstorage/gui/GuiController.java | 2 +- .../refinedstorage/gui/GuiCrafter.java | 2 +- .../gui/GuiCraftingMonitor.java | 2 +- .../gui/GuiCraftingPreview.java | 2 +- .../refinedstorage/gui/GuiDestructor.java | 2 +- .../refinedstorage/gui/GuiDetector.java | 2 +- .../gui/GuiDiskManipulator.java | 2 +- .../refinedstorage/gui/GuiExporter.java | 2 +- .../refinedstorage/gui/GuiFluidInterface.java | 2 +- .../refinedstorage/gui/GuiGridFilter.java | 2 +- .../refinedstorage/gui/GuiHandler.java | 13 +- .../refinedstorage/gui/GuiImporter.java | 2 +- .../refinedstorage/gui/GuiInterface.java | 2 +- .../gui/GuiNetworkTransmitter.java | 2 +- .../gui/GuiProcessingPatternEncoder.java | 2 +- .../refinedstorage/gui/GuiReaderWriter.java | 2 +- .../refinedstorage/gui/GuiRelay.java | 2 +- .../refinedstorage/gui/GuiSolderer.java | 2 +- .../refinedstorage/gui/GuiStorage.java | 2 +- .../gui/GuiWirelessTransmitter.java | 2 +- .../gui/grid/GridDisplayDummy.java | 28 ++++ ...{GridFilteredItem.java => GridFilter.java} | 4 +- .../refinedstorage/gui/grid/GridTab.java | 6 +- .../gui/grid/GuiCraftingStart.java | 10 +- .../refinedstorage/gui/grid/GuiGrid.java | 123 ++++++++++++------ .../refinedstorage/gui/grid/IGridDisplay.java | 13 ++ .../grid/filtering/GridFilterCraftable.java | 12 +- .../filtering/GridFilterFilteredItems.java | 19 +-- .../gui/grid/filtering/GridFilterMod.java | 8 +- .../gui/grid/filtering/GridFilterName.java | 8 +- .../gui/grid/filtering/GridFilterParser.java | 12 +- .../gui/grid/filtering/GridFilterTooltip.java | 8 +- .../gui/grid/filtering/IGridFilter.java | 7 - .../gui/grid/sorting/GridSorting.java | 4 +- .../gui/grid/sorting/GridSortingName.java | 4 +- .../gui/grid/sorting/GridSortingQuantity.java | 4 +- ...entStackFluid.java => GridStackFluid.java} | 6 +- ...lientStackItem.java => GridStackItem.java} | 7 +- .../{IClientStack.java => IGridStack.java} | 2 +- .../ItemHandlerGridFilterInGrid.java | 10 +- .../network/MessageGridFluidDelta.java | 8 +- .../network/MessageGridFluidUpdate.java | 8 +- .../network/MessageGridItemDelta.java | 8 +- .../network/MessageGridItemUpdate.java | 10 +- .../refinedstorage/tile/grid/IGrid.java | 4 +- .../refinedstorage/tile/grid/TileGrid.java | 6 +- .../tile/grid/WirelessGrid.java | 6 +- .../textures/gui/crafting_grid.png | Bin 2278 -> 2072 bytes .../refinedstorage/textures/gui/grid.png | Bin 2157 -> 1920 bytes .../textures/gui/pattern_grid.png | Bin 2788 -> 2594 bytes 54 files changed, 278 insertions(+), 190 deletions(-) create mode 100755 src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridDisplayDummy.java rename src/main/java/com/raoulvdberge/refinedstorage/gui/grid/{GridFilteredItem.java => GridFilter.java} (82%) create mode 100755 src/main/java/com/raoulvdberge/refinedstorage/gui/grid/IGridDisplay.java delete mode 100755 src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/IGridFilter.java rename src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/{ClientStackFluid.java => GridStackFluid.java} (85%) rename src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/{ClientStackItem.java => GridStackItem.java} (91%) rename src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/{IClientStack.java => IGridStack.java} (91%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65516032d..02941166e 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Added option to check for oredict in the Grid Filter (raoulvdberge) - Added option to use a mod filter in the Grid Filter (raoulvdberge) - Added option to use a whitelist or blacklist in the Grid Filter (raoulvdberge) +- Added Grid tabs using Grid Filters (raoulvdberge) +- The Grid now resizes based on screen size (raoulvdberge) ### 1.3.3 - Updated Forge to 2188 (raoulvdberge) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java index 363c1bfe5..98b60754f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java @@ -3,6 +3,7 @@ package com.raoulvdberge.refinedstorage.container; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.block.EnumGridType; import com.raoulvdberge.refinedstorage.container.slot.*; +import com.raoulvdberge.refinedstorage.gui.grid.IGridDisplay; import com.raoulvdberge.refinedstorage.tile.TileBase; import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; @@ -19,24 +20,31 @@ public class ContainerGrid extends ContainerBase { public static final int TAB_HEIGHT = 31; private IGrid grid; - - private boolean hadTabs; + private IGridDisplay display; private SlotGridCraftingResult craftingResultSlot; private SlotDisabled patternResultSlot; - public ContainerGrid(IGrid grid, EntityPlayer player) { + public ContainerGrid(IGrid grid, IGridDisplay display, EntityPlayer player) { super(grid instanceof TileBase ? (TileBase) grid : null, player); this.grid = grid; + this.display = display; - this.hadTabs = !getGrid().getTabs().isEmpty(); + initSlots(); + } - addPlayerInventory(8, ((grid.getType() == EnumGridType.CRAFTING || grid.getType() == EnumGridType.PATTERN) ? 165 : 126) + getTabDelta()); + public void initSlots() { + this.inventorySlots.clear(); + this.inventoryItemStacks.clear(); + + int headerAndSlots = getTabDelta() + display.getHeader() + (display.getVisibleRows() * 18); + + addPlayerInventory(8, display.getYPlayerInventory()); if (grid.getType() == EnumGridType.CRAFTING) { int x = 26; - int y = 96 + getTabDelta(); + int y = headerAndSlots + 4; for (int i = 0; i < 9; ++i) { addSlotToContainer(new SlotGridCrafting(((TileGrid) grid).getMatrix(), i, x, y)); @@ -49,10 +57,10 @@ public class ContainerGrid extends ContainerBase { } } - addSlotToContainer(craftingResultSlot = new SlotGridCraftingResult(this, player, (TileGrid) grid, 0, 130 + 4, 110 + 4 + getTabDelta())); + addSlotToContainer(craftingResultSlot = new SlotGridCraftingResult(this, getPlayer(), (TileGrid) grid, 0, 130 + 4, headerAndSlots + 22)); } else if (grid.getType() == EnumGridType.PATTERN) { int x = 8; - int y = 96 + getTabDelta(); + int y = headerAndSlots + 4; for (int i = 0; i < 9; ++i) { addSlotToContainer(new SlotFilterLegacy(((TileGrid) grid).getMatrix(), i, x, y)); @@ -65,10 +73,10 @@ public class ContainerGrid extends ContainerBase { } } - addSlotToContainer(patternResultSlot = new SlotDisabled(((TileGrid) grid).getResult(), 0, 112 + 4, 110 + 4 + getTabDelta())); + addSlotToContainer(patternResultSlot = new SlotDisabled(((TileGrid) grid).getResult(), 0, 112 + 4, headerAndSlots + 22)); - addSlotToContainer(new SlotItemHandler(((TileGrid) grid).getPatterns(), 0, 152, 96 + getTabDelta())); - addSlotToContainer(new SlotOutput(((TileGrid) grid).getPatterns(), 1, 152, 132 + getTabDelta())); + addSlotToContainer(new SlotItemHandler(((TileGrid) grid).getPatterns(), 0, 152, headerAndSlots + 4)); + addSlotToContainer(new SlotOutput(((TileGrid) grid).getPatterns(), 1, 152, headerAndSlots + 40)); } if (grid.getType() != EnumGridType.FLUID) { @@ -78,25 +86,6 @@ public class ContainerGrid extends ContainerBase { } } - @Override - public void detectAndSendChanges() { - updateSlotsAccordingToTabs(); - - super.detectAndSendChanges(); - } - - public void updateSlotsAccordingToTabs() { - boolean hasTabs = !getGrid().getTabs().isEmpty(); - - if (hadTabs != hasTabs) { - hadTabs = hasTabs; - - for (Slot slot : this.inventorySlots) { - slot.yPos += (TAB_HEIGHT - 4) * (hasTabs ? 1 : -1); - } - } - } - private int getTabDelta() { return !grid.getTabs().isEmpty() ? TAB_HEIGHT - 4 : 0; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiBase.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiBase.java index 892b2e99e..7aaef0a58 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiBase.java @@ -52,18 +52,18 @@ public abstract class GuiBase extends GuiContainer { private int lastButtonId; private int lastSideButtonY; - protected int width; - protected int height; + protected int screenWidth; + protected int screenHeight; protected Scrollbar scrollbar; - public GuiBase(Container container, int width, int height) { + public GuiBase(Container container, int screenWidth, int screenHeight) { super(container); - this.width = width; - this.height = height; - this.xSize = width; - this.ySize = height; + this.screenWidth = screenWidth; + this.screenHeight = screenHeight; + this.xSize = screenWidth; + this.ySize = screenHeight; } public Scrollbar getScrollbar() { @@ -72,6 +72,8 @@ public abstract class GuiBase extends GuiContainer { @Override public void initGui() { + calcHeight(); + super.initGui(); buttonList.clear(); @@ -82,6 +84,9 @@ public abstract class GuiBase extends GuiContainer { init(guiLeft, guiTop); } + protected void calcHeight() { + } + protected int getSideButtonYStart() { return 6; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiConstructor.java index 72cf1a497..f47241f8f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiConstructor.java @@ -33,7 +33,7 @@ public class GuiConstructor extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/constructor.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiController.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiController.java index ee545b850..70c42f905 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiController.java @@ -42,7 +42,7 @@ public class GuiController extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/controller.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); int barHeightNew = TileController.getEnergyScaled(TileController.ENERGY_STORED.getValue(), TileController.ENERGY_CAPACITY.getValue(), barHeight); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCrafter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCrafter.java index 1b7a6ad34..dacfac782 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCrafter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCrafter.java @@ -24,7 +24,7 @@ public class GuiCrafter extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/crafter.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java index 02b5e243d..f951bd18f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java @@ -94,7 +94,7 @@ public class GuiCraftingMonitor extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/crafting_monitor.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); if (itemSelectedX != -1 && itemSelectedY != -1 && diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java index 69cbd79eb..44cad55d3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingPreview.java @@ -88,7 +88,7 @@ public class GuiCraftingPreview extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/crafting_preview.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); if (stacks.isEmpty()) { drawRect(x + 7, y + 20, x + 142, y + 139, 0xFFDBDBDB); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDestructor.java index dae2f6695..80098a0c4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDestructor.java @@ -33,7 +33,7 @@ public class GuiDestructor extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/destructor.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDetector.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDetector.java index 36dc6a411..2a82e4e9c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDetector.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDetector.java @@ -46,7 +46,7 @@ public class GuiDetector extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/detector.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); AMOUNT.drawTextBox(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDiskManipulator.java index 0de0320ad..4e51b3e92 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiDiskManipulator.java @@ -30,7 +30,7 @@ public class GuiDiskManipulator extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/disk_manipulator.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiExporter.java index 55b4eb557..c41dd29d6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiExporter.java @@ -31,7 +31,7 @@ public class GuiExporter extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/exporter.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFluidInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFluidInterface.java index 3444236a2..a745c8e3d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFluidInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFluidInterface.java @@ -29,7 +29,7 @@ public class GuiFluidInterface extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/fluid_interface.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); if (TileFluidInterface.TANK_IN.getValue() != null) { TANK_RENDERER.draw(mc, x + 46, y + 56, TileFluidInterface.TANK_IN.getValue()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiGridFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiGridFilter.java index 3268c446e..0fb1d225d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiGridFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiGridFilter.java @@ -65,7 +65,7 @@ public class GuiGridFilter extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/grid_filter.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); nameField.drawTextBox(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java index 0de34f665..d30df0f1a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java @@ -2,6 +2,7 @@ package com.raoulvdberge.refinedstorage.gui; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.container.*; +import com.raoulvdberge.refinedstorage.gui.grid.GridDisplayDummy; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.tile.*; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; @@ -23,7 +24,7 @@ public class GuiHandler implements IGuiHandler { case RSGui.CONTROLLER: return new ContainerController((TileController) tile, player); case RSGui.GRID: - return new ContainerGrid((TileGrid) tile, player); + return new ContainerGrid((TileGrid) tile, new GridDisplayDummy(), player); case RSGui.DISK_DRIVE: return new ContainerDiskDrive((TileDiskDrive) tile, player); case RSGui.IMPORTER: @@ -90,7 +91,9 @@ public class GuiHandler implements IGuiHandler { case RSGui.CONTROLLER: return new GuiController((ContainerController) getContainer(ID, player, tile), (TileController) tile); case RSGui.GRID: - return new GuiGrid((ContainerGrid) getContainer(ID, player, tile), (TileGrid) tile); + GuiGrid gui = new GuiGrid(null, (TileGrid) tile); + gui.inventorySlots = new ContainerGrid((TileGrid) tile, gui, player); + return gui; case RSGui.WIRELESS_GRID: return getWirelessGridGui(player, x, y); case RSGui.DISK_DRIVE: @@ -149,11 +152,13 @@ public class GuiHandler implements IGuiHandler { private GuiGrid getWirelessGridGui(EntityPlayer player, int hand, int controllerDimension) { WirelessGrid grid = getWirelessGrid(player, hand, controllerDimension); - return new GuiGrid(new ContainerGrid(grid, player), grid); + GuiGrid gui = new GuiGrid(null, grid); + gui.inventorySlots = new ContainerGrid(grid, gui, player); + return gui; } private ContainerGrid getWirelessGridContainer(EntityPlayer player, int hand, int controllerDimension) { - return new ContainerGrid(getWirelessGrid(player, hand, controllerDimension), player); + return new ContainerGrid(getWirelessGrid(player, hand, controllerDimension), new GridDisplayDummy(), player); } private WirelessCraftingMonitor getWirelessCraftingMonitor(EntityPlayer player, int hand, int controllerDimension) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiImporter.java index 34c2de3d2..162071e4d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiImporter.java @@ -34,7 +34,7 @@ public class GuiImporter extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/importer.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiInterface.java index 4f37104ad..79df85586 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiInterface.java @@ -28,7 +28,7 @@ public class GuiInterface extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/interface.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiNetworkTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiNetworkTransmitter.java index 11b3764f5..934cedebf 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiNetworkTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiNetworkTransmitter.java @@ -26,7 +26,7 @@ public class GuiNetworkTransmitter extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/network_transmitter.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiProcessingPatternEncoder.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiProcessingPatternEncoder.java index 9bf352d19..4506fa783 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiProcessingPatternEncoder.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiProcessingPatternEncoder.java @@ -46,7 +46,7 @@ public class GuiProcessingPatternEncoder extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/processing_pattern_encoder.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); int ty = 0; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiReaderWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiReaderWriter.java index 22220e0fc..372d8698a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiReaderWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiReaderWriter.java @@ -72,7 +72,7 @@ public class GuiReaderWriter extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/readerwriter.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); if (itemSelectedX != -1 && itemSelectedY != -1 && diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiRelay.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiRelay.java index fe7764d26..dca588d2a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiRelay.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiRelay.java @@ -22,7 +22,7 @@ public class GuiRelay extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/relay.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSolderer.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSolderer.java index 6c7b14cbf..fe44677a0 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSolderer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSolderer.java @@ -22,7 +22,7 @@ public class GuiSolderer extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/solderer.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); if (TileSolderer.WORKING.getValue()) { drawTexture(x + 83, y + 38 - 1, 212, 0, getProgressScaled(22), 15); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java index cd51e7a3d..62fa9a40c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java @@ -73,7 +73,7 @@ public class GuiStorage extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture(texture); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); int barHeightNew = (int) ((float) gui.getStored() / (float) gui.getCapacity() * (float) barHeight); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiWirelessTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiWirelessTransmitter.java index 8e8a3eda0..4daa60432 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiWirelessTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiWirelessTransmitter.java @@ -22,7 +22,7 @@ public class GuiWirelessTransmitter extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture("gui/wireless_transmitter.png"); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridDisplayDummy.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridDisplayDummy.java new file mode 100755 index 000000000..85a1d6501 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridDisplayDummy.java @@ -0,0 +1,28 @@ +package com.raoulvdberge.refinedstorage.gui.grid; + +public class GridDisplayDummy implements IGridDisplay { + @Override + public int getVisibleRows() { + return 3; + } + + @Override + public int getRows() { + return 0; + } + + @Override + public int getHeader() { + return 0; + } + + @Override + public int getFooter() { + return 0; + } + + @Override + public int getYPlayerInventory() { + return 0; + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridFilteredItem.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridFilter.java similarity index 82% rename from src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridFilteredItem.java rename to src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridFilter.java index 9af0ea7f9..01248f1ef 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridFilteredItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridFilter.java @@ -2,13 +2,13 @@ package com.raoulvdberge.refinedstorage.gui.grid; import net.minecraft.item.ItemStack; -public class GridFilteredItem { +public class GridFilter { private ItemStack stack; private int compare; private int mode; private boolean modFilter; - public GridFilteredItem(ItemStack stack, int compare, int mode, boolean modFilter) { + public GridFilter(ItemStack stack, int compare, int mode, boolean modFilter) { this.stack = stack; this.compare = compare; this.mode = mode; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridTab.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridTab.java index bbb89eab5..c85501b1d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridTab.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GridTab.java @@ -5,17 +5,17 @@ import net.minecraft.item.ItemStack; import java.util.List; public class GridTab { - private List filters; + private List filters; private String name; private ItemStack icon; - public GridTab(List filters, String name, ItemStack icon) { + public GridTab(List filters, String name, ItemStack icon) { this.filters = filters; this.name = name; this.icon = icon; } - public List getFilters() { + public List getFilters() { return filters; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiCraftingStart.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiCraftingStart.java index a6e57ba1f..265935980 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiCraftingStart.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiCraftingStart.java @@ -4,7 +4,7 @@ import com.google.common.primitives.Ints; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.container.ContainerCraftingSettings; import com.raoulvdberge.refinedstorage.gui.GuiBase; -import com.raoulvdberge.refinedstorage.gui.grid.stack.ClientStackItem; +import com.raoulvdberge.refinedstorage.gui.grid.stack.GridStackItem; import com.raoulvdberge.refinedstorage.network.MessageGridCraftingPreview; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiTextField; @@ -21,19 +21,19 @@ public class GuiCraftingStart extends GuiBase { protected GuiTextField amountField; private GuiBase parent; - private ClientStackItem stack; + private GridStackItem stack; private GuiButton startButton; private GuiButton cancelButton; private GuiButton[] incrementButtons = new GuiButton[6]; - public GuiCraftingStart(GuiBase parent, ClientStackItem stack, Container container, int w, int h) { + public GuiCraftingStart(GuiBase parent, GridStackItem stack, Container container, int w, int h) { super(container, w, h); this.parent = parent; this.stack = stack; } - public GuiCraftingStart(GuiGrid parent, EntityPlayer player, ClientStackItem stack) { + public GuiCraftingStart(GuiGrid parent, EntityPlayer player, GridStackItem stack) { this(parent, stack, new ContainerCraftingSettings(player, stack.getStack()), 172, 99); } @@ -114,7 +114,7 @@ public class GuiCraftingStart extends GuiBase { public void drawBackground(int x, int y, int mouseX, int mouseY) { bindTexture(getTexture()); - drawTexture(x, y, 0, 0, width, height); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); amountField.drawTextBox(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java index e1e8412a7..5f2e8ee5d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java @@ -13,9 +13,9 @@ import com.raoulvdberge.refinedstorage.gui.grid.filtering.GridFilterParser; import com.raoulvdberge.refinedstorage.gui.grid.filtering.IGridFilter; import com.raoulvdberge.refinedstorage.gui.grid.sorting.GridSortingName; import com.raoulvdberge.refinedstorage.gui.grid.sorting.GridSortingQuantity; -import com.raoulvdberge.refinedstorage.gui.grid.stack.ClientStackFluid; -import com.raoulvdberge.refinedstorage.gui.grid.stack.ClientStackItem; -import com.raoulvdberge.refinedstorage.gui.grid.stack.IClientStack; +import com.raoulvdberge.refinedstorage.gui.grid.stack.GridStackFluid; +import com.raoulvdberge.refinedstorage.gui.grid.stack.GridStackItem; +import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; import com.raoulvdberge.refinedstorage.gui.sidebutton.*; import com.raoulvdberge.refinedstorage.integration.jei.IntegrationJEI; import com.raoulvdberge.refinedstorage.integration.jei.RSJEIPlugin; @@ -42,14 +42,14 @@ import java.io.IOException; import java.util.*; import java.util.concurrent.ThreadLocalRandom; -public class GuiGrid extends GuiBase { +public class GuiGrid extends GuiBase implements IGridDisplay { private static final GridSortingQuantity SORTING_QUANTITY = new GridSortingQuantity(); private static final GridSortingName SORTING_NAME = new GridSortingName(); - public static final ListMultimap ITEMS = Multimaps.synchronizedListMultimap(ArrayListMultimap.create()); - public static final ListMultimap FLUIDS = Multimaps.synchronizedListMultimap(ArrayListMultimap.create()); + public static final ListMultimap ITEMS = Multimaps.synchronizedListMultimap(ArrayListMultimap.create()); + public static final ListMultimap FLUIDS = Multimaps.synchronizedListMultimap(ArrayListMultimap.create()); - public static List STACKS = new ArrayList<>(); + public static List STACKS = new ArrayList<>(); private static boolean markedForSorting; @@ -58,7 +58,6 @@ public class GuiGrid extends GuiBase { private GuiTextField searchField; private GuiCheckBox oredictPattern; - private ContainerGrid container; private IGrid grid; private boolean hadTabs = false; @@ -87,9 +86,8 @@ public class GuiGrid extends GuiBase { } public GuiGrid(ContainerGrid container, IGrid grid) { - super(container, grid.getType() == EnumGridType.FLUID ? 193 : 227, (grid.getType() == EnumGridType.CRAFTING || grid.getType() == EnumGridType.PATTERN) ? 247 : 208); + super(container, grid.getType() == EnumGridType.FLUID ? 193 : 227, 0); - this.container = container; this.grid = grid; this.wasConnected = this.grid.isActive(); @@ -97,9 +95,22 @@ public class GuiGrid extends GuiBase { this.konamiOffsetsY = new int[9 * getVisibleRows()]; } + @Override + protected void calcHeight() { + this.ySize = getHeader() + getFooter() + (getVisibleRows() * 18); + + if (hadTabs) { + this.ySize += ContainerGrid.TAB_HEIGHT; + } + + this.screenHeight = ySize; + } + @Override public void init(int x, int y) { - this.scrollbar = new Scrollbar(174, 20 + getTabDelta(), 12, (grid.getType() == EnumGridType.CRAFTING || grid.getType() == EnumGridType.PATTERN || grid.getType() == EnumGridType.FLUID) ? 70 : 88); + ((ContainerGrid) this.inventorySlots).initSlots(); + + this.scrollbar = new Scrollbar(174, getTabDelta() + getHeader(), 12, (getVisibleRows() * 18) - 2); if (grid.getRedstoneModeConfig() != null) { addSideButton(new SideButtonRedstoneMode(this, grid.getRedstoneModeConfig())); @@ -121,7 +132,7 @@ public class GuiGrid extends GuiBase { } if (grid.getType() == EnumGridType.PATTERN) { - oredictPattern = addCheckBox(x + 64, y + 138 + getTabDelta(), t("misc.refinedstorage:oredict"), TileGrid.OREDICT_PATTERN.getValue()); + oredictPattern = addCheckBox(x + 64, getTabDelta() + getHeader() + (getVisibleRows() * 18) + 78, t("misc.refinedstorage:oredict"), TileGrid.OREDICT_PATTERN.getValue()); } if (grid.getType() != EnumGridType.FLUID) { @@ -145,7 +156,7 @@ public class GuiGrid extends GuiBase { } private void sortItems() { - List stacks = new ArrayList<>(); + List stacks = new ArrayList<>(); if (grid.isActive()) { stacks.addAll(grid.getType() == EnumGridType.FLUID ? FLUIDS.values() : ITEMS.values()); @@ -156,10 +167,10 @@ public class GuiGrid extends GuiBase { (grid.getTabSelected() >= 0 && grid.getTabSelected() < grid.getTabs().size()) ? grid.getTabs().get(grid.getTabSelected()).getFilters() : grid.getFilteredItems() ); - Iterator t = stacks.iterator(); + Iterator t = stacks.iterator(); while (t.hasNext()) { - IClientStack stack = t.next(); + IGridStack stack = t.next(); for (IGridFilter filter : filters) { if (!filter.accepts(stack)) { @@ -212,24 +223,45 @@ public class GuiGrid extends GuiBase { if (hadTabs != hasTabs) { hadTabs = hasTabs; - ySize = (grid.getType() == EnumGridType.CRAFTING || grid.getType() == EnumGridType.PATTERN) ? 247 : 208; - - if (hasTabs) { - ySize += ContainerGrid.TAB_HEIGHT; - } - - this.height = ySize; - initGui(); - - container.updateSlotsAccordingToTabs(); } } - private int getRows() { + @Override + public int getHeader() { + return 19; + } + + @Override + public int getFooter() { + return (grid.getType() == EnumGridType.CRAFTING || grid.getType() == EnumGridType.PATTERN) ? 156 : 99; + } + + @Override + public int getYPlayerInventory() { + int yp = getTabDelta() + getHeader() + (getVisibleRows() * 18); + + if (grid.getType() == EnumGridType.NORMAL || grid.getType() == EnumGridType.FLUID) { + yp += 16; + } else if (grid.getType() == EnumGridType.CRAFTING || grid.getType() == EnumGridType.PATTERN) { + yp += 73; + } + + return yp; + } + + @Override + public int getRows() { return Math.max(0, (int) Math.ceil((float) STACKS.size() / 9F)); } + @Override + public int getVisibleRows() { + int screenSpaceAvailable = height - getHeader() - getFooter() - (hadTabs ? ContainerGrid.TAB_HEIGHT : 0); + + return Math.max(3, (screenSpaceAvailable / 18) - 3); + } + private boolean isOverSlotWithItem() { return grid.isActive() && isOverSlot() && slotNumber < STACKS.size(); } @@ -242,23 +274,21 @@ public class GuiGrid extends GuiBase { return inBounds(7, 19 + getTabDelta(), 162, 18 * getVisibleRows(), mouseX, mouseY); } - private int getVisibleRows() { - return (grid.getType() == EnumGridType.CRAFTING || grid.getType() == EnumGridType.PATTERN) ? 4 : 5; - } - private boolean isOverClear(int mouseX, int mouseY) { + int y = getTabDelta() + getHeader() + (getVisibleRows() * 18) + 4; + switch (grid.getType()) { case CRAFTING: - return inBounds(82, 95 + getTabDelta(), 7, 7, mouseX, mouseY); + return inBounds(82, y, 7, 7, mouseX, mouseY); case PATTERN: - return inBounds(64, 95 + getTabDelta(), 7, 7, mouseX, mouseY); + return inBounds(64, y, 7, 7, mouseX, mouseY); default: return false; } } private boolean isOverCreatePattern(int mouseX, int mouseY) { - return grid.getType() == EnumGridType.PATTERN && inBounds(152, 114 + getTabDelta(), 16, 16, mouseX, mouseY) && ((TileGrid) grid).canCreatePattern(); + return grid.getType() == EnumGridType.PATTERN && inBounds(152, getTabDelta() + getHeader() + (getVisibleRows() * 18) + 22, 16, 16, mouseX, mouseY) && ((TileGrid) grid).canCreatePattern(); } private int getTabDelta() { @@ -327,7 +357,20 @@ public class GuiGrid extends GuiBase { bindTexture("gui/grid.png"); } - drawTexture(x, y + getTabDelta(), 0, 0, width, height - (!grid.getTabs().isEmpty() ? ContainerGrid.TAB_HEIGHT : 0)); + int yy = y + getTabDelta(); + + drawTexture(x, yy, 0, 0, screenWidth, getHeader()); + int r = getVisibleRows(); + + for (int i = 0; i < r; ++i) { + yy += 18; + + drawTexture(x, yy, 0, getHeader() + (i > 0 ? (i == r - 1 ? 18 * 2 : 18) : 0), screenWidth, 18); + } + + yy += 18; + + drawTexture(x, yy, 0, getHeader() + (18 * 3), screenWidth, getFooter()); for (GridTab tab : grid.getTabs()) { renderTab(tab, true, x, y, mouseX, mouseY); @@ -344,7 +387,7 @@ public class GuiGrid extends GuiBase { ty = 2; } - drawTexture(x + 152, y + 114 + getTabDelta(), 240, ty * 16, 16, 16); + drawTexture(x + 152, y + getTabDelta() + getHeader() + (getVisibleRows() * 18) + 22, 240, ty * 16, 16, 16); } searchField.drawTextBox(); @@ -353,10 +396,10 @@ public class GuiGrid extends GuiBase { @Override public void drawForeground(int mouseX, int mouseY) { drawString(7, 7 + getTabDelta(), t(grid.getGuiTitle())); - drawString(7, ((grid.getType() == EnumGridType.CRAFTING || grid.getType() == EnumGridType.PATTERN) ? 153 : 114) + getTabDelta(), t("container.inventory")); + drawString(7, getYPlayerInventory() - 12, t("container.inventory")); int x = 8; - int y = 20 + getTabDelta(); + int y = 19 + getTabDelta(); this.slotNumber = -1; @@ -457,7 +500,7 @@ public class GuiGrid extends GuiBase { RS.INSTANCE.network.sendToServer(new MessageGridCraftingClear((TileGrid) grid)); } - ItemStack held = container.getPlayer().inventory.getItemStack(); + ItemStack held = ((ContainerGrid) this.inventorySlots).getPlayer().inventory.getItemStack(); if (isOverSlotArea(mouseX - guiLeft, mouseY - guiTop) && !held.isEmpty() && (clickedButton == 0 || clickedButton == 1)) { RS.INSTANCE.network.sendToServer(grid.getType() == EnumGridType.FLUID ? new MessageGridFluidInsertHeld() : new MessageGridItemInsertHeld(clickedButton == 1)); @@ -465,10 +508,10 @@ public class GuiGrid extends GuiBase { if (isOverSlotWithItem()) { if (grid.getType() != EnumGridType.FLUID && (held.isEmpty() || (!held.isEmpty() && clickedButton == 2))) { - ClientStackItem stack = (ClientStackItem) STACKS.get(slotNumber); + GridStackItem stack = (GridStackItem) STACKS.get(slotNumber); if (stack.isCraftable() && (stack.doesDisplayCraftText() || (GuiScreen.isShiftKeyDown() && GuiScreen.isCtrlKeyDown()))) { - FMLCommonHandler.instance().showGuiScreen(new GuiCraftingStart(this, container.getPlayer(), stack)); + FMLCommonHandler.instance().showGuiScreen(new GuiCraftingStart(this, ((ContainerGrid) this.inventorySlots).getPlayer(), stack)); } else { int flags = 0; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/IGridDisplay.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/IGridDisplay.java new file mode 100755 index 000000000..b7ebe72c5 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/IGridDisplay.java @@ -0,0 +1,13 @@ +package com.raoulvdberge.refinedstorage.gui.grid; + +public interface IGridDisplay { + int getVisibleRows(); + + int getRows(); + + int getHeader(); + + int getFooter(); + + int getYPlayerInventory(); +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterCraftable.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterCraftable.java index 2d59e3ff3..69966cb26 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterCraftable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterCraftable.java @@ -1,9 +1,11 @@ package com.raoulvdberge.refinedstorage.gui.grid.filtering; -import com.raoulvdberge.refinedstorage.gui.grid.stack.ClientStackItem; -import com.raoulvdberge.refinedstorage.gui.grid.stack.IClientStack; +import com.raoulvdberge.refinedstorage.gui.grid.stack.GridStackItem; +import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; -public class GridFilterCraftable implements IGridFilter { +import java.util.function.Predicate; + +public class GridFilterCraftable implements Predicate { private boolean craftable; public GridFilterCraftable(boolean craftable) { @@ -11,7 +13,7 @@ public class GridFilterCraftable implements IGridFilter { } @Override - public boolean accepts(IClientStack stack) { - return stack instanceof ClientStackItem && ((ClientStackItem) stack).isCraftable() == craftable; + public boolean test(IGridStack stack) { + return stack instanceof GridStackItem && ((GridStackItem) stack).isCraftable() == craftable; } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilteredItems.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilteredItems.java index 8758679e1..3cf273e13 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilteredItems.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilteredItems.java @@ -1,32 +1,33 @@ package com.raoulvdberge.refinedstorage.gui.grid.filtering; import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.gui.grid.GridFilteredItem; -import com.raoulvdberge.refinedstorage.gui.grid.stack.ClientStackItem; -import com.raoulvdberge.refinedstorage.gui.grid.stack.IClientStack; +import com.raoulvdberge.refinedstorage.gui.grid.GridFilter; +import com.raoulvdberge.refinedstorage.gui.grid.stack.GridStackItem; +import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; import com.raoulvdberge.refinedstorage.item.ItemGridFilter; import java.util.List; +import java.util.function.Predicate; -public class GridFilterFilteredItems implements IGridFilter { - private List filteredItems; +public class GridFilterFilteredItems implements Predicate { + private List filteredItems; - public GridFilterFilteredItems(List filteredItems) { + public GridFilterFilteredItems(List filteredItems) { this.filteredItems = filteredItems; } @Override - public boolean accepts(IClientStack stack) { + public boolean test(IGridStack stack) { int lastMode = ItemGridFilter.MODE_WHITELIST; - for (GridFilteredItem filteredItem : filteredItems) { + for (GridFilter filteredItem : filteredItems) { lastMode = filteredItem.getMode(); if (filteredItem.isModFilter()) { if (filteredItem.getStack().getItem().getRegistryName().getResourceDomain().equalsIgnoreCase(stack.getModId())) { return filteredItem.getMode() == ItemGridFilter.MODE_WHITELIST; } - } else if (API.instance().getComparer().isEqual(((ClientStackItem) stack).getStack(), filteredItem.getStack(), filteredItem.getCompare())) { + } else if (API.instance().getComparer().isEqual(((GridStackItem) stack).getStack(), filteredItem.getStack(), filteredItem.getCompare())) { return filteredItem.getMode() == ItemGridFilter.MODE_WHITELIST; } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterMod.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterMod.java index 111ec9ac1..43d309b4e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterMod.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterMod.java @@ -1,10 +1,12 @@ package com.raoulvdberge.refinedstorage.gui.grid.filtering; -import com.raoulvdberge.refinedstorage.gui.grid.stack.IClientStack; +import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; -public class GridFilterMod implements IGridFilter { +import java.util.function.Predicate; + +public class GridFilterMod implements Predicate { private String modName; public GridFilterMod(String modName) { @@ -21,7 +23,7 @@ public class GridFilterMod implements IGridFilter { } @Override - public boolean accepts(IClientStack stack) { + public boolean test(IGridStack stack) { String otherModId = stack.getModId().toLowerCase(); if (!getModNameFromModId(otherModId).contains(modName)) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterName.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterName.java index 5a18480c7..78a8eb7c1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterName.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterName.java @@ -1,8 +1,10 @@ package com.raoulvdberge.refinedstorage.gui.grid.filtering; -import com.raoulvdberge.refinedstorage.gui.grid.stack.IClientStack; +import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; -public class GridFilterName implements IGridFilter { +import java.util.function.Predicate; + +public class GridFilterName implements Predicate { private String name; public GridFilterName(String name) { @@ -10,7 +12,7 @@ public class GridFilterName implements IGridFilter { } @Override - public boolean accepts(IClientStack stack) { + public boolean test(IGridStack stack) { return stack.getName().toLowerCase().contains(name); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterParser.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterParser.java index 3c101376a..f8233a750 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterParser.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterParser.java @@ -1,15 +1,17 @@ package com.raoulvdberge.refinedstorage.gui.grid.filtering; -import com.raoulvdberge.refinedstorage.gui.grid.GridFilteredItem; +import com.raoulvdberge.refinedstorage.gui.grid.GridFilter; +import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import java.util.LinkedList; import java.util.List; +import java.util.function.Predicate; public class GridFilterParser { - public static List getFilters(IGrid grid, String query, List itemFilters) { - List filters = new LinkedList<>(); + public static List> getFilters(IGrid grid, String query, List filteredItems) { + List> filters = new LinkedList<>(); for (String part : query.toLowerCase().trim().split(" ")) { if (part.startsWith("@")) { @@ -27,8 +29,8 @@ public class GridFilterParser { filters.add(new GridFilterCraftable(true)); } - if (!itemFilters.isEmpty()) { - filters.add(new GridFilterFilteredItems(itemFilters)); + if (!filteredItems.isEmpty()) { + filters.add(new GridFilterFilteredItems(filteredItems)); } return filters; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterTooltip.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterTooltip.java index 5f3c205fd..2f88ef1dc 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterTooltip.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterTooltip.java @@ -1,8 +1,10 @@ package com.raoulvdberge.refinedstorage.gui.grid.filtering; -import com.raoulvdberge.refinedstorage.gui.grid.stack.IClientStack; +import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; -public class GridFilterTooltip implements IGridFilter { +import java.util.function.Predicate; + +public class GridFilterTooltip implements Predicate { private String tooltip; public GridFilterTooltip(String tooltip) { @@ -10,7 +12,7 @@ public class GridFilterTooltip implements IGridFilter { } @Override - public boolean accepts(IClientStack stack) { + public boolean test(IGridStack stack) { String otherTooltip = stack.getTooltip().trim().toLowerCase(); if (!otherTooltip.contains("\n")) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/IGridFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/IGridFilter.java deleted file mode 100755 index 51fa9f9b9..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/IGridFilter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.raoulvdberge.refinedstorage.gui.grid.filtering; - -import com.raoulvdberge.refinedstorage.gui.grid.stack.IClientStack; - -public interface IGridFilter { - boolean accepts(IClientStack stack); -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSorting.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSorting.java index d3ccc8c5d..23c1db2f8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSorting.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSorting.java @@ -1,10 +1,10 @@ package com.raoulvdberge.refinedstorage.gui.grid.sorting; -import com.raoulvdberge.refinedstorage.gui.grid.stack.IClientStack; +import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; import java.util.Comparator; -public abstract class GridSorting implements Comparator { +public abstract class GridSorting implements Comparator { protected int sortingDirection; public void setSortingDirection(int sortingDirection) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSortingName.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSortingName.java index b8b7f2549..5609d353d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSortingName.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSortingName.java @@ -1,11 +1,11 @@ package com.raoulvdberge.refinedstorage.gui.grid.sorting; -import com.raoulvdberge.refinedstorage.gui.grid.stack.IClientStack; +import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; public class GridSortingName extends GridSorting { @Override - public int compare(IClientStack left, IClientStack right) { + public int compare(IGridStack left, IGridStack right) { String leftName = left.getName(); String rightName = right.getName(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSortingQuantity.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSortingQuantity.java index 5f2545197..e6336779e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSortingQuantity.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/sorting/GridSortingQuantity.java @@ -1,11 +1,11 @@ package com.raoulvdberge.refinedstorage.gui.grid.sorting; -import com.raoulvdberge.refinedstorage.gui.grid.stack.IClientStack; +import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; public class GridSortingQuantity extends GridSorting { @Override - public int compare(IClientStack left, IClientStack right) { + public int compare(IGridStack left, IGridStack right) { int leftSize = left.getQuantity(); int rightSize = right.getQuantity(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackFluid.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java similarity index 85% rename from src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackFluid.java rename to src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java index ab9fc96ef..9ad68c569 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackFluid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackFluid.java @@ -5,11 +5,11 @@ import com.raoulvdberge.refinedstorage.gui.GuiBase; import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.tuple.Pair; -public class ClientStackFluid implements IClientStack { +public class GridStackFluid implements IGridStack { private int hash; private FluidStack stack; - public ClientStackFluid(Pair data) { + public GridStackFluid(Pair data) { this.hash = data.getLeft(); this.stack = data.getRight(); } @@ -57,6 +57,6 @@ public class ClientStackFluid implements IClientStack { @Override public boolean equals(Object obj) { - return obj instanceof ClientStackFluid && ((ClientStackFluid) obj).getStack().isFluidEqual(stack); + return obj instanceof GridStackFluid && ((GridStackFluid) obj).getStack().isFluidEqual(stack); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java similarity index 91% rename from src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java rename to src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java index ac6cf8b15..de87db27b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/GridStackItem.java @@ -9,17 +9,16 @@ import net.minecraft.client.resources.I18n; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.fml.common.network.ByteBufUtils; import java.util.List; -public class ClientStackItem implements IClientStack { +public class GridStackItem implements IGridStack { private int hash; private ItemStack stack; private boolean craftable; private boolean displayCraftText; - public ClientStackItem(ByteBuf buf) { + public GridStackItem(ByteBuf buf) { stack = RSUtils.readItemStack(buf); hash = buf.readInt(); craftable = buf.readBoolean(); @@ -109,6 +108,6 @@ public class ClientStackItem implements IClientStack { @Override public boolean equals(Object obj) { - return obj instanceof IClientStack && ((ClientStackItem) obj).getHash() == hash; + return obj instanceof IGridStack && ((GridStackItem) obj).getHash() == hash; } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/IClientStack.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/IGridStack.java similarity index 91% rename from src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/IClientStack.java rename to src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/IGridStack.java index 653ef756f..e8f825a17 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/IClientStack.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/IGridStack.java @@ -2,7 +2,7 @@ package com.raoulvdberge.refinedstorage.gui.grid.stack; import com.raoulvdberge.refinedstorage.gui.GuiBase; -public interface IClientStack { +public interface IGridStack { int getHash(); String getName(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerGridFilterInGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerGridFilterInGrid.java index 772205b4a..f0d560e0b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerGridFilterInGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerGridFilterInGrid.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.inventory; import com.raoulvdberge.refinedstorage.RSItems; -import com.raoulvdberge.refinedstorage.gui.grid.GridFilteredItem; +import com.raoulvdberge.refinedstorage.gui.grid.GridFilter; import com.raoulvdberge.refinedstorage.gui.grid.GridTab; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.item.ItemGridFilter; @@ -13,10 +13,10 @@ import java.util.ArrayList; import java.util.List; public class ItemHandlerGridFilterInGrid extends ItemHandlerBasic { - private List filteredItems; + private List filteredItems; private List tabs; - public ItemHandlerGridFilterInGrid(List filteredItems, List tabs) { + public ItemHandlerGridFilterInGrid(List filteredItems, List tabs) { super(4, new ItemValidatorBasic(RSItems.GRID_FILTER)); this.filteredItems = filteredItems; @@ -40,11 +40,11 @@ public class ItemHandlerGridFilterInGrid extends ItemHandlerBasic { ItemHandlerGridFilter items = new ItemHandlerGridFilter(filter); - List filters = new ArrayList<>(); + List filters = new ArrayList<>(); for (ItemStack item : items.getFilteredItems()) { if (!item.isEmpty()) { - filters.add(new GridFilteredItem(item, compare, mode, modFilter)); + filters.add(new GridFilter(item, compare, mode, modFilter)); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidDelta.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidDelta.java index a34879c9a..b8eda8bda 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidDelta.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidDelta.java @@ -2,7 +2,7 @@ package com.raoulvdberge.refinedstorage.network; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; -import com.raoulvdberge.refinedstorage.gui.grid.stack.ClientStackFluid; +import com.raoulvdberge.refinedstorage.gui.grid.stack.GridStackFluid; import io.netty.buffer.ByteBuf; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; @@ -14,7 +14,7 @@ public class MessageGridFluidDelta implements IMessage, IMessageHandler { private INetworkMaster network; - private List stacks = new ArrayList<>(); + private List stacks = new ArrayList<>(); public MessageGridFluidUpdate() { } @@ -29,7 +29,7 @@ public class MessageGridFluidUpdate implements IMessage, IMessageHandler { private INetworkMaster network; - private List stacks = new ArrayList<>(); + private List stacks = new ArrayList<>(); public MessageGridItemUpdate() { } @@ -31,7 +31,7 @@ public class MessageGridItemUpdate implements IMessage, IMessageHandler getFilteredItems(); + List getFilteredItems(); List getTabs(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java index 73ec4a8d1..f32674a4a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java @@ -10,7 +10,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.block.BlockGrid; import com.raoulvdberge.refinedstorage.block.EnumGridType; import com.raoulvdberge.refinedstorage.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.gui.grid.GridFilteredItem; +import com.raoulvdberge.refinedstorage.gui.grid.GridFilter; import com.raoulvdberge.refinedstorage.gui.grid.GridTab; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; @@ -183,7 +183,7 @@ public class TileGrid extends TileNode implements IGrid { private InventoryCraftResult result = new InventoryCraftResult(); private ItemHandlerBasic patterns = new ItemHandlerBasic(2, this, new ItemValidatorBasic(RSItems.PATTERN)); - private List filteredItems = new ArrayList<>(); + private List filteredItems = new ArrayList<>(); private List tabs = new ArrayList<>(); private ItemHandlerGridFilterInGrid filter = new ItemHandlerGridFilterInGrid(filteredItems, tabs); @@ -284,7 +284,7 @@ public class TileGrid extends TileNode implements IGrid { } @Override - public List getFilteredItems() { + public List getFilteredItems() { return filteredItems; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java index 5c1396986..4944570ce 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java @@ -5,7 +5,7 @@ import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.block.EnumGridType; -import com.raoulvdberge.refinedstorage.gui.grid.GridFilteredItem; +import com.raoulvdberge.refinedstorage.gui.grid.GridFilter; import com.raoulvdberge.refinedstorage.gui.grid.GridTab; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; @@ -39,7 +39,7 @@ public class WirelessGrid implements IGrid { private int searchBoxMode; private int tabSelected; - private List filteredItems = new ArrayList<>(); + private List filteredItems = new ArrayList<>(); private List tabs = new ArrayList<>(); private ItemHandlerGridFilterInGrid filter = new ItemHandlerGridFilterInGrid(filteredItems, tabs) { @Override @@ -175,7 +175,7 @@ public class WirelessGrid implements IGrid { } @Override - public List getFilteredItems() { + public List getFilteredItems() { return filteredItems; } diff --git a/src/main/resources/assets/refinedstorage/textures/gui/crafting_grid.png b/src/main/resources/assets/refinedstorage/textures/gui/crafting_grid.png index f00b3b24e4bfd5fec3979cdb8bd8afa646a3f751..1e35e4c059f61d447f7818d382cbe79c3277c577 100755 GIT binary patch delta 952 zcmaDRI747V2n*LP1_r)ejH3I^E=`VOQK&a^X32iTz`$JV>Eakt5%=~^Z{A`90oTM? zChz~B$l)+ItB;a2b~Y?N7glsFH}-RfgK5eqQ9;q8WxP7tYVR@;b|Sbu6DTP*a265;L%FFtIxK z*I5u_9>eR+dsd&dV16-0^?Aj%#fIS~k9ik_2KSj4-{k=*IFKU-qCnt6>lHQ-ZJ_hE zd{VOMW1a=Y)8{Jao=30KLqwf3&25F{) z4A+=0GK4WbWSGYEkwJ{foc+Qdo4xruN(X!tlp5}tmlZcuK4yQZuO-(YSI^D9pnYWq zL)8>+wgv2ylj<2W=7@16tUk?DptPk&c;O_;+E0B97nZN zlD`>90_k5$3?;srzz}T~Vc5=Q@!BQBe>qc(Ay5kFJ8qB?ht=i+Knm)g8ip@S?J*Zm zE1Eo$N#Da*vShNB)ql%kaBMKt1JzyFcNSy;1gxmGJTlYx9D`N)Ny~X}GtP*ftzdrP z=Z%ORpt6Qdc$EfG3?$#))`7Db_Fs-!Et%e6#>CKYgMnYX zAunS4%r}hp@}qXQTJbkL)XP{}czK$o&do4}3?69)sl#jy$2Kr7FwDWlRfJ1N-T%)V Wy+tv|D`)wBkbR!6elF{r5}E+CbY*1# literal 2278 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(0|PTd zfKP}kP~62^QA&dRf`N&DBm;)v@9e6; zXy+{Oh%9Dc;M)ztjK_amF#`%pmbgZg1m~xflqVLYG880c=9TE>rIsj|=o#o48m#5w zIshzSyggkULn`9l-eD|WWFXL%xa#Zw|0(BN&g%$VQkuTBWzYRmw%ttc><+)2SeRE~ z*WUKI#(n?ui=U73oPT(+;NIt{?LT}IGOGR^|88-g-#Mc{N$EiO=ACyR)!6eawC&<# zxV81DL<3i3AKQ+~r|ZOLq_ch4>SOV&pka6LwcT@=Gp{5}R{jCwI;1VP{}? zIQ@_CiEkRug2E3N&0oWDHS6;FNu@KHUvy46DR&fXZpw1LLYdTf)z?A{()>V?h`9&9 zX|ORcxHbIodzCZw!cygick^}nvaN4LnS~}zpQW?RsG-lZaLttZN9jV!M!jxMJF_Oy&cIKwBDqtrG)M5BeF8)tjzKd0O{r z7K4?^=~FuyEQAvN-+G&F`CfFxnP>T*Yo~o?TG2m+tDf~*%`c`1!52IV;xBj=gkSI_ zXkL&%;Pl`T!>aR(pC9|eVIcfM(BXXVPKyIJkNtkRzT|i4zyFfYfj_v4`GT@{IzyF# zXFS6#zssTrqWriIbX@=jbMDF)5BQlH_|9J9cKB!asjqCtlSvHoK`Aic{#7O*#js$r zK2t-Q7qBL_^N9`nM#&Z%tIfvSCZjhRWbN3uTG|<05(t+iIxQx#1eS8bo z9^LqecY*5MDZa1m-NQgCzyP8Q%K5#IuQ27Pq{C}HvEy51b9HBH-DB8wDM&{DS*<8k z3EUnqzu~@@-`XzYhHJ5~^tp$zWa(0ixHG@CU>cx-3+3*gIwwjry}=CRpB3-3Dw#9h zUVXG<-)dkoJSy!l-%PVlJ_D!Tt9M{}YnkuFFtioiOAC^J@O5$V_6Y}>6=GP|rsV8O xlkvM5#&BWVZH5K8+Zi2h=P@^IoBQnNA9nNBc>g;hHC`Zxc)I$ztaD0e0ss_z@819b diff --git a/src/main/resources/assets/refinedstorage/textures/gui/grid.png b/src/main/resources/assets/refinedstorage/textures/gui/grid.png index 0644972f7763853fcec814f32920127b5dd0ecb8..64761542012ce530c692f1c3f293e67330d58a53 100755 GIT binary patch literal 1920 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(0|PTd zfKP}kP~62^QA&dRf`N&DBm;)v@9e6; zXy+{Oh%9Dc;M)npj62xG_X7nbOI#yLg7ec#$`gxH8440J^GfvcQcDy}^bGV2jhtDs z-!L#RJ@s^P45^5Fd*@=`Wd{M)z{xrP{!ivrYfYd0A;I$Qgo|s1g1rAG9CH`cc3Z9U zdY8|gUuCCv-BEj2+nD<5`~KR!x*wz;WZ%-8Ue0R9AZM05pS|Gat5fkGZm=`O%>MOT zlU2ZhA?`^I6Nf?rgUuQhMvMH)%?vT`|9fY5?0>NFJoAs^oB?bf9`DpH{xaWOfB7A= zR)#;(o6CQ1IeS`jdoKeM$ARuSz6^{kKx2T!f>$$Yr9rgtgRgq;FPoiZxU;E8>V4Ua z#m=+y80PJ|{v*+DyC6tu#SJc?jbLl{oVW?rzRmsn-6tWrvlw@jOPbz$YvA5)c9+4X zbp6M}HF?S)wI4Q!f^7j36%#jeg7oL~zuSFs<*hyQHi;x$V&P!lafI>C{-Ed8kqmpj zY`<6g|0Tl@v7NSYk83V77QEX8wx;423rOpn-8zg65560?_3nRtP)7Dv33I{uE!Qh{ zmO|_T84l9{*0!pye{ue0o&$SNulShPZfUjUCEJ6^+YlZC1%O3)B-lq_qSo9pbaooU zyI8m0a_ch}7y6nr%-^#282{&;pkM=g{=m-DLNFh(ya0K`g!#-wP@wKS{fqg)-PbEV z)=h_4wft<{WBx70puh#|Xegep3JpIdjtk|pqqkaqOHk#(r=AvYM`U?d#S&oLH>NU~I-XV2^QA&dRf`N&DBm;)v@9e6; zXy+{Oh%9Dc;M)bljH3I^E&&B4OI#yLg7ec#$`gxH8440J^GfvcQcDy}^bGV24c2mT z9RQXnmpok@Ln`9l-et^xWWdw*P%h{HfAwPTUu)Zz-K?6qSNX@^l1Zk)UVm0dWwq^i zS{AK#?yd2!oxO7J({}2<7k*y6@1MYZPMzTM|Nm_}_x-4V)uP#4AIx&~rd!2U1fWhuSf{xS+d~6X@70j@6*zk732~ zA})ri-0x?Y3f68<5WL83^Xw->oh8E##uxui7KLv8^W1OqsomAK{0z3~r+;rQofUeo zmz{y(Y5OjmAjaO3}!gH(woU$^0moomIKE? zMJ!+X2IXCh3=N_S_D-(a<`s;d z*+M(EFV3>Ox^nfE6w`AIRp+K1=&oFId5sW*G=GEDk%#YlL&6W(z2Ueico$?QgUNC| zPMK7w0wCXF&cVJHYzz!x4C`xW?;zHpCs+z*ykVHG!r(n~%VZt~`QnUQX7_8BK3L6A z!*i)q?)}qL1~*VJfPv3GGRLo%Qo13-Qb$slWxVZ_O>oqpVe;` zkda&RwlgR&)bbq``Vq+=dU~awNyE39+gS4QdP`w8!L@(|;^sf@c+J9`asMbZFgw{U zOx>pXAxZ8vTtn3MXgHhUQCZO*tAh-;$~UsSd%GgauXGV($ZTze}9V>2}D zm@Bj1&)|Rz)Oj^b8Sk$O?byE>7;!+mcAuSgza6CNo{pOmV^4sm>|1jG9dwIwB$ive|$~Dzv_AjgHTGRc_=YZyOE{0W^%nez$ n7#7SjV_30_mrC4|jCtGle|puF?>(tt#XV1(%-@RwP@18Q}gJL13#93UX76AEL z==a)4+w0!qT8P9&TgwB^@!lg{NpUc31A8|M?Hi)peC?CnFED8(;yjp)<|6-8ExVNof9 z^F#HQ<106Qb-&9XB$kyD7v~%~4gD!91Ut~4diL?~44LYZsyjYchR^6RwdEBn6FR<>0561g` zjudxfq(n-{UU)HoNt@*g$Ftc~_77y8-;=madll0v)ZQKKI>cCeIR@dG39xY*yW5+yaF7FzxS@d4!#F)VTd*t-5`1pic zu5%5Y0TrIoXvn)^5~DpLS#6K_teF&r)aPWdlnr-r4euS9$qance3W~`4SN31Sg?Xs zpWTUwhY-J9Q;LS3jX%7zIIw6Z?RFa_h=9N{GFS=pEQlWe@Cr=x|P+hA;s9>ViOE}qPs_-W* z*?@wD{bZ~j7Gisl`{uO>vrAL{ri)>X)BLc>UVJ9_C1Gx|>R`~*TX50nzz8pW2g)AFz+|_m-Rm^1yiFn+UQROGHzdQ& zhKkMzo=)#2LfJk&9YtW1i4O zueq<-o#h4bkz$3w?T+A1f*-fLa}#n$iNJM2HXuYW_v zGM4kFJZ=kEF=9Zt7P~#20(fz4Ze5)PM@T^ph5#RuTVL-PCb>d!34m6)Lhp6x-Kq>< zUYD=xw0Ai01cp`!p(eyzYD8qhXQ-oZZ_-xzPepK{+0nhWq8XLKCS5zy(d;4eE^U59+(c038Wn zYN-O+bwrtk9EjWmUd73oP?qpj&%hL^qtRRm1etOT5#n4vkGoUmDxz~!8|Tq?tGlzP z5X>F>jO9%BNnG8^k|legTUfck3@ri#G@V5iYh4JQs@j$Tv|&|FOS;Sd2(MVQq$cn!)52b}R zyGqiMmGbNB)Kp^52MA?{?aC^%o49KdA$(J~F*4E12l75hU_CH53b147- delta 1666 zcmZ`%2~bm46#f76!xDl-ibz#r!Xk@;0!js~elQRrmQ`dYQKo`MLuy3`ivMF346+qO z5d{NS8cW#3iW)PG0%8#`RIRiO7!aGtA_)QwB|w99>`Z6+=FGe|^X8s+&O4{VbZA-q zZWu2HfF)v(Hk)5l7z^8?y1u?t&)q4pV^<85d#Oa9!~9~JuSVaV7ek`l7z|9{T7Sj8 zwkdd*0nh&YO~t|ju~D>wb$G0bwp7HvHp5Qq@`#K0{Z3ht(0$wC4tWmVm4Tp_r6Zqq zuFBzBUEgp{QyXBJ$mcq7r*|32_cjK-(G-RqI9ca=>ei!#c{c)zt5nk6PZr=)LL>f4 zD|*Q);5)jM$eZUlM~kiXj33PHWf<_ks6K0kfI1{j;8J?S0a7@Wh(kr0p z%)Lrn7-&TyqdmQb&;`h+{O&gVgKjq(m}%T1ubVK=JaiH3U|i9ee(P$gJZ=t`t4Z~% zNx4uiUB=naBmT^MboA}$p)pQ0bf2mGP5!6eTxxShSvctmdskAHmYO!u@`gf1pOR>#ynXiM+yza;9;jn&e!peqjLTg$-7!7I zgpoZG3UY-Oeb2L30nUjkAoaR<&3Y-C>R(iM{%OX^L@jRCy%KfSVJPG2FQ zXA3F4Hsp7CgNn&T_LgpIvzIz+RENyIiiR3hYW1v2txzizy;fT1FI4L9uddDu$o0={ zi_3+MAix$dz97^1Ip@~_JAUCWW9&rsz2;y^)lSr-$i(esCtREy+~jB(|HeyF=^tiZ z?0;N5HvP~d2IOv?K9=yzG)sU+1nT`m27xI*-Y9GU&3E5wm`X=qcOzbG^x1 z0%+JqlGW^`}x5>uINXs96MG$H9#A0iX6VLLSxB#TR<)ufV9Yt zp>M4UcG}nROAQc~wh~?HPS1lB^S-Ydns!uH1yVZ;TtYT4W}^)6cy0M`9R>Mb4|FgX z;eHc}8)`^8J;5|U02sjMGr!b_gT_AF%9=evMBlUSLO*L}T|}lvCS-oxwLo{Vug|;CN`r z&5+AwdApzdYI79M@qlc^Xv;z;!;sIS`*hPoD$4qbW;wh$7dw+K&jaV%(t(-8G$^6J zixUJ6-j4(v5J@-?vvO!#bg%_jh5;T_UHFk5to1CtR|s6F{$qE8Sw9XBJyww^&n$*x)W`j7@2=DTJ(hPDE(U=_%Q2s)$ikdg9}eAmFQ zK~u(=So(k+vlXC$laYR%IAH;siV`)j^c`*#mOdr0A;qN(ZMAQ}>%omq&3;%;)LPlC zq|>8n?Hh@=t*A7qAkH}wnvU~Crf|jbZ*e!lpeWEg{lA*g#gAidC&SW0g1+EKEGg-9 z*1qi*XyEhrjnI0>0DUd^;;?^q?iQWJ9M1!PeR`@&YHXeGEG1iQhU8q#_Od8X^3h&> z0QSciVR7;Uup`^^!{b{Tfnia?hw^L3iqH!K4aJYW|91>POIL+0eF6!_D^xwb^KzGp{^6uC}FJLNm6KPho@gUy&gdxBB zi;OnI$UFKl!qWEjJ>Dnyu|-5#-Q^L7!3boNR=&)UKkkj}c-!Q1dpVhObKF6yq#%1d zLwDManHYA;FhE>{=yu1D?>v7qtCfOh$M`%`PZn5X^*q7TQ=