コード例 #1
0
    private void ShowSaveLoadButtons()
    {
        GUILayout.BeginHorizontal();

        if (GUILayout.Button("Save") && tree != null && tree.root.Data != null)
        {
            savedTree = savedTree.ExportInstance(tree);
            EditorUtility.SetDirty(savedTree);

            CalculateNodeIDs();

            Debug.Log("Saved tree");
        }

        if (GUILayout.Button("Load"))
        {
            Cleanup();
            lastSavedTree = savedTree;
            SerializableTree treeInstance = savedTree.InstantiateTree();
            tree = treeInstance.ImportTree();
            if (tree == null)
            {
                tree = DialogueTester.CreateTestTree(treeInstance.gameObject.transform);
                Debug.Log("Created new tree");
            }
        }

        GUILayout.EndHorizontal();
    }
コード例 #2
0
    void OnGUI()
    {
        GUILayout.BeginVertical();
        scrollPosTree = GUILayout.BeginScrollView(scrollPosTree, GUILayout.Height(currentScrollViewHeight));

        EditorGUIUtility.hierarchyMode = true;
        EditorGUI.indentLevel++;

        GUI.SetNextControlName("DummyControl");
        GUI.Button(new Rect(0, 0, 0, 0), "", GUIStyle.none);

        savedTree = (SerializableTree)EditorGUILayout.ObjectField("Dialogue Tree", savedTree, typeof(SerializableTree), false);

        if (savedTree == null || (lastSavedTree != null && savedTree != lastSavedTree))
        {
            tree  = null;
            nodes = null;
        }
        if (savedTree != null)
        {
            if (GUILayout.Button("Save") && tree != null)
            {
                savedTree.ExportTree(tree);
                EditorUtility.SetDirty(savedTree);
                Debug.Log("Saved tree");
            }

            if (GUILayout.Button("Load"))
            {
                lastSavedTree = savedTree;
                tree          = savedTree.ImportTree();
                if (tree == null)
                {
                    tree = DialogueTester.CreateTestTree();
                    Debug.Log("Created new tree");
                }
            }
        }

        if (savedTree != null && tree != null)
        {
            if (nodes == null)
            {
                nodes  = new Dictionary <int, NodeGUI>();
                nextID = 0;
            }
            NodeGUI.RenderNode(this, tree.root);


            NodeGUI gui = GetNodeAtPoint(Event.current.mousePosition);
            if (gui != null)
            {
                switch (Event.current.type)
                {
                case EventType.MouseDown:
                    if (contextMenuShown)
                    {
                        GUI.FocusControl("DummyControl");
                        dataInEditor     = null;
                        contextMenuShown = false;
                        Event.current.Use();
                    }
                    break;

                case EventType.MouseUp:
                    if (Event.current.button == 1)
                    {
                        GenerateContextMenu(gui);
                        Event.current.Use();
                    }
                    break;
                }
            }

            GUILayout.EndScrollView();
            ResizableSplit();
            scrollPosEditor = GUILayout.BeginScrollView(scrollPosEditor, GUILayout.Height(this.position.height - currentScrollViewHeight));

            NodeGUI focused = GetNodeGUI(GUI.GetNameOfFocusedControl());
            if (focused != null && focused.node != null)
            {
                dataInEditor = focused.node.Data;
                if (focused.node.Data == null)
                {
                    Debug.Log("Data is null... :(");
                }
            }
            if (dataInEditor != null)
            {
                SerializedObject   editor = new SerializedObject(this);
                SerializedProperty data   = editor.FindProperty("dataInEditor");
                EditorGUILayout.PropertyField(data);
            }

            GUILayout.EndScrollView();
            GUILayout.EndVertical();
            Repaint();
        }
    }
