Inheritance: EditorWindow
コード例 #1
0
        public static ReunionNodeDisplayer CreateReunionNodeDisplayer(Vector2 position)
        {
            ReunionWireNode node = new ReunionWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Reunion"
            };

            DialogEditor.InitializeNode(ref node);

            node.Inputs[0].PinName = "Input 1";
            node.AddInput(new InputWirePin(node, DialogEditor.Instance.EditingDialog)
            {
                PinName  = "Input 2",
                DataType = WDEngine.ActivityStream
            });

            ReunionNodeDisplayer nodeRenderer = new ReunionNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 220, 150)
            };

            Debug.Log("Created a REUNION NODE DISPLAYER.");

            return(nodeRenderer);
        }
コード例 #2
0
        public override void OnInspectorGUI()
        {
            Dialog dialog = (Dialog)target;

            if (eUtils.isPrefab(dialog))
            {
                EditorGUILayout.LabelField("---Для редактирования вытащите диалог на сцену!---");
            }
            else
            {
                if (GUILayout.Button("Edit"))
                {
                    if (dialog != null)
                    {
                        if (DialogEditor.editor == null)
                        {
                            DialogEditor.ShowEditor();
                        }
                        DialogEditor.dialog = dialog;
                        DialogEditor.editor.LoadDialog();
                    }
                }
            }
            base.OnInspectorGUI();
            GUILayout.Space(10);
            eUtils.DrawQuestStateList(dialog.dialogStates, dialog.transform, ref showDialogStates, "Dialog States");
        }
コード例 #3
0
ファイル: DialogEditor.cs プロジェクト: zbyl2/DialogSystem
    public static void ShowDialogEditor(Object target)
    {
        DialogEditor dialogEditor = GetWindow <DialogEditor>();

        dialogEditor.dialog = target as Dialog;
        dialogEditor.SetDialog(target as Dialog);
    }
コード例 #4
0
        private void GUIController_OnZoomToFile(ZoomToFileEventArgs evArgs)
        {
            if (evArgs.IsDebugExecutionPoint)
            {
                RemoveExecutionPointFromAllScripts();
            }

            Dialog dialog = GetDialog(evArgs.FileName);

            if (dialog != null)
            {
                DialogEditor dialogEditor = ShowPaneForDialog(dialog);

                // has dialogEditor has already taken the area available?
                if (dialogEditor.Parent.ClientSize == dialogEditor.Size)
                {
                    // the Dialog Editor be already on screen!
                    dialogEditor.GoToScriptLine(evArgs);
                }
                else
                {
                    // GoToScriptLine uses the size of scintilla control to calculate what lines are visibile and scroll accordingly
                    // since this is not the case, we will advance once the paint events happens, which is after layout adjustment
                    PaintEventHandler paintEvent = null;
                    paintEvent = (s, e1) =>
                    {
                        dialogEditor.GoToScriptLine(evArgs);
                        dialogEditor.Paint -= paintEvent;
                    };
                    dialogEditor.Paint += paintEvent;
                    dialogEditor.Invalidate();
                }
            }
        }
コード例 #5
0
        public static BranchNodeDisplayer CreateBranchDisplayer(Vector2 position)
        {
            BranchWireNode node = new BranchWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Branch"
            };

            DialogEditor.InitializeNode(ref node);

            node.FalsePin = new OutputWirePin(node, DialogEditor.Instance.EditingDialog)
            {
                PinName  = "False",
                DataType = WDEngine.ActivityStream
            };
            node.Outputs[0].PinName = "True";
            node.TruePin            = node.Outputs[0];
            node.Outputs.Add(node.FalsePin);

            node.Inputs.Add(new InputWirePin(node, DialogEditor.Instance.EditingDialog)
            {
                PinName  = "Condition",
                DataType = typeof(bool)
            });

            BranchNodeDisplayer nodeRenderer = new BranchNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 220, 70)
            };

            return(nodeRenderer);
        }
コード例 #6
0
 public override void OnInspectorGUI()
 {
     base.OnInspectorGUI();
     if (GUILayout.Button("Open Editor"))
     {
         DialogEditor.ShowDialogEditor(target);
     }
 }
コード例 #7
0
        public override void Init()
        {
            base.Init();

            Engine.Instance.StateRenderer       = new NativeGameRenderer();
            Engine.Instance.State.Ui.Add(Camera = new Camera(new CameraDriver()));

            DialogEditor.Init();
        }
コード例 #8
0
        public override void RenderNative()
        {
            ImGuiHelper.Begin();
            DialogEditor.Render();
            DebugWindow.Render();
            ImGuiHelper.End();

            Graphics.Batch.Begin();
            Graphics.Batch.DrawCircle(new CircleF(Mouse.GetState().Position, 3f), 8, Color.White);
            Graphics.Batch.End();
        }
