Ejemplo n.º 1
0
        private void ChangeFieldType(BaseNode node, BaseNode parent, int typeInd)
        {
            BaseNode newNode;

            switch (typeInd)
            {
            case 1:
                newNode = new SequenceNode(node.GetChildren(), node.GetId());
                break;

            case 2:
                newNode = new SelectorNode(node.GetChildren(), node.GetId());
                break;

            case 3:
                newNode = new TimeMonitorNode(node.GetChildren(), node.GetId());
                break;

            default:
                newNode = new ActionNode();
                newNode.SetId(node.GetId());
                break;
            }

            if (parent == null)
            {
                HintedExecutionBehaviourTree tree = (HintedExecutionBehaviourTree)target;
                tree.tree = newNode;
            }
            else
            {
                var changeIndex = parent.GetChildren().FindIndex(x => x == node);
                parent.GetChildren()[changeIndex] = newNode;
            }
        }