示例#1
0
        public void Update()
        {
            while (visualManager.HasDataToUpdate())
            {
                var updateChunk = visualManager.GetDataToUpdate();
                var chunkData   = visualManager.World.GetRowData(updateChunk);
                var index       = chunksCords.IndexOf(updateChunk);
                chunksCords[index]     = updateChunk;
                chunkSidesCount[index] = chunkData.Length / 6;
                SendData(index, chunkData);
            }

            if (visualManager.HasDataToAdd())
            {
                var(newChunk, chunkForDelete) = visualManager.GetDataToAdd();
                var chunkData = visualManager.World.GetRowData(newChunk);
                int index;
                var sidesCount = chunkData.Length / 6;
                if (Equals(chunkForDelete, newChunk))
                {
                    chunksCords.Add(newChunk);
                    chunkSidesCount.Add(sidesCount);
                    index = chunksCords.Count - 1;
                }
                else
                {
                    index = chunksCords.IndexOf(chunkForDelete);
                    chunksCords[index]     = newChunk;
                    chunkSidesCount[index] = sidesCount;
                }

                SendData(index, chunkData);
            }
        }