|
- using System;
- using System.Collections;
- using SUISS.Scheduling;
-
- namespace SUISSEngine
- {
- public class Wait
- {
- public static Func<bool> UntilTrue(Func<bool> isDone)
- {
- return isDone;
- }
-
- public static IEnumerator UntilTrue(Func<bool> isDone, double intervals)
- {
- while (!isDone())
- {
- yield return intervals;
- }
- yield break;
- }
-
- public static IEnumerator UnityUntilTrue(Func<bool> isDone)
- {
- while (!isDone())
- {
- yield return null;
- }
- yield break;
- }
-
- public static IEnumerator Milliseconds(double amount)
- {
- yield return Timing.time + amount / 1000.0;
- yield break;
- }
-
- public static IEnumerator Seconds(double amount)
- {
- yield return Timing.time + amount;
- yield break;
- }
-
- public static IEnumerator Minutes(double amount)
- {
- yield return Timing.time + amount * 60.0;
- yield break;
- }
-
- public static IEnumerator Hours(double amount)
- {
- yield return Timing.time + amount * 60.0 * 60.0;
- yield break;
- }
-
- public static IEnumerator Days(double amount)
- {
- yield return Timing.time + amount * 60.0 * 60.0 * 24.0;
- yield break;
- }
-
- public static IEnumerator Frame()
- {
- yield return null;
- yield break;
- }
-
- public static IEnumerator Frames(int count)
- {
- for (int i = 0; i < count; i++)
- {
- yield return Wait.Frame();
- }
- yield break;
- }
- }
- }
|