public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();
            var t = (DialogueOwner)target;

            if (t.dialogueCamera == null)
            {
                var d = t.gameObject.GetComponentInChildren <DialogueCamera>();
                if (d != null)
                {
                    if (GUILayout.Button("Set child dialogue camera"))
                    {
                        t.dialogueCamera = d;
                        EditorUtility.SetDirty(t);
                    }
                }
            }

            if (GUILayout.Button("Create new dialogue"))
            {
                var path = EditorUtility.SaveFilePanelInProject("Save location", "Dialogue" + DateTime.Now.ToFileTime(), "asset", "Save new dialogue object location");
                if (string.IsNullOrEmpty(path) == false)
                {
                    var asset = ScriptableObject.CreateInstance <Dialogue>();
//                    string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/New " + typeof(Dialogue).ToString() + ".asset");

                    AssetDatabase.CreateAsset(asset, path);
                    AssetDatabase.SaveAssets();
                    AssetDatabase.Refresh();

                    t.dialogue = AssetDatabase.LoadAssetAtPath <Dialogue>(path);
                    EditorUtility.SetDirty(t);

                    DialogueEditorWindow.Edit(t);
                }
            }

            if (GUILayout.Button("Edit dialogue"))
            {
                DialogueEditorWindow.Edit(t);
            }

            var trigger = t.gameObject.GetComponent <TriggerBase>();

            if (trigger == null)
            {
                GUILayout.Space(10);

                GUILayout.Label("You can add a trigger to set the use distance.");
                foreach (var type in ReflectionUtility.GetAllTypesThatImplement(typeof(TriggerBase)))
                {
                    var tempType = type;
                    if (GUILayout.Button("Add: " + tempType.Name))
                    {
                        t.gameObject.AddComponent(tempType);
                    }
                }
            }
        }
    public void Configure(DialogueEditorWindow _editorWindow, DialogueGraphView _graphView)
    {
        editorWindow = _editorWindow;
        graphView    = _graphView;

        pic = new Texture2D(1, 1);
        pic.SetPixel(0, 0, new Color(0, 0, 0, 0));
        pic.Apply();
    }
Ejemplo n.º 3
0
        private void DrawNodeEditor(ref Rect rect, DialogueEditorWindow editor)
        {
            var a = editor.selectedNodeEditors.FirstOrDefault();

            if (a != null)
            {
                a.DrawSidebar(ref rect);
            }
        }
Ejemplo n.º 4
0
        protected virtual void OnGUI()
        {
            searchQuery = EditorStyles.SearchBar(searchQuery, this, isSearching);

            foreach (var kvp in lookups)
            {
                if (isSearching)
                {
                    if (kvp.Value.Any(o => o.Name.ToLower().Contains(searchQuery.ToLower())) == false)
                    {
                        continue;
                    }
                }
                else
                {
                    GUI.color = Color.cyan;

                    if (GUILayout.Button(kvp.Key, expandedKeys.Contains(kvp.Key) ? normalButtonStyle : selectedButtonStyle))
                    {
                        if (expandedKeys.Contains(kvp.Key))
                        {
                            expandedKeys.Remove(kvp.Key);
                        }
                        else
                        {
                            expandedKeys.Add(kvp.Key);
                        }
                    }
                }

                GUI.color = Color.white;

                if (expandedKeys.Contains(kvp.Key) || isSearching)
                {
                    foreach (var type in lookups[kvp.Key])
                    {
                        EditorGUILayout.BeginHorizontal();

                        GUILayout.Space(20);
                        if (GUILayout.Button(type.Name))
                        {
                            var node = DialogueEditorWindow.CreateAndAddNodeToCurrentDialog(type);
                            if (node != null)
                            {
                                DevdogLogger.LogVerbose("Add new node of type " + type.Name + " with index: " + node.index);
                            }
                            else
                            {
                                DevdogLogger.Log("Couldn't add node, no dialogue selected.");
                            }
                        }

                        EditorGUILayout.EndHorizontal();
                    }
                }
            }
        }
Ejemplo n.º 5
0
 private void DrawEdgeEditor(ref Rect rect, DialogueEditorWindow editor)
 {
     if (editor.selectedEdges.Count > 0)
     {
         foreach (var edgeDrawer in _edgeDrawers)
         {
             edgeDrawer.Draw(ref rect);
         }
     }
 }
        public override void Init(NodeBase node, DialogueEditorWindow editor)
        {
            base.Init(node, editor);

            if (_types == null)
            {
                _types = ReflectionDrawerUtility.GetDerivedTypesFrom(typeof(SetVariableNode <>), null);
            }

            _typeIndex = Mathf.Max(Array.IndexOf(_types.types, node.GetType()), 0);
        }
