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; } }