示例#1
0
 /// <summary>
 /// Force execute all events at a given time
 /// </summary>
 /// <param name="timeToExecuteOn">Time to execute on</param>
 public void ForceExecuteAllEvents(SavedTime timeToExecuteOn)
 {
     OnSecondChange?.Invoke(timeToExecuteOn);
     OnMinuteChange?.Invoke(timeToExecuteOn);
     OnDayPhaseChange?.Invoke(timeToExecuteOn);
     OnHourChange?.Invoke(timeToExecuteOn);
     OnDayChange?.Invoke(timeToExecuteOn);
     OnMonthChange?.Invoke(timeToExecuteOn);
     OnYearChange?.Invoke(timeToExecuteOn);
 }
示例#2
0
        private void DoTimeEventsUpdate()
        {
            SavedTime thisUpdateTime = MainClock.NowTime;

            if (thisUpdateTime.Seconds != lastUpdateTime.Seconds)
            {
                OnSecondChange?.Invoke(thisUpdateTime);

                if (thisUpdateTime.Minutes != lastUpdateTime.Minutes)
                {
                    OnMinuteChange?.Invoke(thisUpdateTime);

                    if (thisUpdateTime.Hours24 != lastUpdateTime.Hours24)
                    {
                        if (thisUpdateTime.DayPhase != lastUpdateTime.DayPhase)
                        {
                            OnDayPhaseChange?.Invoke(thisUpdateTime);
                        }

                        OnHourChange?.Invoke(thisUpdateTime);

                        if (thisUpdateTime.Day != lastUpdateTime.Day)
                        {
                            OnDayChange?.Invoke(thisUpdateTime);

                            if (thisUpdateTime.Month != lastUpdateTime.Month)
                            {
                                OnMonthChange?.Invoke(thisUpdateTime);

                                if (thisUpdateTime.Year != lastUpdateTime.Year)
                                {
                                    OnYearChange?.Invoke(thisUpdateTime);
                                }
                            }
                        }
                    }
                }
            }

            lastUpdateTime = thisUpdateTime;
        }