Ejemplo n.º 1
0
        public void UnregisterSimTimeObserver(ISimTimeObserver observer)
        {
            int num = this.observers.IndexOf(observer);

            if (num >= 0)
            {
                this.observers.RemoveAt(num);
                this.miter.OnRemove(num);
            }
        }
Ejemplo n.º 2
0
 public void RegisterSimTimeObserver(ISimTimeObserver observer)
 {
     if (observer == null)
     {
         return;
     }
     if (this.observers.IndexOf(observer) < 0)
     {
         this.observers.Add(observer);
     }
 }
Ejemplo n.º 3
0
        public void OnUpdate()
        {
            uint num  = this.Now();
            uint num2 = (num >= this.timeLast) ? (num - this.timeLast) : (num + 60000u - this.timeLast);

            this.timeLast         = num;
            num2                 *= this.scale;
            this.timeAccumulator += num2;
            float realTimeSinceStartUp = UnityUtils.GetRealTimeSinceStartUp();
            int   num3 = 0;

            while (this.timeAccumulator >= this.timePerFrame)
            {
                this.miter.Init(this.observers);
                while (this.miter.Active())
                {
                    ISimTimeObserver simTimeObserver = this.observers[this.miter.Index];
                    simTimeObserver.OnSimTime(this.timePerFrame);
                    this.miter.Next();
                }
                this.miter.Reset();
                this.frameCount      += 1u;
                this.timeAccumulator -= this.timePerFrame;
                if ((long)(++num3) == (long)((ulong)this.scale))
                {
                    if (UnityUtils.GetRealTimeSinceStartUp() - realTimeSinceStartUp > 0.0055f)
                    {
                        break;
                    }
                }
                else if ((long)num3 == (long)((ulong)(this.scale + 1u)))
                {
                    break;
                }
            }
            if (this.timeAccumulator > this.maxLag)
            {
                this.timeAccumulator = 0u;
            }
        }