Ejemplo n.º 1
0
 private static Tick advanceTick(Tick tick, double tickDuration, DateTime checkTime)
 {
     if (tick.ScheduledEnd > checkTime)
     {
         return tick;
     }
     return new Tick(tick.Number + 1, checkTime, checkTime.AddSeconds(tickDuration / GameSpeed));
 }
Ejemplo n.º 2
0
        internal static void AdvanceTick()
        {
            if (Thread.CurrentThread != _managingThread || GameSpeed <= 0)
            {
                return;
            }

            DateTime checkTime = DateTime.Now;

            GameTick = advanceTick(GameTick, 0.1, checkTime);
            MapTick = advanceTick(MapTick, 0.2, checkTime);
            WorldTick = advanceTick(WorldTick, 30, checkTime);
        }
Ejemplo n.º 3
0
        internal static void SetManagingThread()
        {
            if (_managingThread != null)
            {
                return;
            }
            _managingThread = Thread.CurrentThread;

            DateTime start = DateTime.Now;

            GameSpeed = 1;

            GameTick = new Tick(0, start, start.AddSeconds(0.1));
            MapTick = new Tick(0, start, start.AddSeconds(0.2));
            WorldTick = new Tick(0, start, start.AddSeconds(30));
        }