Attempt to fix pipe packets

This commit is contained in:
Calclavia 2014-11-10 22:29:33 +08:00
parent 839d5f0abc
commit 6b625208fc
3 changed files with 24 additions and 33 deletions

View file

@ -72,26 +72,24 @@ abstract class PartFramedNode extends PartAbstract with TPartNodeProvider with T
def isCurrentlyConnected(side: ForgeDirection): Boolean = connectionMapContainsSide(clientRenderMask, side)
/** Packet Methods */
def sendConnectionUpdate()
{
if (!world.isRemote)
tile.getWriteStream(this).writeByte(0).writeByte(node.connectedMask)
}
override def write(packet: MCDataOutput, id: Int)
{
super.write(packet, id)
packet.writeByte(node.connectedMask)
if (id == 0)
{
// packet.writeByte(0)
// packet.writeByte(node.connectedMask.toByte)
}
}
override def read(packet: MCDataInput, packetID: Int)
override def read(packet: MCDataInput, id: Int)
{
super.read(packet, packetID)
super.read(packet, id)
if (packetID == 0)
if (id == 0)
{
clientRenderMask = packet.readByte
// clientRenderMask = packet.readByte()
tile.markRender()
}
}

View file

@ -30,7 +30,7 @@ class PartFramedWire extends PartFramedNode with TWire
super.reconstruct()
if (connectionMask != prevCon)
sendConnectionUpdate()
sendPacket(0)
}
override def connect[B <: DCNode](obj: B, dir: ForgeDirection) =

View file

@ -32,7 +32,7 @@ class PartPipe extends PartFramedNode with TMaterial[PipeMaterial] with TColorab
private var markPacket = true
material = PipeMaterials.ceramic
node.onConnectionChanged = () => sendConnectionUpdate()
node.onConnectionChanged = () => sendPacket(0)
def preparePlacement(meta: Int)
{
@ -64,42 +64,35 @@ class PartPipe extends PartFramedNode with TMaterial[PipeMaterial] with TColorab
*/
override def write(packet: MCDataOutput, id: Int)
{
super[TMaterial].write(packet,id)
super[PartFramedNode].write(packet,id)
super[TColorable].write(packet,id)
super[PartFramedNode].write(packet, id)
if(id == 3)
// super[TMaterial].write(packet, id)
// super[TColorable].write(packet, id)
/*
if (id == 3)
{
//Tank Packet
val nbt = new NBTTagCompound
var averageAmount: Int = 0
if (averageTankData.size > 0)
{
for (i <- 0 until averageTankData.size)
{
{
averageAmount += averageTankData.get(i)
}
}
averageAmount /= averageTankData.size
}
val averageAmount = averageTankData.reduce(_ + _) / averageTankData.size
val tempTank = if (tank.getFluid != null) new FluidTank(tank.getFluid.getFluid, averageAmount, tank.getCapacity) else new FluidTank(tank.getCapacity)
tempTank.writeToNBT(nbt)
packet.writeInt(tank.getCapacity).writeNBTTagCompound(nbt)
}
}*/
}
override def read(packet: MCDataInput, packetID: Int)
{
super[PartFramedNode].read(packet, packetID)
super[TColorable].read(packet, packetID)
// super[TMaterial].read(packet, packetID)
// super[TColorable].read(packet, packetID)
/*
if (packetID == 3)
{
tank.setCapacity(packet.readInt)
tank.readFromNBT(packet.readNBTTagCompound)
}
}*/
}
/**