refactor: draw & update managers to use active & sorted by priority collector

This commit is contained in:
2025-05-23 22:39:32 +03:00
parent e7bd924494
commit b1970d93f9
2 changed files with 11 additions and 7 deletions

View File

@@ -5,10 +5,12 @@ namespace Syntriax.Engine.Core;
public class UpdateManager : UniverseObject
{
private readonly BehaviourCollector<IFirstFrameUpdate> firstFrameUpdates = new();
private readonly BehaviourCollector<IPreUpdate> preUpdateEntities = new();
private readonly BehaviourCollector<IUpdate> updateEntities = new();
private readonly BehaviourCollector<IPostUpdate> postUpdateEntities = new();
private static System.Comparison<IBehaviour> SortByPriority() => (x, y) => y.Priority.CompareTo(x.Priority);
private readonly ActiveBehaviourCollectorSorted<IFirstFrameUpdate> firstFrameUpdates = new() { SortBy = SortByPriority() };
private readonly ActiveBehaviourCollectorSorted<IPreUpdate> preUpdateEntities = new() { SortBy = SortByPriority() };
private readonly ActiveBehaviourCollectorSorted<IUpdate> updateEntities = new() { SortBy = SortByPriority() };
private readonly ActiveBehaviourCollectorSorted<IPostUpdate> postUpdateEntities = new() { SortBy = SortByPriority() };
private readonly List<IFirstFrameUpdate> toCallFirstFrameUpdates = [];