示例#1
0
 /// <summary>
 /// Set child of decorator
 /// </summary>
 /// <param name="child">Child behavior</param>
 /// <param name="parameters">Optional parameters for child behavior at this position of tree</param>
 public virtual void SetChild(Behavior child, BehaviorParameterCollection parameters = null)
 {
     if (child != null)
     {
         Child = new BehaviorContainer(this, child, parameters);
     }
 }
示例#2
0
 /// <summary>
 /// Add child. Remember to add children in correct priority
 /// </summary>
 /// <param name="child">Child behavior node</param>
 /// <param name="parameters">optional parameters for behavior</param>
 public virtual void Add(Behavior child, BehaviorParameterCollection parameters)
 {
     if (child != null)
     {
         _Children.Add(new BehaviorContainer(this, child, parameters));
     }
 }
 /// <summary>
 /// Add new action to collection
 /// </summary>
 /// <param name="action">Action to add</param>
 /// <param name="parameters"> parameters of action </param>
 internal void Add(Action action, BehaviorParameterCollection parameters)
 {
     // the action already added
     if (!Contains(action))
     {
         _Actions.Add(new RunningAction(action, parameters));
     }
 }
示例#4
0
 /// <summary>
 /// Create an instance of BehaviorContainer
 /// </summary>
 /// <param name="behavior">Behavior node</param>
 /// <param name="parameters">Parameters of behavior at this position of tree</param>
 public BehaviorContainer(Behavior parent, Behavior behavior, BehaviorParameterCollection parameters)
 {
     this.Parent = parent;
     if (behavior == null)
     {
         throw new ArgumentNullException("Behavior is null.");
     }
     this.Result     = BehaviorResult.Failure;
     this.Behavior   = behavior;
     this.Parameters = parameters;
 }
 internal RunningAction(Action action, BehaviorParameterCollection parameters)
 {
     this.Action     = action;
     this.Parameters = parameters;
 }
示例#6
0
 /// <summary>
 /// Add child . Remember to set weight of child before call this function
 /// </summary>
 /// <param name="child"></param>
 /// <param name="parameters"></param>
 public override void Add(Behavior child, BehaviorParameterCollection parameters = null)
 {
     _TotalWeight += child.Weight;
     base.Add(child, parameters);
 }