Defines a main menu.
상속: Control
예제 #1
0
파일: MainMenuWindow.cs 프로젝트: Eneth/GAO
        /// <summary>
        /// Creates a window of the main menu and creates the background world.
        /// </summary>
        protected override void OnAttach()
        {
            instance = this;
            base.OnAttach();

            //for showBackgroundMap field.
            EngineApp.Instance.Config.RegisterClassParameters( GetType() );

            //create main menu window
            window = ControlDeclarationManager.Instance.CreateControl( "Gui\\MainMenuWindow.gui" );

            window.ColorMultiplier = new ColorValue( 1, 1, 1, 0 );
            Controls.Add( window );

            //no shader model 3 warning
            if( window.Controls[ "NoShaderModel3" ] != null )
                window.Controls[ "NoShaderModel3" ].Visible = !RenderSystem.Instance.HasShaderModel3();

            //button handlers
            ( (Button)window.Controls[ "Run" ] ).Click += Run_Click;
            ( (Button)window.Controls[ "RunVillageDemo" ] ).Click += RunVillageDemo_Click;
            ( (Button)window.Controls[ "Multiplayer" ] ).Click += Multiplayer_Click;
            ( (Button)window.Controls[ "Maps" ] ).Click += Maps_Click;
            ( (Button)window.Controls[ "LoadSave" ] ).Click += LoadSave_Click;
            ( (Button)window.Controls[ "Options" ] ).Click += Options_Click;
            ( (Button)window.Controls[ "Profiler" ] ).Click += Profiler_Click;
            ( (Button)window.Controls[ "GuiTest" ] ).Click += GuiTest_Click;
            ( (Button)window.Controls[ "About" ] ).Click += About_Click;
            ( (Button)window.Controls[ "Exit" ] ).Click += Exit_Click;

            //add version info control
            versionTextBox = new TextBox();
            versionTextBox.TextHorizontalAlign = HorizontalAlign.Left;
            versionTextBox.TextVerticalAlign = VerticalAlign.Bottom;
            versionTextBox.Text = "Version " + EngineVersionInformation.Version;
            versionTextBox.ColorMultiplier = new ColorValue( 1, 1, 1, 0 );
            Controls.Add( versionTextBox );

            //showBackgroundMap check box
            CheckBox checkBox = (CheckBox)window.Controls[ "ShowBackgroundMap" ];
            if( checkBox != null )
            {
                checkBox.Checked = showBackgroundMap;
                checkBox.Click += checkBoxShowBackgroundMap_Click;
            }

            //play background music
            GameMusic.MusicPlay( "Sounds\\Music\\MainMenu.ogg", true );

            //update sound listener
            SoundWorld.Instance.SetListener( new Vec3( 1000, 1000, 1000 ),
                Vec3.Zero, new Vec3( 1, 0, 0 ), new Vec3( 0, 0, 1 ) );

            //create the background world
            if( showBackgroundMap )
                CreateMap();

            ResetTime();
        }
예제 #2
0
        /// <summary>
        /// Destroys the background world at closing the main menu.
        /// </summary>
        protected override void OnDetach()
        {
            //destroy the background world
            DestroyMap();

            base.OnDetach();
            instance = null;
        }
예제 #3
0
        /// <summary>
        /// Creates a window of the main menu and creates the background world.
        /// </summary>
        protected override void OnAttach()
        {
            instance = this;
            base.OnAttach();

            //for showBackgroundMap field.
            EngineApp.Instance.Config.RegisterClassParameters(GetType());

            //create main menu window
            window = ControlDeclarationManager.Instance.CreateControl("Gui\\MainMenuWindow.gui");

            window.ColorMultiplier = new ColorValue(1, 1, 1, 0);
            Controls.Add(window);

            //no shader model 3 warning
            if (window.Controls["NoShaderModel3"] != null)
            {
                window.Controls["NoShaderModel3"].Visible = !RenderSystem.Instance.HasShaderModel3();
            }

            //button handlers
            //if( window.Controls[ "Run" ] != null )
            //   ( (Button)window.Controls[ "Run" ] ).Click += Run_Click;
            if (window.Controls["Multiplayer"] != null)
            {
                ((Button)window.Controls["Multiplayer"]).Click += Multiplayer_Click;
            }
            if (window.Controls["Maps"] != null)
            {
                ((Button)window.Controls["Maps"]).Click += Maps_Click;
            }
            if (window.Controls["Maps2"] != null)
            {
                ((Button)window.Controls["Maps2"]).Click += Maps_Click;
            }
            if (window.Controls["LoadSave"] != null)
            {
                ((Button)window.Controls["LoadSave"]).Click += LoadSave_Click;
            }
            if (window.Controls["Options"] != null)
            {
                ((Button)window.Controls["Options"]).Click += Options_Click;
            }
            if (window.Controls["MultiView"] != null)
            {
                ((Button)window.Controls["MultiView"]).Click += MultiView_Click;
            }
            if (window.Controls["ProfilingTool"] != null)
            {
                ((Button)window.Controls["ProfilingTool"]).Click += ProfilingTool_Click;
            }
            if (window.Controls["GUISamples1"] != null)
            {
                ((Button)window.Controls["GUISamples1"]).Click += GUISamples1_Click;
            }
            if (window.Controls["GUISamples2"] != null)
            {
                ((Button)window.Controls["GUISamples2"]).Click += GUISamples2_Click;
            }
            if (window.Controls["GUISamples3"] != null)
            {
                ((Button)window.Controls["GUISamples3"]).Click += GUISamples3_Click;
            }
            if (window.Controls["About"] != null)
            {
                ((Button)window.Controls["About"]).Click += About_Click;
            }
            if (window.Controls["Exit"] != null)
            {
                ((Button)window.Controls["Exit"]).Click += Exit_Click;
            }

            ////add version info control
            //versionTextBox = new TextBox();
            //versionTextBox.TextHorizontalAlign = HorizontalAlign.Left;
            //versionTextBox.TextVerticalAlign = VerticalAlign.Bottom;
            //versionTextBox.Text = "Version " + EngineVersionInformation.Version;
            //versionTextBox.ColorMultiplier = new ColorValue( 1, 1, 1, 0 );
            //Controls.Add( versionTextBox );

            //showBackgroundMap check box
            CheckBox checkBox = (CheckBox)window.Controls["ShowBackgroundMap"];

            if (checkBox != null)
            {
                checkBox.Checked = showBackgroundMap;
                checkBox.Click  += checkBoxShowBackgroundMap_Click;
            }

            //play background music
            GameMusic.MusicPlay("Sounds\\Music\\MainMenu.ogg", true);

            //update sound listener
            SoundWorld.Instance.SetListener(new Vec3(1000, 1000, 1000),
                                            Vec3.Zero, new Vec3(1, 0, 0), new Vec3(0, 0, 1));

            //create the background world
            if (showBackgroundMap)
            {
                CreateMap();
            }

            ResetTime();
        }
