From 260602f2e8ac1147e47042bdd9f615b52794ff86 Mon Sep 17 00:00:00 2001 From: Robert Seifert Date: Mon, 3 Jun 2013 05:24:56 -0400 Subject: [PATCH] Fixed/Finished Networked Tanks Still need to do more testing as well get a new render for the tanks, but so far they seem to work rather nice. --- .../dark/fluid/client/render/RenderTank.java | 2 +- .../dark/fluid/common/machines/BlockTank.java | 9 ++--- .../fluid/common/machines/TileEntityTank.java | 34 ++++++++++++------- .../pump/TileEntityConstructionPump.java | 2 +- 4 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/minecraft/dark/fluid/client/render/RenderTank.java b/src/minecraft/dark/fluid/client/render/RenderTank.java index 6ed3ae6c..97e4965e 100644 --- a/src/minecraft/dark/fluid/client/render/RenderTank.java +++ b/src/minecraft/dark/fluid/client/render/RenderTank.java @@ -33,7 +33,7 @@ public class RenderTank extends TileEntitySpecialRenderer int pos = 0; if (stack != null) { - pos = Math.min((stack.amount / LiquidContainerRegistry.BUCKET_VOLUME), 4); + pos = Math.min(((stack.amount / LiquidContainerRegistry.BUCKET_VOLUME) / 2), 4); if (meta == ColorCode.NONE.ordinal()) { guageMeta = ColorCode.get(stack).ordinal(); diff --git a/src/minecraft/dark/fluid/common/machines/BlockTank.java b/src/minecraft/dark/fluid/common/machines/BlockTank.java index a84cb080..6d9e4419 100644 --- a/src/minecraft/dark/fluid/common/machines/BlockTank.java +++ b/src/minecraft/dark/fluid/common/machines/BlockTank.java @@ -1,6 +1,7 @@ package dark.fluid.common.machines; import hydraulic.api.FluidRestrictionHandler; +import hydraulic.api.INetworkPart; import hydraulic.api.INetworkPipe; import hydraulic.helpers.FluidHelper; @@ -175,9 +176,9 @@ public class BlockTank extends BlockAdvanced TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - if (tileEntity instanceof INetworkPipe) + if (tileEntity instanceof INetworkPart) { - ((INetworkPipe) tileEntity).updateNetworkConnections(); + ((INetworkPart) tileEntity).updateNetworkConnections(); } } @@ -186,9 +187,9 @@ public class BlockTank extends BlockAdvanced { TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - if (tileEntity instanceof INetworkPipe) + if (tileEntity instanceof INetworkPart) { - ((INetworkPipe) tileEntity).updateNetworkConnections(); + ((INetworkPart) tileEntity).updateNetworkConnections(); } } } diff --git a/src/minecraft/dark/fluid/common/machines/TileEntityTank.java b/src/minecraft/dark/fluid/common/machines/TileEntityTank.java index 1360c3d4..7003bddf 100644 --- a/src/minecraft/dark/fluid/common/machines/TileEntityTank.java +++ b/src/minecraft/dark/fluid/common/machines/TileEntityTank.java @@ -5,10 +5,10 @@ import hydraulic.api.IColorCoded; import hydraulic.api.INetworkFluidPart; import hydraulic.api.INetworkPipe; import hydraulic.api.IReadOut; +import hydraulic.network.ContainerNetwork; import hydraulic.network.FluidNetwork; import hydraulic.network.TileNetwork; import hydraulic.prefab.tile.TileEntityFluidDevice; -import hydraulic.prefab.tile.TileEntityFluidStorage; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.INetworkManager; @@ -39,11 +39,11 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai /* CURRENTLY CONNECTED TILE ENTITIES TO THIS */ private TileEntity[] connectedBlocks = new TileEntity[6]; public int[] renderConnection = new int[6]; - + private LiquidTank tank = new LiquidTank(this.getTankSize()); - + /* NETWORK INSTANCE THAT THIS PIPE USES */ - private FluidNetwork fluidNetwork; + private ContainerNetwork fluidNetwork; @Override public void initiate() @@ -83,6 +83,7 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai int id = dataStream.readInt(); if (id == 0) { + this.tank.setLiquid(new LiquidStack(dataStream.readInt(), dataStream.readInt(), dataStream.readInt())); this.renderConnection[0] = dataStream.readInt(); this.renderConnection[1] = dataStream.readInt(); this.renderConnection[2] = dataStream.readInt(); @@ -96,7 +97,12 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai @Override public Packet getDescriptionPacket() { - return PacketManager.getPacket(FluidMech.CHANNEL, this, 0, this.renderConnection[0], this.renderConnection[1], this.renderConnection[2], this.renderConnection[3], this.renderConnection[4], this.renderConnection[5]); + LiquidStack stack = new LiquidStack(0, 0, 0); + if (this.getTank().getLiquid() != null) + { + stack = this.getTank().getLiquid(); + } + return PacketManager.getPacket(FluidMech.CHANNEL, this, 0, stack.itemID, stack.amount, stack.itemMeta, this.renderConnection[0], this.renderConnection[1], this.renderConnection[2], this.renderConnection[3], this.renderConnection[4], this.renderConnection[5]); } /** @@ -131,7 +137,7 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai if (testNetwork) { - string += "|NetID>" + this.getTileNetwork().toString(); + string += "\nNetID>" + this.getTileNetwork().toString(); } return string; @@ -146,11 +152,11 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai @Override public int fill(int tankIndex, LiquidStack resource, boolean doFill) { - if (tankIndex != 0 || resource == null || !this.getColor().isValidLiquid(resource)) + if (tankIndex != 0 || resource == null || !this.getColor().isValidLiquid(resource) || this.worldObj.isRemote) { return 0; } - return ((FluidNetwork) this.getTileNetwork()).storeFluidInSystem(resource, doFill); + return ((ContainerNetwork) this.getTileNetwork()).storeFluidInSystem(resource, doFill); } @Override @@ -162,7 +168,11 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai @Override public LiquidStack drain(int tankIndex, int maxDrain, boolean doDrain) { - return ((FluidNetwork) this.getTileNetwork()).drainFluidFromSystem(maxDrain, doDrain); + if (tankIndex != 0 || this.worldObj.isRemote) + { + return null; + } + return ((ContainerNetwork) this.getTileNetwork()).drainFluidFromSystem(maxDrain, doDrain); } @Override @@ -243,7 +253,7 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai { if (this.fluidNetwork == null) { - this.setTileNetwork(new FluidNetwork(this.getColor(), this)); + this.setTileNetwork(new ContainerNetwork(this.getColor(), this)); } return this.fluidNetwork; } @@ -251,9 +261,9 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai @Override public void setTileNetwork(TileNetwork network) { - if (network instanceof FluidNetwork) + if (network instanceof ContainerNetwork) { - this.fluidNetwork = ((FluidNetwork) network); + this.fluidNetwork = ((ContainerNetwork) network); } } diff --git a/src/minecraft/dark/fluid/common/pump/TileEntityConstructionPump.java b/src/minecraft/dark/fluid/common/pump/TileEntityConstructionPump.java index ccd87012..df654b9c 100644 --- a/src/minecraft/dark/fluid/common/pump/TileEntityConstructionPump.java +++ b/src/minecraft/dark/fluid/common/pump/TileEntityConstructionPump.java @@ -76,7 +76,7 @@ public class TileEntityConstructionPump extends TileEntityRunnableMachine implem { if (outputTile instanceof ITankContainer) { - for (ITankContainer tank : ((FluidNetwork) ((INetworkPipe) inputTile).getTileNetwork()).fluidTanks) + for (ITankContainer tank : ((FluidNetwork) ((INetworkPipe) inputTile).getTileNetwork()).connectedTanks) { if (tank instanceof TileEntityDrain) {