source: 2016/27/ohjaajat/VenienteFragore/VenienteFragore/VenienteFragore/TimerAddons.cs @ 10334

Revision 7826, 907 bytes checked in by sieerinn, 3 years ago (diff)

Luomismetodit siirretty LevelCreationMethods?.cs tiedostoon ja kaikenlaista koodin siistimistä tehty

Line 
1using Jypeli;
2using System;
3using System.Collections.Generic;
4using System.Linq;
5using System.Text;
6
7namespace VenienteFragore
8{
9    public static class TimerAddons
10    {
11        public static void Until(Func<bool> predicate, Action action, double tickInterval = 0.1, Action onEnd = null)
12        {
13            var timer = new Timer { Interval = tickInterval };
14            timer.Timeout += delegate
15            {
16                if (predicate())
17                {
18                    timer.Stop();
19                    //Wut? this actually exists now in C#.. looks ugly as hell but is shorther than:
20                    //if(onEnd != null) onEnd();
21                    onEnd?.Invoke();
22                }
23                else
24                {
25                    action(); //or action.Invoke();
26                }
27            };
28            timer.Start();
29        }
30    }
31}
Note: See TracBrowser for help on using the repository browser.