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.
This commit is contained in:
Robert Seifert 2013-06-03 05:24:56 -04:00
parent 64877994d4
commit 260602f2e8
4 changed files with 29 additions and 18 deletions

View file

@ -33,7 +33,7 @@ public class RenderTank extends TileEntitySpecialRenderer
int pos = 0; int pos = 0;
if (stack != null) 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()) if (meta == ColorCode.NONE.ordinal())
{ {
guageMeta = ColorCode.get(stack).ordinal(); guageMeta = ColorCode.get(stack).ordinal();

View file

@ -1,6 +1,7 @@
package dark.fluid.common.machines; package dark.fluid.common.machines;
import hydraulic.api.FluidRestrictionHandler; import hydraulic.api.FluidRestrictionHandler;
import hydraulic.api.INetworkPart;
import hydraulic.api.INetworkPipe; import hydraulic.api.INetworkPipe;
import hydraulic.helpers.FluidHelper; import hydraulic.helpers.FluidHelper;
@ -175,9 +176,9 @@ public class BlockTank extends BlockAdvanced
TileEntity tileEntity = world.getBlockTileEntity(x, y, z); 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); TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
if (tileEntity instanceof INetworkPipe) if (tileEntity instanceof INetworkPart)
{ {
((INetworkPipe) tileEntity).updateNetworkConnections(); ((INetworkPart) tileEntity).updateNetworkConnections();
} }
} }
} }

View file

@ -5,10 +5,10 @@ import hydraulic.api.IColorCoded;
import hydraulic.api.INetworkFluidPart; import hydraulic.api.INetworkFluidPart;
import hydraulic.api.INetworkPipe; import hydraulic.api.INetworkPipe;
import hydraulic.api.IReadOut; import hydraulic.api.IReadOut;
import hydraulic.network.ContainerNetwork;
import hydraulic.network.FluidNetwork; import hydraulic.network.FluidNetwork;
import hydraulic.network.TileNetwork; import hydraulic.network.TileNetwork;
import hydraulic.prefab.tile.TileEntityFluidDevice; import hydraulic.prefab.tile.TileEntityFluidDevice;
import hydraulic.prefab.tile.TileEntityFluidStorage;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.INetworkManager; import net.minecraft.network.INetworkManager;
@ -39,11 +39,11 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai
/* CURRENTLY CONNECTED TILE ENTITIES TO THIS */ /* CURRENTLY CONNECTED TILE ENTITIES TO THIS */
private TileEntity[] connectedBlocks = new TileEntity[6]; private TileEntity[] connectedBlocks = new TileEntity[6];
public int[] renderConnection = new int[6]; public int[] renderConnection = new int[6];
private LiquidTank tank = new LiquidTank(this.getTankSize()); private LiquidTank tank = new LiquidTank(this.getTankSize());
/* NETWORK INSTANCE THAT THIS PIPE USES */ /* NETWORK INSTANCE THAT THIS PIPE USES */
private FluidNetwork fluidNetwork; private ContainerNetwork fluidNetwork;
@Override @Override
public void initiate() public void initiate()
@ -83,6 +83,7 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai
int id = dataStream.readInt(); int id = dataStream.readInt();
if (id == 0) if (id == 0)
{ {
this.tank.setLiquid(new LiquidStack(dataStream.readInt(), dataStream.readInt(), dataStream.readInt()));
this.renderConnection[0] = dataStream.readInt(); this.renderConnection[0] = dataStream.readInt();
this.renderConnection[1] = dataStream.readInt(); this.renderConnection[1] = dataStream.readInt();
this.renderConnection[2] = dataStream.readInt(); this.renderConnection[2] = dataStream.readInt();
@ -96,7 +97,12 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai
@Override @Override
public Packet getDescriptionPacket() 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) if (testNetwork)
{ {
string += "|NetID>" + this.getTileNetwork().toString(); string += "\nNetID>" + this.getTileNetwork().toString();
} }
return string; return string;
@ -146,11 +152,11 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai
@Override @Override
public int fill(int tankIndex, LiquidStack resource, boolean doFill) 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 0;
} }
return ((FluidNetwork) this.getTileNetwork()).storeFluidInSystem(resource, doFill); return ((ContainerNetwork) this.getTileNetwork()).storeFluidInSystem(resource, doFill);
} }
@Override @Override
@ -162,7 +168,11 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai
@Override @Override
public LiquidStack drain(int tankIndex, int maxDrain, boolean doDrain) 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 @Override
@ -243,7 +253,7 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai
{ {
if (this.fluidNetwork == null) if (this.fluidNetwork == null)
{ {
this.setTileNetwork(new FluidNetwork(this.getColor(), this)); this.setTileNetwork(new ContainerNetwork(this.getColor(), this));
} }
return this.fluidNetwork; return this.fluidNetwork;
} }
@ -251,9 +261,9 @@ public class TileEntityTank extends TileEntityFluidDevice implements ITankContai
@Override @Override
public void setTileNetwork(TileNetwork network) public void setTileNetwork(TileNetwork network)
{ {
if (network instanceof FluidNetwork) if (network instanceof ContainerNetwork)
{ {
this.fluidNetwork = ((FluidNetwork) network); this.fluidNetwork = ((ContainerNetwork) network);
} }
} }

View file

@ -76,7 +76,7 @@ public class TileEntityConstructionPump extends TileEntityRunnableMachine implem
{ {
if (outputTile instanceof ITankContainer) if (outputTile instanceof ITankContainer)
{ {
for (ITankContainer tank : ((FluidNetwork) ((INetworkPipe) inputTile).getTileNetwork()).fluidTanks) for (ITankContainer tank : ((FluidNetwork) ((INetworkPipe) inputTile).getTileNetwork()).connectedTanks)
{ {
if (tank instanceof TileEntityDrain) if (tank instanceof TileEntityDrain)
{ {