//加载工作区 public void LoadWorkSpace() { //读取行为树类信息 NodeClasses = XmlUtility.Read <NodeClasses>(GetNodeClassPath()); if (NodeClasses == null) { NodeClasses = new NodeClasses(); NodeClasses.ResetEnums(); NodeClasses.ResetNodes(); XmlUtility.Save(MainForm.Instance.GetNodeClassPath(), MainForm.Instance.NodeClasses); } NodeClassesStringContent = XmlUtility.ObjectToString(NodeClasses); this.Text = Settings.Default.EditorTitle; if (string.IsNullOrEmpty(Settings.Default.WorkDirectory) || string.IsNullOrEmpty(Settings.Default.WorkSpaceName)) { return; } WorkSpaceData = XmlUtility.Read <WorkSpaceData>(GetWorkSpacePath()); if (WorkSpaceData == null) { return; } if (WorkSpaceData != null) { this.Text = string.Format("{0}[{1}]", Settings.Default.EditorTitle, WorkSpaceData.WorkSpaceName); } //读取行为树数据 LoadBehaviorTreeData(); }
public NodeTreeViewManager(TreeView treeView, NodeClasses nodeClasses) { m_TreeView = treeView; m_NodeClasses = nodeClasses; treeView.Nodes.Clear(); m_CompositeItem = new NodeTypeItem(); m_CompositeItem.NodeType = NodeType.Composite; m_CompositeItem.TreeNode = m_TreeView.Nodes.Add("组合节点"); m_CompositeItem.TreeNode.Tag = m_CompositeItem; m_DecoratorItem = new NodeTypeItem(); m_DecoratorItem.NodeType = NodeType.Decorator; m_DecoratorItem.TreeNode = m_TreeView.Nodes.Add("装饰节点"); m_DecoratorItem.TreeNode.Tag = m_DecoratorItem; m_ConditionItem = new NodeTypeItem(); m_ConditionItem.NodeType = NodeType.Condition; m_ConditionItem.TreeNode = m_TreeView.Nodes.Add("条件节点"); m_ConditionItem.TreeNode.Tag = m_ConditionItem; m_ActionItem = new NodeTypeItem(); m_ActionItem.NodeType = NodeType.Action; m_ActionItem.TreeNode = m_TreeView.Nodes.Add("动作节点"); m_ActionItem.TreeNode.Tag = m_ActionItem; }
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { m_NodeClasses = MainForm.Instance.NodeClasses; if (m_NodeClasses != null) { if (m_NodeClasses.Enums.Count == 0) { MainForm.Instance.ShowMessage("没有任何枚举,请先注册枚举"); } else { m_EnumTypeList.Clear(); for (int i = 0; i < m_NodeClasses.Enums.Count; i++) { CustomEnum customEnum = m_NodeClasses.Enums[i]; if (customEnum == null) { continue; } m_EnumTypeList.Add(customEnum.EnumType); } return(new StandardValuesCollection(m_EnumTypeList)); } } return(base.GetStandardValues(context)); }
//重置数据 private void Reset() { EditorUtility.NodeClassDic.Clear(); treeView1.Nodes.Clear(); NodeClasses = new NodeClasses(); NodeClasses.ResetEnums(); NodeClasses.ResetNodes(); TreeData = new TreeData(); SetSelectedAgent(null); }
private void 重置ToolStripMenuItem_Click(object sender, EventArgs e) { if (MessageBox.Show("是否重置所有类信息吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK) { MainForm.Instance.Exec(OperationType.Reset); m_Nodes = MainForm.Instance.NodeClasses; m_NodeTreeViewManager = new NodeTreeViewManager(treeView1, m_Nodes); m_NodeTreeViewManager.BindNodeClasses(); } }
//打开工作区 public void OpenWorkSpace() { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = string.Format("工作区配置|*{0}", Settings.Default.WorkSpaceSetupSuffix); openFileDialog.Title = "打开工作区"; if (openFileDialog.ShowDialog() == DialogResult.OK) { string workSpaceFile = openFileDialog.FileName.Trim(); if (File.Exists(workSpaceFile)) { DirectoryInfo dirInfo = new DirectoryInfo(workSpaceFile); string workDirectory = dirInfo.Parent.FullName; WorkSpaceData = XmlUtility.Read <WorkSpaceData>(workSpaceFile); if (WorkSpaceData != null) { Settings.Default.WorkDirectory = workDirectory; Settings.Default.WorkSpaceName = WorkSpaceData.WorkSpaceName; Settings.Default.Save(); Text = string.Format("{0}[{1}]", Settings.Default.EditorTitle, WorkSpaceData.WorkSpaceName); ShowInfo("打开工作区,时间:" + DateTime.Now); //读取行为树类信息 NodeClasses = XmlUtility.Read <NodeClasses>(GetNodeClassPath()); if (NodeClasses == null) { NodeClasses = new NodeClasses(); NodeClasses.ResetNodes(); XmlUtility.Save(GetNodeClassPath(), NodeClasses); } NodeClassesStringContent = XmlUtility.ObjectToString(NodeClasses); //读取行为树数据 LoadBehaviorTreeData(); CreateTreeViewManager(); } } } }
public ClassForm() { m_Nodes = MainForm.Instance.NodeClasses; InitializeComponent(); }