//加载工作区
        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;
        }
Beispiel #3
0
        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);
 }
Beispiel #5
0
 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();
                    }
                }
            }
        }
Beispiel #7
0
 public ClassForm()
 {
     m_Nodes = MainForm.Instance.NodeClasses;
     InitializeComponent();
 }