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 f00b3b24e..1e35e4c05 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/gui/crafting_grid.png and b/src/main/resources/assets/refinedstorage/textures/gui/crafting_grid.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/gui/grid.png b/src/main/resources/assets/refinedstorage/textures/gui/grid.png index 0644972f7..647615420 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/gui/grid.png and b/src/main/resources/assets/refinedstorage/textures/gui/grid.png differ diff --git a/src/main/resources/assets/refinedstorage/textures/gui/pattern_grid.png b/src/main/resources/assets/refinedstorage/textures/gui/pattern_grid.png index d54e17dfd..7be2fbde6 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/gui/pattern_grid.png and b/src/main/resources/assets/refinedstorage/textures/gui/pattern_grid.png differ