From 882f9e8b29e3f0496fe99059f97056d9f4869449 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Sat, 31 Jan 2026 13:06:57 +0300 Subject: [PATCH] feat: added new yields --- Engine.Core/Systems/CoroutineYield.cs | 10 ---------- Engine.Core/Systems/Yields/WaitUntilYield.cs | 10 ++++++++++ .../Tween/Yields/WaitForTweenCompleteCoroutineYield.cs | 2 +- .../Tween/Yields/WaitForTweenDoneCoroutineYield.cs | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) delete mode 100644 Engine.Core/Systems/CoroutineYield.cs create mode 100644 Engine.Core/Systems/Yields/WaitUntilYield.cs diff --git a/Engine.Core/Systems/CoroutineYield.cs b/Engine.Core/Systems/CoroutineYield.cs deleted file mode 100644 index 44e3f5b..0000000 --- a/Engine.Core/Systems/CoroutineYield.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace Engine.Core; - -public class CoroutineYield(Func condition) : ICoroutineYield -{ - private readonly Func condition = condition; - - public bool Yield() => condition.Invoke(); -} diff --git a/Engine.Core/Systems/Yields/WaitUntilYield.cs b/Engine.Core/Systems/Yields/WaitUntilYield.cs new file mode 100644 index 0000000..18d29f9 --- /dev/null +++ b/Engine.Core/Systems/Yields/WaitUntilYield.cs @@ -0,0 +1,10 @@ +using System; + +namespace Engine.Core; + +public class WaitUntilYield(Func condition) : ICoroutineYield +{ + private readonly Func condition = condition; + + public bool Yield() => !condition.Invoke(); +} diff --git a/Engine.Systems/Tween/Yields/WaitForTweenCompleteCoroutineYield.cs b/Engine.Systems/Tween/Yields/WaitForTweenCompleteCoroutineYield.cs index b574530..db4702e 100644 --- a/Engine.Systems/Tween/Yields/WaitForTweenCompleteCoroutineYield.cs +++ b/Engine.Systems/Tween/Yields/WaitForTweenCompleteCoroutineYield.cs @@ -2,4 +2,4 @@ using Engine.Core; namespace Engine.Systems.Tween; -public class WaitForTweenCompleteCoroutineYield(ITween tween) : CoroutineYield(() => tween.State == TweenState.Completed); +public class WaitForTweenCompleteCoroutineYield(ITween tween) : WaitUntilYield(() => tween.State == TweenState.Completed); diff --git a/Engine.Systems/Tween/Yields/WaitForTweenDoneCoroutineYield.cs b/Engine.Systems/Tween/Yields/WaitForTweenDoneCoroutineYield.cs index 3ab3d78..c57853e 100644 --- a/Engine.Systems/Tween/Yields/WaitForTweenDoneCoroutineYield.cs +++ b/Engine.Systems/Tween/Yields/WaitForTweenDoneCoroutineYield.cs @@ -2,4 +2,4 @@ using Engine.Core; namespace Engine.Systems.Tween; -public class WaitWhileTweenActiveCoroutineYield(ITween tween) : CoroutineYield(() => tween.State.CheckFlag(TweenState.Completed | TweenState.Cancelled)); +public class WaitWhileTweenActiveCoroutineYield(ITween tween) : WaitUntilYield(() => tween.State.CheckFlag(TweenState.Completed | TweenState.Cancelled));