Rewrote the Pipe Contents packet

Probably cut the packet length in half, there was a lot of unneeded
bytes.

Also removed the chunkPacket marker. This is not a high priority packet.
This commit is contained in:
CovertJaguar 2012-11-23 05:54:18 -08:00
parent cd49e61f57
commit 1817ae6936
2 changed files with 87 additions and 40 deletions

View file

@ -1,13 +1,14 @@
package buildcraft.transport.network;
import buildcraft.core.network.PacketCoordinates;
import buildcraft.core.network.PacketIds;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.liquids.LiquidStack;
import buildcraft.core.network.PacketCoordinates;
import buildcraft.core.network.PacketIds;
public class PacketLiquidUpdate extends PacketCoordinates{
@ -17,10 +18,8 @@ public class PacketLiquidUpdate extends PacketCoordinates{
public PacketLiquidUpdate(int xCoord, int yCoord, int zCoord) {
super(PacketIds.PIPE_LIQUID, xCoord, yCoord, zCoord);
}
public PacketLiquidUpdate() {
}
public PacketLiquidUpdate() {}
@Override
public void readData(DataInputStream data) throws IOException {
@ -31,7 +30,6 @@ public class PacketLiquidUpdate extends PacketCoordinates{
int liquidMeta = data.readInt();
displayLiquid[direction.ordinal()] = new LiquidStack(liquidId, liquidQuantity, liquidMeta);
}
}
@Override
@ -47,8 +45,11 @@ public class PacketLiquidUpdate extends PacketCoordinates{
data.writeInt(0);
data.writeInt(0);
}
}
}
@Override
public int getID() {
return PacketIds.PIPE_LIQUID;
}
}

View file

@ -1,78 +1,124 @@
package buildcraft.transport.network;
import buildcraft.core.network.PacketCoordinates;
import buildcraft.core.network.PacketIds;
import buildcraft.transport.EntityData;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.core.network.PacketIds;
import buildcraft.core.network.PacketPayload;
import buildcraft.core.network.PacketUpdate;
public class PacketPipeTransportContent extends PacketCoordinates {
import buildcraft.transport.EntityData;
private EntityData entityData;
public class PacketPipeTransportContent extends PacketUpdate {
private int entityId;
public PacketPipeTransportContent() {
super(PacketIds.PIPE_CONTENTS);
}
private ForgeDirection input;
private ForgeDirection output;
private int itemId;
private byte stackSize;
private int itemDamage;
private float itemX;
private float itemY;
private float itemZ;
private float speed;
public PacketPipeTransportContent() {}
public PacketPipeTransportContent(int x, int y, int z, EntityData data) {
this();
super(PacketIds.PIPE_CONTENTS, x, y, z);
this.entityData = data;
}
this.posX = x;
this.posY = y;
this.posZ = z;
@Override
public void writeData(DataOutputStream data) throws IOException {
super.writeData(data);
this.payload = new PacketPayload(6, 4, 0);
data.writeInt(entityData.item.getEntityId());
payload.intPayload[0] = data.item.getEntityId();
payload.intPayload[1] = data.input.ordinal();
payload.intPayload[2] = data.output.ordinal();
payload.intPayload[3] = data.item.getItemStack().itemID;
payload.intPayload[4] = data.item.getItemStack().stackSize;
payload.intPayload[5] = data.item.getItemStack().getItemDamage();
data.writeByte((byte)entityData.input.ordinal());
data.writeByte((byte)entityData.output.ordinal());
payload.floatPayload[0] = (float) data.item.getPosition().x;
payload.floatPayload[1] = (float) data.item.getPosition().y;
payload.floatPayload[2] = (float) data.item.getPosition().z;
payload.floatPayload[3] = data.item.getSpeed();
data.writeInt(entityData.item.getItemStack().itemID);
data.writeByte((byte)entityData.item.getItemStack().stackSize);
data.writeInt(entityData.item.getItemStack().getItemDamage());
data.writeFloat((float) entityData.item.getPosition().x);
data.writeFloat((float) entityData.item.getPosition().y);
data.writeFloat((float) entityData.item.getPosition().z);
data.writeFloat(entityData.item.getSpeed());
}
@Override
public void readData(DataInputStream data) throws IOException {
super.readData(data);
this.entityId = data.readInt();
this.input = ForgeDirection.getOrientation(data.readByte());
this.output = ForgeDirection.getOrientation(data.readByte());
this.itemId = data.readInt();
this.stackSize = data.readByte();
this.itemDamage = data.readInt();
this.itemX = data.readFloat();
this.itemY = data.readFloat();
this.itemZ = data.readFloat();
this.speed = data.readFloat();
}
public int getEntityId() {
return payload.intPayload[0];
return entityId;
}
public ForgeDirection getInputOrientation() {
return ForgeDirection.values()[payload.intPayload[1]];
return input;
}
public ForgeDirection getOutputOrientation() {
return ForgeDirection.values()[payload.intPayload[2]];
return output;
}
public int getItemId() {
return payload.intPayload[3];
return itemId;
}
public int getStackSize() {
return payload.intPayload[4];
return stackSize;
}
public int getItemDamage() {
return payload.intPayload[5];
return itemDamage;
}
public double getPosX() {
return payload.floatPayload[0];
return itemX;
}
public double getPosY() {
return payload.floatPayload[1];
return itemY;
}
public double getPosZ() {
return payload.floatPayload[2];
return itemZ;
}
public float getSpeed() {
return payload.floatPayload[3];
return speed;
}
@Override
public int getID() {
return PacketIds.PIPE_CONTENTS;
}
}