using System; using System.Collections.Generic; namespace Encompass { internal class EntityManager { private List entities = new List(); private Dictionary IDToEntity = new Dictionary(); private List entitiesMarkedForDestroy = new List(); private ComponentManager componentManager; public EntityManager( ComponentManager componentManager ) { this.componentManager = componentManager; } public Entity CreateEntity() { return new Entity(NextID(), componentManager); } public Entity GetEntity(Guid id) { return this.IDToEntity[id]; } public void MarkForDestroy(Entity entity) { entitiesMarkedForDestroy.Add(entity); } internal void DestroyMarkedEntities() { foreach (var entity in entitiesMarkedForDestroy) { entity.RemoveAllComponents(); } } private Guid NextID() { return Guid.NewGuid(); } } }