chore: coroutine manager moved to correct directory

This commit is contained in:
2025-10-17 21:27:49 +03:00
parent f55ba499b6
commit e70b7f112f
2 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
using System.Collections;
using System.Collections.Generic;
namespace Engine.Core;
public class CoroutineManager : Behaviour, IUpdate
{
private readonly List<IEnumerator> enumerators = [];
public IEnumerator StartCoroutine(IEnumerator enumerator)
{
enumerators.Add(enumerator);
return enumerator;
}
public void StopCoroutine(IEnumerator enumerator)
{
enumerators.Remove(enumerator);
}
void IUpdate.Update()
{
for (int i = enumerators.Count - 1; i >= 0; i--)
{
if (enumerators[i].Current is ICoroutineYield coroutineYield && coroutineYield.Yield())
continue;
if (!enumerators[i].MoveNext())
enumerators.RemoveAt(i);
}
}
public CoroutineManager() => Priority = int.MinValue;
}

View File

@@ -0,0 +1,10 @@
using System;
namespace Engine.Core;
public class CoroutineYield(Func<bool> condition) : ICoroutineYield
{
private readonly Func<bool> condition = condition;
public bool Yield() => condition.Invoke();
}