コード例 #1
0
        public static void SendCommand(Command com)
        {
            if (sendType == SendState.None)
            {
                return;
            }
            outCommands.Add(com);

            if (SendAggregated == false)
            {
                bufferedBytes.FastClear();
                if (sendType == SendState.Network)
                {
                    for (int i = 0; i < outCommands.Count; i++)
                    {
                        bufferedBytes.AddRange(outCommands [i].Serialized);
                    }
                    outCommands.FastClear();
                    if (bufferedBytes.Count > 0)
                    {
                        ClientManager.Distribute(bufferedBytes.ToArray());
                    }
                }
            }
        }
コード例 #2
0
 /// <summary>
 /// Sends out all Commands
 /// </summary>
 public static void SendOut()
 {
     if (bufferedBytes.Count > 0)
     {
         ClientManager.Distribute(bufferedBytes.ToArray());
         bufferedBytes.FastClear();
     }
 }
コード例 #3
0
ファイル: CommandManager.cs プロジェクト: fqkw6/AStartTest
        /// <summary>
        /// Sends out all Commands
        /// </summary>
        public static void SendOut()
        {
            if (outCommands.Count > 0)
            {
                bufferedBytes.FastClear();

                for (int i = 0; i < outCommands.Count; i++)
                {
                    bufferedBytes.AddRange(outCommands [i].Serialized);
                }
                if (bufferedBytes.Count > 0)
                {
                    ClientManager.Distribute(bufferedBytes.ToArray());
                }

                outCommands.FastClear();
            }
        }
コード例 #4
0
        public static void Simulate()
        {
            if (sendType == SendState.None)
            {
                return;
            }

            {
                bufferedBytes.FastClear();

                switch (sendType)
                {
                case SendState.Network:
                    if (SendAggregated)
                    {
                        for (int i = 0; i < outCommands.Count; i++)
                        {
                            bufferedBytes.AddRange(outCommands [i].Serialized);
                        }
                        if (bufferedBytes.Count > 0)
                        {
                            ClientManager.Distribute(bufferedBytes.ToArray());
                        }
                    }
                    break;

                case SendState.Offline:
                    bufferedBytes.AddRange(BitConverter.GetBytes(LockstepManager.InfluenceFrameCount));
                    for (int i = 0; i < outCommands.Count; i++)
                    {
                        bufferedBytes.AddRange(outCommands [i].Serialized);
                    }
                    ProcessPacket(bufferedBytes.ToArray());
                    break;
                }
                outCommands.FastClear();
                NextFrameCount++;
            }
        }