diff options
Diffstat (limited to 'src/main')
2 files changed, 21 insertions, 9 deletions
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 8d65c429f7..6c46600f94 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 @@ -150,7 +150,7 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch public void saveNBTData(NBTTagCompound aNBT) { super.saveNBTData(aNBT); aNBT.setByte("mMode", mMode); - if (lockedFluidName != null && lockedFluidName.length() != 0) + if (isFluidLocked() && lockedFluidName != null && lockedFluidName.length() != 0) aNBT.setString("lockedFluidName", lockedFluidName); else aNBT.removeTag("lockedFluidName"); } @@ -159,8 +159,10 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch public void loadNBTData(NBTTagCompound aNBT) { super.loadNBTData(aNBT); mMode = aNBT.getByte("mMode"); - lockedFluidName = aNBT.getString("lockedFluidName"); - lockedFluidName = lockedFluidName.length() == 0 ? null : lockedFluidName; + if (isFluidLocked()) { + lockedFluidName = aNBT.getString("lockedFluidName"); + } + lockedFluidName = GT_Utility.isStringInvalid(lockedFluidName) ? null : lockedFluidName; } @Override @@ -393,6 +395,7 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch } } else { this.mMode = 0; + setLockedFluidName(null); markDirty(); } } 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) |