public Entity CreateEntity(ElementTag tag) { var en = new Entity(tag, this, orderContainer); entities.Add(tag, en); notify.NotifyChange(en); components.Add(en.Tag, new List <ID3DComponent>()); return(en); }
public void RemoveEntity(ElementTag elementTag) { entitySynchronizer.Add((owner, input) => { if (owner.entities.Contains(elementTag)) { var entity = _CreateEntity(elementTag); foreach (var component in owner.GetComponents(entity.Tag)) { owner._RemoveComponent(entity.Tag, component); } owner.entities.Remove(entity.Tag); owner.components.Remove(entity.Tag); entityHas.Remove(entity.Tag); notify.NotifyChange(entity); } }, null); }