using Godot; using System; using System.Diagnostics; using System.Threading.Tasks; public partial class MainMenu : Control { Options _Options; Reference _Reference; public override void _Ready() { _Reference = GetNode("/root/Reference"); _Options = GetNode( "/root/Options" ); _Reference.MainMenu = this; } void _on_settings_button_down() { _Reference.SettingsFrame.ToggleSettingsVisibility(); } public async void _on_join_game_pressed() { SettingsFile sf = _Options._SettingsFile; GameSettings gs = sf.Game; (bool, Account) tAccount = await _Reference.MistoxNet.TryValidateSessionToken( gs.SessionToken ); if( !tAccount.Item1 ) { _Reference.Alert.PerformAlert( "Login failed" ); _Reference.SessionHandler.GetParent().Visible = true; return; } _Reference.Lighting.Environment.SsrEnabled = sf.Display.ScreenSpaceReflections; _Reference.Lighting.Environment.SsaoEnabled = sf.Display.ScreenSpaceAmbiantOcclusion; _Reference.Lighting.Environment.SdfgiEnabled = sf.Display.GlobalIllumination; _Reference.GameHandler.Visible = true; _Reference.GameUI.Visible = true; Visible = false; _Options.Host = GetNode("Host").Text; _Reference.GameHandler.StartClient(); this.Visible = false; _Reference.PreGame.Visible = true; } public void _on_start_server_pressed(){ _Reference.GameHandler.StartServer(); _Reference.MainMenu.Visible = false; } }