示例#1
0
        //加载工作区
        public void LoadWorkSpace()
        {
            //读取行为树类信息
            NodeTemplate = XmlUtility.Read <NodeTemplate>(GetNodeTemplatePath());
            if (NodeTemplate == null)
            {
                NodeTemplate = new NodeTemplate();
                NodeTemplate.ResetEnums();
                NodeTemplate.ResetNodes();
                XmlUtility.Save(MainForm.Instance.GetNodeTemplatePath(), MainForm.Instance.NodeTemplate);
            }

            NodeTemplateStringContent = XmlUtility.ObjectToString(NodeTemplate);

            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 override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
        {
            m_NodeTemplate = MainForm.Instance.NodeTemplate;

            if (m_NodeTemplate != null)
            {
                if (m_NodeTemplate.Enums.Count == 0)
                {
                    MainForm.Instance.ShowMessage("没有任何枚举,请先注册枚举");
                }
                else
                {
                    m_EnumTypeList.Clear();
                    for (int i = 0; i < m_NodeTemplate.Enums.Count; i++)
                    {
                        CustomEnum customEnum = m_NodeTemplate.Enums[i];
                        if (customEnum == null)
                        {
                            continue;
                        }
                        m_EnumTypeList.Add(customEnum.EnumType);
                    }

                    return(new StandardValuesCollection(m_EnumTypeList));
                }
            }

            return(base.GetStandardValues(context));
        }
        public NodeTreeViewManager(TreeView treeView, NodeTemplate nodeTemplate)
        {
            m_TreeView     = treeView;
            m_NodeTemplate = nodeTemplate;

            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;
        }
 private void 重置ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("是否重置所有类信息吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
     {
         MainForm.Instance.Exec(OperationType.Reset);
         m_Nodes = MainForm.Instance.NodeTemplate;
         m_NodeTreeViewManager = new NodeTreeViewManager(treeView1, m_Nodes);
         m_NodeTreeViewManager.BindNodeTemplate();
     }
 }
示例#5
0
 //重置数据
 private void Reset()
 {
     EditorUtility.NodeDefineDic.Clear();
     treeView1.Nodes.Clear();
     NodeTemplate = new NodeTemplate();
     NodeTemplate.ResetEnums();
     NodeTemplate.ResetNodes();
     BehaviorTreeData = new BehaviorTreeDataDesigner();
     CreateTreeViewManager();
     SetSelectedBehaviorTree(null);
 }
示例#6
0
        //打开工作区
        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);

                        //读取行为树类信息
                        NodeTemplate = XmlUtility.Read <NodeTemplate>(GetNodeTemplatePath());
                        if (NodeTemplate == null)
                        {
                            NodeTemplate = new NodeTemplate();
                            NodeTemplate.ResetNodes();
                            XmlUtility.Save(GetNodeTemplatePath(), NodeTemplate);
                        }

                        NodeTemplateStringContent = XmlUtility.ObjectToString(NodeTemplate);

                        //读取行为树数据
                        LoadBehaviorTreeData();

                        CreateTreeViewManager();
                    }
                }
            }
        }
 public NodeTemplateForm()
 {
     m_Nodes = MainForm.Instance.NodeTemplate;
     InitializeComponent();
 }