コード例 #1
0
ファイル: BehaviorSystem.cs プロジェクト: x5f3759df/Citrus
 internal void OnOwnerFrozenChanged(BehaviorComponent behavior)
 {
     if (behavior.StartQueueNode == null)
     {
         behavior.UpdateFamily?.Filter(behavior);
         behavior.OnOwnerFrozenChanged();
     }
 }
コード例 #2
0
ファイル: BehaviorSystem.cs プロジェクト: x5f3759df/Citrus
 public void Remove(BehaviorComponent b)
 {
     if (b.IndexInUpdateFamily >= 0)
     {
         behaviors[b.IndexInUpdateFamily] = null;
         b.IndexInUpdateFamily            = -1;
     }
 }
コード例 #3
0
ファイル: BehaviorSystem.cs プロジェクト: x5f3759df/Citrus
 public void Add(BehaviorComponent b)
 {
     if (b.IndexInUpdateFamily < 0)
     {
         b.IndexInUpdateFamily = behaviors.Count;
         behaviors.Add(b);
     }
 }
コード例 #4
0
ファイル: BehaviorSystem.cs プロジェクト: x5f3759df/Citrus
 public void Filter(BehaviorComponent b)
 {
     if ((b.Owner.GloballyFrozen && !UpdateFrozen) || b.Suspended)
     {
         Remove(b);
     }
     else
     {
         Add(b);
     }
 }
コード例 #5
0
ファイル: BehaviorSystem.cs プロジェクト: x5f3759df/Citrus
 internal void Remove(BehaviorComponent behavior, Node owner)
 {
     if (behavior.StartQueueNode != null)
     {
         behaviorsToStart.Remove(behavior.StartQueueNode);
         behavior.StartQueueNode = null;
     }
     else
     {
         behavior.UpdateFamily?.Remove(behavior);
         behavior.UpdateFamily = null;
         behavior.Stop(owner);
     }
 }
コード例 #6
0
ファイル: BehaviorSystem.cs プロジェクト: x5f3759df/Citrus
 internal void Add(BehaviorComponent behavior)
 {
     behavior.StartQueueNode = behaviorsToStart.AddLast(behavior);
 }