aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/GT_Client.java29
-rw-r--r--src/main/java/gregtech/common/GT_Network.java8
-rw-r--r--src/main/java/gregtech/common/gui/modularui/widget/FluidDisplaySlotWidget.java52
-rw-r--r--src/main/java/gregtech/common/gui/modularui/widget/FluidLockWidget.java17
-rw-r--r--src/main/java/gregtech/common/net/MessageUpdateFluidDisplayItem.java63
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java3
-rw-r--r--src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java106
8 files changed, 71 insertions, 212 deletions
diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java
index b7ef7e8fef..01dc86de8e 100644
--- a/src/main/java/gregtech/common/GT_Client.java
+++ b/src/main/java/gregtech/common/GT_Client.java
@@ -30,7 +30,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.ChunkCoordIntPair;
import net.minecraft.world.World;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
@@ -56,9 +55,7 @@ import gregtech.api.GregTech_API;
import gregtech.api.enums.*;
import gregtech.api.gui.GT_GUIColorOverride;
import gregtech.api.gui.modularui.FallbackableSteamTexture;
-import gregtech.api.interfaces.IHasFluidDisplayItem;
import gregtech.api.interfaces.tileentity.ICoverable;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.interfaces.tileentity.ITurnable;
import gregtech.api.items.GT_MetaGenerated_Item;
import gregtech.api.metatileentity.BaseMetaPipeEntity;
@@ -77,7 +74,6 @@ import gregtech.api.util.GT_Utility;
import gregtech.api.util.WorldSpawnedEventBuilder;
import gregtech.common.entities.GT_Entity_Arrow;
import gregtech.common.entities.GT_Entity_Arrow_Potion;
-import gregtech.common.net.MessageUpdateFluidDisplayItem;
import gregtech.common.render.*;
import gregtech.common.render.items.GT_MetaGenerated_Item_Renderer;
import gregtech.common.tileentities.debug.GT_MetaTileEntity_AdvDebugStructureWriter;
@@ -165,9 +161,6 @@ public class GT_Client extends GT_Proxy implements Runnable {
private long afterSomeTime;
private boolean mAnimationDirection;
- private int mLastUpdatedBlockX;
- private int mLastUpdatedBlockY;
- private int mLastUpdatedBlockZ;
private GT_ClientPreference mPreference;
private boolean mFirstTick = false;
public static final int ROTATION_MARKER_RESOLUTION = 120;
@@ -725,28 +718,6 @@ public class GT_Client extends GT_Proxy implements Runnable {
}
}
if (!GregTech_API.mServerStarted) GregTech_API.mServerStarted = true;
- if (GT_Values.updateFluidDisplayItems) {
- final MovingObjectPosition trace = Minecraft.getMinecraft().objectMouseOver;
- if (trace != null && trace.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK
- && (mLastUpdatedBlockX != trace.blockX && mLastUpdatedBlockY != trace.blockY
- && mLastUpdatedBlockZ != trace.blockZ || afterSomeTime % 10 == 0)) {
- mLastUpdatedBlockX = trace.blockX;
- mLastUpdatedBlockY = trace.blockY;
- mLastUpdatedBlockZ = trace.blockZ;
- final TileEntity tileEntity = aEvent.player.worldObj
- .getTileEntity(trace.blockX, trace.blockY, trace.blockZ);
- if (tileEntity instanceof IGregTechTileEntity gtTile) {
- if (gtTile.getMetaTileEntity() instanceof IHasFluidDisplayItem) {
- GT_Values.NW.sendToServer(
- new MessageUpdateFluidDisplayItem(
- trace.blockX,
- trace.blockY,
- trace.blockZ,
- gtTile.getWorld().provider.dimensionId));
- }
- }
- }
- }
}
}
diff --git a/src/main/java/gregtech/common/GT_Network.java b/src/main/java/gregtech/common/GT_Network.java
index 6ab0ed4f02..253f2025ba 100644
--- a/src/main/java/gregtech/common/GT_Network.java
+++ b/src/main/java/gregtech/common/GT_Network.java
@@ -22,7 +22,6 @@ import gregtech.api.enums.GT_Values;
import gregtech.api.net.*;
import gregtech.common.blocks.GT_Packet_Ores;
import gregtech.common.net.MessageSetFlaskCapacity;
-import gregtech.common.net.MessageUpdateFluidDisplayItem;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandler;
@@ -48,13 +47,13 @@ public class GT_Network extends MessageToMessageCodec<FMLProxyPacket, GT_Packet>
new MessageSetFlaskCapacity(), // 5
new GT_Packet_TileEntityCover(), // 6
new GT_Packet_TileEntityCoverGUI(), // 7
- new MessageUpdateFluidDisplayItem(), // 8
+ // 8
new GT_Packet_ClientPreference(), // 9
new GT_Packet_WirelessRedstoneCover(), // 10
new GT_Packet_TileEntityCoverNew(), // 11
new GT_Packet_SetConfigurationCircuit(), // 12
new GT_Packet_UpdateItem(), // 13
- new GT_Packet_SetLockedFluid(), // 14
+ // 14
new GT_Packet_GtTileEntityGuiRequest(), // 15
new GT_Packet_SendCoverData(), // 16
new GT_Packet_RequestCoverData(), // 17
@@ -64,7 +63,8 @@ public class GT_Network extends MessageToMessageCodec<FMLProxyPacket, GT_Packet>
public GT_Network(String channelName, GT_Packet... packetTypes) {
this.mChannel = NetworkRegistry.INSTANCE.newChannel(channelName, this, new HandlerShared());
- this.mSubChannels = new GT_Packet[packetTypes.length];
+ final int lastPId = packetTypes[packetTypes.length - 1].getPacketID();
+ this.mSubChannels = new GT_Packet[lastPId + 1];
for (GT_Packet packetType : packetTypes) {
final int pId = packetType.getPacketID();
if (this.mSubChannels[pId] == null) this.mSubChannels[pId] = packetType;
diff --git a/src/main/java/gregtech/common/gui/modularui/widget/FluidDisplaySlotWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/FluidDisplaySlotWidget.java
index bc37f5c11a..a5b9f88c60 100644
--- a/src/main/java/gregtech/common/gui/modularui/widget/FluidDisplaySlotWidget.java
+++ b/src/main/java/gregtech/common/gui/modularui/widget/FluidDisplaySlotWidget.java
@@ -25,6 +25,7 @@ import gregtech.api.interfaces.IHasFluidDisplayItem;
import gregtech.api.interfaces.metatileentity.IFluidLockable;
import gregtech.api.util.GT_Utility;
+@Deprecated
public class FluidDisplaySlotWidget extends SlotWidget {
private IHasFluidDisplayItem iHasFluidDisplay;
@@ -36,11 +37,7 @@ public class FluidDisplaySlotWidget extends SlotWidget {
private Action actionDragAndDrop = Action.NONE;
private BiFunction<ClickData, FluidDisplaySlotWidget, Boolean> beforeRealClick;
private BiFunction<ClickData, FluidDisplaySlotWidget, Boolean> beforeDragAndDrop;
- private Runnable updateFluidDisplayItem = () -> {
- if (iHasFluidDisplay != null) {
- iHasFluidDisplay.updateFluidDisplayItem();
- }
- };
+ private Runnable updateFluidDisplayItem = () -> {};
public FluidDisplaySlotWidget(BaseSlot slot) {
super(slot);
@@ -315,46 +312,9 @@ public class FluidDisplaySlotWidget extends SlotWidget {
updateFluidDisplayItem.run();
}
- protected void lockFluid(ItemStack cursorStack) {
- if (!(iHasFluidDisplay instanceof IFluidLockable mteToLock)) return;
-
- if (cursorStack == null) {
- if (!mteToLock.allowChangingLockedFluid(null)) return;
-
- mteToLock.lockFluid(false);
- mteToLock.setLockedFluidName(null);
- GT_Utility.sendChatToPlayer(getContext().getPlayer(), GT_Utility.trans("300.1", "Fluid Lock Cleared."));
+ protected void lockFluid(ItemStack cursorStack) {}
- if (!isClient()) {
- mteToLock.onFluidLockPacketReceived(null);
- }
- } else {
- FluidStack fluidStack = GT_Utility.getFluidFromContainerOrFluidDisplay(cursorStack);
- if (fluidStack == null) return;
- Fluid tFluid = fluidStack.getFluid();
- if (tFluid == null) return;
-
- if (!mteToLock.allowChangingLockedFluid(tFluid.getName())) return;
-
- mteToLock.lockFluid(true);
- mteToLock.setLockedFluidName(tFluid.getName());
- GT_Utility.sendChatToPlayer(
- getContext().getPlayer(),
- String.format(
- GT_Utility.trans("151.4", "Successfully locked Fluid to %s"),
- new FluidStack(tFluid, 1).getLocalizedName()));
-
- if (!isClient()) {
- mteToLock.onFluidLockPacketReceived(tFluid.getName());
- }
- }
- }
-
- protected void updateFluidDisplayItem() {
- if (iHasFluidDisplay != null) {
- iHasFluidDisplay.updateFluidDisplayItem();
- }
- }
+ protected void updateFluidDisplayItem() {}
// === setters ===
@@ -444,10 +404,6 @@ public class FluidDisplaySlotWidget extends SlotWidget {
return this;
}
- /**
- * By default, this widget runs {@link IHasFluidDisplayItem#updateFluidDisplayItem} after click. You can specify
- * custom update action with this method.
- */
public FluidDisplaySlotWidget setUpdateFluidDisplayItem(Runnable updateFluidDisplayItem) {
this.updateFluidDisplayItem = updateFluidDisplayItem;
return this;
diff --git a/src/main/java/gregtech/common/gui/modularui/widget/FluidLockWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/FluidLockWidget.java
new file mode 100644
index 0000000000..5627a4fb8b
--- /dev/null
+++ b/src/main/java/gregtech/common/gui/modularui/widget/FluidLockWidget.java
@@ -0,0 +1,17 @@
+package gregtech.common.gui.modularui.widget;
+
+import com.gtnewhorizons.modularui.common.widget.FluidNameHolderWidget;
+
+import gregtech.api.interfaces.metatileentity.IFluidLockable;
+
+public class FluidLockWidget extends FluidNameHolderWidget {
+
+ public FluidLockWidget(IFluidLockable fluidLockable) {
+ super(fluidLockable::getLockedFluidName, name -> {
+ if (fluidLockable.acceptsFluidLock(name)) {
+ fluidLockable.setLockedFluidName(name);
+ fluidLockable.lockFluid(name != null);
+ }
+ });
+ }
+}
diff --git a/src/main/java/gregtech/common/net/MessageUpdateFluidDisplayItem.java b/src/main/java/gregtech/common/net/MessageUpdateFluidDisplayItem.java
deleted file mode 100644
index 2887714996..0000000000
--- a/src/main/java/gregtech/common/net/MessageUpdateFluidDisplayItem.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package gregtech.common.net;
-
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.WorldServer;
-import net.minecraftforge.common.DimensionManager;
-
-import com.google.common.io.ByteArrayDataInput;
-
-import gregtech.api.interfaces.IHasFluidDisplayItem;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.net.GT_Packet_New;
-import io.netty.buffer.ByteBuf;
-
-public class MessageUpdateFluidDisplayItem extends GT_Packet_New {
-
- private int mBlockX, mBlockY, mBlockZ, mDim;
-
- public MessageUpdateFluidDisplayItem() {
- super(true);
- }
-
- public MessageUpdateFluidDisplayItem(int mBlockX, int mBlockY, int mBlockZ, int mDim) {
- super(false);
- this.mBlockX = mBlockX;
- this.mBlockY = mBlockY;
- this.mBlockZ = mBlockZ;
- this.mDim = mDim;
- }
-
- @Override
- public byte getPacketID() {
- return 8;
- }
-
- @Override
- public void encode(ByteBuf aOut) {
- aOut.writeInt(mBlockX);
- aOut.writeInt(mBlockY);
- aOut.writeInt(mBlockZ);
- aOut.writeInt(mDim);
- }
-
- @Override
- public GT_Packet_New decode(ByteArrayDataInput aData) {
- return new MessageUpdateFluidDisplayItem(aData.readInt(), aData.readInt(), aData.readInt(), aData.readInt());
- }
-
- @Override
- public void process(IBlockAccess aWorld) {
- WorldServer world = DimensionManager.getWorld(mDim);
- if (world != null) {
- if (world.blockExists(mBlockX, mBlockY, mBlockZ)) {
- TileEntity tileEntity = world.getTileEntity(mBlockX, mBlockY, mBlockZ);
- if (tileEntity instanceof IGregTechTileEntity gtTile) {
- if (gtTile.getMetaTileEntity() instanceof IHasFluidDisplayItem) {
- ((IHasFluidDisplayItem) gtTile.getMetaTileEntity()).updateFluidDisplayItem();
- }
- }
- }
- }
- }
-}
diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java
index 6a797f5e2a..65b7df004a 100644
--- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java
+++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java
@@ -453,11 +453,6 @@ public class GT_MetaTileEntity_Boiler_Lava extends GT_MetaTileEntity_Boiler {
}
@Override
- public FluidStack getDisplayedFluid() {
- return lavaTank.getFluid();
- }
-
- @Override
public FluidTankInfo[] getTankInfo(ForgeDirection side) {
return new FluidTankInfo[] { super.getTankInfo(side)[0],
new FluidTankInfo(this.lavaTank.getFluid(), this.lavaTank.getCapacity()),
diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java
index 241412b423..693903a39a 100644
--- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java
+++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_Output_ME.java
@@ -146,9 +146,6 @@ public class GT_MetaTileEntity_Hatch_Output_ME extends GT_MetaTileEntity_Hatch_O
}
@Override
- public void updateFluidDisplayItem() {}
-
- @Override
public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) {
// Don't allow to lock fluid in me fluid hatch
if (!getBaseMetaTileEntity().getCoverInfoAtSide(side)
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 f67b789847..6bcdab62e0 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
@@ -20,32 +20,33 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
+import com.gtnewhorizons.modularui.api.math.Alignment;
import com.gtnewhorizons.modularui.api.screen.ModularWindow;
import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
-import com.gtnewhorizons.modularui.common.internal.network.NetworkUtils;
import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget;
import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
+import com.gtnewhorizons.modularui.common.widget.FluidSlotWidget;
import com.gtnewhorizons.modularui.common.widget.SlotWidget;
import com.gtnewhorizons.modularui.common.widget.TextWidget;
import gregtech.api.GregTech_API;
import gregtech.api.gui.modularui.GT_UIInfos;
import gregtech.api.gui.modularui.GT_UITextures;
-import gregtech.api.interfaces.IFluidAccess;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IFluidLockable;
+import gregtech.api.interfaces.modularui.IAddGregtechLogo;
import gregtech.api.interfaces.modularui.IAddUIWidgets;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Utility;
-import gregtech.common.gui.modularui.widget.FluidDisplaySlotWidget;
+import gregtech.common.gui.modularui.widget.FluidLockWidget;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntity_BasicTank
- implements IFluidLockable, IAddUIWidgets {
+ implements IFluidLockable, IAddUIWidgets, IAddGregtechLogo {
public boolean mOutputFluid = false, mVoidFluidPart = false, mVoidFluidFull = false, mLockFluid = false;
protected String lockedFluidName = null;
@@ -169,8 +170,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
mVoidFluidPart = aNBT.getBoolean("mVoidOverflow");
mVoidFluidFull = aNBT.getBoolean("mVoidFluidFull");
mLockFluid = aNBT.getBoolean("mLockFluid");
- lockedFluidName = aNBT.getString("lockedFluidName");
- lockedFluidName = GT_Utility.isStringInvalid(lockedFluidName) ? null : lockedFluidName;
+ setLockedFluidName(aNBT.getString("lockedFluidName"));
mAllowInputFromOutputSide = aNBT.getBoolean("mAllowInputFromOutputSide");
}
@@ -189,9 +189,10 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
@Override
public void onEmptyingContainerWhenEmpty() {
- if (this.lockedFluidName == null && this.mFluid != null) {
- this.lockedFluidName = this.mFluid.getFluid()
- .getName();
+ if (this.lockedFluidName == null && this.mFluid != null && isFluidLocked()) {
+ setLockedFluidName(
+ this.mFluid.getFluid()
+ .getName());
}
}
@@ -232,6 +233,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
@Override
public void setLockedFluidName(String lockedFluidName) {
+ lockedFluidName = GT_Utility.isStringInvalid(lockedFluidName) ? null : lockedFluidName;
this.lockedFluidName = lockedFluidName;
if (lockedFluidName != null) {
Fluid fluid = FluidRegistry.getFluid(lockedFluidName);
@@ -262,8 +264,11 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
}
@Override
- public boolean allowChangingLockedFluid(String name) {
- return getFluidAmount() == 0;
+ public boolean acceptsFluidLock(String name) {
+ if (name == null || getFluidAmount() == 0) return true;
+ return mFluid != null && mFluid.getFluid()
+ .getName()
+ .equals(name);
}
@Override
@@ -327,8 +332,6 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
setFillableStack(null);
}
- if (mOpenerCount > 0) updateFluidDisplayItem();
-
if (doesEmptyContainers()) {
FluidStack tFluid = GT_Utility.getFluidForFilledItem(mInventory[getInputSlot()], true);
if (tFluid != null && isFluidInputAllowed(tFluid)) {
@@ -454,9 +457,13 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
return 100;
}
+ public boolean allowOverflow() {
+ return mVoidFluidPart || mVoidFluidFull;
+ }
+
@Override
public int getCapacity() {
- return (mVoidFluidPart || mVoidFluidFull) ? Integer.MAX_VALUE : getRealCapacity();
+ return allowOverflow() ? Integer.MAX_VALUE : getRealCapacity();
}
public int getRealCapacity() {
@@ -510,6 +517,8 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
@Override
public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) {
+ fluidTank.setAllowOverflow(allowOverflow());
+ fluidTank.setPreventDraining(mLockFluid);
builder.widget(
new DrawableWidget().setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK)
.setPos(7, 16)
@@ -523,24 +532,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
.setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_OUT)
.setPos(79, 43))
.widget(
- new FluidDisplaySlotWidget(inventoryHandler, getStackDisplaySlot())
- .setFluidAccessConstructor(() -> constructFluidAccess(false))
- .setIHasFluidDisplay(this)
- .setCanDrain(true)
- .setCanFill(!isDrainableStackSeparate())
- .setActionRealClick(FluidDisplaySlotWidget.Action.TRANSFER)
- .setActionDragAndDrop(FluidDisplaySlotWidget.Action.LOCK)
- .setBeforeRealClick((clickData, widget) -> {
- if (NetworkUtils.isClient()) {
- // propagate display item content to actual fluid stored in
- // this tank
- setDrainableStack(
- GT_Utility.getFluidFromDisplayStack(
- widget.getMcSlot()
- .getStack()));
- }
- return true;
- })
+ new FluidSlotWidget(fluidTank).setOnClickContainer(widget -> onEmptyingContainerWhenEmpty())
.setBackground(GT_UITextures.TRANSPARENT)
.setPos(58, 41))
.widget(
@@ -550,6 +542,22 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
TextWidget.dynamicString(() -> GT_Utility.parseNumberToString(mFluid != null ? mFluid.amount : 0))
.setDefaultColor(COLOR_TEXT_WHITE.get())
.setPos(10, 30))
+ .widget(
+ new DrawableWidget().setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK)
+ .setPos(98, 28)
+ .setSize(71, 45))
+ .widget(new FluidLockWidget(this).setPos(149, 53))
+ .widget(
+ new TextWidget("Locked Fluid").setDefaultColor(COLOR_TEXT_WHITE.get())
+ .setPos(101, 32))
+ .widget(TextWidget.dynamicString(() -> {
+ FluidStack fluidStack = FluidRegistry.getFluidStack(lockedFluidName, 1);
+ return fluidStack != null ? fluidStack.getLocalizedName() : "None";
+ })
+ .setDefaultColor(COLOR_TEXT_WHITE.get())
+ .setTextAlignment(Alignment.CenterLeft)
+ .setMaxWidth(65)
+ .setPos(101, 42))
.widget(new CycleButtonWidget().setToggle(() -> mOutputFluid, val -> {
mOutputFluid = val;
if (!mOutputFluid) {
@@ -570,6 +578,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
.setSize(18, 18))
.widget(new CycleButtonWidget().setToggle(() -> mLockFluid, val -> {
mLockFluid = val;
+ fluidTank.setPreventDraining(mLockFluid);
String inBrackets;
if (mLockFluid) {
@@ -588,6 +597,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
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"));
@@ -615,6 +625,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
.setSize(18, 18))
.widget(new CycleButtonWidget().setToggle(() -> mVoidFluidPart, val -> {
mVoidFluidPart = val;
+ fluidTank.setAllowOverflow(allowOverflow());
if (!mVoidFluidPart) {
GT_Utility.sendChatToPlayer(
buildContext.getPlayer(),
@@ -629,10 +640,11 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_VOID_EXCESS)
.setGTTooltip(() -> mTooltipCache.getData("GT5U.machines.digitaltank.voidoverflow.tooltip"))
.setTooltipShowUpDelay(TOOLTIP_DELAY)
- .setPos(151, 7)
+ .setPos(133, 7)
.setSize(18, 18))
.widget(new CycleButtonWidget().setToggle(() -> mVoidFluidFull, val -> {
mVoidFluidFull = val;
+ fluidTank.setAllowOverflow(allowOverflow());
if (!mVoidFluidFull) {
GT_Utility
.sendChatToPlayer(buildContext.getPlayer(), GT_Utility.trans("269", "Void Full Mode Disabled"));
@@ -645,33 +657,7 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
.setStaticTexture(GT_UITextures.OVERLAY_BUTTON_VOID_ALL)
.setGTTooltip(() -> mTooltipCache.getData("GT5U.machines.digitaltank.voidfull.tooltip"))
.setTooltipShowUpDelay(TOOLTIP_DELAY)
- .setPos(151, 25)
+ .setPos(151, 7)
.setSize(18, 18));
}
-
- @Override
- protected IFluidAccess constructFluidAccess(boolean aIsFillableStack) {
- return new DigitalTankFluidAccess(this, aIsFillableStack);
- }
-
- static class DigitalTankFluidAccess extends BasicTankFluidAccess {
-
- public DigitalTankFluidAccess(GT_MetaTileEntity_BasicTank aTank, boolean aIsFillableStack) {
- super(aTank, aIsFillableStack);
- }
-
- @Override
- public void set(FluidStack stack) {
- super.set(stack);
- ((GT_MetaTileEntity_DigitalTankBase) mTank).onEmptyingContainerWhenEmpty();
- }
-
- @Override
- public int getRealCapacity() {
- return ((GT_MetaTileEntity_DigitalTankBase) mTank).getRealCapacity();
- }
-
- @Override
- public void verifyFluidStack() {}
- }
}