1
0
Fork 0
forked from aly/qstbak
qstbak/LLib/LLib/Throttle.cs
2026-08-17 20:27:25 +10:00

49 lines
1.4 KiB
C#

using System;
namespace LLib;
public struct Throttle
{
private long _nextAllowedMs;
public readonly bool IsReady => _200F_202C_200C_202E_206A_206F_206E_206D_206C_202E_202E_202D_200B_206E_200D_200F_206F_202C_200D_200F_206C_200D_202E_206C_200D_202E_200C_206E_202A_206B_202E_202E_202C_206A_202E_200D_200E_206D_202D_206A_202E() >= _nextAllowedMs;
public bool TryReset(double cooldownSeconds)
{
long num = _200F_202C_200C_202E_206A_206F_206E_206D_206C_202E_202E_202D_200B_206E_200D_200F_206F_202C_200D_200F_206C_200D_202E_206C_200D_202E_200C_206E_202A_206B_202E_202E_202C_206A_202E_200D_200E_206D_202D_206A_202E();
int num2 = ((num >= _nextAllowedMs) ? (-1425131609) : (-1425131610));
while (true)
{
int num3 = num2;
int num4 = -1425131609;
int num5 = num3;
switch ((num5 | num4) - (num5 & num4))
{
case 0:
{
long num6 = (long)(cooldownSeconds * 1000.0);
long num7 = num;
_nextAllowedMs = (num7 | num6) + (num7 & num6);
return true;
}
case 1:
return false;
case 2:
goto IL_0073;
}
continue;
IL_0073:
num2 = -1425131610;
}
}
public void Clear()
{
_nextAllowedMs = 0L;
}
static long _200F_202C_200C_202E_206A_206F_206E_206D_206C_202E_202E_202D_200B_206E_200D_200F_206F_202C_200D_200F_206C_200D_202E_206C_200D_202E_200C_206E_202A_206B_202E_202E_202C_206A_202E_200D_200E_206D_202D_206A_202E()
{
return Environment.TickCount64;
}
}