public void Add(string id, Entity entity) { Debug.Assert(id != null && entity != null); lock (Map) { EntityList list = Get(id); if (list == null) { list = new EntityList(); Map.Add(id, list); } EntityIdleComponent idle = entity.Get <EntityIdleComponent>(); if (idle != null) { idle.Add(this); } list.Add(entity); list.Sort(); entity++; } }
public bool Remove(string id, Entity entity) { Debug.Assert(id != null && entity != null); bool removed = false; lock (Map) { EntityList list = Get(id); if (list != null) { removed = list.Remove(entity); if (list.Count <= 0) { Map.Remove(id); } } } if (removed) { EntityIdleComponent idle = entity.Get <EntityIdleComponent>(); if (idle != null) { idle.Remove(this); } entity--; } return(removed); }
public bool Remove(string id) { Debug.Assert(id != null); bool removed = false; Entity entity = Get(id); if (entity != null) { lock (Map) removed = Map.Remove(id); if (removed) { EntityIdleComponent idle = entity.Get <EntityIdleComponent>(); if (idle != null) { idle.Remove(this); } entity--; } } return(removed); }
public void Clear() { if (_entity != null) { EntityIdleComponent idle = _entity.Get <EntityIdleComponent>(); if (idle != null) { idle.Remove(this); } _entity--; _entity = null; } }
public void Add(Entity entity) { Debug.Assert(entity != null); EntityIdleComponent idle = entity.Get <EntityIdleComponent>(); if (idle != null) { idle.Add(this); } entity++; _entity = entity; }
public void Add(Entity entity) { Debug.Assert(entity != null); EntityIdleComponent idle = entity.Get <EntityIdleComponent>(); if (idle != null) { idle.Add(this); } lock (List) List.Add(entity); entity++; }
public bool Remove(Entity entity) { Debug.Assert(entity != null); bool removed = false; lock (Map) { string key = null; List <string> keys = new List <string>(Map.Keys); foreach (string id in keys) { EntityList list = Get(id); if (list != null) { removed = list.Remove(entity); if (list.Count <= 0) { key = id; } break; } } if (key != null) { Map.Remove(key); } } if (removed) { EntityIdleComponent idle = entity.Get <EntityIdleComponent>(); if (idle != null) { idle.Remove(this); } entity--; } return(removed); }
public void Add(string id, Entity entity) { Debug.Assert(id != null && entity != null); EntityIdleComponent idle = entity.Get <EntityIdleComponent>(); if (idle != null) { idle.Add(this); } Remove(id); lock (Map) Map.Add(id, entity); entity++; }
public bool Remove(Entity entity) { Debug.Assert(entity != null); bool removed; lock (List) removed = List.Remove(entity); if (removed) { EntityIdleComponent idle = entity.Get <EntityIdleComponent>(); if (idle != null) { idle.Remove(this); } entity--; } return(removed); }