public void OnNext(long value) { _totalTicks++; int currentTotalSeconds = (int)(_totalTicks / TicksInSecond); // var currentTime = DateTime.UtcNow; // var substraction = currentTime.Subtract(Game.StartDate); // var totalSecondsDouble = substraction.TotalSeconds; // int currentTotalSeconds = Convert.ToInt32(totalSecondsDouble); if (currentTotalSeconds == _totalSeconds) { return; } _totalSeconds = currentTotalSeconds; var currentTotalMinutes = currentTotalSeconds + _startGameDate.Hour * MinutesInHour; var currentYear = currentTotalMinutes / (MinutesInHour * HoursInDay * DaysInMonth * MonthesInYear); var currentWithoutYear = currentTotalMinutes % (MinutesInHour * HoursInDay * DaysInMonth * MonthesInYear); var currentMonth = currentWithoutYear / (MinutesInHour * HoursInDay * DaysInMonth); var currentWithoutMonth = currentWithoutYear % (MinutesInHour * HoursInDay * DaysInMonth); var currentDay = currentWithoutMonth / (MinutesInHour * HoursInDay); var currentWithoutDay = currentWithoutMonth % (MinutesInHour * HoursInDay); var currentHour = currentWithoutDay / (MinutesInHour); var currentMinute = currentWithoutDay % (MinutesInHour); _currentGameDate = new GameDateTime(currentYear, currentMonth, currentDay, currentHour, currentMinute); /* * * var currentTotalMinutes = (int)substraction.TotalMinutes + _startGameDate.Hour; * var currentYear = currentTotalMinutes / (24 * 10 * 12); * var currentWithoutYear = currentTotalMinutes % (24 * 10 * 12); * * var currentMonth = currentWithoutYear / (24 * 10); * var currentWithoutMonth = currentWithoutYear % (24 * 10); * * var currentDay = currentWithoutMonth / (24); * var currentWithoutDay = currentWithoutMonth % (24); * * var currentMinute = substraction.Seconds; * * _currentGameDate = new GameDateTime(currentYear, currentMonth, currentDay, currentWithoutDay, currentMinute);*/ }
public DayNightCycle() { _startGameDate = new GameDateTime(0, 0, 0, 8, 0); _currentGameDate = _startGameDate; }