public byte[] Serialize(SerializablePacket packet) { if (packet == null) { throw new ArgumentNullException(nameof(packet)); } packet.OnSerialize(this); using var writer = new GameBinaryWriter(); OnSerialize(writer, _byType[packet.GetType()], packet); return(writer.ToArray()); }
public byte[] Serialize(SerializablePacket packet) { if (packet == null) { throw new ArgumentNullException(nameof(packet)); } if (!_byType.TryGetValue(packet.GetType(), out var info)) { throw new UnmappedMessageException(); } packet.OnSerialize(this); using var writer = new GameBinaryWriter(); OnSerialize(writer, info, packet); return(writer.ToArray()); }