Ejemplo n.º 1
0
        /// <summary>
        /// Creates new instance of game clock and starts it
        /// </summary>
        /// <param name="server"></param>
        /// <param name="startGameTime"></param>
        /// <param name="dayLength"></param>
        public Clock(ServerCore server, UtopiaTime startGameTime, TimeSpan dayLength)
        {
            _clockStartTime = DateTime.Now;
            _gameStartTime  = startGameTime;
            DayLength       = dayLength;

            _server = server;
            _server.Scheduler.AddPeriodic(TimeSpan.FromSeconds(1), Tick);
        }
Ejemplo n.º 2
0
            public void WorldTimeChanged(UtopiaTime currentDateTime)
            {
                _lastTriggerTime = new UtopiaTime();

                while (_lastTriggerTime < currentDateTime)
                {
                    _lastTriggerTime += _triggerSpan;
                }

                _lastTriggerTime = _lastTriggerTime -= _triggerSpan;
            }
Ejemplo n.º 3
0
        public void SetCurrentTime(UtopiaTime time)
        {
            _clockStartTime = DateTime.Now;
            _gameStartTime  = time;

            //Refresh Timer !
            foreach (var t in _clockTimers)
            {
                t.WorldTimeChanged(Now);
            }
        }
Ejemplo n.º 4
0
            public void Update()
            {
                var currentTime = _worldClock.Now;

                if (currentTime - _lastTriggerTime >= _triggerSpan)
                {
                    _lastTriggerTime += _triggerSpan;
                    if (OnTimerRaised != null)
                    {
                        OnTimerRaised(_lastTriggerTime);
                    }
                }
            }
Ejemplo n.º 5
0
 public bool Equals(UtopiaTime other)
 {
     return TotalSeconds == other.TotalSeconds;
 }