using System;
using System.Timers;
using GTANetworkAPI;

namespace ReallifeGamemode.Server.Managers
{
  public class TimeManager
  {
    private static Timer realTimeTimer;

    public static TimeSpan CurrentTime { get; private set; }

    public static void StartTimeManager()
    {
      if (realTimeTimer == null)
      {
        realTimeTimer = new Timer(1000);
        realTimeTimer.Elapsed += SetTime;
      }

      realTimeTimer.Start();
    }

    public static void PauseTimeManager(TimeSpan time)
    {
      realTimeTimer.Stop();
      CurrentTime = time;
    }

    private static void SetTime(object sender, ElapsedEventArgs args)
    {
      DateTime now = DateTime.Now;
      CurrentTime = now.TimeOfDay;
      NAPI.Task.Run(() => { 
      NAPI.World.SetTime(now.Hour, now.Minute, now.Second);
    });
  }
  }
}
