From 3358691fef6d99bb344f6aee439fbf6abbfde0a7 Mon Sep 17 00:00:00 2001 From: Raven Szewczyk Date: Sat, 2 Jul 2022 09:47:41 +0100 Subject: [PATCH] Conduit gui fixes (#76) * Fix swapped insert/extract filter locations in the guis * Fix filters sometimes causing dropping items and left clicking to clear ender fluid filters --- .../conduit/gui/BaseSettingsPanel.java | 4 +-- .../gui/ExternalConnectionContainer.java | 4 +-- .../conduit/gui/GuiExternalConnection.java | 34 ++++++++++++++----- .../enderio/conduit/gui/LiquidSettings.java | 6 +--- .../conduit/gui/item/BasicItemFilterGui.java | 2 +- .../conduit/gui/item/BigItemFilterGui.java | 6 ++-- .../gui/item/ExistingItemFilterGui.java | 4 +-- .../conduit/gui/item/ModItemFilterGui.java | 2 +- .../conduit/gui/item/PowerItemFilterGui.java | 4 +-- 9 files changed, 39 insertions(+), 27 deletions(-) diff --git a/src/main/java/crazypants/enderio/conduit/gui/BaseSettingsPanel.java b/src/main/java/crazypants/enderio/conduit/gui/BaseSettingsPanel.java index 077ae2aa..c25b97d5 100644 --- a/src/main/java/crazypants/enderio/conduit/gui/BaseSettingsPanel.java +++ b/src/main/java/crazypants/enderio/conduit/gui/BaseSettingsPanel.java @@ -117,14 +117,14 @@ public class BaseSettingsPanel implements ITabPanel { filterExtractUpgradeTooltip = new GuiToolTip(new Rectangle(rightColumn, 70, 18, 18), EnderIO.lang.localize("gui.conduit.item.filterupgrade")) { @Override public boolean shouldDraw() { - return !gui.getContainer().hasFilterUpgrades(false) && super.shouldDraw(); + return !gui.getContainer().hasFilterUpgrades(true) && super.shouldDraw(); } }; filterInsertUpgradeTooltip = new GuiToolTip(new Rectangle(leftColumn, 70, 18, 18), EnderIO.lang.localize("gui.conduit.item.filterupgrade")) { @Override public boolean shouldDraw() { - return !gui.getContainer().hasFilterUpgrades(true) && super.shouldDraw(); + return !gui.getContainer().hasFilterUpgrades(false) && super.shouldDraw(); } }; diff --git a/src/main/java/crazypants/enderio/conduit/gui/ExternalConnectionContainer.java b/src/main/java/crazypants/enderio/conduit/gui/ExternalConnectionContainer.java index 8c2f4461..fb11dff2 100644 --- a/src/main/java/crazypants/enderio/conduit/gui/ExternalConnectionContainer.java +++ b/src/main/java/crazypants/enderio/conduit/gui/ExternalConnectionContainer.java @@ -58,13 +58,13 @@ public class ExternalConnectionContainer extends ContainerEnder= guiLeft + xSize || y >= guiTop + ySize; boolean hasItem = playerInv.getItemStack() != null; if (outOfBounds && hasItem && !getGhostSlots().isEmpty()) { GhostSlot slot = getGhostSlot(x, y); if (slot != null) { - ghostSlotClicked(slot, x, y, par3); - return; + ghostSlotClicked(slot, x, y, button); + return true; } } - super.mouseClicked(x, y, par3); + return false; + } + + @Override + protected void mouseMovedOrUp(int x, int y, int button) { + if (handleOobClick(x, y, button)) { + return; + } + super.mouseMovedOrUp(x, y, button); + } + + @Override + protected void mouseClicked(int x, int y, int button) { + // handle out-of-bounds ghost slots + if (handleOobClick(x, y, button)) { + return; + } int tabLeftX = xSize; int tabRightX = tabLeftX + 22; @@ -171,8 +189,8 @@ public class GuiExternalConnection extends GuiContainerBaseEIO { return; } } - tabs.get(activeTab).mouseClicked(x, y, par3); - + tabs.get(activeTab).mouseClicked(x, y, button); + super.mouseClicked(x + guiLeft, y + guiTop, button); } public void setSize(int x, int y) { diff --git a/src/main/java/crazypants/enderio/conduit/gui/LiquidSettings.java b/src/main/java/crazypants/enderio/conduit/gui/LiquidSettings.java index b219d2dd..4a96d13b 100644 --- a/src/main/java/crazypants/enderio/conduit/gui/LiquidSettings.java +++ b/src/main/java/crazypants/enderio/conduit/gui/LiquidSettings.java @@ -213,15 +213,11 @@ public class LiquidSettings extends BaseSettingsPanel { } @Override - public void mouseClicked(int x, int y, int par3) { - + public void mouseClicked(int x, int y, int button) { if(!isFilterVisible()) { return; } ItemStack st = Minecraft.getMinecraft().thePlayer.inventory.getItemStack(); - if (st == null && par3 == 0) { - return; - } setFilterFromItem(x, y, st); } diff --git a/src/main/java/crazypants/enderio/conduit/gui/item/BasicItemFilterGui.java b/src/main/java/crazypants/enderio/conduit/gui/item/BasicItemFilterGui.java index a8c75e34..ade44382 100644 --- a/src/main/java/crazypants/enderio/conduit/gui/item/BasicItemFilterGui.java +++ b/src/main/java/crazypants/enderio/conduit/gui/item/BasicItemFilterGui.java @@ -43,7 +43,7 @@ public class BasicItemFilterGui implements IItemFilterGui { private boolean isInput; public BasicItemFilterGui(GuiContainerBaseEIO gui, IItemFilterContainer filterContainer, boolean isStickyModeAvailable, boolean isInput) { - this(gui, filterContainer, isStickyModeAvailable, isInput, isInput ? 6 : 104, 96, isInput ? 0 : 256); + this(gui, filterContainer, isStickyModeAvailable, isInput, isInput ? 104 : 6, 96, isInput ? 0 : 256); } public BasicItemFilterGui(GuiContainerBaseEIO gui, IItemFilterContainer filterContainer, boolean isStickyModeAvailable, diff --git a/src/main/java/crazypants/enderio/conduit/gui/item/BigItemFilterGui.java b/src/main/java/crazypants/enderio/conduit/gui/item/BigItemFilterGui.java index 8fc11a2e..99a508c3 100644 --- a/src/main/java/crazypants/enderio/conduit/gui/item/BigItemFilterGui.java +++ b/src/main/java/crazypants/enderio/conduit/gui/item/BigItemFilterGui.java @@ -45,7 +45,7 @@ public class BigItemFilterGui implements IItemFilterGui { private int yOffset; public BigItemFilterGui(GuiContainerBaseEIO gui, IItemFilterContainer filterContainer, boolean isStickyModeAvailable, boolean isInput) { - this(gui, filterContainer, isStickyModeAvailable, isInput, isInput ? 6 : 104, 96, isInput ? 0 : 256); + this(gui, filterContainer, isStickyModeAvailable, isInput, isInput ? 104 : 6, 96, isInput ? 0 : 256); } public BigItemFilterGui(GuiContainerBaseEIO gui, IItemFilterContainer filterContainer, boolean isStickyModeAvailable, boolean isInput, @@ -96,10 +96,8 @@ public class BigItemFilterGui implements IItemFilterGui { stickyB.setPaintSelectedBorder(false); this.yOffset += 8; - if (isInput) { + if (!isInput) { this.xOffset -= 50; - } else { - // } } diff --git a/src/main/java/crazypants/enderio/conduit/gui/item/ExistingItemFilterGui.java b/src/main/java/crazypants/enderio/conduit/gui/item/ExistingItemFilterGui.java index 93c7e324..42605969 100644 --- a/src/main/java/crazypants/enderio/conduit/gui/item/ExistingItemFilterGui.java +++ b/src/main/java/crazypants/enderio/conduit/gui/item/ExistingItemFilterGui.java @@ -72,7 +72,7 @@ public class ExistingItemFilterGui implements IItemFilterGui { filter = (ExistingItemFilter) itemConduit.getOutputFilter(gui.getDir()); } - int butLeft = isInput ? 6 : 104; + int butLeft = isInput ? 104 : 6; int x = butLeft; int y = 96; @@ -147,7 +147,7 @@ public class ExistingItemFilterGui implements IItemFilterGui { whiteListB.setToolTip(EnderIO.lang.localize("gui.conduit.item.whitelist")); } - int butLeft = gui.getGuiLeft() + (isInput ? 5 : 104); + int butLeft = gui.getGuiLeft() + (isInput ? 104 : 5); int x = butLeft; int y = gui.getGuiTop() + 96 + 20; diff --git a/src/main/java/crazypants/enderio/conduit/gui/item/ModItemFilterGui.java b/src/main/java/crazypants/enderio/conduit/gui/item/ModItemFilterGui.java index 89e2ee67..cadce4f6 100644 --- a/src/main/java/crazypants/enderio/conduit/gui/item/ModItemFilterGui.java +++ b/src/main/java/crazypants/enderio/conduit/gui/item/ModItemFilterGui.java @@ -48,7 +48,7 @@ public class ModItemFilterGui implements IItemFilterGui { this.itemConduit = itemConduit; this.isInput = isInput; - int butLeft = isInput ? 5 : 106; + int butLeft = isInput ? 106 : 5; int x = butLeft; int y = 96; diff --git a/src/main/java/crazypants/enderio/conduit/gui/item/PowerItemFilterGui.java b/src/main/java/crazypants/enderio/conduit/gui/item/PowerItemFilterGui.java index 5535f172..5bb248f6 100644 --- a/src/main/java/crazypants/enderio/conduit/gui/item/PowerItemFilterGui.java +++ b/src/main/java/crazypants/enderio/conduit/gui/item/PowerItemFilterGui.java @@ -43,7 +43,7 @@ public class PowerItemFilterGui implements IItemFilterGui { filter = (PowerItemFilter) itemConduit.getOutputFilter(gui.getDir()); } - int butLeft = isInput ? 5 : 106; + int butLeft = isInput ? 106 : 5; int x = butLeft; int y = 96 + 24; @@ -82,7 +82,7 @@ public class PowerItemFilterGui implements IItemFilterGui { stickyB.setSelected(filter.isSticky()); } - int x0 = gui.getGuiLeft() + (isInput ? 5 : 106); + int x0 = gui.getGuiLeft() + (isInput ? 106 : 5); int y0 = gui.getGuiTop() + 96; int x1 = x0 + 45;