Beispiel #1
0
        public void ShowInstanceProperty()
        {
            if (Plugin.EditMode == EditModes.Design)
            {
                return;
            }

            TreeNode treeNode = this.treeView.SelectedNode;

            if (treeNode == null)
            {
                return;
            }

            string agentInstanceName = treeNode.Name;

            FrameStatePool.PlanningState nodeState = null;

            if (treeNode.Tag != null && treeNode.Tag is FrameStatePool.PlanningProcess)
            {
                FrameStatePool.PlanningProcess planning = (FrameStatePool.PlanningProcess)treeNode.Tag;

                agentInstanceName = planning._agentFullName;
                nodeState         = planning._rootState;
            }

            ParametersDock.Inspect(agentInstanceName, nodeState);
        }
Beispiel #2
0
        private void InspectObject(AgentType agentType, string agentName, string agentFullName, FrameStatePool.PlanningState nodeState)
        {
            Nodes.Node node = null;

            if (!string.IsNullOrEmpty(agentFullName))
            {
                int           frame            = AgentDataPool.CurrentFrame > -1 ? AgentDataPool.CurrentFrame : 0;
                string        behaviorFilename = FrameStatePool.GetBehaviorFilename(agentFullName, frame);
                List <string> transitionIds    = FrameStatePool.GetHighlightTransitionIds(agentFullName, frame, behaviorFilename);
                List <string> highlightNodeIds = FrameStatePool.GetHighlightNodeIds(agentFullName, frame, behaviorFilename);
                List <string> updatedNodeIds   = FrameStatePool.GetUpdatedNodeIds(agentFullName, frame, behaviorFilename);
                Dictionary <string, FrameStatePool.NodeProfileInfos.ProfileInfo> profileInfos = FrameStatePool.GetProfileInfos(frame, behaviorFilename);

                BehaviorNode behavior = UIUtilities.ShowBehaviorTree(agentFullName, frame, transitionIds, highlightNodeIds, updatedNodeIds, HighlightBreakPoint.Instance, profileInfos);
                node = behavior as Nodes.Node;
            }

            _agentType = agentType;
            _agentName = agentName;

            Hide();

            setText(agentType, agentName);

            if (nodeState != null)
            {
                foreach (string agentFullName1 in nodeState._agents.Keys)
                {
                    string[] tokens = agentFullName1.Split('#');
                    Debug.Check(tokens.Length == 2);
                    string at = tokens[0];
                    string an = tokens[1];

                    AgentType agentType1 = Plugin.GetAgentType(at);

                    ParametersDock dock = findParametersDock(agentType1, an);
                    dock.InspectObject(agentType1, agentFullName1);

                    dock.setProperty(nodeState, agentFullName1);
                }
            }
            else if (AgentDataPool.CurrentFrame > -1 && !string.IsNullOrEmpty(agentName))
            {
                ParametersDock dock = findParametersDock(agentType, agentName);
                dock.InspectObject(agentType, agentFullName);

                List <AgentDataPool.ValueMark> valueSet = AgentDataPool.GetValidValues(agentType, agentFullName, AgentDataPool.CurrentFrame);

                foreach (AgentDataPool.ValueMark value in valueSet)
                {
                    dock.setProperty(null, value.Name, value.Value);
                }
            }

            lostAnyFocus();
            Show();
        }
Beispiel #3
0
        internal static void Inspect(AgentType agentType, string agentName, string agentFullName, FrameStatePool.PlanningState nodeState) {
            ParametersDock dock = findParametersDock(agentType, agentName);

            if (dock == null) {
                dock = new ParametersDock();
                dock.Show(MainWindow.Instance.DockPanel, WeifenLuo.WinFormsUI.Docking.DockState.DockBottom);
            }

            dock.InspectObject(agentType, agentName, agentFullName, nodeState);
        }
Beispiel #4
0
        internal static void Inspect(AgentType agentType, string agentName, string agentFullname)
        {
            ParametersDock dock = findParametersDock(agentType, agentName);

            if (dock == null)
            {
                dock = new ParametersDock();
                dock.Show(MainWindow.Instance.DockPanel, WeifenLuo.WinFormsUI.Docking.DockState.DockBottom);
            }

            dock.InspectObject(agentType, agentName, agentFullname);
        }
Beispiel #5
0
        private void updateParameters(AgentType agentType, string agentName, int frame)
        {
            if (string.IsNullOrEmpty(agentName))
            {
                return;
            }

            string typeName      = (agentType == null) ? agentName : agentType.ToString();
            string agentFullname = (agentType == null) ? agentName : agentType.ToString() + "#" + agentName;
            List <AgentDataPool.ValueMark> values = AgentDataPool.GetValidValues(agentType, agentFullname, frame);

            foreach (AgentDataPool.ValueMark value in values)
            {
                ParametersDock.SetProperty(typeName, agentName, value.Name, value.Value);
            }
        }
Beispiel #6
0
        public void ShowInstanceProperty()
        {
            if (Plugin.EditMode == EditModes.Design)
            {
                return;
            }

            TreeNode treeNode = this.treeView.SelectedNode;

            if (treeNode == null)
            {
                return;
            }

            ParametersDock.Inspect(treeNode.Name, false);
        }
Beispiel #7
0
        private static void Planning_ClikcNode(NodeViewData nvd)
        {
            if (nvd != null)
            {
                Behavior b = nvd.Node.Behavior as Behavior;

                if (b != null && b.PlanningProcess != null)
                {
                    b.AgentType.AddPars(b.LocalVars);

                    FrameStatePool.PlanningState nodeState = b.PlanningProcess._rootState;

                    if (nvd.Parent != null)
                    {
                        nodeState = b.PlanningProcess.GetLastNode(nvd);
                    }

                    ParametersDock.Inspect(b.PlanningProcess._agentFullName, nodeState);
                }
            }
        }
Beispiel #8
0
        private void updateParameters(AgentType agentType, string agentName, int frame)
        {
            if (string.IsNullOrEmpty(agentName))
            {
                return;
            }

            string       typeName         = (agentType == null) ? agentName : agentType.ToString();
            string       agentFullname    = (agentType == null) ? agentName : agentType.ToString() + "#" + agentName;
            string       behaviorFilename = FrameStatePool.GetBehaviorFilename(agentFullname, frame);
            BehaviorNode behavior         = null;

            if (agentFullname == Plugin.DebugAgentInstance)
            {
                behavior = UIUtilities.ShowBehavior(behaviorFilename);
            }

            List <AgentDataPool.ValueMark> values = AgentDataPool.GetValidValues(agentType, agentFullname, frame);

            foreach (AgentDataPool.ValueMark value in values)
            {
                ParametersDock.SetProperty(behavior, typeName, agentName, value.Name, value.Value);
            }
        }