public void Deserialize(byte[] payload, SerializablePacket packet) { if (payload == null) { throw new ArgumentNullException(nameof(payload)); } if (packet == null) { throw new ArgumentNullException(nameof(packet)); } using var reader = new GameBinaryReader(payload); OnDeserialize(reader, _byType[packet.GetType()], packet); packet.OnDeserialize(this); }
public void Deserialize(byte[] buffer, int index, int count, SerializablePacket packet) { if (packet == null) { throw new ArgumentNullException(nameof(packet)); } if (!_byType.TryGetValue(packet.GetType(), out var info)) { throw new UnmappedMessageException(); } using var reader = new GameBinaryReader(buffer, index, count); OnDeserialize(reader, info, packet); packet.OnDeserialize(this); }