using System.Collections;  
 | 
using System.Collections.Generic;  
 | 
using UnityEngine;  
 | 
using System;  
 | 
  
 | 
  
 | 
public class GlobalTimeEvent : SingletonMonobehaviour<GlobalTimeEvent>  
 | 
  
 | 
{  
 | 
    public event Action secondEvent;  
 | 
    public event Action fiveSecondEvent;  
 | 
    public event Action minuteEvent;  
 | 
    public event Action fiveMinuteEvent;  
 | 
    public event Action tenMinuteEvent;  
 | 
    public event Action halfHourEvent;  
 | 
    public event Action hourEvent;  
 | 
    public event Action halfMinuteEvent;  
 | 
  
 | 
    int secondBuf = -1;  
 | 
    int fiveSecondBuf = -1;  
 | 
    int minuteBuf = -1;  
 | 
    int fiveMinuteBuf = -1;  
 | 
    int tenMinuteBuf = -1;  
 | 
    int halfHourBuf = -1;  
 | 
    int hourBuf = -1;  
 | 
    int halfMinuteBuf = -1;  
 | 
  
 | 
    public void Begin()  
 | 
    {  
 | 
  
 | 
    }  
 | 
  
 | 
    private void Update()  
 | 
    {  
 | 
        var second = DateTime.Now.Second;  
 | 
        if (second != secondBuf)  
 | 
        {  
 | 
            if (secondEvent != null)  
 | 
            {  
 | 
                secondEvent();  
 | 
            }  
 | 
  
 | 
            secondBuf = second;  
 | 
        }  
 | 
  
 | 
  
 | 
        var fiveSecond = second / 5;  
 | 
        if (fiveSecondBuf != fiveSecond)  
 | 
        {  
 | 
            try  
 | 
            {  
 | 
                if (fiveSecondEvent != null)  
 | 
                {  
 | 
                    fiveSecondEvent();  
 | 
                }  
 | 
            }  
 | 
            catch (Exception ex)  
 | 
            {  
 | 
                Debug.LogException(ex);  
 | 
            }  
 | 
            finally  
 | 
            {  
 | 
                fiveSecondBuf = fiveSecond;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        var minute = DateTime.Now.Minute;  
 | 
        if (minuteBuf != minute)  
 | 
        {  
 | 
            try  
 | 
            {  
 | 
                if (minuteEvent != null)  
 | 
                {  
 | 
                    minuteEvent();  
 | 
                }  
 | 
            }  
 | 
            catch (Exception ex)  
 | 
            {  
 | 
                Debug.LogException(ex);  
 | 
            }  
 | 
            finally  
 | 
            {  
 | 
                minuteBuf = minute;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        var thirtySeconds = second / 30;  
 | 
        if (halfMinuteBuf != thirtySeconds)  
 | 
        {  
 | 
            try  
 | 
            {  
 | 
                if (halfMinuteEvent != null)  
 | 
                {  
 | 
                    halfMinuteEvent();  
 | 
                }  
 | 
            }  
 | 
            catch (Exception ex)  
 | 
            {  
 | 
                Debug.LogException(ex);  
 | 
            }  
 | 
            finally  
 | 
            {  
 | 
                halfMinuteBuf = thirtySeconds;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        var fiveMinute = minute / 5;  
 | 
        if (fiveMinuteBuf != fiveMinute)  
 | 
        {  
 | 
            try  
 | 
            {  
 | 
                if (fiveMinuteEvent != null)  
 | 
                {  
 | 
                    fiveMinuteEvent();  
 | 
                }  
 | 
            }  
 | 
            catch (Exception ex)  
 | 
            {  
 | 
                Debug.LogException(ex);  
 | 
            }  
 | 
            finally  
 | 
            {  
 | 
                fiveMinuteBuf = fiveMinute;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        var tenMinute = minute / 10;  
 | 
        if (tenMinuteBuf != tenMinute)  
 | 
        {  
 | 
            try  
 | 
            {  
 | 
                if (tenMinuteEvent != null)  
 | 
                {  
 | 
                    tenMinuteEvent();  
 | 
                }  
 | 
            }  
 | 
            catch (Exception ex)  
 | 
            {  
 | 
                Debug.LogException(ex);  
 | 
            }  
 | 
            finally  
 | 
            {  
 | 
                tenMinuteBuf = tenMinute;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        var thirtyMinute = minute / 30;  
 | 
        if (halfHourBuf != thirtyMinute)  
 | 
        {  
 | 
            try  
 | 
            {  
 | 
                if (halfHourEvent != null)  
 | 
                {  
 | 
                    halfHourEvent();  
 | 
                }  
 | 
            }  
 | 
            catch (Exception ex)  
 | 
            {  
 | 
                Debug.LogException(ex);  
 | 
            }  
 | 
            finally  
 | 
            {  
 | 
                halfHourBuf = thirtyMinute;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        var hour = DateTime.Now.Hour;  
 | 
        if (hourBuf != hour)  
 | 
        {  
 | 
            try  
 | 
            {  
 | 
                if (hourEvent != null)  
 | 
                {  
 | 
                    hourEvent();  
 | 
                }  
 | 
            }  
 | 
            catch (Exception ex)  
 | 
            {  
 | 
                Debug.LogException(ex);  
 | 
            }  
 | 
            finally  
 | 
            {  
 | 
                hourBuf = hour;  
 | 
            }  
 | 
        }  
 | 
  
 | 
    }  
 | 
  
 | 
  
 | 
}  
 |