예제 #1
0
        void OnGUI()
        {
            SampleStyle.DrawWindowBackground(SampleStyle.ColorGrey);
            GUILayout.BeginVertical(SampleStyle.Frame(SampleStyle.ColorLightestGrey));
            _name         = SampleStyle.TextFieldLabeled(Languages.GetText("LevelSetting-LevelName"), _name, SampleStyle.TextFieldLabel, SampleStyle.TextField, SampleStyle.TextFieldHeight);
            _abbreviation = SampleStyle.TextFieldLabeled(Languages.GetText("LevelSetting-LevelAbbreviation"), _abbreviation, SampleStyle.TextFieldLabel, SampleStyle.TextField, SampleStyle.TextFieldHeight);
            _description  = SampleStyle.TextAreaLabeled(Languages.GetText("LevelSetting-Description"), _description, SampleStyle.TextAreaLabel, SampleStyle.TextArea, SampleStyle.TextAreaHeight);
            _tag          = SampleStyle.TextFieldLabeled(Languages.GetText("LevelSetting-Tag"), _tag, SampleStyle.TextFieldLabel, SampleStyle.TextField, SampleStyle.TextFieldHeight);

            EditorGUILayout.HelpBox(FormValidation(), MessageType.Info, true);
            // If error occur, disable apply button.
            EditorGUI.BeginDisabledGroup(_errorType != ErrorType.NoError);
            // Apply button and popup
            if (GUILayout.Button(Languages.GetText("LevelSetting-Apply"), SampleStyle.GetButtonStyle(SampleStyle.ButtonType.Regular, SampleStyle.ButtonColor.Green), SampleStyle.SubmitButtonHeight))
            {
                if (EditorUtility.DisplayDialog(Languages.GetText("LevelSetting-Dialog-Title"),
                                                Languages.GetText("LevelSetting-Dialog-Content"),
                                                Languages.GetText("LevelSetting-Dialog-Yes"), Languages.GetText("LevelSetting-Dialog-No")))
                {
                    // Commit changes
                    Debug.Log(Languages.GetText("LevelSetting-Dialog-Yes-Content"));
                }
                else
                {
                    // Cancel changes;
                    Debug.Log(Languages.GetText("LevelSetting-Dialog-No-Content"));
                }
            }
            EditorGUI.EndDisabledGroup();
            GUILayout.EndVertical();
        }
예제 #2
0
        void OnGUI()
        {
            if (_isInitTabButton)
            {
                MissionTabButtonStyle = new GUIStyle(SampleStyle.GetButtonStyle(SampleStyle.ButtonType.Left, SampleStyle.ButtonColor.Blue));
                SpaceTabButtonStyle   = new GUIStyle(SampleStyle.GetButtonStyle(SampleStyle.ButtonType.Right, SampleStyle.ButtonColor.Blue));
                _isInitTabButton      = false;
            }
            SampleStyle.DrawWindowBackground(SampleStyle.ColorGrey);
            // Buttons for switching mission graph and space graph.
            GUILayout.BeginVertical(SampleStyle.Frame(SampleStyle.ColorLightestGrey));
            LayoutStateButtons();
            // Dropdown for strating node.
            int startingIndex = Mission.Alphabet.Nodes.FindIndex(n => n == Mission.Alphabet.StartingNode);

            startingIndex = SampleStyle.PopupLabeled(Languages.GetText("GenerateMission-StartingNode"), startingIndex, Mission.Alphabet.Nodes.Select(n => n.ExpressName).ToArray(), SampleStyle.PopUpLabel, SampleStyle.PopUp, Screen.width - 15);
            Mission.Alphabet.StartingNode = Mission.Alphabet.Nodes[startingIndex];
            GUILayout.EndVertical();
            // Canvas to draw current mission graph.
            LayoutMissionGraphCanvas();
            // Layout the list of mission group.
            LayoutMissionGroupList();
            // Buttons for operating the graph.
            LayoutFunctionButtons();
        }
