コード例 #1
0
        private void DrawInspector(Rect _inspectorArea, PuppeteerPlanVisualiser _visualiser)
        {
            EditorGUI.DrawRect(_inspectorArea, m_InspectorBackgroundColour);

            _inspectorArea.Apply(ref m_BorderOffsetRect);

            GUILayout.BeginArea(_inspectorArea);
            GUILayout.BeginVertical();

            if (m_SelectedNode != null)
            {
                using (var scrollView = new EditorGUILayout.ScrollViewScope(m_ScrollPosition))
                {
                    m_ScrollPosition = scrollView.scrollPosition;
                }

                (m_SelectedNode as VisualiserBaseNode)?.DrawInspector(_visualiser);
            }
            else
            {
                GUILayout.Label("Click on a node\nto display its details.");
            }

            GUILayout.FlexibleSpace();
            GUILayout.EndVertical();
            GUILayout.EndArea();
        }
コード例 #2
0
        public override void DrawInspector(PuppeteerPlanVisualiser _visualiser)
        {
            PuppeteerEditorGUIHelper.DrawGraphInspectorHeader(PuppeteerEditorResourceLoader.GoalIcon32.texture, "Goal", GetContentTypeName());

            EditorGUILayout.Space();
            PuppeteerEditorGUIHelper.DrawDivider();
            EditorGUILayout.Space();

            _visualiser.ShowGoalUtilityFoldout = EditorGUILayout.BeginFoldoutHeaderGroup(_visualiser.ShowGoalUtilityFoldout, "Utility");
            if (_visualiser.ShowGoalUtilityFoldout)
            {
                ++EditorGUI.indentLevel;
                PuppeteerEditorGUIHelper.DrawHorizontal("Base Utility", m_GoalDescription.BaseUtility.ToString());

                ++EditorGUI.indentLevel;
                foreach (var utilityPart in m_GoalDescription.UtilityParts)
                {
                    EditorGUILayout.LabelField(string.Format("{0} {1} * {2}", PuppeteerEditorHelper.UtilityOperatorToString(utilityPart.UtilityOperator),
                                                             utilityPart.WorldStateName.ToString(), utilityPart.CurveMultiplier));
                }
                --EditorGUI.indentLevel;

                --EditorGUI.indentLevel;
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            _visualiser.ShowGoalPartsFoldout = EditorGUILayout.BeginFoldoutHeaderGroup(_visualiser.ShowGoalPartsFoldout, "Goal Parts");
            if (_visualiser.ShowGoalPartsFoldout)
            {
                ++EditorGUI.indentLevel;
                foreach (var goalPart in m_GoalDescription.GoalParts)
                {
                    PuppeteerEditorGUIHelper.DrawHorizontal(goalPart.Key, goalPart.Value.ToString());
                }
                --EditorGUI.indentLevel;
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            EditorGUILayout.Space();
            PuppeteerEditorGUIHelper.DrawDivider();
            EditorGUILayout.Space();

            if (GUILayout.Button("Open Configuration"))
            {
                var window = PuppeteerConfiguratorWindow.CreateWindow();
                window.OpenEntryInTabOfType <GoalView>(m_GoalDescription.GUID);
            }
        }
コード例 #3
0
 public virtual void DrawInspector(PuppeteerPlanVisualiser _visualiser)
 {
     GUILayout.Label(m_HierarchyNode.GetExecutableAction()?.ToString(), EditorStyles.whiteLargeLabel);
     EditorGUILayout.Space();
 }
コード例 #4
0
        public void Draw(IGraphLayout _graphLayout, Rect _totalDrawingArea, GraphSettings _graphSettings, PuppeteerPlanVisualiser _visualiser)
        {
            var drawingArea = new Rect(_totalDrawingArea);

            if (_graphSettings.ShowInspector)
            {
                var inspectorArea = new Rect(_totalDrawingArea)
                {
                    width = Mathf.Max(INSPECTOR_FIXED_WIDTH, drawingArea.width * 0.25f) + BORDER_SIZE * 2
                };

                inspectorArea.x    = drawingArea.xMax - inspectorArea.width;
                drawingArea.width -= inspectorArea.width;

                DrawInspector(inspectorArea, _visualiser);
            }

            Draw(_graphLayout, drawingArea, _graphSettings);
        }
コード例 #5
0
ファイル: ActionNode.cs プロジェクト: NotAdvisable/Puppeteer
        public override void DrawInspector(PuppeteerPlanVisualiser _visualiser)
        {
            PuppeteerEditorGUIHelper.DrawGraphInspectorHeader(PuppeteerEditorResourceLoader.ActionIcon32.texture, "Action", GetContentTypeName());
            DrawNodeInfo();

            _visualiser.ShowActionUtilityFoldout = EditorGUILayout.BeginFoldoutHeaderGroup(_visualiser.ShowActionUtilityFoldout, "Utility");
            if (_visualiser.ShowActionUtilityFoldout)
            {
                ++EditorGUI.indentLevel;
                EditorGUILayout.LabelField(m_ActionDescription.BaseUtility.ToString());
                --EditorGUI.indentLevel;
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            _visualiser.ShowActionPreconditionFoldout = EditorGUILayout.BeginFoldoutHeaderGroup(_visualiser.ShowActionPreconditionFoldout, "Preconditions");
            if (_visualiser.ShowActionPreconditionFoldout)
            {
                ++EditorGUI.indentLevel;
                if (m_ActionDescription.Preconditions.Length == 0)
                {
                    EditorGUILayout.LabelField("none");
                }
                else
                {
                    foreach (var precondition in m_ActionDescription.Preconditions)
                    {
                        PuppeteerEditorGUIHelper.DrawHorizontal(precondition.Key, precondition.Value.ToString());
                    }
                }
                --EditorGUI.indentLevel;
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            _visualiser.ShowActionEffectsFoldout = EditorGUILayout.BeginFoldoutHeaderGroup(_visualiser.ShowActionEffectsFoldout, "Effects");
            if (_visualiser.ShowActionEffectsFoldout)
            {
                ++EditorGUI.indentLevel;
                foreach (var effect in m_ActionDescription.Effects)
                {
                    PuppeteerEditorGUIHelper.DrawHorizontal(effect.Key, effect.Value.ToString());
                }
                --EditorGUI.indentLevel;
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            _visualiser.ShowActionGoalWorldStateAtNodeFoldout = EditorGUILayout.BeginFoldoutHeaderGroup(_visualiser.ShowActionGoalWorldStateAtNodeFoldout, "Goal World State at Node");
            if (_visualiser.ShowActionGoalWorldStateAtNodeFoldout)
            {
                ++EditorGUI.indentLevel;
                foreach (KeyValuePair <string, object> goalWorldStateAtNodePair in m_HierarchyNode.GetSortedGoalWorldStateAtNode())
                {
                    PuppeteerEditorGUIHelper.DrawHorizontal(goalWorldStateAtNodePair.Key, goalWorldStateAtNodePair.Value.ToString());
                }
                --EditorGUI.indentLevel;
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            _visualiser.ShowActionWorldStateAtNodeFoldout = EditorGUILayout.BeginFoldoutHeaderGroup(_visualiser.ShowActionWorldStateAtNodeFoldout, "Total Remaining Preconditions at Node");
            if (_visualiser.ShowActionWorldStateAtNodeFoldout)
            {
                ++EditorGUI.indentLevel;
                if (m_HierarchyNode.GetSortedRemainingPreconditions().Count == 0)
                {
                    EditorGUILayout.LabelField("none");
                }
                else
                {
                    foreach (KeyValuePair <string, object> remainingPreconditions in m_HierarchyNode.GetSortedRemainingPreconditions())
                    {
                        PuppeteerEditorGUIHelper.DrawHorizontal(remainingPreconditions.Key, remainingPreconditions.Value.ToString());
                    }
                }
                --EditorGUI.indentLevel;
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            EditorGUILayout.Space();
            PuppeteerEditorGUIHelper.DrawDivider();
            EditorGUILayout.Space();

            if (GUILayout.Button("Open Configuration"))
            {
                var window = PuppeteerConfiguratorWindow.CreateWindow();
                window.OpenEntryInTabOfType <ActionView>(m_ActionDescription.GUID);
            }
        }