public static BTreeNodeDesigner CreateBTreeNodeDesigner(BTreeEditorNodeConfig[] _configNodes, BTreeEditorNode[] _editorNodes, ref BTreeNodeDesigner[] _nodeDesigners, int _index)
        {
            BTreeEditorNode _editorNode = _editorNodes[_index];

            for (int i = 0; i < _editorNode.m_Node.m_ChildCount; i++)
            {
                int _childIndex = _editorNode.m_Node.m_ChildNodes[i].m_Index;
                if (_nodeDesigners[_childIndex] == null)
                {
                    _nodeDesigners[_childIndex] = CreateBTreeNodeDesigner(_configNodes, _editorNodes, ref _nodeDesigners, _childIndex);
                }
            }
            BTreeNodeDesigner _node = new BTreeNodeDesigner(_editorNode);

            //_node.m_EditorNode = _editorNode;
            //_node.m_NodeName = _editorNode.m_Node.m_Name;
            //_node.m_ChildNodeList = new List<BTreeNodeDesigner>();
            //_node.m_ChildNodeConnectionList = new List<BTreeNodeConnection>();

            for (int i = 0; i < _editorNode.m_Node.m_ChildCount; i++)
            {
                int _childIndex = _editorNode.m_Node.m_ChildNodes[i].m_Index;
                _node.m_ChildNodeList.Add(_nodeDesigners[_childIndex]);
                BTreeNodeConnection _connection = new BTreeNodeConnection(_nodeDesigners[_childIndex], _node, NodeConnectionType.Outgoing);
                _node.m_ChildNodeConnectionList.Add(_connection);
            }
            return(_node);
        }
 public BTreeNodeDesigner(BTreeEditorNode _editorNode)
 {
     if (_editorNode == null)
     {
         Debugger.Log("BTreeNodeDesigner Init Null");
         return;
     }
     m_EditorNode = _editorNode;
     m_ChildNodeList = new List<BTreeNodeDesigner>();
     m_ChildNodeConnectionList = new List<BTreeNodeConnection>();
     loadTaskIcon();
 }
 public static BTreeEditorNode[] CreateBTreeEditorNode(BTreeEditorTreeConfig _config)
 {
     BTreeNodeFactory.Init();
     BTreeNode[]       _btreeNodes  = BTreeNodeFactory.CreateBTreeFromConfig(_config);
     BTreeEditorNode[] _editorNodes = new BTreeEditorNode[_btreeNodes.Length];
     for (int i = 0; i < _editorNodes.Length; i++)
     {
         _editorNodes[i]           = new BTreeEditorNode(_btreeNodes[i]);
         _editorNodes[i].m_Pos     = new Vector2(_config.m_EditorNodes[i].m_PosX, _config.m_EditorNodes[i].m_PosY);
         _editorNodes[i].m_Disable = _config.m_EditorNodes[i].m_Disable;
     }
     return(_editorNodes);
 }
        //添加节点
        public BTreeNodeDesigner addNode(Type type, Vector2 position)
        {
            BTreeNode       _node       = (BTreeNode)type.GetConstructor(new Type[] { }).Invoke(new object[] { });
            BTreeEditorNode _editorNode = new BTreeEditorNode(_node);

            _editorNode.m_Pos = position;
            BTreeNodeDesigner _nodeDesigner = new BTreeNodeDesigner(_editorNode);

            if (m_RootNode == null)
            {
                m_RootNode = _nodeDesigner;
                _nodeDesigner.SetEntryDisplay(true);
            }
            else
            {
                if (m_DetachedNodes == null)
                {
                    m_DetachedNodes = new List <BTreeNodeDesigner>();
                }
                m_DetachedNodes.Add(_nodeDesigner);
            }
            return(_nodeDesigner);
        }
Exemplo n.º 5
0
 public void DelChildNode(BTreeEditorNode _node)
 {
     m_Node.DelChildNode(_node.m_Node);
 }
Exemplo n.º 6
0
 public void AddChildNode(BTreeEditorNode _node)
 {
     m_Node.AddChildNode(_node.m_Node);
 }