private void MenuItem_PostProcess_Click(object sender, RoutedEventArgs e)
        {
            Category category;

            if (!mCategoryDic.TryGetValue(LogicAnimationPostProcessCategoryName, out category))
            {
                return;
            }

            var validName = GetValidName("LogicAnimPostProcess", category);
            var item      = new CategoryItem(null, category);

            item.CategoryItemType = CategoryItem.enCategoryItemType.LogicAnimPostProcess;
            item.Name             = validName;
            item.InitTypeStr      = "LA_PostProcess";
            var data = new LAAnimPostProcessCategoryItemInitData();

            data.Name     = validName;
            data.ToolTips = item.ToolTips;
            data.Reset();
            item.Initialize(HostControl, data);
            category.Items.Add(item);
            Action create = async() =>
            {
                var nodeContainer = await HostControl.GetNodesContainer(item, true);

                {
                    var csParam = new LAStartPoseControlConstructionParams()
                    {
                        CSType             = HostControl.CSType,
                        NodeName           = "InPose",
                        HostNodesContainer = nodeContainer.NodesControl,
                        ConstructParam     = "",
                    };
                    var ins = nodeContainer.NodesControl.AddNodeControl(typeof(LAStartPoseControl), csParam, 50, 250);
                    ins.HostNodesContainer = nodeContainer.NodesControl;
                    ins.IsDeleteable       = false;
                }
                {
                    var csParam = new LAFinalPoseControlConstructionParams()
                    {
                        CSType             = HostControl.CSType,
                        NodeName           = "OutPose",
                        HostNodesContainer = nodeContainer.NodesControl,
                        ConstructParam     = "",
                    };
                    var ins = nodeContainer.NodesControl.AddNodeControl(typeof(LAFinalPoseControl), csParam, 550, 250);
                    ins.HostNodesContainer = nodeContainer.NodesControl;
                    ins.IsDeleteable       = false;
                }
            };

            create.Invoke();
        }
Beispiel #2
0
        public async Task CreateLinkedNode(CategoryItem MainGridItem)
        {
            var nodesContainer = await HostControl.GetNodesContainer(MainGridItem, false);

            if (nodesContainer == null)
            {
                throw new InvalidOperationException("nodesContainer is null");
            }

            var nodeType = typeof(CodeDomNode.Particle.ParticleSystemControl);

            var node = nodesContainer.NodesControl.AddOrigionNode(nodeType, new CodeDomNode.Particle.ParticleSystemControlConstructionParams(), 50, 50);

            node.IsDeleteable       = false;
            node.HostNodesContainer = nodesContainer.NodesControl;
            MainGridItem.AddInstanceNode(nodesContainer.NodesControl.GUID, node);
        }
        private void MenuItem_BehaviorTree_Click(object sender, RoutedEventArgs e)
        {
            Category category;

            if (!mCategoryDic.TryGetValue(BehaviorTreeCategoryName, out category))
            {
                return;
            }

            var validName = GetValidName("BehaviorTree", category);
            var item      = new CategoryItem(null, category);

            item.CategoryItemType = CategoryItem.enCategoryItemType.BehaviorTree;
            item.Name             = validName;
            item.InitTypeStr      = "BehaviorTreeGraph";
            var data = new BTGraphCategoryItemInitData();

            data.Reset();
            item.Initialize(HostControl, data);
            category.Items.Add(item);

            Action create = async() =>
            {
                var nodeContainer = await HostControl.GetNodesContainer(item, true);

                {
                    {
                        var csParam = new BehaviorTree_RootControlConstructionParams()
                        {
                            CSType             = HostControl.CSType,
                            NodeName           = "Root",
                            HostNodesContainer = nodeContainer.NodesControl,
                            ConstructParam     = "",
                        };
                        var ins = nodeContainer.NodesControl.AddNodeControl(typeof(BehaviorTree_RootControl), csParam, 500, 100);
                        ins.HostNodesContainer = nodeContainer.NodesControl;
                        ins.IsDeleteable       = false;
                    }
                }
            };

            create.Invoke();
        }
        private void MenuItem_LogicGraph_Click(object sender, RoutedEventArgs e)
        {
            Category category;

            if (!mCategoryDic.TryGetValue(LogicStateMachineCategoryName, out category))
            {
                return;
            }

            var validName = GetValidName("LinkNode", category);
            var item      = new CategoryItem(null, category);

            item.Name        = validName;
            item.InitTypeStr = "LFSM_Graph";
            var data = new LFSMGraphCategoryItemInitData();

            data.Name     = validName;
            data.ToolTips = item.ToolTips;
            data.Reset();
            item.Initialize(HostControl, data);
            category.Items.Add(item);
            Action create = async() =>
            {
                var nodeContainer = await HostControl.GetNodesContainer(item, true);

                var csParam = new LogicFSMGraphNodeControlConstructionParams();
                csParam.CSType               = HostControl.CSType;
                csParam.LAGNodeName          = item.Name;
                csParam.LinkedCategoryItemID = item.Id;
                csParam.IsSelfGraphNode      = true;
                var ins = nodeContainer.NodesControl.AddNodeControl(typeof(LogicFSMGraphNodeControl), csParam, 0, 200);
                ins.HostNodesContainer = nodeContainer.NodesControl;
            };

            create.Invoke();
        }