public static BTreeNodeDesigner[] CreateBTreeNodeDesignerFromConfig(BTreeEditorTreeConfig _config)
 {
     BTreeNodeDesigner[] _nodeDesigners = new BTreeNodeDesigner[_config.m_EditorNodes.Length];
     BTreeEditorNode[]   _editorNodes   = CreateBTreeEditorNode(_config);
     //递归创建节点
     for (int i = 0; i < _nodeDesigners.Length; i++)
     {
         if (_nodeDesigners[i] == null)
         {
             _nodeDesigners[i] = CreateBTreeNodeDesigner(_config.m_EditorNodes, _editorNodes, ref _nodeDesigners, i);
         }
     }
     //初始化父节点与连线
     for (int i = 0; i < _nodeDesigners.Length; i++)
     {
         var _editorNode = _editorNodes[i];
         if (_editorNode.m_Node.m_ParentNode != null)
         {
             int _parentIndex = _editorNode.m_Node.m_ParentNode.m_Index;
             _nodeDesigners[i].m_ParentNode = _nodeDesigners[_parentIndex];
             BTreeNodeConnection _connection = new BTreeNodeConnection(_nodeDesigners[i], _nodeDesigners[_parentIndex], NodeConnectionType.Incoming);
             _nodeDesigners[i].m_ParentNodeConnection = _connection;
         }
     }
     return(_nodeDesigners);
 }
        public static BTreeEditorTreeConfig CreateEditorTreeConfigFromRootEditorNode(BTreeNodeDesigner _rootEditorNode)
        {
            TreeConfig            _treeConfig       = BTreeNodeFactory.CreateConfigFromBTreeRoot(_rootEditorNode.m_EditorNode.m_Node);
            BTreeEditorTreeConfig _treeEditorConfig = new BTreeEditorTreeConfig(_treeConfig);
            int index = 0;

            CreateEditorNodeConfigFromRootEditorNode(_rootEditorNode, ref _treeEditorConfig.m_EditorNodes, ref index);

            return(_treeEditorConfig);
        }
 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 BTreeEditorConfig()
 {
     m_RootNode = new BTreeEditorTreeConfig(BTreeNodeSerialization.ReadXML("Btree"));
     m_RootNode.m_IsEnterNode = true;
     m_RootNode.m_EditorNodes = new BTreeEditorNodeConfig[m_RootNode.m_Nodes.Length];
     for (int i = 0; i < m_RootNode.m_EditorNodes.Length; i++)
     {
         m_RootNode.m_EditorNodes[i]           = new BTreeEditorNodeConfig(m_RootNode.m_Nodes[i]);
         m_RootNode.m_EditorNodes[i].m_PosX    = (i + 1) * 60;
         m_RootNode.m_EditorNodes[i].m_PosY    = (i + 1) * 60;
         m_RootNode.m_EditorNodes[i].m_Disable = false;
     }
 }