コード例 #9
0
ファイル: DialogEditor.cs プロジェクト: zbyl2/DialogSystem
 public static void ShowDialogEditor()
 {
     Object[] selection = Selection.GetFiltered(typeof(Dialog), SelectionMode.Assets);
     if (selection.Length > 0)
     {
         Dialog dlg = selection[0] as Dialog;
         if (dlg != null)
         {
             DialogEditor dialogEditor = GetWindow <DialogEditor>();
             dialogEditor.dialog = dlg;
         }
     }
 }
コード例 #10
0
        public static bool OpenCanvas(int instanceID, int line)
        {
            Object obj = EditorUtility.InstanceIDToObject(instanceID);

            if (obj.GetType() == typeof(DialogCanvas))
            {
                DialogEditor window = (DialogEditor)EditorWindow.GetWindow(typeof(DialogEditor));
                window.oldPath = NodeSaveOperator.LoadCanvas(ref window.canvas, AssetDatabase.GetAssetPath(instanceID));
                window.Show();
                return(true);
            }
            return(false);
        }
コード例 #11
0
ファイル: DialogsComponent.cs プロジェクト: smarinel/ags-web
 private void AddDocumentIfNeeded(bool showEditor, Dialog chosenItem)
 {
     if (!_documents.ContainsKey(chosenItem))
     {
         DialogEditor dialogEditor = new DialogEditor(chosenItem, _agsEditor);
         _documents.Add(chosenItem, new ContentDocument(dialogEditor, chosenItem.WindowTitle, this, ConstructPropertyObjectList(chosenItem)));
         _documents[chosenItem].SelectedPropertyGridObject = chosenItem;
         _documents[chosenItem].MainMenu = dialogEditor.ExtraMenu;
     }
     if (showEditor)
     {
         _guiController.AddOrShowPane(_documents[chosenItem]);
     }
 }
コード例 #12
0
        public static TriggerScriptNodeDisplayer CreateTriggerScriptNodeDisplayer(Vector2 position)
        {
            TriggerScriptWireNode node = new TriggerScriptWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Trigger script"
            };

            DialogEditor.InitializeNode(ref node);

            TriggerScriptNodeDisplayer nodeRenderer = new TriggerScriptNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 270, 100)
            };

            return(nodeRenderer);
        }
コード例 #13
0
        public static SetTriggerParamValueNodeDisplayer CreateSetTriggerParamDisplayer(Vector2 position)
        {
            SetTriggerParamValueWireNode node = new SetTriggerParamValueWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Set trigger param"
            };

            DialogEditor.InitializeNode(ref node);

            SetTriggerParamValueNodeDisplayer nodeRenderer = new SetTriggerParamValueNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 270, 140)
            };

            return(nodeRenderer);
        }
コード例 #14
0
        public static SetVariableValNodeDisplayer CreateSetVariableValDisplayer(Vector2 position)
        {
            SetVariableValWireNode node = new SetVariableValWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Update variable"
            };

            DialogEditor.InitializeNode(ref node);

            SetVariableValNodeDisplayer nodeRenderer = new SetVariableValNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 270, 90)
            };

            return(nodeRenderer);
        }
コード例 #15
0
        public static SayReplyNodeDisplayer CreateSayReplyNodeDisplayer(Vector2 position)
        {
            SayReplyWireNode node = new SayReplyWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Say reply"
            };

            DialogEditor.InitializeNode(ref node);

            SayReplyNodeDisplayer nodeRenderer = new SayReplyNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 270, 100)
            };

            return(nodeRenderer);
        }
コード例 #16
0
        public static DialogBeginningNodeDisplayer CreateDialogBeginningDisplayer(Vector2 position)
        {
            DialogBeginningWireNode node = new DialogBeginningWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Dialog beginning"
            };

            DialogEditor.InitializeNode(ref node);

            DialogBeginningNodeDisplayer nodeRenderer = new DialogBeginningNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 270, 100)
            };

            return(nodeRenderer);
        }
コード例 #17
0
        public static SetAnimatorVariableNodeDisplayer CreateSetAnimatorVariableNodeDisplayer(Vector2 position)
        {
            SetAnimatorVariableWireNode node = new SetAnimatorVariableWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Set animator variable",
                Variable = new Core.Variables.AnimatorVariable()
            };

            DialogEditor.InitializeNode(ref node);

            SetAnimatorVariableNodeDisplayer nodeRenderer = new SetAnimatorVariableNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 270, 130)
            };

            return(nodeRenderer);
        }
