Files
test/Assets/PerfectWorld/Scripts/Common/CECTimeSafeChecker.cs
T
2025-11-08 18:51:00 +07:00

84 lines
2.1 KiB
C#

using UnityEngine;
namespace BrewMonster.Common
{
public class CECTimeSafeChecker
{
uint m_dwBeginTick;
uint m_dwTimeLength;
public CECTimeSafeChecker()
{
m_dwBeginTick = 0;
m_dwTimeLength = 0;
}
void Reset(uint dwCurrentTickCount, uint dwTimeLength)
{
m_dwBeginTick = dwCurrentTickCount;
m_dwTimeLength = dwTimeLength;
}
void Reset(uint dwTimeLength)
{
Reset((uint)Time.realtimeSinceStartupAsDouble, dwTimeLength);
}
public void Reset()
{
Reset((uint)Time.realtimeSinceStartupAsDouble, m_dwTimeLength);
}
public bool IsTimeArrived()
{
return IsTimeArrived((uint)Time.realtimeSinceStartupAsDouble);
}
bool IsTimeArrived(uint dwCurrentTickCount)
{
return ElapsedTime(dwCurrentTickCount) >= TimeLength();
}
uint ElapsedTime(uint dwEndTickCount, uint dwBeginTickCount)
{
return (dwEndTickCount >= dwBeginTickCount) ? (dwEndTickCount - dwBeginTickCount) : 0;
}
uint ElapsedTime(uint dwCurrentTickCount)
{
return ElapsedTime(dwCurrentTickCount, m_dwBeginTick);
}
uint ElapsedTimeFor(uint dwBeginTickCount)
{
return ElapsedTime((uint)Time.realtimeSinceStartupAsDouble, dwBeginTickCount);
}
uint ElapsedTime()
{
return ElapsedTime((uint)Time.realtimeSinceStartupAsDouble);
}
uint TimeLength()
{
return m_dwTimeLength;
}
uint LeftTime(uint dwCurrentTickCount)
{
uint result = 0;
uint dwElapsedTime = ElapsedTime(dwCurrentTickCount);
if (dwElapsedTime<TimeLength()){
result = TimeLength() - dwElapsedTime;
}
return result;
}
public uint LeftTime(){
return LeftTime((uint)Time.realtimeSinceStartupAsDouble);
}
}
}