diff --git a/Engine.Core/Systems/Yields/WaitForSecondsYield.cs b/Engine.Core/Systems/Yields/WaitForSecondsYield.cs new file mode 100644 index 0000000..da82083 --- /dev/null +++ b/Engine.Core/Systems/Yields/WaitForSecondsYield.cs @@ -0,0 +1,10 @@ +using System; + +namespace Engine.Core; + +public class WaitForSecondsYield(float seconds) : ICoroutineYield +{ + private readonly DateTime triggerTime = DateTime.UtcNow.AddSeconds(seconds); + + public bool Yield() => DateTime.UtcNow < triggerTime; +} diff --git a/Engine.Core/Systems/Yields/WaitWhileYield.cs b/Engine.Core/Systems/Yields/WaitWhileYield.cs new file mode 100644 index 0000000..0c1bb4f --- /dev/null +++ b/Engine.Core/Systems/Yields/WaitWhileYield.cs @@ -0,0 +1,10 @@ +using System; + +namespace Engine.Core; + +public class WaitWhileYield(Func condition) : ICoroutineYield +{ + private readonly Func condition = condition; + + public bool Yield() => condition.Invoke(); +}