コード例 #3
0
        public ShanghaiEXE()
        {
            Debug.DebugSet();
            this.InitializeComponent();
            this.Icon = new Icon("icon.ico");

            var oldConfig = Config.FromCFG("option.cfg");

            if (oldConfig != null)
            {
                File.Move("option.cfg", "option.cfg.OLD");
            }

            ShanghaiEXE.Config = Config.FromXML("option.xml") ?? oldConfig ?? new Config();

            SaveData.Pad[1, 0]  = ShanghaiEXE.Config.ControllerMapping.Up;
            SaveData.Pad[1, 1]  = ShanghaiEXE.Config.ControllerMapping.Right;
            SaveData.Pad[1, 2]  = ShanghaiEXE.Config.ControllerMapping.Down;
            SaveData.Pad[1, 3]  = ShanghaiEXE.Config.ControllerMapping.Left;
            SaveData.Pad[1, 4]  = ShanghaiEXE.Config.ControllerMapping.A;
            SaveData.Pad[1, 5]  = ShanghaiEXE.Config.ControllerMapping.B;
            SaveData.Pad[1, 6]  = ShanghaiEXE.Config.ControllerMapping.L;
            SaveData.Pad[1, 7]  = ShanghaiEXE.Config.ControllerMapping.R;
            SaveData.Pad[1, 8]  = ShanghaiEXE.Config.ControllerMapping.Start;
            SaveData.Pad[1, 9]  = ShanghaiEXE.Config.ControllerMapping.Select;
            SaveData.Pad[1, 11] = ShanghaiEXE.Config.ControllerMapping.Turbo ?? 8;

            SaveData.Pad[0, 0]  = ShanghaiEXE.Config.KeyboardMapping.Up;
            SaveData.Pad[0, 1]  = ShanghaiEXE.Config.KeyboardMapping.Right;
            SaveData.Pad[0, 2]  = ShanghaiEXE.Config.KeyboardMapping.Down;
            SaveData.Pad[0, 3]  = ShanghaiEXE.Config.KeyboardMapping.Left;
            SaveData.Pad[0, 4]  = ShanghaiEXE.Config.KeyboardMapping.A;
            SaveData.Pad[0, 5]  = ShanghaiEXE.Config.KeyboardMapping.B;
            SaveData.Pad[0, 6]  = ShanghaiEXE.Config.KeyboardMapping.L;
            SaveData.Pad[0, 7]  = ShanghaiEXE.Config.KeyboardMapping.R;
            SaveData.Pad[0, 8]  = ShanghaiEXE.Config.KeyboardMapping.Start;
            SaveData.Pad[0, 9]  = ShanghaiEXE.Config.KeyboardMapping.Select;
            SaveData.Pad[0, 11] = ShanghaiEXE.Config.KeyboardMapping.Turbo ?? 78;

            this.scaleFactorX = ShanghaiEXE.Config.ScaleFactor;
            this.scaleFactorY = ShanghaiEXE.Config.ScaleFactor;

            var clientWidth  = (int)(240 * Math.Max(1, this.scaleFactorX));
            var clientHeight = (int)(160 * Math.Max(1, this.scaleFactorY));

            this.ClientSize = new Size(clientWidth, clientHeight);

            if (!ShanghaiEXE.Config.Fullscreen)
            {
                this.FormBorderStyle = FormBorderStyle.FixedSingle;
                SaveData.ScreenMode  = false;
            }
            else
            {
                SaveData.ScreenMode  = true;
                this.FormBorderStyle = FormBorderStyle.None;
                this.WindowState     = FormWindowState.Maximized;
                if (ShanghaiEXE.Config.RenderEngine == "OpenGL")
                {
                    var screenSize = Screen.FromControl(this).Bounds;
                    if (ShanghaiEXE.Config.StretchFullscreen == null || ShanghaiEXE.Config.StretchFullscreen.Value)
                    {
                        this.scaleFactorX = (double)screenSize.Width / Constants.ScreenSize.Width;
                        this.scaleFactorY = (double)screenSize.Height / Constants.ScreenSize.Height;
                    }
                    else
                    {
                        var minimumEvenScale = Math.Min((double)screenSize.Width / Constants.ScreenSize.Width, (double)screenSize.Height / Constants.ScreenSize.Height);
                        this.scaleFactorX = minimumEvenScale;
                        this.scaleFactorY = minimumEvenScale;
                    }
                }
                this.ControlBox = false;
                this.Text       = String.Empty;
            }


            this.volBGM = (float)ShanghaiEXE.Config.VolumeBGM;
            this.volSE  = (float)(ShanghaiEXE.Config.VolumeSE / 100);

            Controller.ctl = (ShanghaiEXE.Config.PausedWhenInactive) ? CooperativeLevel.Foreground : CooperativeLevel.Background;

            this.fps30 = ShanghaiEXE.Config.FPS30;

            ShanghaiEXE.languageTranslationService = new LanguageTranslationService(ShanghaiEXE.Config.Language);
            ShanghaiEXE.language = ShanghaiEXE.Config.Language == "en-US" ? 1 : 0;

            if (ShanghaiEXE.Config.ShowDialogueTester)
            {
                var dialogueTester = new DialogueTester(this, () => scene);
                dialogueTester.Show();
            }

            ShanghaiEXE.Config.ToXML("option.xml");

            this.Closing    += new CancelEventHandler(this.Game_Closing);
            this.MaximizeBox = false;
            this.SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer, true);
        }