From 663572ce79513e216de08142acad8c3e406600cf Mon Sep 17 00:00:00 2001 From: dnk1234567 <dnk1234567@sina.cn> Date: Sat, 1 Feb 2025 11:46:39 +0800 Subject: [PATCH] Try fix #2805 --- .../ae2/gui/widget/AmountSetWidget.java | 10 +++++++++- .../ae2/gui/widget/ConfigWidget.java | 20 ++++++++++++++++--- .../widget/slot/AEFluidConfigSlotWidget.java | 4 ++-- .../widget/slot/AEItemConfigSlotWidget.java | 4 ++-- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/AmountSetWidget.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/AmountSetWidget.java index cddf988878..85c87cd3f2 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/AmountSetWidget.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/AmountSetWidget.java @@ -7,6 +7,8 @@ import com.lowdragmc.lowdraglib.gui.widget.Widget; import com.lowdragmc.lowdraglib.utils.Position; +import cpw.mods.fml.relauncher.Side; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.api.distmarker.Dist; @@ -14,6 +16,7 @@ import appeng.api.stacks.GenericStack; import lombok.Getter; +import net.minecraftforge.fml.LogicalSide; import org.jetbrains.annotations.NotNull; import static com.lowdragmc.lowdraglib.gui.util.DrawerHelper.drawStringSized; @@ -38,11 +41,16 @@ public AmountSetWidget(int x, int y, ConfigWidget widget) { .setMaxStringLength(10); } - public void setSlotIndex(int slotIndex) { + @OnlyIn(Dist.CLIENT) + public void setSlotIndexClient(int slotIndex) { this.index = slotIndex; writeClientAction(0, buf -> buf.writeVarInt(this.index)); } + public void setSlotIndex(int slotIndex){ + this.index = slotIndex; + } + public String getAmountStr() { if (this.index < 0) { return "0"; diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/ConfigWidget.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/ConfigWidget.java index e25631f9c1..8fdc746f68 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/ConfigWidget.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/ConfigWidget.java @@ -41,13 +41,27 @@ public ConfigWidget(int x, int y, IConfigurableSlot[] config, boolean isStocking this.amountSetWidget.getAmountText().setVisible(false); } - public void enableAmount(int slotIndex) { + @OnlyIn(Dist.CLIENT) + public void enableAmountClient(int slotIndex) { + this.amountSetWidget.setSlotIndexClient(slotIndex); + this.amountSetWidget.setVisible(true); + this.amountSetWidget.getAmountText().setVisible(true); + } + + @OnlyIn(Dist.CLIENT) + public void disableAmountClient() { + this.amountSetWidget.setSlotIndexClient(-1); + this.amountSetWidget.setVisible(false); + this.amountSetWidget.getAmountText().setVisible(false); + } + + public void enableAmount(int slotIndex){ this.amountSetWidget.setSlotIndex(slotIndex); this.amountSetWidget.setVisible(true); this.amountSetWidget.getAmountText().setVisible(true); } - public void disableAmount() { + public void disableAmount(){ this.amountSetWidget.setSlotIndex(-1); this.amountSetWidget.setVisible(false); this.amountSetWidget.getAmountText().setVisible(false); @@ -66,7 +80,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { slot.setSelect(false); } } - this.disableAmount(); + this.disableAmountClient(); return super.mouseClicked(mouseX, mouseY, button); } diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEFluidConfigSlotWidget.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEFluidConfigSlotWidget.java index 9a2828e175..21db46113c 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEFluidConfigSlotWidget.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEFluidConfigSlotWidget.java @@ -121,7 +121,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { writeClientAction(REMOVE_ID, buf -> {}); if (!parentWidget.isStocking()) { - this.parentWidget.disableAmount(); + this.parentWidget.disableAmountClient(); } } else if (button == 0) { // Left click to set/select @@ -129,7 +129,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { FluidUtil.getFluidContained(hold).ifPresent(f -> writeClientAction(UPDATE_ID, f::writeToPacket)); if (!parentWidget.isStocking()) { - this.parentWidget.enableAmount(this.index); + this.parentWidget.enableAmountClient(this.index); this.select = true; } } diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java index 436a6ea243..a08c822f0b 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java @@ -97,7 +97,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { writeClientAction(REMOVE_ID, buf -> {}); if (!parentWidget.isStocking()) { - this.parentWidget.disableAmount(); + this.parentWidget.disableAmountClient(); } } else if (button == 0) { // Left click to set/select @@ -108,7 +108,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } if (!parentWidget.isStocking()) { - this.parentWidget.enableAmount(this.index); + this.parentWidget.enableAmountClient(this.index); this.select = true; } }