protected Timer(float duration, float elapsed, TimerFlags flags) { Duration = duration; Elapsed = elapsed; IsPaused = (flags & TimerFlags.IsPaused) > 0; IsRepeatable = (flags & TimerFlags.IsRepeatable) > 0; }
public SingleTimer(Action <float> trigger = null, Action <float> tick = null, float duration = 0, TimerFlags flags = TimerFlags.IsPaused | TimerFlags.IsRepeatable | TimerFlags.ShouldResetOnRepeat, float elapsed = 0) : base(tick, duration, elapsed, flags) { Trigger = trigger; shouldResetOnRepeat = (flags & TimerFlags.ShouldResetOnRepeat) > 0; }
public RepeatingTimer(Func <float, bool> trigger, Action <float> tick = null, float duration = 0, TimerFlags flags = TimerFlags.IsPaused | TimerFlags.IsRepeatable, float elapsed = 0) : base(tick, duration, elapsed, flags) { Debug.Assert((flags & TimerFlags.ShouldResetOnRepeat) == 0, "The ShouldResetOnRepeat flag can't be used " + "with repeating timers (it doesn't logically make sense)."); this.trigger = trigger; }
protected Timer(Action <float> tick, float duration, float elapsed, TimerFlags flags) { this.flags = flags; Tick = tick; Duration = duration; Elapsed = elapsed; IsPaused = (flags & TimerFlags.IsPaused) > 0; IsRepeatable = (flags & TimerFlags.IsRepeatable) > 0; }
// Single timers are repeatable by default (and start paused). public SingleTimer(Action <float> trigger = null, float duration = 0, TimerFlags flags = TimerFlags.IsPaused | TimerFlags.IsRepeatable, float elapsed = 0) : base(duration, elapsed, flags) { Trigger = trigger; }
// Just like single timers, repeatable timers are repeatable by default (and start paused). public RepeatingTimer(Func <float, bool> trigger, float duration = 0, TimerFlags flags = TimerFlags.IsPaused | TimerFlags.IsRepeatable, float elapsed = 0) : base(duration, elapsed, flags) { this.trigger = trigger; }