Files
Ultimate-Fishing-Simulator-…/Assets/Plugins/Assembly-CSharp-firstpass/DebuggingEssentials/FastIntQueue.cs
2026-03-04 09:37:33 +08:00

60 lines
1.0 KiB
C#

using UnityEngine;
namespace DebuggingEssentials
{
public class FastIntQueue : FastQueue<int>
{
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;
}
}
}