84 lines
2.1 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|