feat: added ICoroutineManager.IsRunning method

This commit is contained in:
2026-04-16 11:01:24 +03:00
parent ab2f637f78
commit 9db82f3271
3 changed files with 11 additions and 0 deletions

View File

@@ -5,5 +5,6 @@ namespace Engine.Core;
public interface ICoroutineManager public interface ICoroutineManager
{ {
IEnumerator StartCoroutine(IEnumerator enumerator); IEnumerator StartCoroutine(IEnumerator enumerator);
bool IsRunning(IEnumerator enumerator);
void StopCoroutine(IEnumerator enumerator); void StopCoroutine(IEnumerator enumerator);
} }

View File

@@ -15,6 +15,8 @@ public class CoroutineManager : Behaviour, IUpdate, ICoroutineManager
return enumerator; return enumerator;
} }
public bool IsRunning(IEnumerator enumerator) => enumerators.Contains(enumerator);
public void StopCoroutine(IEnumerator enumerator) public void StopCoroutine(IEnumerator enumerator)
{ {
enumerators.Remove(enumerator); enumerators.Remove(enumerator);

View File

@@ -21,6 +21,14 @@ public class NestedCoroutineManager : Behaviour, IUpdate, ICoroutineManager
return enumerator; return enumerator;
} }
public bool IsRunning(IEnumerator enumerator)
{
for (int i = 0; i < stacks.Count; i++)
if (stacks[i].EntryPoint == enumerator)
return true;
return false;
}
public void StopCoroutine(IEnumerator enumerator) public void StopCoroutine(IEnumerator enumerator)
{ {
for (int i = 0; i < stacks.Count; i++) for (int i = 0; i < stacks.Count; i++)