//加载工作区 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 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 void LoadBehaviorTreeData() { //读取行为树数据 TreeData = XmlUtility.Read <TreeData>(GetBehaviorTreeDataPath()); if (TreeData == null) { TreeData = new TreeData(); XmlUtility.Save(GetBehaviorTreeDataPath(), TreeData); } BehaviorTreeDataStringContent = XmlUtility.ObjectToString(TreeData); if (TreeData.Agents.Count > 0) { for (int i = 0; i < TreeData.Agents.Count; i++) { AgentDesigner agent = TreeData.Agents[i]; if (agent != null) { if (agent.Nodes.Count > 0) { for (int ii = 0; ii < agent.Nodes.Count; ii++) { NodeDesigner node = agent.Nodes[ii]; if (node.Transitions.Count > 0) { for (int iii = 0; iii < node.Transitions.Count; iii++) { Transition transition = node.Transitions[iii]; NodeDesigner fromNode = agent.FindNodeByID(transition.FromNodeID); NodeDesigner toNode = agent.FindNodeByID(transition.ToNodeID); transition.Set(toNode, fromNode); } } } } } } } }
public void LoadBehaviorTreeData() { //读取行为树数据 BehaviorTreeData = XmlUtility.Read <BehaviorTreeDataDesigner>(GetBehaviorTreeDataPath()); if (BehaviorTreeData == null) { BehaviorTreeData = new BehaviorTreeDataDesigner(); XmlUtility.Save(GetBehaviorTreeDataPath(), BehaviorTreeData); } BehaviorTreeDataStringContent = XmlUtility.ObjectToString(BehaviorTreeData); if (BehaviorTreeData.BehaviorTrees.Count > 0) { for (int i = 0; i < BehaviorTreeData.BehaviorTrees.Count; i++) { BehaviorTreeDesigner behaviorTree = BehaviorTreeData.BehaviorTrees[i]; if (behaviorTree != null) { if (behaviorTree.Nodes.Count > 0) { for (int ii = 0; ii < behaviorTree.Nodes.Count; ii++) { NodeDesigner node = behaviorTree.Nodes[ii]; if (node.Transitions.Count > 0) { for (int iii = 0; iii < node.Transitions.Count; iii++) { Transition transition = node.Transitions[iii]; NodeDesigner fromNode = behaviorTree.FindNodeByID(transition.FromNodeID); NodeDesigner toNode = behaviorTree.FindNodeByID(transition.ToNodeID); transition.Set(toNode, fromNode); } } } } } } } }