1
0

isIdle.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. let paused = false;
  2. let pausedAt = 0;
  3. let totalPausedTime = 0;
  4. export function isCharacterIdle(time_before_idle_sec:string, lastAwake: number): boolean {
  5. let sinceLastAwakeSec = ((new Date()).getTime() - lastAwake - totalPausedTime) / 1000;
  6. let timeBeforeIdleSec = parseInt(time_before_idle_sec);
  7. return sinceLastAwakeSec >= timeBeforeIdleSec;
  8. }
  9. export function characterIdleTime(time_before_idle_sec:string, lastAwake: number): number {
  10. let sinceLastAwakeSec = ((new Date()).getTime() - lastAwake - totalPausedTime) / 1000;
  11. let timeBeforeIdleSec = parseInt(time_before_idle_sec);
  12. return sinceLastAwakeSec - timeBeforeIdleSec;
  13. }
  14. export function pauseIdleTimer(): void {
  15. if (!paused) {
  16. paused = true;
  17. pausedAt = (new Date()).getTime();
  18. }
  19. }
  20. export function resumeIdleTimer(): void {
  21. if (paused) {
  22. paused = false;
  23. totalPausedTime += (new Date()).getTime() - pausedAt;
  24. }
  25. }
  26. export function resetIdleTimer(): void {
  27. paused = false;
  28. pausedAt = 0;
  29. totalPausedTime = 0;
  30. }
  31. const idleUtils = {
  32. isCharacterIdle,
  33. characterIdleTime,
  34. pauseIdleTimer,
  35. resumeIdleTimer,
  36. resetIdleTimer,
  37. };
  38. export default idleUtils;