public BitBuffer WriteAllSyncData(BitBuffer outBuffer)
 {
     for (int i = 0; i < m_syncs.Count; i++)
     {
         outBuffer.AddSyncVar(m_syncs[i], false);
     }
     return(outBuffer);
 }
        /// <summary>
        /// Only called on the server where the peer is present.
        /// </summary>
        public void UpdateSyncs()
        {
            if (CanUpdate() == false)
            {
                return;
            }

            m_nextUpdate += m_updateRate;

            int dirtyBits = 0;

            for (int i = 0; i < m_syncs.Count; i++)
            {
                if (m_syncs[i].Dirty)
                {
                    dirtyBits = dirtyBits | m_syncs[i].BitFlag;
                }
            }

            if (dirtyBits == 0)
            {
                return;
            }

            m_buffer.AddEntityHeader(m_peer, OpCodes.SyncUpdate);
            m_buffer.AddInt(dirtyBits);

            for (int i = 0; i < m_syncs.Count; i++)
            {
                if (m_syncs[i].Dirty)
                {
                    m_buffer.AddSyncVar(m_syncs[i]);
                }
            }

            var packet  = m_buffer.GetPacketFromBuffer(PacketFlags.Reliable);
            var command = GameCommandPool.GetGameCommand();

            command.Type    = CommandType.BroadcastAll;
            command.Packet  = packet;
            command.Channel = 0;

            Debug.Log($"Sending dirtyBits: {dirtyBits}  Length: {packet.Length}");

            m_network.AddCommandToQueue(command);
        }