public void after(Duration duration, Action act) => ASync.WithDelay(duration.seconds, act);
public void afterXFrames(int framesToSkip, Action act) => ASync.AfterXFrames(framesToSkip, act);
public static Future <A> delayFrames <A>(int framesToSkip, Fn <A> createValue) => a <A>(p => ASync.AfterXFrames(framesToSkip, () => p.complete(createValue())));
public static Future <A> delayFrames <A>(int framesToSkip, A value) => a <A>(p => ASync.AfterXFrames(framesToSkip, () => p.complete(value)));
public static Future <Unit> fromCoroutine(IEnumerator enumerator) => fromCoroutine(ASync.StartCoroutine(enumerator));
public static Future <A> fromBusyLoop <A>( Fn <Option <A> > checker, YieldInstruction delay = null ) { return(Future <A> .async(p => ASync.StartCoroutine(busyLoopEnum(delay, p, checker)))); }
public static Future <A> delay <A>(float seconds, Fn <A> createValue) { return(a <A>(p => ASync.WithDelay(seconds, () => p.complete(createValue())))); }
public static Future <A> delay <A>(float seconds, A value) { return(a <A>(p => ASync.WithDelay(seconds, () => p.complete(value)))); }
static IEnumerator coroutineEnum(Promise <Unit> p, IEnumerator enumerator) { yield return(ASync.StartCoroutine(enumerator)); p.complete(Unit.instance); }
public static Future <Unit> fromCoroutine(IEnumerator enumerator) { return(Future <Unit> .async(p => ASync.StartCoroutine(coroutineEnum(p, enumerator)))); }
public Coroutine after(Duration duration, Action act, string name) => ASync.WithDelay(duration, act, behaviour: behaviour.orNull(), timeContext: this);
public Coroutine after(Duration duration, Action act, string name = null) => ASync.WithDelay(duration, act, timeContext: this);
public Coroutine after(Duration duration, Action act, string name) => ASync.WithDelay(duration.seconds, act, behaviour: behaviour.orNull(), timeScale: timeScale);