/// <summary>
        /// Sends a message to the relevant system(s) on the target client.
        /// </summary>
        public void SendSystemNetworkMessage(EntitySystemMessage message,
                                             NetConnection targetConnection = null,
                                             NetDeliveryMethod method       = NetDeliveryMethod.ReliableUnordered)
        {
            NetOutgoingMessage newMsg = CreateEntityMessage();

            newMsg.Write((byte)EntityMessage.SystemMessage);

            using (var stream = new MemoryStream())
            {
                serializer.Serialize(stream, message);
                newMsg.Write((int)stream.Length);
                newMsg.Write(stream.ToArray());
            }

            //Send the message
            if (targetConnection != null)
            {
                _mNetManager.Peer.SendMessage(newMsg, targetConnection, method);
            }
            else
            {
                _mNetManager.ServerSendToAll(newMsg, method);
            }
        }
        /// <summary>
        /// Sends a message to the relevant system(s) serverside.
        /// </summary>
        public void SendSystemNetworkMessage(EntitySystemMessage message,
                                             NetDeliveryMethod method = NetDeliveryMethod.ReliableUnordered)
        {
            NetOutgoingMessage newMsg = CreateEntityMessage();

            newMsg.Write((byte)EntityMessage.SystemMessage);

            using (var stream = new MemoryStream())
            {
                serializer.Serialize(stream, message);
                newMsg.Write((int)stream.Length);
                newMsg.Write(stream.ToArray());
            }

            //Send the message
            _networkManager.ClientSendMessage(newMsg, method);
        }
Exemple #3
0
        public override void WriteToBuffer(NetOutgoingMessage buffer)
        {
            buffer.Write((byte)Type);

            switch (Type)
            {
            case EntityMessage.SystemMessage:
                ISS14Serializer serializer = IoCManager.Resolve <ISS14Serializer>();
                using (var stream = new MemoryStream())
                {
                    serializer.Serialize(stream, SystemMessage);
                    buffer.Write((int)stream.Length);
                    buffer.Write(stream.ToArray());
                }
                break;

            case EntityMessage.ComponentMessage:
                buffer.Write(EntityId);
                buffer.Write(NetId);
                PackParams(buffer, Parameters);
                break;
            }
        }