Ejemplo n.º 7
0
        private void Update(DialogueEditorWindow editor)
        {
            _editor     = editor;
            _nodeEditor = editor.selectedNodeEditors.FirstOrDefault();
            _edge       = editor.selectedEdges.FirstOrDefault();
            _edgeDrawers.Clear();

            if (_edge != null)
            {
                _edgeDrawers = ReflectionDrawerUtility.BuildEditorHierarchy(_edge.GetType(), _edge).ToList();
            }
        }
Ejemplo n.º 8
0
        public virtual void Init(NodeBase node, DialogueEditorWindow editor)
        {
            this.node   = node;
            this.editor = editor;

            _childFields.Clear();

            drawers = ReflectionDrawerUtility.BuildEditorHierarchy(node.GetType(), node);
            foreach (var drawer in drawers)
            {
                _showInNodeDict[drawer] = drawer.fieldInfo.GetCustomAttributes(typeof(ShowInNodeAttribute), true).Length == 0;
            }
        }
Ejemplo n.º 9
0
    // Overrides the Inspecotr GUI for the Dialogue Script
    public override void OnInspectorGUI()
    {
        var Script = target as DialogueScript;

        CGHeader();

        EditorGUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();

        if (GUILayout.Button("Open Editor"))
        {
            DialogueEditorWindow.ShowWindow();
        }

        if (GUILayout.Button("Documentation"))
        {
            //Application.OpenURL("");
        }

        GUILayout.FlexibleSpace();
        EditorGUILayout.EndHorizontal();

        GUILayout.Space(10f);

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("File Active: ", GUILayout.Width(65));
        Script.File = (DialogueFile)EditorGUILayout.ObjectField(Script.File, typeof(DialogueFile), false);
        EditorGUILayout.EndHorizontal();

        GUILayout.Space(10f);

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Name Txt: ", GUILayout.Width(80));
        Script.NameTxt = (Text)EditorGUILayout.ObjectField(Script.NameTxt, typeof(Text), false);
        EditorGUILayout.EndHorizontal();


        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Dialogue Txt: ", GUILayout.Width(80));
        Script.DialTxt = (Text)EditorGUILayout.ObjectField(Script.DialTxt, typeof(Text), false);
        EditorGUILayout.EndHorizontal();

        GUILayout.Space(10f);

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Display Mode: ", GUILayout.Width(85));
        Script.DisplayStyle = (Styles)EditorGUILayout.EnumPopup(Script.DisplayStyle, GUILayout.Width(100));
        EditorGUILayout.EndHorizontal();

        base.OnInspectorGUI();
    }
Ejemplo n.º 10
0
    public StartNode(Vector2 _position, DialogueEditorWindow _editorWindow, DialogueGraphView _graphView)
    {
        editorWindow = _editorWindow;
        graphView    = _graphView;

        title = "Start";
        SetPosition(new Rect(_position, defaultNodeSize));
        NodeGuid = Guid.NewGuid().ToString();

        AddOutputPort("Output", Port.Capacity.Single);

        RefreshExpandedState();
        RefreshPorts();
    }
Ejemplo n.º 11
0
        protected override object DrawInternal(Rect rect)
        {
            foreach (var child in children)
            {
                child.Draw(ref rect);
            }

            rect.y += ReflectionDrawerStyles.singleLineHeight;
            if (GUI.Button(rect, "Edit"))
            {
                DialogueEditorWindow.Edit((Dialogue)value);
            }

            return(value);
        }
Ejemplo n.º 12
0
        public override void Draw(Rect rect, DialogueEditorWindow editor)
        {
            if ((_editor != null && _editor.dialogue != editor.dialogue) ||
                (editor.selectedNodeEditors.Count > 0 && editor.selectedNodeEditors.Contains(_nodeEditor) == false) ||
                (editor.selectedEdges.Count > 0 && editor.selectedEdges.Contains(_edge) == false))
            {
                Update(editor);
            }

            if (editor.selectedNodeEditors.Count == 0 && editor.selectedEdges.Count == 0)
            {
                GUI.Label(rect, "Select a node or edge (line) to edit it.");
                rect.y += EditorGUIUtility.singleLineHeight;
            }

            DrawEdgeEditor(ref rect, editor);
            DrawNodeEditor(ref rect, editor);
        }
