/*Private methods*/ private IEnumerator UpdateGameTime() { while (true) { yield return(new WaitForSeconds(TIME_UPDATE_FREQUENCY)); //Next days occurs when time specified by //TIME_UPDATE_FREQUENCY passes DateTime newTime = CurrentTime.AddDays(1); ++DaysSinceStart; DayChanged?.Invoke(); if (newTime.Month != CurrentTime.Month) { MonthChanged?.Invoke(); } if (newTime.Year != CurrentTime.Year) { YearChanged?.Invoke(); } CurrentTime = newTime; } }
private DateTimeService() { lastNow = Now; tPeriodical = new AsyncTimerAction(TimeSpan.FromSeconds(1), () => { now = Now; if (now.Minute != lastNow.Minute) { tPeriodical.Interval = TimeSpan.FromMinutes(1); MinuteChanged?.Invoke(this, now); if (now.Hour != lastNow.Hour) { HourChanged?.Invoke(this, now); } if (now.Day != lastNow.Day) { DayChanged?.Invoke(this, now); } if (now.Month != lastNow.Month) { MonthChanged?.Invoke(this, now); } if (now.Year != lastNow.Year) { YearChanged?.Invoke(this, now); } } lastNow = now; }); tPeriodical.Start(); }
private void GameDateComponent_TimeChanged(GameDateComponent sender) { if (prevMinute != Minute) { prevMinute = Minute; if (MinuteChanged != null) { MinuteChanged.Invoke(this); } } if (prevHour != Hour) { prevHour = Hour; if (HourChanged != null) { HourChanged.Invoke(this); } } if (prevDay != Day) { prevDay = Day; if (DayChanged != null) { DayChanged.Invoke(this); } } if (prevMonth != Month) { prevMonth = Month; if (MonthChanged != null) { MonthChanged.Invoke(this); } } if (prevYear != Year) { prevYear = Year; if (YearChanged != null) { YearChanged.Invoke(this); } } }
/// <summary> /// Reaction for next month button /// </summary> private void NextMonth_Click(object sender, RoutedEventArgs e) { monthOffset++; CreateMonth(); MonthChanged?.Invoke(this, e); }
private void OnMonthChanged() { var month = Index + 1; MonthChanged?.Invoke(this, new MonthChangedEvent(month)); }
public void NotifyMonthChanged(DateTime month) { MonthChanged.Dispatch(this, month); }