diff options
Diffstat (limited to 'src/main/java/gregtech/common')
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() {} - } } |