Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
 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);
 }