namespace SpriteCompiler.Adapters { using Priority_Queue; using SpriteCompiler.AI; using SpriteCompiler.AI.Queue; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; public class QueueAdapter : IQueue where T : ISearchNode where C : ICost { private readonly SimplePriorityQueue queue = new SimplePriorityQueue(); public bool Empty { get { return queue.Count == 0; } } public void AddRange(IEnumerable items) { foreach (var item in items) { #if VERBOSE_DEBUG Console.WriteLine("Enqueuing " + item + " with cost " + item.EstCost); #endif queue.Enqueue(item, item.EstCost); } } public void Clear() { queue.Clear(); } public void Enqueue(T item) { queue.Enqueue(item, item.EstCost); } public T Remove() { return queue.Dequeue(); } } }