Ejemplo n.º 13
0
        // Spawning StartNode
        public StartNode(Vector2 position, DialogueEditorWindow newEditorWindow, DialogueGraphView newGraphView)
        {
            // Adding and loading this node .css from /Resources
            StyleSheet styleSheet = Resources.Load <StyleSheet>("NodeStyleSheet");

            styleSheets.Add(styleSheet);

            editorWindow = newEditorWindow;
            graphView    = newGraphView;

            title = "Start";
            SetPosition(new Rect(position, defaultNodeSize));
            nodeGuid = Guid.NewGuid().ToString();

            AddOutputPort("Output", Port.Capacity.Single);

            RefreshExpandedState();
            RefreshPorts();
        }
Ejemplo n.º 14
0
    public DialogueGraphView(DialogueEditorWindow _editorWindow)
    {
        editorWindow = _editorWindow;

        StyleSheet tmpStyleSheet = Resources.Load <StyleSheet>(styleSheetsName);

        styleSheets.Add(tmpStyleSheet);

        SetupZoom(ContentZoomer.DefaultMinScale, ContentZoomer.DefaultMaxScale);

        this.AddManipulator(new ContentDragger());
        this.AddManipulator(new SelectionDragger());
        this.AddManipulator(new RectangleSelector());
        this.AddManipulator(new FreehandSelector());

        GridBackground grid = new GridBackground();

        Insert(0, grid);
        grid.StretchToParentSize();

        AddSearchWindow();
    }
        public override void Draw(Rect rect, DialogueEditorWindow editor)
        {
            // Little bit of caching..
            if (_lastDialogue != editor.dialogue || _isDirty)
            {
                _lastDialogue = editor.dialogue;
                _drawer       = ReflectionDrawerUtility.BuildEditorHierarchy(typeof(Dialogue).GetField("variables"), _lastDialogue);

                _isDirty = false;
            }

            _drawer.Draw(ref rect);

//            rect.y += EditorGUIUtility.singleLineHeight;
//            if (GUI.Button(rect, "Add generic type"))
//            {
//                var l = new List<Variable>(_lastDialogue.variables.Cast<Variable>());
//                l.Add(new Variable<Vector2>());
//                _lastDialogue.variables = l.ToArray();
//
//                _isDirty = true;
//            }
        }
Ejemplo n.º 16
0
        public override void UpdateIssue()
        {
            var dialogues = UnityEngine.Resources.FindObjectsOfTypeAll <Dialogue>();

            foreach (var dialogue in dialogues)
            {
                foreach (var node in dialogue.nodes)
                {
                    var v = node.Validate();
                    if (v.validationType != ValidationType.Valid)
                    {
                        var d = dialogue;
                        var n = node;
                        issues.Add(new GameRuleIssue(v.message, v.validationType == ValidationType.Warning ? MessageType.Warning : MessageType.Error, new GameRuleAction("Select node",
                                                                                                                                                                         () =>
                        {
                            DialogueEditorWindow.Edit(d);
                            DialogueEditorWindow.FocusOnNode(n);
                            DialogueEditorWindow.PingNode(n);
                        })));
                    }
                }
            }
        }
Ejemplo n.º 17
0
        public override void Init(NodeBase node, DialogueEditorWindow editor)
        {
            base.Init(node, editor);

            maxOutgoingEdges = 2;
        }
Ejemplo n.º 18
0
 public abstract void Draw(Rect rect, DialogueEditorWindow editor);
