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);
            }
        }
Exemple #2
0
        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;
            }
        }