using DaggerFramework.Rendering; namespace DaggerFramework { public class EntityLayer : Layer { public List Entities { get => _entities; } public EntityLayer(List entities) { _entities = entities; } public EntityLayer() { _entities = new List(); } public bool AddEntity(Entity entity) { entity.Id = Entities.Count; entity.Layer = this; Entities.Add(entity); return true; } public void DestroyEntity(int at) { _entities.RemoveAt(at); } protected override void OnStart() { foreach (var entity in _entities) { entity.Layer = this; entity.Start(); } } protected override void OnUpdate(double dt) { foreach (var entity in _entities) { entity.Update(dt); } } protected override void OnDraw(in Renderer renderer) { foreach (IDrawable drawable in _entities) { drawable.Draw(in renderer); } } private List _entities; } }