MoonTools.ECS/src/World.cs

44 lines
831 B
C#
Raw Normal View History

2022-03-05 02:01:44 +00:00
namespace MoonTools.ECS;
public class World
{
2022-03-07 18:56:53 +00:00
private readonly List<System> Systems;
private readonly List<Renderer> Renderers;
private readonly EntityStorage EntityStorage;
private readonly ComponentDepot ComponentDepot;
private MessageDepot MessageDepot;
2022-03-05 02:01:44 +00:00
2022-03-07 18:56:53 +00:00
internal World(
List<System> systems,
List<Renderer> renderers,
ComponentDepot componentDepot,
EntityStorage entityStorage,
MessageDepot messageDepot
)
2022-03-05 02:01:44 +00:00
{
2022-03-07 18:56:53 +00:00
Systems = systems;
Renderers = renderers;
ComponentDepot = componentDepot;
EntityStorage = entityStorage;
MessageDepot = messageDepot;
2022-03-05 02:01:44 +00:00
}
public void Update(TimeSpan delta)
{
2022-03-06 06:12:27 +00:00
foreach (var system in Systems)
2022-03-05 02:01:44 +00:00
{
system.Update(delta);
}
2022-03-07 07:26:54 +00:00
MessageDepot.Clear();
2022-03-05 02:01:44 +00:00
}
public void Draw(TimeSpan delta)
{
2022-03-06 06:12:27 +00:00
foreach (var renderer in Renderers)
2022-03-05 02:01:44 +00:00
{
renderer.Draw(delta);
}
}
}