From c9f762457cba567243a7095c2021384f12998ca6 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 25 Sep 2026 16:54:41 +0000 Subject: [PATCH 1/2] Fix terminal mouse clicks being misread on 26.3 Minecraft 26.3 uses SDL mouse button ids (left 1, middle 2, right 3) instead of GLFW's (left 0, right 1, middle 2). Tabs, sort and other buttons only reacted to button 0, so left clicks did nothing, and storage slot clicks treated left as right. Compare against the InputConstants constants, and convert to container click buttons before passing them to the tab click handlers, as vanilla does. The pick-item drag check now matches the key binding properly. Closes CyclopsMC/IntegratedDynamics#1750 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_016VFfUPDxbJ8RqPeQHsAbh7 --- .../ContainerScreenTerminalCraftingJobs.java | 3 +- .../ContainerScreenTerminalStorage.java | 37 ++++++++++++++----- ...enTerminalStorageCraftingOptionAmount.java | 2 +- .../TerminalButtonFilterCraftingClient.java | 3 +- ...ItemStackCraftingGridAutoRefillClient.java | 3 +- .../button/TerminalButtonScaleGuiClient.java | 3 +- .../button/TerminalButtonSortClient.java | 3 +- 7 files changed, 38 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalCraftingJobs.java b/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalCraftingJobs.java index a3d43b5686..e4b1273fcf 100644 --- a/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalCraftingJobs.java +++ b/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalCraftingJobs.java @@ -1,6 +1,7 @@ package org.cyclops.integratedterminals.client.gui.container; import com.google.common.collect.Lists; +import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; @@ -333,7 +334,7 @@ public boolean mouseClicked(MouseButtonEvent mouse, boolean isDoubleClick) { @Override public boolean mouseDragged(MouseButtonEvent mouse, double mouseXPrev, double mouseYPrev) { - return this.getFocused() != null && this.isDragging() && mouse.button() == 0 && this.getFocused().mouseDragged(mouse, mouseXPrev, mouseYPrev) ? true : super.mouseDragged(mouse, mouseXPrev, mouseYPrev); + return this.getFocused() != null && this.isDragging() && mouse.button() == InputConstants.MOUSE_BUTTON_LEFT && this.getFocused().mouseDragged(mouse, mouseXPrev, mouseYPrev) ? true : super.mouseDragged(mouse, mouseXPrev, mouseYPrev); } public void setFirstRow(int firstRow) { diff --git a/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorage.java b/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorage.java index a927d64c9a..202ebf6819 100644 --- a/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorage.java +++ b/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorage.java @@ -593,7 +593,7 @@ public boolean mouseClicked(MouseButtonEvent mouse, boolean isDoubleClick) { this.clicked = true; // Select a tab - if (mouse.button() == 0 + if (mouse.button() == InputConstants.MOUSE_BUTTON_LEFT && mouse.y() < topPos + TAB_UNSELECTED_HEIGHT && mouse.x() > leftPos + TAB_OFFSET_X && mouse.x() <= leftPos + TAB_OFFSET_X + (TAB_WIDTH * getMenu().getTabsClientCount() - 1)) { @@ -630,17 +630,17 @@ public boolean mouseClicked(MouseButtonEvent mouse, boolean isDoubleClick) { // Start dragging over container slots when a storage slot is selected if (tab.getActiveSlotId() >= 0 - && (mouse.button() == 0 || mouse.button() == 1 || this.getMinecraft().options.keyPickItem.getKey().getValue() == mouse.button() - 100)) { + && (mouse.button() == InputConstants.MOUSE_BUTTON_LEFT || mouse.button() == InputConstants.MOUSE_BUTTON_RIGHT || isPickItemButton(mouse))) { if (playerSlot != null && !this.terminalDragSplitting) { this.terminalDragSplitting = true; this.terminalDragSplittingButton = mouse.button(); this.terminalDragSplittingSlots.clear(); - if (mouse.button() == 0) { + if (mouse.button() == InputConstants.MOUSE_BUTTON_LEFT) { this.terminalDragMode = 0; - } else if (mouse.button() == 1) { + } else if (mouse.button() == InputConstants.MOUSE_BUTTON_RIGHT) { this.terminalDragMode = 1; - } else if (this.getMinecraft().options.keyPickItem.getKey().getValue() == mouse.button() - 100) { + } else if (isPickItemButton(mouse)) { this.terminalDragMode = 2; } return true; @@ -654,9 +654,9 @@ public boolean mouseClicked(MouseButtonEvent mouse, boolean isDoubleClick) { // Vanilla would send its own click for it, which the server answers without knowing about // the terminal's click yet, so it would undo what we predicted until that one arrives too. if (IModHelpers.get().getMinecraftClientHelpers().isShifted() && playerSlot != null && !playerSlot.getItem().isEmpty() - && getMenu().getCarried().isEmpty() && (mouse.button() == 0 || mouse.button() == 1)) { + && getMenu().getCarried().isEmpty() && (mouse.button() == InputConstants.MOUSE_BUTTON_LEFT || mouse.button() == InputConstants.MOUSE_BUTTON_RIGHT)) { this.clicked = false; // To avoid handling this click again on mouse release - if (tab.handleClick(getMenu(), getMenu().getSelectedChannel(), -1, mouse.button(), + if (tab.handleClick(getMenu(), getMenu().getSelectedChannel(), -1, getContainerClickButton(mouse), false, false, playerSlot.index, true)) { return true; } @@ -703,7 +703,7 @@ && getMenu().getCarried().isEmpty() && (mouse.button() == 0 || mouse.button() == if (slot >= 0 && tab.getActiveSlotId() < 0) { this.clicked = false; // To avoid handling this click again on mouse release Slot playerSlot = getSlotUnderMouse(); - if (tab.handleClick(getMenu(), getMenu().getSelectedChannel(), slot, mouse.button(), + if (tab.handleClick(getMenu(), getMenu().getSelectedChannel(), slot, getContainerClickButton(mouse), this.hasClickedOutside(mouse.x(), mouse.y(), this.leftPos, this.topPos), this.hasClickedInStorage(mouse.x(), mouse.y()), playerSlot != null ? playerSlot.index : -1, false)) { @@ -715,6 +715,23 @@ && getMenu().getCarried().isEmpty() && (mouse.button() == 0 || mouse.button() == return super.mouseClicked(mouse, isDoubleClick); } + /** + * Convert a mouse button to the vanilla container click button (0 left, 1 right, 2 middle). + * @param mouse The mouse event. + * @return The container click button. + */ + public static int getContainerClickButton(MouseButtonEvent mouse) { + return switch (mouse.button()) { + case InputConstants.MOUSE_BUTTON_LEFT -> 0; + case InputConstants.MOUSE_BUTTON_RIGHT -> 1; + default -> mouse.button(); + }; + } + + protected boolean isPickItemButton(MouseButtonEvent mouse) { + return this.getMinecraft().options.keyPickItem.isActiveAndMatches(InputConstants.Type.MOUSE.getOrCreate(mouse.button())); + } + @Nullable public Slot getSlotUnderMouse() { Slot slot = this.hoveredSlot; @@ -742,7 +759,7 @@ public boolean mouseDragged(MouseButtonEvent mouse, double mouseXPrev, double mo }).orElse(false)) { return true; } - return this.getFocused() != null && this.isDragging() && mouse.button() == 0 && this.getFocused().mouseDragged(mouse, mouseXPrev, mouseYPrev) ? true : super.mouseDragged(mouse, mouseXPrev, mouseYPrev); + return this.getFocused() != null && this.isDragging() && mouse.button() == InputConstants.MOUSE_BUTTON_LEFT && this.getFocused().mouseDragged(mouse, mouseXPrev, mouseYPrev) ? true : super.mouseDragged(mouse, mouseXPrev, mouseYPrev); } private void updateTerminalDragSplitting(ITerminalStorageTabClient tab) { @@ -809,7 +826,7 @@ public boolean mouseReleased(MouseButtonEvent mouse) { // Handle clicks on storage slots boolean hasClickedOutside = this.hasClickedOutside(mouse.x(), mouse.y(), this.leftPos, this.topPos); boolean hasClickedInStorage = this.hasClickedInStorage(mouse.x(), mouse.y()); - if (tabOptional.get().handleClick(getMenu(), getMenu().getSelectedChannel(), slot, mouse.button(), + if (tabOptional.get().handleClick(getMenu(), getMenu().getSelectedChannel(), slot, getContainerClickButton(mouse), hasClickedOutside, hasClickedInStorage, playerSlot != null ? playerSlot.index : -1, false)) { return true; } diff --git a/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorageCraftingOptionAmount.java b/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorageCraftingOptionAmount.java index b151bb197b..21dfdc689c 100644 --- a/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorageCraftingOptionAmount.java +++ b/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorageCraftingOptionAmount.java @@ -204,7 +204,7 @@ protected void extractLabels(GuiGraphicsExtractor guiGraphics, int mouseX, int m @Override public boolean mouseDragged(MouseButtonEvent mouse, double mouseXPrev, double mouseYPrev) { - return this.getFocused() != null && this.isDragging() && mouse.button() == 0 && this.getFocused().mouseDragged(mouse, mouseXPrev, mouseYPrev) ? true : super.mouseDragged(mouse, mouseXPrev, mouseYPrev); + return this.getFocused() != null && this.isDragging() && mouse.button() == InputConstants.MOUSE_BUTTON_LEFT && this.getFocused().mouseDragged(mouse, mouseXPrev, mouseYPrev) ? true : super.mouseDragged(mouse, mouseXPrev, mouseYPrev); } public void setFirstRow(int firstRow) { diff --git a/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonFilterCraftingClient.java b/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonFilterCraftingClient.java index 18f610b538..e7809df6a6 100644 --- a/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonFilterCraftingClient.java +++ b/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonFilterCraftingClient.java @@ -1,5 +1,6 @@ package org.cyclops.integratedterminals.core.terminalstorage.button; +import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; @@ -34,7 +35,7 @@ public ButtonImage createButton(int x, int y) { public void onClick(TerminalStorageTabIngredientComponentClient clientTab, TerminalStorageTabIngredientComponentCommon commomTab, ButtonImage guiButton, int channel, MouseButtonEvent mouse, boolean isDoubleClick) { - this.button.active = mouse.button() == 0 ? this.button.active.next() : TerminalButtonFilterCrafting.FilterType.getDefault(); + this.button.active = mouse.button() == InputConstants.MOUSE_BUTTON_LEFT ? this.button.active.next() : TerminalButtonFilterCrafting.FilterType.getDefault(); CompoundTag data = new CompoundTag(); this.button.active.write(data); diff --git a/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonItemStackCraftingGridAutoRefillClient.java b/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonItemStackCraftingGridAutoRefillClient.java index f03f540cb7..1bbc70b9df 100644 --- a/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonItemStackCraftingGridAutoRefillClient.java +++ b/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonItemStackCraftingGridAutoRefillClient.java @@ -1,5 +1,6 @@ package org.cyclops.integratedterminals.core.terminalstorage.button; +import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; @@ -35,7 +36,7 @@ public ButtonImage createButton(int x, int y) { public void onClick(TerminalStorageTabIngredientComponentClient clientTab, TerminalStorageTabIngredientComponentItemStackCraftingCommon commomTab, ButtonImage guiButton, int channel, MouseButtonEvent mouse, boolean isDoubleClick) { - this.button.active = mouse.button() == 0 ? TerminalButtonItemStackCraftingGridAutoRefill.AutoRefillType.values()[(this.button.active.ordinal() + 1) % TerminalButtonItemStackCraftingGridAutoRefill.AutoRefillType.values().length] : TerminalButtonItemStackCraftingGridAutoRefill.AutoRefillType.DISABLED; + this.button.active = mouse.button() == InputConstants.MOUSE_BUTTON_LEFT ? TerminalButtonItemStackCraftingGridAutoRefill.AutoRefillType.values()[(this.button.active.ordinal() + 1) % TerminalButtonItemStackCraftingGridAutoRefill.AutoRefillType.values().length] : TerminalButtonItemStackCraftingGridAutoRefill.AutoRefillType.DISABLED; CompoundTag data = new CompoundTag(); data.putInt("active", this.button.active.ordinal()); diff --git a/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonScaleGuiClient.java b/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonScaleGuiClient.java index 3d1eca1e62..6f0418ba89 100644 --- a/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonScaleGuiClient.java +++ b/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonScaleGuiClient.java @@ -1,5 +1,6 @@ package org.cyclops.integratedterminals.core.terminalstorage.button; +import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; @@ -35,7 +36,7 @@ public ButtonImage createButton(int x, int y) { @Override public void onClick(TerminalStorageTabIngredientComponentClient clientTab, @Nullable TerminalStorageTabIngredientComponentCommon commonTab, ButtonImage guiButton, int channel, MouseButtonEvent mouse, boolean isDoubleClick) { - this.button.scale = mouse.button() == 0 ? TerminalButtonScaleGui.GuiScale.values()[(this.button.scale.ordinal() + 1) % TerminalButtonScaleGui.GuiScale.values().length] : TerminalButtonScaleGui.GuiScale.SCALE_XY; + this.button.scale = mouse.button() == InputConstants.MOUSE_BUTTON_LEFT ? TerminalButtonScaleGui.GuiScale.values()[(this.button.scale.ordinal() + 1) % TerminalButtonScaleGui.GuiScale.values().length] : TerminalButtonScaleGui.GuiScale.SCALE_XY; CompoundTag data = new CompoundTag(); data.putInt("scale", this.button.scale.ordinal()); diff --git a/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonSortClient.java b/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonSortClient.java index 542fa19067..86a533eaa1 100644 --- a/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonSortClient.java +++ b/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/button/TerminalButtonSortClient.java @@ -1,5 +1,6 @@ package org.cyclops.integratedterminals.core.terminalstorage.button; +import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; @@ -28,7 +29,7 @@ public ButtonSort createButton(int x, int y) { @Override public void onClick(TerminalStorageTabIngredientComponentClient clientTab, ITerminalStorageTabCommon commonTab, ButtonSort guiButton, int channel, MouseButtonEvent mouse, boolean isDoubleClick) { - if (mouse.button() == 0) { + if (mouse.button() == InputConstants.MOUSE_BUTTON_LEFT) { if (this.button.active) { if (this.button.descending) { this.button.descending = false; From 3cf3e00fc194cd462c0e3ae81f2093b990455f7c Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 25 Sep 2026 18:01:35 +0000 Subject: [PATCH 2/2] Pass InputConstants mouse buttons to terminal tab clicks Instead of converting to vanilla container click buttons, ITerminalStorageTabClient#handleClick now receives InputConstants.MOUSE_BUTTON_* values directly. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_016VFfUPDxbJ8RqPeQHsAbh7 --- .../ITerminalStorageTabClient.java | 2 +- .../ContainerScreenTerminalStorage.java | 19 +++----------- ...alStorageTabIngredientComponentClient.java | 25 ++++++++++--------- .../ContainerTerminalStorageBase.java | 3 ++- 4 files changed, 19 insertions(+), 30 deletions(-) diff --git a/src/main/java/org/cyclops/integratedterminals/api/terminalstorage/ITerminalStorageTabClient.java b/src/main/java/org/cyclops/integratedterminals/api/terminalstorage/ITerminalStorageTabClient.java index 9a8d1457a6..cc2824a2c6 100644 --- a/src/main/java/org/cyclops/integratedterminals/api/terminalstorage/ITerminalStorageTabClient.java +++ b/src/main/java/org/cyclops/integratedterminals/api/terminalstorage/ITerminalStorageTabClient.java @@ -121,7 +121,7 @@ public default Identifier getTabSettingsName() { * @param container The active container. * @param channel The active channel. * @param hoveringStorageSlot The storage slot id that is being hovered. -1 if none. - * @param mouseButton The mouse button. + * @param mouseButton The mouse button, as an InputConstants.MOUSE_BUTTON_* value. * @param hasClickedOutside If the player has clicked outside the gui. * @param hasClickedInStorage If the player has clicked inside the storage space. * This can be true even if the storage slot is -1. diff --git a/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorage.java b/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorage.java index 202ebf6819..ce64d5d529 100644 --- a/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorage.java +++ b/src/main/java/org/cyclops/integratedterminals/client/gui/container/ContainerScreenTerminalStorage.java @@ -656,7 +656,7 @@ public boolean mouseClicked(MouseButtonEvent mouse, boolean isDoubleClick) { if (IModHelpers.get().getMinecraftClientHelpers().isShifted() && playerSlot != null && !playerSlot.getItem().isEmpty() && getMenu().getCarried().isEmpty() && (mouse.button() == InputConstants.MOUSE_BUTTON_LEFT || mouse.button() == InputConstants.MOUSE_BUTTON_RIGHT)) { this.clicked = false; // To avoid handling this click again on mouse release - if (tab.handleClick(getMenu(), getMenu().getSelectedChannel(), -1, getContainerClickButton(mouse), + if (tab.handleClick(getMenu(), getMenu().getSelectedChannel(), -1, mouse.button(), false, false, playerSlot.index, true)) { return true; } @@ -703,7 +703,7 @@ && getMenu().getCarried().isEmpty() && (mouse.button() == InputConstants.MOUSE_B if (slot >= 0 && tab.getActiveSlotId() < 0) { this.clicked = false; // To avoid handling this click again on mouse release Slot playerSlot = getSlotUnderMouse(); - if (tab.handleClick(getMenu(), getMenu().getSelectedChannel(), slot, getContainerClickButton(mouse), + if (tab.handleClick(getMenu(), getMenu().getSelectedChannel(), slot, mouse.button(), this.hasClickedOutside(mouse.x(), mouse.y(), this.leftPos, this.topPos), this.hasClickedInStorage(mouse.x(), mouse.y()), playerSlot != null ? playerSlot.index : -1, false)) { @@ -715,19 +715,6 @@ && getMenu().getCarried().isEmpty() && (mouse.button() == InputConstants.MOUSE_B return super.mouseClicked(mouse, isDoubleClick); } - /** - * Convert a mouse button to the vanilla container click button (0 left, 1 right, 2 middle). - * @param mouse The mouse event. - * @return The container click button. - */ - public static int getContainerClickButton(MouseButtonEvent mouse) { - return switch (mouse.button()) { - case InputConstants.MOUSE_BUTTON_LEFT -> 0; - case InputConstants.MOUSE_BUTTON_RIGHT -> 1; - default -> mouse.button(); - }; - } - protected boolean isPickItemButton(MouseButtonEvent mouse) { return this.getMinecraft().options.keyPickItem.isActiveAndMatches(InputConstants.Type.MOUSE.getOrCreate(mouse.button())); } @@ -826,7 +813,7 @@ public boolean mouseReleased(MouseButtonEvent mouse) { // Handle clicks on storage slots boolean hasClickedOutside = this.hasClickedOutside(mouse.x(), mouse.y(), this.leftPos, this.topPos); boolean hasClickedInStorage = this.hasClickedInStorage(mouse.x(), mouse.y()); - if (tabOptional.get().handleClick(getMenu(), getMenu().getSelectedChannel(), slot, getContainerClickButton(mouse), + if (tabOptional.get().handleClick(getMenu(), getMenu().getSelectedChannel(), slot, mouse.button(), hasClickedOutside, hasClickedInStorage, playerSlot != null ? playerSlot.index : -1, false)) { return true; } diff --git a/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/TerminalStorageTabIngredientComponentClient.java b/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/TerminalStorageTabIngredientComponentClient.java index 69307d6f5c..51a0ce2836 100644 --- a/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/TerminalStorageTabIngredientComponentClient.java +++ b/src/main/java/org/cyclops/integratedterminals/core/terminalstorage/TerminalStorageTabIngredientComponentClient.java @@ -3,6 +3,7 @@ import com.google.common.base.Predicates; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import com.mojang.blaze3d.platform.InputConstants; import it.unimi.dsi.fastutil.ints.*; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; @@ -830,7 +831,7 @@ public boolean handleClick(AbstractContainerMenu container, int channel, int hov Player player = Minecraft.getInstance().player; boolean initiateCraftingOption = false; - if (mouseButton == 0 || mouseButton == 1 || mouseButton == 2) { + if (mouseButton == InputConstants.MOUSE_BUTTON_LEFT || mouseButton == InputConstants.MOUSE_BUTTON_RIGHT || mouseButton == InputConstants.MOUSE_BUTTON_MIDDLE) { TerminalClickType clickType = null; long moveQuantity = this.activeSlotQuantity; long movePlayerQuantity = 0; @@ -842,29 +843,29 @@ public boolean handleClick(AbstractContainerMenu container, int channel, int hov } else { if (shift) { // Quick move single or max quantity from storage to player - clickType = mouseButton == 2 ? TerminalClickType.STORAGE_QUICK_MOVE_INCREMENTAL : TerminalClickType.STORAGE_QUICK_MOVE; + clickType = mouseButton == InputConstants.MOUSE_BUTTON_MIDDLE ? TerminalClickType.STORAGE_QUICK_MOVE_INCREMENTAL : TerminalClickType.STORAGE_QUICK_MOVE; } else { // Pick up this.activeSlotId = hoveringStorageSlot; this.activeSlotQuantity = Math.min((int) ingredientComponent.getMatcher() .getQuantity(hoveringStorageInstance.orElse(matcher.getEmptyInstance())), viewHandler.getInitialInstanceMovementQuantity()); - if (mouseButton == 1) { + if (mouseButton == InputConstants.MOUSE_BUTTON_RIGHT) { this.activeSlotQuantity = (int) Math.ceil((double) this.activeSlotQuantity / 2); - } else if (mouseButton == 2) { + } else if (mouseButton == InputConstants.MOUSE_BUTTON_MIDDLE) { this.activeSlotQuantity = 1; } } } } else if (hoveredContainerSlot >= 0 && !container.getSlot(hoveredContainerSlot).getItem().isEmpty() && isQuickMove) { // Quick move max quantity from player to storage - clickType = mouseButton == 2 ? TerminalClickType.PLAYER_QUICK_MOVE_INCREMENTAL : TerminalClickType.PLAYER_QUICK_MOVE; + clickType = mouseButton == InputConstants.MOUSE_BUTTON_MIDDLE ? TerminalClickType.PLAYER_QUICK_MOVE_INCREMENTAL : TerminalClickType.PLAYER_QUICK_MOVE; } else if (hasClickedInStorage && !container.getCarried().isEmpty()) { // Move into storage clickType = TerminalClickType.PLAYER_PLACE_STORAGE; - if (mouseButton == 0) { + if (mouseButton == InputConstants.MOUSE_BUTTON_LEFT) { movePlayerQuantity = viewHandler.getActivePlayerStackQuantity(player.getInventory(), container); - } else if (mouseButton == 1) { + } else if (mouseButton == InputConstants.MOUSE_BUTTON_RIGHT) { movePlayerQuantity = viewHandler.getIncrementalInstanceMovementQuantity(); } else { movePlayerQuantity = (int) Math.ceil((double) viewHandler.getActivePlayerStackQuantity(player.getInventory(), container) / 2); @@ -880,10 +881,10 @@ public boolean handleClick(AbstractContainerMenu container, int channel, int hov } else if (hoveredContainerSlot >= 0) { // Insert into player inventory clickType = TerminalClickType.STORAGE_PLACE_PLAYER; - if (mouseButton == 0) { + if (mouseButton == InputConstants.MOUSE_BUTTON_LEFT) { reset = true; moveQuantity = this.activeSlotQuantity; - } else if (mouseButton == 1) { + } else if (mouseButton == InputConstants.MOUSE_BUTTON_RIGHT) { transferFullSelection = false; moveQuantity = viewHandler.getIncrementalInstanceMovementQuantity(); } else { @@ -892,12 +893,12 @@ public boolean handleClick(AbstractContainerMenu container, int channel, int hov } this.activeSlotQuantity -= moveQuantity; } else if (hasClickedInStorage) { - if ((mouseButton == 0 || mouseButton == 2) && this.activeSlotId == hoveringStorageSlot) { + if ((mouseButton == InputConstants.MOUSE_BUTTON_LEFT || mouseButton == InputConstants.MOUSE_BUTTON_MIDDLE) && this.activeSlotId == hoveringStorageSlot) { // Increase the active quantity this.activeSlotQuantity = (int) Math.min(ingredientComponent.getMatcher().getQuantity(hoveringStorageInstance.get()), this.activeSlotQuantity + (shift ? viewHandler.getInitialInstanceMovementQuantity() : viewHandler.getIncrementalInstanceMovementQuantity())); - } else if (mouseButton == 1) { + } else if (mouseButton == InputConstants.MOUSE_BUTTON_RIGHT) { // Decrease active quantity this.activeSlotQuantity = Math.max(0, this.activeSlotQuantity - (shift ? viewHandler.getInitialInstanceMovementQuantity() : viewHandler.getIncrementalInstanceMovementQuantity())); @@ -1268,7 +1269,7 @@ public int dragIntoSlot(AbstractContainerMenu container, int channel, Slot slot, int activeSlotQuantityOld = this.activeSlotQuantity; this.activeSlotQuantity = quantity; - this.handleClick(container, channel, getActiveSlotId(), 0, false, false, slot.index, false); + this.handleClick(container, channel, getActiveSlotId(), InputConstants.MOUSE_BUTTON_LEFT, false, false, slot.index, false); this.activeSlotId = oldActiveSlotId; this.activeSlotQuantity = activeSlotQuantityOld; diff --git a/src/main/java/org/cyclops/integratedterminals/inventory/container/ContainerTerminalStorageBase.java b/src/main/java/org/cyclops/integratedterminals/inventory/container/ContainerTerminalStorageBase.java index ee4534794e..7bd01f1545 100644 --- a/src/main/java/org/cyclops/integratedterminals/inventory/container/ContainerTerminalStorageBase.java +++ b/src/main/java/org/cyclops/integratedterminals/inventory/container/ContainerTerminalStorageBase.java @@ -3,6 +3,7 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.core.HolderLookup; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.Identifier; @@ -308,7 +309,7 @@ public ItemStack quickMoveStack(Player player, int slotID) { if(player.level().isClientSide()) { Optional> tabOptional = this.selectedClientTabProvider.getSelectedClientTab(); if(tabOptional.isPresent() && !tabOptional.get().isQuickMovePrevented(slotID)) { - tabOptional.get().handleClick(this, this.getSelectedChannel(), -1, 0, + tabOptional.get().handleClick(this, this.getSelectedChannel(), -1, InputConstants.MOUSE_BUTTON_LEFT, false, false, slotID, true); } }