Ejemplo n.º 1
0
        /// <summary>
        /// Splice a sub tree into the parent tree.
        /// </summary>
        public BehaviorTreeBuilder Splice(IBehaviorTreeNode subTree)
        {
            Debug.Assert(subTree != null, "Subtree is null");
            Debug.Assert(subTree is RootNode, "Subtree has to start with a root node");

            parentNodeStack.Peek().AddChild(((RootNode)subTree).ExchangeRootNode(rootNode));

            return(this);
        }
Ejemplo n.º 2
0
 public override void AddChild(IBehaviorTreeNode child)
 {
     if (AddIfChild)
     {
         ifTrue = child;
     }
     else
     {
         ifFalse = child;
     }
 }
Ejemplo n.º 3
0
 public static void Stop(this IBehaviorTreeNode node)
 {
     if (node.last_status == BHS.RUNNING)
     {
         node.Deinit();
     }
     if (node.last_status != BHS.NONE)
     {
         node.Defer();
     }
     node.last_status = BHS.NONE;
 }
Ejemplo n.º 4
0
 public void SetSlave(IBehaviorTreeNode node)
 {
     if (children.Count == 0)
     {
         this.AddChild(node);
     }
     //NOTE: should we stop the current one?
     else
     {
         children[0] = node;
     }
 }
Ejemplo n.º 5
0
        public override BehaviorTreeInternalNode AddChild(IBehaviorTreeNode new_child)
        {
            //force DEFER to proceed to the next node
            var d = new_child as DeferNode;

            if (d != null)
            {
                d.result = BHS.FAILURE;
            }

            children.Add(new_child);
            return(this);
        }
Ejemplo n.º 6
0
 public static BHS Run(this IBehaviorTreeNode node)
 {
     if (node.last_status != BHS.RUNNING)
     {
         node.Init();
     }
     node.last_status = node.Execute();
     if (node.last_status != BHS.RUNNING)
     {
         node.Deinit();
     }
     return(node.last_status);
 }
Ejemplo n.º 7
0
        public override BehaviorTreeInternalNode AddChild(IBehaviorTreeNode new_child)
        {
            //force DEFER to keep running
            var d = new_child as DeferNode;

            if (d != null)
            {
                d.result = BHS.RUNNING;
            }

            children.Add(new_child);
            return(this);
        }
Ejemplo n.º 8
0
    void Start()
    {
        BehaviorTreeBuilder builder = new BehaviorTreeBuilder();

        builder.Sequence("sequence1");
        builder.Action("action1", Action01);
        builder.Action("action2", Action02);
        builder.Sequence("sequence02");
        builder.Action("action03", Action03);
        builder.Action("action04", Action04);
        builder.End();
        builder.Action("Action05", Action05);
        builder.Action("Action06", Action06);
        builder.End();
        tree = builder.Build();
    }
Ejemplo n.º 9
0
        public static IBehaviorTreeNode WithFightingAI(IBehaviorTreeNode tree, MovingEntity entity)
        {
            BehaviorTreeBuilder builder = new BehaviorTreeBuilder(((RootNode)tree).TickFrequency);

            return(builder
                   .Selector()
                   .LongRunning(() => new FightTask(entity))
                   .Sequence()
                   .SingleStepResultCached((GameTime gameTime) =>
            {
                entity.StopWalking();

                return BehaviourTreeStatus.Success;
            })
                   .Splice(tree)
                   .End()
                   .End()
                   .Build());
        }
Ejemplo n.º 10
0
 public BehaviorTreeSelector Add(IBehaviorTreeNode node)
 {
     NodeList.Add(node);
     return(this);
 }
Ejemplo n.º 11
0
        public void SetIfFalse(IBehaviorTreeNode child)
        {
            Debug.Assert(ifFalse == null, "ifFalse was already set!");

            ifFalse = child;
        }
Ejemplo n.º 12
0
 public IBehaviorTreeNode AddChild(IBehaviorTreeNode _node)
 {
     children.Add(_node);
     return(this);
 }
Ejemplo n.º 13
0
 public void AddChild(IBehaviorTreeNode child)
 {
     m_childrens.Add(child);
 }
Ejemplo n.º 14
0
 public void Proxy(IBehaviorTreeNode _child)
 {
     child = _child;
 }
Ejemplo n.º 15
0
 public void AddChild(IBehaviorTreeNode _node)
 {
     children.Add(_node);
 }
Ejemplo n.º 16
0
 public abstract void AddChild(IBehaviorTreeNode child);
 //Finished building a composite node
 //Removes composite node from the top of parentstacklist
 public BehaviorTreeBuilder End()
 {
     m_currentParentNode = m_parentNodeStack.Pop();
     return(this);
 }
Ejemplo n.º 18
0
 public virtual BehaviorTreeInternalNode AddChild(IBehaviorTreeNode new_child)
 {
     children.Add(new_child);
     return(this);
 }
Ejemplo n.º 19
0
 public void AddChild(IBehaviorTreeNode child)
 {
     childNode = child;
 }
Ejemplo n.º 20
0
 public override void AddChild(IBehaviorTreeNode child)
 {
     children.Add(child);
 }
Ejemplo n.º 21
0
 public void AddChild(IBehaviorTreeNode root)
 {
     this.root = root;
 }
Ejemplo n.º 22
0
 public void AddChild(IBehaviorTreeNode root)
 {
     this.root = root;
 }
Ejemplo n.º 23
0
 public void DelChild(IBehaviorTreeNode _node)
 {
     children.Remove(_node);
 }
Ejemplo n.º 24
0
 public void DelChild(IBehaviorTreeNode _node)
 {
     children.Remove(_node);
 }
 public BehaviorTreeSequence Add(IBehaviorTreeNode node)
 {
     NodeList.Add(node);
     return(this);
 }
Ejemplo n.º 26
0
 /// <summary>
 /// Ends a sequence of children.
 /// </summary>
 public BehaviorTreeBuilder End()
 {
     curNode = parentNodeStack.Pop();
     return(this);
 }
Ejemplo n.º 27
0
 public void AddChild(IBehaviorTreeNode _node)
 {
     children.Add(_node);
 }
Ejemplo n.º 28
0
 public IBehaviorTreeNode AddChild(IBehaviorTreeNode _child)
 {
     child = _child;
     return(this);
 }
Ejemplo n.º 29
0
 public void Proxy(IBehaviorTreeNode _child)
 {
     child = _child;
 }
Ejemplo n.º 30
0
 public IBehaviorTreeNode AddChild(IBehaviorTreeNode root)
 {
     this.root = root;
     return(this);
 }