public EcsEntity GetPrefab(string name) { EcsEntity prefab = null; if (_prefabs.TryGetValue(name, out prefab)) { return(prefab); } else { return(null); } }
public EcsEntity Instantiate() { var entity = new EcsEntity(this.World); entity.Name = this.Name + " (Clone)"; entity.Components = new Dictionary <Type, EcsComponent>(); foreach (var pair in this.Components) { var component = pair.Value.Clone(); component.Entity = entity; entity.Components.Add(pair.Key, component); } return(entity); }
public void AddEntity(EcsEntity entity) { this.Entities.Add(entity); foreach (var pair in entity.Components) { List <EcsComponent> componentGroup = null; if (_componentGroups.TryGetValue(pair.Key, out componentGroup) == false) { componentGroup = new List <EcsComponent>(); _componentGroups.Add(pair.Key, componentGroup); } componentGroup.Add(pair.Value); } }
public void RemoveEntity(EcsEntity entity) { var removed = this.Entities.Remove(entity); if (removed) { foreach (var pair in entity.Components) { List <EcsComponent> componentGroup = null; if (_componentGroups.TryGetValue(pair.Key, out componentGroup)) { componentGroup.Remove(pair.Value); } } } }
public void AddPrefab(string name, EcsEntity prefab) { _prefabs.Add(name, prefab); }