예제 #4
0
파일: MainMenuWindow.cs 프로젝트: Eneth/GAO
        /// <summary>
        /// Destroys the background world at closing the main menu.
        /// </summary>
        protected override void OnDetach()
        {
            //destroy the background world
            DestroyMap();

            base.OnDetach();
            instance = null;
        }
예제 #5
0
 private static void ConsoleCommand_LoadMainMenu(string args)
 {
     //MainMenuWindow
     if (MainMenuWindow.Instance == null)
     {
         MainMenuWindow window = new MainMenuWindow();
         GameEngineApp.Instance.ControlManager.Controls.Add(new MainMenuWindow());
     }
     else
     {
         if (MainMenuWindow.Instance != null)
             MainMenuWindow.Instance.SetShouldDetach();
     }
 }
예제 #6
0
        public void SetGnomodiaLogo(MainMenuWindow mainMenu, Manager manager)
        {
            Panel buttonPanel = (Panel)MainMenuWindowPanelField.GetValue(mainMenu);

            ImageBox logo;
            if (!buttonPanel.FindControlRecursive(out logo))
                return;

            Stream logoStream = typeof(ModDialog).Assembly.GetManifestResourceStream("Gnomodia.Images.Gnomodia.png");
            Texture2D logoTexture = Texture2D.FromStream(GnomanEmpire.Instance.GraphicsDevice, logoStream);
            logo.Image = logoTexture;

            logo.SizeMode = SizeMode.Stretched;
            logo.Width = logoTexture.Width * 3;
            logo.Height = logoTexture.Height * 3;

            logo.Left = (buttonPanel.Width - logo.Width) / 2;

            Button[] buttons;
            buttonPanel.FindControlsRecursive(out buttons, b => !string.IsNullOrEmpty(b.Text));
            foreach (var button in buttons)
            {
                button.Top += 76;
            }
        }
예제 #7
0
        public void Reset(MainMenuWindow mainMenu, object sender, System.EventArgs eventArgs)
        {
            _gnomodiaVersionLabel.CalculateWidth();
            _gnomodiaVersionLabel.Left = mainMenu.ClientWidth - _gnomodiaVersionLabel.Width - _gnomodiaVersionLabel.Margins.Right;
            _gnomodiaVersionLabel.Top = _gnomoriaVersionLabel.Top;

            _gnomoriaVersionLabel.CalculateWidth();
            _gnomoriaVersionLabel.Left = mainMenu.ClientWidth - _gnomoriaVersionLabel.Width - _gnomoriaVersionLabel.Margins.Right;
            _gnomoriaVersionLabel.Top = _gnomodiaVersionLabel.Top - _gnomodiaVersionLabel.Margins.Top - 11 - _gnomoriaVersionLabel.Margins.Bottom;
        }
예제 #8
0
        public void AddMainMenuModButton(MainMenuWindow mainMenu, Manager manager)
        {
            Panel buttonPanel = (Panel)MainMenuWindowPanelField.GetValue(mainMenu);

            Button exitButton;
            if (!buttonPanel.FindControlRecursive(out exitButton, b => b.Text == "Exit"))
                return;

            Button modsButton = new Button(manager);
            modsButton.Init();
            modsButton.Width = 200;
            modsButton.Top = exitButton.Top;
            modsButton.Left = (buttonPanel.Width - modsButton.Width) / 2;
            modsButton.Margins = new Margins(0, 2, 0, 2);
            modsButton.Text = "Mods";
            buttonPanel.Height += modsButton.Height + 4;
            modsButton.Click += MainMenuModsButtonClick;
            buttonPanel.Add(modsButton);

            exitButton.Top = modsButton.Top + modsButton.Height + modsButton.Margins.Bottom + exitButton.Margins.Top;

            if (!mainMenu.FindControlRecursive(out _gnomoriaVersionLabel, l => l.Text.StartsWith("v")))
                return;

            _gnomoriaVersionLabel.Text = "Gnomoria " + _gnomoriaVersionLabel.Text;

            _gnomodiaVersionLabel = new Label(manager);
            _gnomodiaVersionLabel.Init();
            _gnomodiaVersionLabel.Alignment = Alignment.MiddleRight;
            _gnomodiaVersionLabel.Text = "Gnomodia v" + typeof(ModDialog).Assembly.GetInformationalVersion();
            mainMenu.Add(_gnomodiaVersionLabel);

            Reset(mainMenu, null, null);
        }