encompass-cs/encompass-cs/World.cs

53 lines
1.6 KiB
C#

using System.Collections.Generic;
namespace Encompass
{
public class World
{
private readonly List<Engine> enginesInOrder;
private readonly EntityManager entityManager;
private readonly ComponentManager componentManager;
private readonly MessageManager messageManager;
private readonly ComponentMessageManager componentMessageManager;
private readonly RenderManager renderManager;
internal World(
List<Engine> enginesInOrder,
EntityManager entityManager,
ComponentManager componentManager,
MessageManager messageManager,
ComponentMessageManager componentMessageManager,
RenderManager renderManager
)
{
this.enginesInOrder = enginesInOrder;
this.entityManager = entityManager;
this.componentManager = componentManager;
this.messageManager = messageManager;
this.componentMessageManager = componentMessageManager;
this.renderManager = renderManager;
}
public void Update(double dt)
{
foreach (var engine in enginesInOrder)
{
engine.Update(dt);
}
messageManager.ClearMessages();
componentMessageManager.ClearMessages();
entityManager.DestroyMarkedEntities();
componentManager.PerformComponentUpdates();
componentManager.RemoveMarkedComponents();
componentManager.AddMarkedComponents();
}
public void Draw()
{
renderManager.Draw();
}
}
}