Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="msg"></param>
        void DispatchUserCommand(GameTime gameTime, NetIncomingMessage msg)
        {
            var snapshotID = msg.ReadUInt32();
            var commandID  = msg.ReadUInt32();
            var size       = msg.ReadInt32();

            var data = msg.ReadBytes(size);

            var state = msg.SenderConnection.GetState();

            //	we got user command and (command count=1)
            //	this means that client receives snapshot:
            if (state.CommandCounter == 1)
            {
                serverInstance.ClientActivated(msg.SenderConnection.PeekHailGuid());
            }

            //	do not feed server with empty command.
            if (data.Length > 0)
            {
                serverInstance.FeedCommand(msg.SenderConnection.PeekHailGuid(), data, commandID, 0);
            }

            //	set snapshot request when command get.
            msg.SenderConnection.GetState().RequestSnapshot(snapshotID, commandID);
        }