refactor: draw & update managers to use active & sorted by priority collector
This commit is contained in:
parent
e7bd924494
commit
b1970d93f9
@ -3,9 +3,11 @@ namespace Syntriax.Engine.Core;
|
|||||||
|
|
||||||
public class DrawManager : UniverseObject
|
public class DrawManager : UniverseObject
|
||||||
{
|
{
|
||||||
private readonly BehaviourCollector<IPreDraw> preDrawEntities = new();
|
private static System.Comparison<IBehaviour> SortByPriority() => (x, y) => y.Priority.CompareTo(x.Priority);
|
||||||
private readonly BehaviourCollector<IDraw> drawEntities = new();
|
|
||||||
private readonly BehaviourCollector<IPostDraw> postDrawEntities = new();
|
private readonly ActiveBehaviourCollectorSorted<IPreDraw> preDrawEntities = new() { SortBy = SortByPriority() };
|
||||||
|
private readonly ActiveBehaviourCollectorSorted<IDraw> drawEntities = new() { SortBy = SortByPriority() };
|
||||||
|
private readonly ActiveBehaviourCollectorSorted<IPostDraw> postDrawEntities = new() { SortBy = SortByPriority() };
|
||||||
|
|
||||||
private void OnPreDraw(IUniverse sender)
|
private void OnPreDraw(IUniverse sender)
|
||||||
{
|
{
|
||||||
|
@ -5,10 +5,12 @@ namespace Syntriax.Engine.Core;
|
|||||||
|
|
||||||
public class UpdateManager : UniverseObject
|
public class UpdateManager : UniverseObject
|
||||||
{
|
{
|
||||||
private readonly BehaviourCollector<IFirstFrameUpdate> firstFrameUpdates = new();
|
private static System.Comparison<IBehaviour> SortByPriority() => (x, y) => y.Priority.CompareTo(x.Priority);
|
||||||
private readonly BehaviourCollector<IPreUpdate> preUpdateEntities = new();
|
|
||||||
private readonly BehaviourCollector<IUpdate> updateEntities = new();
|
private readonly ActiveBehaviourCollectorSorted<IFirstFrameUpdate> firstFrameUpdates = new() { SortBy = SortByPriority() };
|
||||||
private readonly BehaviourCollector<IPostUpdate> postUpdateEntities = new();
|
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 = [];
|
private readonly List<IFirstFrameUpdate> toCallFirstFrameUpdates = [];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user