Ejemplo n.º 19
0
 public override void Init(NodeBase node, DialogueEditorWindow editor)
 {
     base.Init(node, editor);
     this.nodeSize = new Vector2(200f, 50f);
 }
    // Overrides the Inspecotr GUI for the Dialogue Script
    public override void OnInspectorGUI()
    {
        var Script = target as DialogueScript;

        //EditorGUILayout.BeginHorizontal();
        //GUILayout.FlexibleSpace();
        //// Carter Games Logo
        //if (GUILayout.Button(Resources.Load<Texture2D>("CarterGames/Logo"), GUIStyle.none, GUILayout.Width(50), GUILayout.Height(50)))
        //{
        //    GUI.FocusControl(null);
        //}
        //GUILayout.FlexibleSpace();
        //EditorGUILayout.EndHorizontal();


        //EditorGUILayout.BeginHorizontal();
        //GUILayout.FlexibleSpace();
        //EditorGUILayout.LabelField("Dialogue Manager | V: 1.0");
        //GUILayout.FlexibleSpace();
        //EditorGUILayout.EndHorizontal();

        GUILayout.Space(20);

        EditorGUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();

        if (GUILayout.Button("Open File Editor"))
        {
            DialogueEditorWindow.ShowWindow();
        }

        //if (GUILayout.Button("Documentation"))
        //{
        //          //Application.OpenURL("");
        //}

        GUILayout.FlexibleSpace();
        EditorGUILayout.EndHorizontal();

        GUILayout.Space(10f);

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("File in use: ", GUILayout.MaxWidth(65));
        Script.File = (DialogueFile)EditorGUILayout.ObjectField(Script.File, typeof(DialogueFile), false);
        EditorGUILayout.EndHorizontal();

        GUILayout.Space(10f);

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Character Name: ", GUILayout.MaxWidth(100));
        Script.DialName = (Text)EditorGUILayout.ObjectField(Script.DialName, typeof(Text), false);
        EditorGUILayout.EndHorizontal();


        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Character Text: ", GUILayout.MaxWidth(100));
        Script.DialText = (Text)EditorGUILayout.ObjectField(Script.DialText, typeof(Text), false);
        EditorGUILayout.EndHorizontal();

        GUILayout.Space(10f);

        EditorGUILayout.BeginHorizontal();
        //Script.DisplayStyle = (Styles)EditorGUILayout.EnumPopup("Display Mode: ", Script.DisplayStyle);
        EditorGUILayout.EndHorizontal();


        // Base inspector - Disabled as this isn't used really.
        base.OnInspectorGUI();
    }
    private void drawControls()
    {
        GUILayoutOption[] styles = new GUILayoutOption[1];
        styles[0] = GUILayout.MinHeight(25);

        // Editor
        //GUILayout.BeginArea(new Rect(10,180,(Screen.width*0.5f)-10, 1000));
        GUILayout.BeginArea(new Rect(10, 180, Screen.width - 20, 1000));
        //GUILayout.Label("Editor:", EditorStyles.boldLabel);
        if (GUILayout.Button("Open Dialogue Editor", styles))
        {
            DialogueEditorWindow.Init();
        }
        GUILayout.Space(10);

        if (GUILayout.Button("Force Load Dialogues", styles))
        {
            DialogueEditorDataManager.load();
        }
        GUILayout.Label("Reload the Dialogues object. Forces Dialoguer to reload all Dialoguer info.", EditorStyles.wordWrappedMiniLabel);
        GUILayout.Space(10);


        if (GUILayout.Button("Generate Dialogues Enum", styles))
        {
            DialoguerEnumGenerator.GenerateDialoguesEnum();
        }
        t.data.generateEnum = GUILayout.Toggle(t.data.generateEnum, "Automatically Generate Dialogues Enum", EditorStyles.toggleGroup);
        GUILayout.Label("Generate the DialoguerDialogues enum, used for starting Dialogues by name.", EditorStyles.wordWrappedMiniLabel);

        GUILayout.EndArea();


        // Help
        //GUILayout.BeginArea(new Rect(10 + (Screen.width*0.5f),180,(Screen.width*0.5f)-15, 1000));
        GUILayout.BeginArea(new Rect(10, 400, Screen.width - 20, 1000));
        GUILayout.Label("Help:", EditorStyles.boldLabel);
        if (GUILayout.Button("Dialoguer Website", styles))
        {
            DialogueEditorHelp.Website();
        }
        if (GUILayout.Button("Getting Started", styles))
        {
            DialogueEditorHelp.GettingStarted();
        }
        if (GUILayout.Button("Nodes", styles))
        {
            DialogueEditorHelp.Nodes();
        }
        if (GUILayout.Button("Code Documentation", styles))
        {
            DialogueEditorHelp.Code();
        }
        if (GUILayout.Button("Frequently Asked Questions", styles))
        {
            DialogueEditorHelp.Faq();
        }
        if (GUILayout.Button("Contact/Feedback", styles))
        {
            DialogueEditorHelp.Contact();
        }
        GUILayout.EndArea();
    }