/// <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(); }
/// <summary> /// Destroys the background world at closing the main menu. /// </summary> protected override void OnDetach() { //destroy the background world DestroyMap(); base.OnDetach(); instance = null; }
/// <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(); }
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(); } }
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; } }
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; }
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); }