/** * Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team * http://www.mod-buildcraft.com * <p/> * BuildCraft is distributed under the terms of the Minecraft Mod Public * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ package buildcraft.core.lib.network; import io.netty.buffer.ByteBuf; import buildcraft.api.core.ISerializable; public abstract class PacketUpdate extends Packet { public ByteBuf stream; public ISerializable payload; private int packetId; public PacketUpdate() { } public PacketUpdate(int packetId, ISerializable payload) { this(packetId); this.payload = payload; } public PacketUpdate(int packetId) { this.packetId = packetId; this.isChunkDataPacket = true; } @Override public void writeData(ByteBuf data) { data.writeByte(packetId); writeIdentificationData(data); if (payload != null) { payload.writeData(data); } } public abstract void writeIdentificationData(ByteBuf data); @Override public void readData(ByteBuf data) { packetId = data.readByte(); readIdentificationData(data); stream = data; // for further reading } public abstract void readIdentificationData(ByteBuf data); @Override public int getID() { return packetId; } }