using UnityEngine; namespace DebuggingEssentials { public class FastIntQueue : FastQueue { public FastIntQueue(int capacity) : base(capacity) { } public void EnqueueRange(int startIndex, int endIndex) { for (int i = startIndex; i < endIndex; i++) { Enqueue(i); } } public void ClearAndEnqueueRange(int startIndex, int endIndex) { FastClear(); EnqueueRange(startIndex, endIndex); } public override void Dequeue(int item) { if (_count == 0) { Debug.LogError("FastQueue is empty!"); return; } int num = -1; int i; for (i = 0; i < _count; i++) { num = (i + head) % items.Length; if (items[num] == item) { break; } } if (i == _count) { Debug.LogError("Item not found in FastQueue"); return; } Count = --_count; for (int num2 = i; num2 >= 1; num2--) { num = (num2 + head) % items.Length; int num3 = (num2 + (head - 1)) % items.Length; items[num] = items[num3]; } items[head] = 0; head = (head + 1) % items.Length; } } }