public void HandleSystemMessage(EntitySystemData sysMsg) { int messageLength = sysMsg.message.ReadInt32(); EntitySystemMessage deserialized; using (var stream = new MemoryStream(sysMsg.message.ReadBytes(messageLength))) { deserialized = serializer.Deserialize <EntitySystemMessage>(stream); } foreach (var current in SystemMessageTypes.Where(x => x.Key == deserialized.GetType())) { current.Value.HandleNetMessage((EntitySystemMessage)deserialized); } }
public override void ReadFromBuffer(NetIncomingMessage buffer) { Type = (EntityMessage)buffer.ReadByte(); Sender = buffer.SenderConnection; switch (Type) { case EntityMessage.SystemMessage: ISS14Serializer serializer = IoCManager.Resolve <ISS14Serializer>(); int messageLength = buffer.ReadInt32(); using (var stream = new MemoryStream(buffer.ReadBytes(messageLength))) { SystemMessage = serializer.Deserialize <EntitySystemMessage>(stream); } break; case EntityMessage.ComponentMessage: EntityId = buffer.ReadInt32(); NetId = buffer.ReadUInt32(); Parameters = UnPackParams(buffer); break; } }