using GFramework.Core.Abstractions.Coroutine;
namespace GFramework.Core.Tests.Coroutine;
///
/// 可控制的时间源,用于协程测试
///
public sealed class FakeTimeSource : ITimeSource
{
///
/// 获取当前累计时间
///
public double CurrentTime { get; private set; }
///
/// 获取上一帧的时间增量
///
public double DeltaTime { get; private set; }
///
/// 更新时间源
///
public void Update()
{
// 在测试中,Update 不做任何事情
// 时间推进由 Advance 方法控制
}
///
/// 前进指定的时间
///
/// 时间增量(秒)
public void Advance(double deltaTime)
{
DeltaTime = deltaTime;
CurrentTime += deltaTime;
}
///
/// 重置时间源到初始状态
///
public void Reset()
{
CurrentTime = 0;
DeltaTime = 0;
}
}