diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index e908f1865..156366df9 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -55,19 +55,16 @@ public class GuiGrid extends GuiBase { addSideButton(new SideButtonRedstoneMode(grid.getRedstoneModeSetting())); } - addSideButton(new SideButtonGridSortingDirection(grid)); - addSideButton(new SideButtonGridSortingType(grid)); - - if (RefinedStorage.hasJei()) { - addSideButton(new SideButtonGridSearchBoxMode(grid)); - } - searchField = new GuiTextField(0, fontRendererObj, x + 80 + 1, y + 6 + 1, 88 - 6, fontRendererObj.FONT_HEIGHT); searchField.setEnableBackgroundDrawing(false); searchField.setVisible(true); searchField.setTextColor(16777215); - searchField.setCanLoseFocus(false); - searchField.setFocused(true); + searchField.setCanLoseFocus(true); + searchField.setFocused(grid.getSearchBoxMode() == TileGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED || grid.getSearchBoxMode() == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED); + + addSideButton(new SideButtonGridSortingDirection(grid)); + addSideButton(new SideButtonGridSortingType(grid)); + addSideButton(new SideButtonGridSearchBoxMode(grid)); } public IGrid getGrid() { @@ -296,14 +293,16 @@ public class GuiGrid extends GuiBase { public void mouseClicked(int mouseX, int mouseY, int clickedButton) throws IOException { super.mouseClicked(mouseX, mouseY, clickedButton); + searchField.mouseClicked(mouseX, mouseY, clickedButton); + boolean clickedClear = clickedButton == 0 && isHoveringOverClear(mouseX - guiLeft, mouseY - guiTop); - boolean playClickSound = clickedClear; + boolean clickedCreatePattern = clickedButton == 0 && isHoveringOverCreatePattern(mouseX - guiLeft, mouseY - guiTop); + + boolean playClickSound = clickedClear || clickedCreatePattern; if (grid.isConnected()) { - if (isHoveringOverCreatePattern(mouseX - guiLeft, mouseY - guiTop)) { + if (clickedCreatePattern) { RefinedStorage.NETWORK.sendToServer(new MessageGridPatternCreate((TileGrid) grid)); - - playClickSound = true; } else if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null && (clickedButton == 0 || clickedButton == 1)) { grid.onItemPush(-1, clickedButton == 1); } else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) { @@ -326,7 +325,7 @@ public class GuiGrid extends GuiBase { grid.onItemPull(hoveringItemId, flags); } - } else if (clickedClear) { + } else if (clickedClear && grid.isConnected()) { RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingClear((TileGrid) grid)); } else { for (Slot slot : container.getPlayerInventorySlots()) { @@ -357,7 +356,7 @@ public class GuiGrid extends GuiBase { @Override protected void keyTyped(char character, int keyCode) throws IOException { if (!checkHotbarKeys(keyCode) && searchField.textboxKeyTyped(character, keyCode)) { - if (RefinedStorage.hasJei() && grid.getSearchBoxMode() == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED) { + if (RefinedStorage.hasJei() && (grid.getSearchBoxMode() == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED || grid.getSearchBoxMode() == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED)) { PluginRefinedStorage.INSTANCE.getRuntime().getItemListOverlay().setFilterText(searchField.getText()); } } else { diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java index b617a2f90..d134589d6 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java @@ -1,6 +1,8 @@ package refinedstorage.gui.sidebutton; +import net.minecraft.client.gui.GuiTextField; import net.minecraft.util.text.TextFormatting; +import refinedstorage.RefinedStorage; import refinedstorage.gui.GuiBase; import refinedstorage.tile.grid.IGrid; import refinedstorage.tile.grid.TileGrid; @@ -28,8 +30,16 @@ public class SideButtonGridSearchBoxMode extends SideButton { int mode = grid.getSearchBoxMode(); if (mode == TileGrid.SEARCH_BOX_MODE_NORMAL) { - mode = TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED; + mode = TileGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED; + } else if (mode == TileGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED) { + if (RefinedStorage.hasJei()) { + mode = TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED; + } else { + mode = TileGrid.SEARCH_BOX_MODE_NORMAL; + } } else if (mode == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED) { + mode = TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED; + } else if (mode == TileGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED) { mode = TileGrid.SEARCH_BOX_MODE_NORMAL; } diff --git a/src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java b/src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java index 65d348a27..e0aeac154 100755 --- a/src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java +++ b/src/main/java/refinedstorage/network/MessageGridSettingsUpdate.java @@ -60,7 +60,10 @@ public class MessageGridSettingsUpdate extends MessageHandlerPlayerToServer