From 697217c5cd03f56b06fdfbc7a5e318ad8f40116f Mon Sep 17 00:00:00 2001 From: SKProCH <29896317+SKProCH@users.noreply.github.com> Date: Mon, 25 Aug 2025 19:35:20 +0300 Subject: [PATCH] Middle click craft ordering inserts a proper count (#329) Co-authored-by: Kogepan229 --- dependencies.gradle | 2 +- .../github/client/gui/GuiCraftingStatus.java | 2 +- .../github/client/gui/GuiFCPriority.java | 1 + .../github/client/gui/GuiFluidCraftAmount.java | 4 +--- .../github/client/gui/base/FCGuiAmount.java | 17 ++++++----------- .../github/network/CPacketInventoryAction.java | 7 +++++-- 6 files changed, 15 insertions(+), 18 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 05fde4c1..7389368d 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -35,7 +35,7 @@ */ dependencies { api('com.github.GTNewHorizons:NotEnoughItems:2.7.72-GTNH:dev') - api('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-671-GTNH:dev') + api('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-676-GTNH:dev') api('curse.maven:cofh-core-69162:2388751') api('com.github.GTNewHorizons:waila:1.8.12:dev') api("com.github.GTNewHorizons:GTNHLib:0.6.38:dev") diff --git a/src/main/java/com/glodblock/github/client/gui/GuiCraftingStatus.java b/src/main/java/com/glodblock/github/client/gui/GuiCraftingStatus.java index 3ccafd29..04d2d577 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiCraftingStatus.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiCraftingStatus.java @@ -92,7 +92,7 @@ public class GuiCraftingStatus extends appeng.client.gui.implementations.GuiCraf new CPacketInventoryAction( InventoryAction.AUTO_CRAFT, Ae2ReflectClient.getInventorySlots(this).size(), - 0, + hoveredAEStack.getStackSize(), hoveredAEStack)); return; } diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java index 50ccd90d..a6a260dc 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCPriority.java @@ -55,6 +55,7 @@ public class GuiFCPriority extends FCGuiAmount { protected void addQty(final int i) { try { this.amountBox.setText(Long.toString(getAmount() + i)); + this.amountBox.setCursorPositionEnd(); } catch (final NumberFormatException ignore) {} try { NetworkHandler.instance diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java index b83cd84e..4203c8c2 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftAmount.java @@ -45,9 +45,7 @@ public class GuiFluidCraftAmount extends FCGuiAmount { this.guiTop + 53, Settings.CRAFTING_MODE, CraftingMode.STANDARD)); - - this.amountBox.setText("1"); - this.amountBox.setSelectionPos(0); + ((ContainerCraftAmount) this.inventorySlots).setAmountField(this.amountBox); } @Override diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java b/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java index 7ae80c97..1ac4b997 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCGuiAmount.java @@ -1,7 +1,6 @@ package com.glodblock.github.client.gui.base; import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiTextField; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -12,6 +11,7 @@ import com.glodblock.github.inventory.gui.GuiType; import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiTabButton; +import appeng.client.gui.widgets.MEGuiTextField; import appeng.container.AEBaseContainer; import appeng.core.AEConfig; import appeng.core.localization.GuiText; @@ -20,7 +20,7 @@ import appeng.util.calculators.Calculator; public abstract class FCGuiAmount extends AEBaseGui { - protected GuiTextField amountBox; + protected MEGuiTextField amountBox; protected GuiTabButton originalGuiBtn; protected GuiButton submit; protected GuiButton plus1; @@ -72,16 +72,10 @@ public abstract class FCGuiAmount extends AEBaseGui { this.originalGuiBtn.setHideEdge(13); } - this.amountBox = new GuiTextField( - this.fontRendererObj, - this.guiLeft + 62, - this.guiTop + 57, - 59, - this.fontRendererObj.FONT_HEIGHT); - this.amountBox.setEnableBackgroundDrawing(false); + this.amountBox = new MEGuiTextField(61, 12); + this.amountBox.x = this.guiLeft + 60; + this.amountBox.y = this.guiTop + 55; this.amountBox.setMaxStringLength(16); - this.amountBox.setTextColor(0xFFFFFF); - this.amountBox.setVisible(true); this.amountBox.setFocused(true); } @@ -134,6 +128,7 @@ public abstract class FCGuiAmount extends AEBaseGui { } String out = Long.toString(resultI); this.amountBox.setText(out); + this.amountBox.setCursorPositionEnd(); } catch (final NumberFormatException ignore) {} } diff --git a/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java b/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java index b95b3885..9fdbe73f 100644 --- a/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java +++ b/src/main/java/com/glodblock/github/network/CPacketInventoryAction.java @@ -43,7 +43,7 @@ public class CPacketInventoryAction implements IMessage { public CPacketInventoryAction() {} - public CPacketInventoryAction(final InventoryAction action, final int slot, final int id) { + public CPacketInventoryAction(final InventoryAction action, final int slot, final long id) { this.action = action; this.slot = slot; this.id = id; @@ -51,7 +51,7 @@ public class CPacketInventoryAction implements IMessage { this.isEmpty = true; } - public CPacketInventoryAction(final InventoryAction action, final int slot, final int id, IAEItemStack stack) { + public CPacketInventoryAction(final InventoryAction action, final int slot, final long id, IAEItemStack stack) { this.action = action; this.slot = slot; this.id = id; @@ -123,6 +123,9 @@ public class CPacketInventoryAction implements IMessage { if (baseContainer.getTargetStack() != null) { cca.getCraftingItem().putStack(baseContainer.getTargetStack().getItemStack()); cca.setItemToCraft(baseContainer.getTargetStack()); + if (message.id > 0) { + cca.setInitialCraftAmount(message.id); + } } cca.detectAndSendChanges(); }