public bool HasEnqueued(ChunkCoordinates coordinates) { if (ChunkQueues.TryGetValue(coordinates, out var queue)) { return(!queue.IsEmpty); } return(false); }
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); }