using System;
using System.Collections.Generic;
namespace Coroutine {
///
/// This class can be used for static coroutine handling of any kind.
/// Note that it uses an underlying object for management.
///
public static class CoroutineHandler {
private static readonly CoroutineHandlerInstance Instance = new CoroutineHandlerInstance();
///
public static int TickingCount => Instance.TickingCount;
///
public static int EventCount => Instance.EventCount;
///
public static ActiveCoroutine Start(IEnumerable coroutine, string name = "", int priority = 0) {
return Instance.Start(coroutine, name, priority);
}
///
public static ActiveCoroutine Start(IEnumerator coroutine, string name = "", int priority = 0) {
return Instance.Start(coroutine, name, priority);
}
///
public static ActiveCoroutine InvokeLater(Wait wait, Action action, string name = "", int priority = 0) {
return Instance.InvokeLater(wait, action, name, priority);
}
///
public static void Tick(double deltaSeconds) {
Instance.Tick(deltaSeconds);
}
///
public static void Tick(TimeSpan delta) {
Instance.Tick(delta);
}
///
public static void RaiseEvent(Event evt) {
Instance.RaiseEvent(evt);
}
///
public static IEnumerable GetActiveCoroutines() {
return Instance.GetActiveCoroutines();
}
}
}