예제 #3
0
        // Native function for Editor Window.
        void OnGUI()
        {
            if (_isInitTabButton)
            {
                NodeTabButtonStyle       = new GUIStyle(SampleStyle.GetButtonStyle(SampleStyle.ButtonType.Left, SampleStyle.ButtonColor.Blue));
                ConnectionTabButtonStyle = new GUIStyle(SampleStyle.GetButtonStyle(SampleStyle.ButtonType.Right, SampleStyle.ButtonColor.Blue));
                _isInitTabButton         = false;
            }
            SampleStyle.DrawWindowBackground(SampleStyle.ColorGrey);
            // Buttons - Nodes or Connections.
            GUILayout.BeginVertical(SampleStyle.Frame(SampleStyle.ColorLightestGrey));
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Toggle(_currentTab == AlphabetWindowTab.Nodes, Languages.GetText("MissionAlphabet-Tab-Nodes"), NodeTabButtonStyle, SampleStyle.TabButtonHeight))
            {
                _editingMode = (_currentTab != AlphabetWindowTab.Nodes) ? EditingMode.None : _editingMode;
                _currentTab  = AlphabetWindowTab.Nodes;
            }
            if (GUILayout.Toggle(_currentTab == AlphabetWindowTab.Connections, Languages.GetText("MissionAlphabet-Tab-Connections"), ConnectionTabButtonStyle, SampleStyle.TabButtonHeight))
            {
                _editingMode = (_currentTab != AlphabetWindowTab.Connections) ? EditingMode.None : _editingMode;
                _currentTab  = AlphabetWindowTab.Connections;
            }
            EditorGUILayout.EndHorizontal();
            // Toggle for nodes interface and connection interface.
            switch (_currentTab)
            {
            case AlphabetWindowTab.Nodes:
                // Header.
                GUILayout.Label(Languages.GetText("MissionAlphabet-List-Nodes"), SampleStyle.HeaderTwo, SampleStyle.HeaderTwoHeightLayout);
                // Content of nodes.
                LayoutNodesInterface();
                break;

            case AlphabetWindowTab.Connections:
                // Header.
                GUILayout.Label(Languages.GetText("MissionAlphabet-List-Connections"), SampleStyle.HeaderTwo, SampleStyle.HeaderTwoHeightLayout);
                // Content of connections.
                LayoutConnectionsInterface();
                break;
            }

            // Event controller.
            EventController();
            GUILayout.EndVertical();
        }
예제 #4
0
        void OnGUI()
        {
            Languages.Initialize();
            _description = Languages.GetText("Index-About");

            SampleStyle.DrawWindowBackground(SampleStyle.ColorGrey);
            GUILayout.BeginArea(Container.IndexWindowSplashCanvasArea);
            EditorGUI.DrawPreviewTexture(Container.IndexWindowSplashCanvasArea, SampleStyle.SplashImage);
            GUILayout.EndArea();

            GUILayout.BeginArea(Container.IndexWindowButtonsCanvasArea, SampleStyle.Box);
            GUILayout.BeginVertical(SampleStyle.Frame(SampleStyle.ColorLightestGrey));
            GUILayout.Label(_description, EditorStyles.wordWrappedLabel);
            GUILayout.BeginHorizontal();
            if (GUILayout.Button(Languages.GetText("Index-CreateLevel"), SampleStyle.ButtonLeft, SampleStyle.MainButtonHeight))
            {
                // Safety.
                if (EditorUtility.DisplayDialog("Create new level.",
                                                "Are you sure want to create a new level, this will overwrite the origin level?",
                                                "Yes", "No"))
                {
                    // Initialization.
                    LevelSettingsWindow.Initial();
                    // Reset the windows of mission grammar system.
                    MissionGrammarSystem.AlphabetWindow.Initialize();
                    MissionGrammarSystem.RulesWindow.Initialize();
                    GraphGeneration.MissionGraphWindow.Initialize();
                    // Reset mission alphabet, mission grammar and rewrite system.
                    MissionGrammarSystem.Alphabet.Initial();
                    MissionGrammarSystem.MissionGrammar.Initial();
                    MissionGrammarSystem.RewriteSystem.Initial(GraphGeneration.MissionGraphWindow.Seed);
                }
            }
            if (GUILayout.Button(Languages.GetText("Index-ImportLevel"), SampleStyle.ButtonMid, SampleStyle.MainButtonHeight))
            {
                // Import Level.
            }
            if (GUILayout.Button(Languages.GetText("Index-ImportRewrite"), SampleStyle.ButtonMid, SampleStyle.MainButtonHeight))
            {
                // Import Rewrite.
                string path = EditorUtility.OpenFilePanel("Import xml", "", "xml");
                if (path.Length > 0)
                {
                    DungeonLevel.OperateXML.Unserialize.UnserializeFromXml(path);
                    DungeonWindow.ShowMissionAlphabetWindow();
                    DungeonWindow.ShowMissionRulesWindow();
                    DungeonWindow.ShowGenerateMissionWindow();
                }
            }
            if (GUILayout.Button(Languages.GetText("Index-ExportLevel"), SampleStyle.ButtonRight, SampleStyle.MainButtonHeight))
            {
                // Export Level.
                string path = EditorUtility.SaveFilePanel("Export xml", "", "Level.xml", "xml");
                if (path.Length > 0)
                {
                    DungeonLevel.OperateXML.Serialize.SerializeToXml(path);
                }
            }
            GUILayout.EndHorizontal();
            GUILayout.EndVertical();
            GUILayout.EndArea();
        }