Code/Stallers/WaitForTask.cs
using System.Threading.Tasks;
using static Sandbox.GameObjectSystem;
namespace Coroutines.Stallers;
/// <summary>
/// Pauses a coroutine until an asynchronous task completes.
/// </summary>
public sealed class WaitForTask : ICoroutineStaller
{
/// <inheritdoc/>
public bool IsComplete => Task.IsCompleted;
/// <inheritdoc/>
public Stage PollingStage { get; } = Coroutine.DefaultPollingStage;
/// <summary>
/// The task to wait for.
/// </summary>
private Task Task { get; }
/// <summary>
/// Initializes a new instance of <see cref="WaitForTask"/>.
/// </summary>
/// <param name="task">The task to wait for.</param>
public WaitForTask( Task task )
{
Task = task;
}
/// <inheritdoc/>
public void Update()
{
}
}