public void RemoveRange <T> (IEnumerable <T> objs) { foreach (object obj in objs) { GameObject removedGO = (GameObject)obj; gameObjects.Remove(removedGO); foreach (IAgent agent in activeAgents) { if (agent.knowledge != null) { agent.knowledge.Remove(removedGO); } } if (removedGO.TryCast(out IAgent tryAgent)) { activeAgents.Remove(tryAgent); } if (GameObject.TryCast(obj, out MapMarked mapMarked)) { Map.Deregister(mapMarked); } DependencyManager.Disconnect((IDependable)obj, this); DependencyManager.Flag((IDependable)obj); } DependencyManager.Flag(this); }
public override void RemoveRange <T> (IEnumerable <T> objs) { foreach (object obj in objs) { Trait trait = (Trait)obj; traits.Remove(trait); trait.parent = null; DependencyManager.Destroy(trait); DependencyManager.Disconnect(trait, this); } DependencyManager.Flag(this); }
public override void RemoveRange <T> (IEnumerable <T> objs) { foreach (object element in objs) { GameObject obj = (GameObject)element; structures.Remove((Structure)obj); obj.parent = null; DependencyManager.Disconnect(obj, this); DependencyManager.Flag(obj); } DependencyManager.Flag(this); }