quakeball/Assets/Scripts/TeaNet/Packets/Packet.cs

41 lines
958 B
C#
Raw Normal View History

namespace NeonTea.Quakeball.TeaNet.Packets {
2020-08-05 03:21:04 +02:00
public abstract class Packet {
public bool Reliable = true;
public int Id;
2020-08-05 03:21:04 +02:00
public abstract void Write(ByteBuffer buffer);
public abstract void Read(ByteBuffer buffer);
public void ReadMeta(ByteBuffer buffer) {
Id = buffer.ReadInt();
Reliable = buffer.ReadBool();
}
public void WriteMeta(ByteBuffer buffer) {
2020-08-05 20:38:37 +02:00
buffer.Write(Id);
buffer.Write(Reliable);
}
public Packet ShallowCopy() {
return (Packet)this.MemberwiseClone();
}
2020-08-05 03:21:04 +02:00
}
public interface Serializable {
void Write(ByteBuffer buffer);
void Read(ByteBuffer buffer);
}
2020-08-05 03:21:04 +02:00
public enum PacketStage {
Establishing = 0,
Rejected = 1,
Closed = 2,
Ready = 3,
}
public enum ClosingReason {
Unknown = 0,
IncorrectVersion = 1,
2020-08-05 03:21:04 +02:00
}
}