diff options
author | miozune <miozune@gmail.com> | 2023-06-06 14:57:10 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-06 07:57:10 +0200 |
commit | 6b619fc2e0f57e04796da10911047635e7d9a6a0 (patch) | |
tree | ff0d152889148eccc12f3aa69303b018ba6c0115 /src/main/java/gregtech/common | |
parent | 185f63c02367fae0b3cbbc23bb90906cd34425c2 (diff) | |
download | GT5-Unofficial-6b619fc2e0f57e04796da10911047635e7d9a6a0.tar.gz GT5-Unofficial-6b619fc2e0f57e04796da10911047635e7d9a6a0.tar.bz2 GT5-Unofficial-6b619fc2e0f57e04796da10911047635e7d9a6a0.zip |
Fix fluid lock issues (#2062)
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java index 7beae18d74..c9c32b5aa0 100644 --- a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java +++ b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java @@ -148,7 +148,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit if (mVoidFluidPart) aNBT.setBoolean("mVoidOverflow", true); if (mVoidFluidFull) aNBT.setBoolean("mVoidFluidFull", true); if (mLockFluid) aNBT.setBoolean("mLockFluid", true); - if (GT_Utility.isStringValid(lockedFluidName)) aNBT.setString("lockedFluidName", lockedFluidName); + if (mLockFluid && GT_Utility.isStringValid(lockedFluidName)) aNBT.setString("lockedFluidName", lockedFluidName); if (this.mAllowInputFromOutputSide) aNBT.setBoolean("mAllowInputFromOutputSide", true); super.setItemNBT(aNBT); @@ -161,7 +161,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit aNBT.setBoolean("mVoidOverflow", this.mVoidFluidPart); aNBT.setBoolean("mVoidFluidFull", this.mVoidFluidFull); aNBT.setBoolean("mLockFluid", mLockFluid); - if (GT_Utility.isStringValid(lockedFluidName)) aNBT.setString("lockedFluidName", lockedFluidName); + if (mLockFluid && GT_Utility.isStringValid(lockedFluidName)) aNBT.setString("lockedFluidName", lockedFluidName); else aNBT.removeTag("lockedFluidName"); aNBT.setBoolean("mAllowInputFromOutputSide", this.mAllowInputFromOutputSide); } @@ -173,7 +173,11 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit mVoidFluidPart = aNBT.getBoolean("mVoidOverflow"); mVoidFluidFull = aNBT.getBoolean("mVoidFluidFull"); mLockFluid = aNBT.getBoolean("mLockFluid"); - setLockedFluidName(aNBT.getString("lockedFluidName")); + if (mLockFluid) { + setLockedFluidName(aNBT.getString("lockedFluidName")); + } else { + setLockedFluidName(null); + } mAllowInputFromOutputSide = aNBT.getBoolean("mAllowInputFromOutputSide"); } @@ -259,6 +263,9 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit @Override public void lockFluid(boolean lock) { this.mLockFluid = lock; + if (!lock) { + setLockedFluidName(null); + } } @Override @@ -522,6 +529,8 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { fluidTank.setAllowOverflow(allowOverflow()); fluidTank.setPreventDraining(mLockFluid); + + FluidSlotWidget fluidSlotWidget = new FluidSlotWidget(fluidTank); builder.widget( new DrawableWidget().setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) .setPos(7, 16) @@ -535,7 +544,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_OUT) .setPos(79, 43)) .widget( - new FluidSlotWidget(fluidTank).setOnClickContainer(widget -> onEmptyingContainerWhenEmpty()) + fluidSlotWidget.setOnClickContainer(widget -> onEmptyingContainerWhenEmpty()) .setBackground(GT_UITextures.TRANSPARENT) .setPos(58, 41)) .widget( @@ -580,7 +589,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit .setPos(7, 63) .setSize(18, 18)) .widget(new CycleButtonWidget().setToggle(() -> mLockFluid, val -> { - mLockFluid = val; + lockFluid(val); fluidTank.setPreventDraining(mLockFluid); String inBrackets; @@ -599,12 +608,12 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit buildContext.getPlayer(), String.format("%s (%s)", GT_Utility.trans("265", "1 specific Fluid"), inBrackets)); } else { - setLockedFluidName(null); fluidTank.drain(0, true); GT_Utility.sendChatToPlayer( buildContext.getPlayer(), GT_Utility.trans("266", "Lock Fluid Mode Disabled")); } + fluidSlotWidget.notifyTooltipChange(); }) .setVariableBackground(GT_UITextures.BUTTON_STANDARD_TOGGLE) .setStaticTexture(GT_UITextures.OVERLAY_BUTTON_LOCK) |