From 3fb1eb961b190cb2c6a89e269f98d92855ae915d Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Thu, 8 Sep 2022 19:05:41 +0800 Subject: fix GT_Packet_SetLockedFluid not setting lock mode (#1356) * fix GT_Packet_SetLockedFluid not setting lock mode also fixed drag and drop from NEI handler got called when drag and drop from main inventory * fix lockFluid overwriting mMode == 8 * add markDirty() call --- .../implementations/GT_MetaTileEntity_Hatch_Output.java | 11 ++++++++++- src/main/java/gregtech/api/net/GT_Packet_SetLockedFluid.java | 1 + .../java/gregtech/common/gui/GT_GUIContainer_OutputHatch.java | 3 ++- 3 files changed, 13 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java index 55ca9f9605..4d281f72b5 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java @@ -377,11 +377,20 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch impl @Override public void setLockedFluidName(String lockedFluidName) { this.lockedFluidName = lockedFluidName; + markDirty(); } @Override public void lockFluid(boolean lock) { - this.mMode = (byte) (lock ? 9 : 0); + if (lock) { + if (!isFluidLocked()) { + this.mMode = 9; + markDirty(); + } + } else { + this.mMode = 0; + markDirty(); + } } @Override diff --git a/src/main/java/gregtech/api/net/GT_Packet_SetLockedFluid.java b/src/main/java/gregtech/api/net/GT_Packet_SetLockedFluid.java index d3f6d9ae4d..9342248a7a 100644 --- a/src/main/java/gregtech/api/net/GT_Packet_SetLockedFluid.java +++ b/src/main/java/gregtech/api/net/GT_Packet_SetLockedFluid.java @@ -83,6 +83,7 @@ public class GT_Packet_SetLockedFluid extends GT_Packet_New { IFluidLockable mteToLock = (IFluidLockable) mte; if (!mteToLock.allowChangingLockedFluid(tFluid.getName())) return; + mteToLock.lockFluid(true); mteToLock.setLockedFluidName(tFluid.getName()); GT_Utility.sendChatToPlayer( mPlayer, diff --git a/src/main/java/gregtech/common/gui/GT_GUIContainer_OutputHatch.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_OutputHatch.java index 7e27a7409a..ab00d16291 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_OutputHatch.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_OutputHatch.java @@ -58,7 +58,8 @@ public class GT_GUIContainer_OutputHatch extends GT_GUIContainerMetaTile_Machine @Override public boolean handleDragAndDropGT( GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button, boolean isGhost) { - if (gui instanceof GT_GUIContainer_OutputHatch + if (isGhost + && gui instanceof GT_GUIContainer_OutputHatch && ((GT_GUIContainer_OutputHatch) gui).isMouseOverSlot(3, mousex, mousey)) { // the instanceof check should be unnecessary, but we will do it regardless, just in case. FluidStack tFluidStack = GT_Utility.getFluidFromContainerOrFluidDisplay(draggedStack); -- cgit