internal void RemoveIntervaled(IIntervaledTickable tickable)
        {
            IEnumerator enumerator;

            if (_intervalledTicked.TryGetValue(tickable, out enumerator))
            {
                StopCoroutine(enumerator);
                _intervalledTicked.Remove(tickable);
            }
        }
Beispiel #2
0
        internal void RemoveIntervaled(IIntervaledTickable tickable)
        {
            IEnumerator enumerator;

            if (_intervalledTicked.TryGetValue(tickable, out enumerator))
            {
                StopCoroutine(enumerator);
                _intervalledTicked.Remove(tickable);
            }
        }
 IEnumerator IntervaledUpdate(IIntervaledTickable tickable, float seconds)
 {
     while (true)
     {
         DateTime next = DateTime.UtcNow.AddSeconds(seconds); while (DateTime.UtcNow < next)
         {
             yield return(null);
         }
         tickable.IntervaledTick();
     }
 }
Beispiel #4
0
        internal void AddIntervaled(IIntervaledTickable tickable)
        {
            var methodInfo = ((Action)tickable.IntervaledTick).Method;
            object[] attrs = methodInfo.GetCustomAttributes(typeof(IntervaledTickAttribute), true);

            IEnumerator intervaledTick = IntervaledUpdate(tickable, (attrs[0] as IntervaledTickAttribute).interval);

            _intervalledTicked[tickable] = intervaledTick;

            StartCoroutine(intervaledTick);
        }
        internal void AddIntervaled(IIntervaledTickable tickable)
        {
            var methodInfo = ((Action)tickable.IntervaledTick).Method;

            object[] attrs = methodInfo.GetCustomAttributes(typeof(IntervaledTickAttribute), true);

            IEnumerator intervaledTick = IntervaledUpdate(tickable, (attrs[0] as IntervaledTickAttribute).interval);

            _intervalledTicked[tickable] = intervaledTick;

            StartCoroutine(intervaledTick);
        }
Beispiel #6
0
 IEnumerator IntervaledUpdate(IIntervaledTickable tickable, float seconds)
 {
     while (true) { DateTime next = DateTime.UtcNow.AddSeconds(seconds); while (DateTime.UtcNow < next) yield return null; tickable.IntervaledTick(); }
 }