コード例 #18
0
    static void processDialogMessage(Dictionary <string, Texture2D> icons, ref DialogMessage dm, XmlElement xmlMessage, string name, int index)
    {
        dm.teller = xmlMessage.Attributes.GetNamedItem("sender").InnerXml;
        if (xmlMessage.Attributes.GetNamedItem("leftIcon") != null)
        {
            if (!icons.ContainsKey(xmlMessage.Attributes.GetNamedItem("leftIcon").InnerXml))
            {
                Debug.Log("dialog:" + xmlMessage.Attributes.GetNamedItem("leftIcon").InnerXml + " right icon does not exist");
            }
            else
            {
                dm.leftIcon = icons[xmlMessage.Attributes.GetNamedItem("leftIcon").InnerXml];
            }
        }

        if (xmlMessage.Attributes.GetNamedItem("rightIcon") != null)
        {
            if (!icons.ContainsKey(xmlMessage.Attributes.GetNamedItem("rightIcon").InnerXml))
            {
                Debug.Log("dialog:" + xmlMessage.Attributes.GetNamedItem("rightIcon").InnerXml + " right icon does not exist");
            }
            else
            {
                dm.rightIcon = icons[xmlMessage.Attributes.GetNamedItem("rightIcon").InnerXml];
            }
        }

        dm.text = xmlMessage.InnerXml;
        string alignment = xmlMessage.Attributes.GetNamedItem("senderalignment").InnerXml;

        if (alignment.ToLower() == "right".ToLower())
        {
            dm.alignment = DialogMessage.Alignment.Right;
        }
        else if (alignment.ToLower() == "left".ToLower())
        {
            dm.alignment = DialogMessage.Alignment.Left;
        }

        string assetPath      = "Dialogs/" + name;
        string path           = "Assets/Resources/Translations/" + assetPath + index.ToString() + ".prefab";
        string prefabFullPath = Application.dataPath + "/Resources/Translations/" + assetPath + index.ToString() + ".prefab";
        string directory      = prefabFullPath.Substring(0, prefabFullPath.LastIndexOf('/') + 1);

        DialogEditor.CreateTranslationForDialogMessage(dm, path, directory);
    }
コード例 #19
0
        public static ChooseReplyNodeDisplayer CreateChooseReplyNodeDisplayer(Vector2 position)
        {
            ChooseReplyWireNode node = new ChooseReplyWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Choice"
            };

            DialogEditor.InitializeNode(ref node);
            node.Outputs[0].PinName = "Choice";

            ChooseReplyNodeDisplayer nodeRenderer = new ChooseReplyNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 240, 100)
            };

            nodeRenderer.AddOutput();
            return(nodeRenderer);
        }
コード例 #20
0
ファイル: DialogsComponent.cs プロジェクト: smarinel/ags-web
        private void RePopulateTreeView()
        {
            _guiController.ProjectTree.RemoveAllChildNodes(this, TOP_LEVEL_COMMAND_ID);
            _guiController.ProjectTree.StartFromNode(this, TOP_LEVEL_COMMAND_ID);
            foreach (Dialog item in _agsEditor.CurrentGame.Dialogs)
            {
                _guiController.ProjectTree.AddTreeLeaf(this, "Dlg" + item.ID, item.ID.ToString() + ": " + item.Name, "DialogIcon");
            }

            if (_documents.ContainsValue(_guiController.ActivePane))
            {
                DialogEditor editor = (DialogEditor)_guiController.ActivePane.Control;
                _guiController.ProjectTree.SelectNode(this, "Dlg" + editor.ItemToEdit.ID);
            }
            else if (_agsEditor.CurrentGame.Dialogs.Count > 0)
            {
                _guiController.ProjectTree.SelectNode(this, "Dlg0");
            }
        }
コード例 #21
0
        private void AddDocumentIfNeeded(bool showEditor, Dialog chosenItem)
        {
            ContentDocument document;

            if (!_documents.TryGetValue(chosenItem, out document) ||
                document.Control.IsDisposed)
            {
                DialogEditor dialogEditor = new DialogEditor(chosenItem, _agsEditor);
                dialogEditor.DockingContainer = new DockingContainer(dialogEditor);
                document = new ContentDocument(dialogEditor, chosenItem.WindowTitle,
                                               this, ICON_KEY, ConstructPropertyObjectList(chosenItem));
                _documents[chosenItem] = document;
                document.SelectedPropertyGridObject = chosenItem;
                document.MainMenu = dialogEditor.ExtraMenu;
            }
            if (showEditor)
            {
                document.TreeNodeID = GetNodeID(chosenItem);
                _guiController.AddOrShowPane(document);
            }
        }
コード例 #22
0
        public static GetAnimatorVariableNodeDisplayer CreateGetAnimatorVariableNodeDisplayer(Vector2 position)
        {
            GetAnimatorVariableWireNode node = new GetAnimatorVariableWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Get animator variable"
            };

            DialogEditor.InitializeNode(ref node);

            node.Outputs.Add(new OutputWirePin(node, DialogEditor.Instance.EditingDialog)
            {
                PinName  = "Variable",
                DataType = typeof(AnimatorVariable)
            });
            GetAnimatorVariableNodeDisplayer nodeRenderer = new GetAnimatorVariableNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 220, 80)
            };

            return(nodeRenderer);
        }
