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); } }