Coroutine/Coroutine/CoroutineHandler.cs

45 lines
1.6 KiB
C#
Raw Normal View History

2019-06-22 17:24:50 +02:00
using System;
using System.Collections.Generic;
using System.Linq;
2019-06-22 17:24:50 +02:00
namespace Coroutine {
2020-06-13 03:12:26 +02:00
/// <summary>
/// This class can be used for static coroutine handling of any kind.
/// Note that it uses an underlying <see cref="CoroutineHandlerInstance"/> object for management.
/// </summary>
2019-06-22 17:24:50 +02:00
public static class CoroutineHandler {
private static readonly CoroutineHandlerInstance Instance = new CoroutineHandlerInstance();
2019-06-22 17:24:50 +02:00
2020-06-13 03:12:26 +02:00
/// <inheritdoc cref="CoroutineHandlerInstance.Start(IEnumerable{Wait})"/>
public static ActiveCoroutine Start(IEnumerable<Wait> coroutine) {
return Instance.Start(coroutine);
}
2020-06-13 03:12:26 +02:00
/// <inheritdoc cref="CoroutineHandlerInstance.Start(IEnumerator{Wait})"/>
public static ActiveCoroutine Start(IEnumerator<Wait> coroutine) {
return Instance.Start(coroutine);
2019-06-22 17:24:50 +02:00
}
2020-06-13 03:12:26 +02:00
/// <inheritdoc cref="CoroutineHandlerInstance.InvokeLater"/>
public static void InvokeLater(Wait wait, Action action) {
Instance.InvokeLater(wait, action);
}
2020-06-13 03:12:26 +02:00
/// <inheritdoc cref="CoroutineHandlerInstance.Tick"/>
2019-06-22 17:24:50 +02:00
public static void Tick(double deltaSeconds) {
Instance.Tick(deltaSeconds);
2019-06-22 17:24:50 +02:00
}
2020-06-13 03:12:26 +02:00
/// <inheritdoc cref="CoroutineHandlerInstance.RaiseEvent"/>
2019-06-22 17:24:50 +02:00
public static void RaiseEvent(Event evt) {
Instance.RaiseEvent(evt);
2019-06-22 17:24:50 +02:00
}
2020-06-13 03:12:26 +02:00
/// <inheritdoc cref="CoroutineHandlerInstance.GetActiveCoroutines"/>
public static IEnumerable<ActiveCoroutine> GetActiveCoroutines() {
return Instance.GetActiveCoroutines();
}
2019-06-22 17:24:50 +02:00
}
}