using GFramework.Core.Abstractions.coroutine;
namespace GFramework.Core.coroutine;
///
/// 表示一个等待直到指定条件满足的协程指令
///
/// 用于判断条件是否满足的函数委托
public sealed class WaitUntil(Func predicate) : IYieldInstruction
{
private readonly Func _predicate = predicate ?? throw new ArgumentNullException(nameof(predicate));
///
/// 更新协程状态(此实现中不需要处理时间)
///
/// 时间增量
public void Update(double deltaTime)
{
// 不需要时间
}
///
/// 获取协程指令是否已完成
///
public bool IsDone => _predicate();
}