コード例 #23
0
        public static InequalityNodeDisplayer CreateReplyNodeDisplayer(Vector2 position)
        {
            InequalityWireNode node = new InequalityWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Non equal"
            };

            DialogEditor.InitializeNode(ref node);

            node.A = new InputWirePin(node, DialogEditor.Instance.EditingDialog)
            {
                PinName  = "A",
                DataType = typeof(object)
            };
            node.A.RefusedTypes.Add(WDEngine.ActivityStream.Name);
            node.A.RefusedTypes.Add(typeof(bool).Name);
            node.A.RefusedTypes.Add(typeof(int).Name);
            node.A.RefusedTypes.Add(typeof(float).Name);

            node.B = new InputWirePin(node, DialogEditor.Instance.EditingDialog)
            {
                PinName  = "B",
                DataType = typeof(object)
            };
            node.B.RefusedTypes.Add(WDEngine.ActivityStream.Name);
            node.B.RefusedTypes.Add(typeof(bool).Name);
            node.B.RefusedTypes.Add(typeof(int).Name);
            node.B.RefusedTypes.Add(typeof(float).Name);

            node.Inputs.Add(node.A);
            node.Inputs.Add(node.B);


            InequalityNodeDisplayer nodeRenderer = new InequalityNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 140, 70)
            };

            return(nodeRenderer);
        }
コード例 #24
0
    public void DeleteNode()
    {
        DialogEditor editor = DialogEditor.editor;
        Dialog       dialog = DialogEditor.dialog;

        dialog.phrases.Remove(phrase);
        for (int i = 0; i < inputLinks.Count; i++)
        {
            inputLinks[i].DeleteLink();
            i--;
        }
        for (int i = 0; i < chooseNodes.Count; i++)
        {
            chooseNodes[i].DeleteNode(ref i);
        }
        if (dialog.startPhrase == phrase)
        {
            dialog.startPhrase = null;
        }
        DestroyImmediate(phrase.gameObject);
        editor.nodes.Remove(this);
    }
コード例 #25
0
        public static ConstantNodeDisplayer CreateConstantNodeDisplayer(Vector2 position)
        {
            ConstantWireNode node = new ConstantWireNode(DialogEditor.Instance.EditingDialog)
            {
                NodeName = "Constant",
                Constant = new Constant()
            };

            DialogEditor.InitializeNode(ref node);

            node.Outputs.Add(new OutputWirePin(node, DialogEditor.Instance.EditingDialog)
            {
                DataType = typeof(Variable),
                PinName  = "Variable"
            });

            ConstantNodeDisplayer nodeRenderer = new ConstantNodeDisplayer(node)
            {
                WindowRect = new Rect(position.x, position.y, 220, 90)
            };

            return(nodeRenderer);
        }
コード例 #26
0
ファイル: DialogEditor.cs プロジェクト: rogerdv/keyw
 public static void OpenWindow()
 {
     window = (DialogEditor)EditorWindow.GetWindow(typeof(DialogEditor)); //create a window
     window.title = "Dialog Editor"; //set a window title
 }
コード例 #27
0
 public static void ShowEditor()
 {
     // Get existing open window or if none, make a new one:
     editor = (DialogEditor)EditorWindow.GetWindow(typeof(DialogEditor));
 }
コード例 #28
0
 public override void Destroy()
 {
     DialogEditor.Destroy();
     base.Destroy();
     Engine.Instance.StateRenderer = new PixelPerfectGameRenderer();
 }
コード例 #29
0
 public override void RenderUi()
 {
     DialogEditor.RenderUi();
 }
コード例 #30
0
 public void SetDialogEditor(DialogEditor d)
 {
     de = d;
 }
コード例 #31
0
ファイル: DialogsComponent.cs プロジェクト: smarinel/ags-web
 private void AddDocumentIfNeeded(bool showEditor, Dialog chosenItem)
 {
     if (!_documents.ContainsKey(chosenItem))
     {
         DialogEditor dialogEditor = new DialogEditor(chosenItem, _agsEditor);
         _documents.Add(chosenItem, new ContentDocument(dialogEditor, chosenItem.WindowTitle, this, ConstructPropertyObjectList(chosenItem)));
         _documents[chosenItem].SelectedPropertyGridObject = chosenItem;
         _documents[chosenItem].MainMenu = dialogEditor.ExtraMenu;
     }
     if (showEditor)
     {
         _guiController.AddOrShowPane(_documents[chosenItem]);
     }
 }