Пример #1
0
        public bool HasEnqueued(ChunkCoordinates coordinates)
        {
            if (ChunkQueues.TryGetValue(coordinates, out var queue))
            {
                return(!queue.IsEmpty);
            }

            return(false);
        }
Пример #2
0
        public bool Process(ChunkCoordinates coordinates)
        {
            int count = 0;

            if (ChunkQueues.TryGetValue(coordinates, out var queue))
            {
                while (queue.TryDequeue(out var coords) && !CancellationToken.IsCancellationRequested)
                {
                    ProcessNode(World, coords, queue);
                    count++;
                }

                if (queue.IsEmpty)
                {
                    ChunkQueues.TryRemove(coordinates, out _);
                }
            }

            return(count > 0);
        }