protected MenuUIManager(IMenuController menuController) { MenuRoot = UI.Root; MenuRoot.SetDefaultStyle(Game.PackageManager.GetXmlFile("UI/MainMenuStyle.xml", true)); this.MenuController = menuController; MainMenu = new MainMenu(this); OptionsScreen = new OptionsScreen(this); PauseMenu = new PauseMenu(this); LoadingScreen = new LoadingScreen(this); SaveGameScreen = new SaveGameScreen(this); LoadGameScreen = new LoadGameScreen(this); PackagePickingScreen = new PackagePickingScreen(this); LevelPickingScreen = new LevelPickingScreen(this); LevelSettingsScreen = new LevelSettingsScreen(this); LevelCreationScreen = new LevelCreationScreen(this); SaveAsScreen = new SaveAsScreen(this); EndScreen = new EndScreen(this); AboutScreen = new AboutScreen(this); FileBrowsingPopUp = new FileSystemBrowsingPopUp(this); ConfirmationPopUp = new ConfirmationPopUp(this); ErrorPopUp = new ErrorPopUp(this); PreviousScreens = new Stack <MenuScreen>(); }
public Screen(LevelSettingsScreen proxy, out string errorMessage) : base(proxy) { this.proxy = proxy; Game.UI.LoadLayoutToElement(MenuUIManager.MenuRoot, Game.ResourceCache, "UI/LevelSettingsScreenLayout.xml"); window = (Window)MenuUIManager.MenuRoot.GetChild("LevelSettingsWindow"); customSettingsWindow = (Window)window.GetChild("CustomSettings", true); UIElement descriptionTextElement = Game.UI.LoadLayout(Game.PackageManager.GetXmlFile("UI/DescriptionTextLayout.xml", true), MenuUIManager.MenuRoot.GetDefaultStyle()); descriptionText = (Text)descriptionTextElement.GetChild("DescriptionText"); descriptionText.Value = Level.Description; descriptionScrollView = (ScrollView)window.GetChild("DescriptionScrollView", true); descriptionScrollView.ContentElement = descriptionTextElement; mapImage = (BorderImage)window.GetChild("MapImage"); mapImage.Texture = Level.Thumbnail; mapImage.ImageRect = new Urho.IntRect(0, 0, Level.Thumbnail.Width, Level.Thumbnail.Height); playerList = (ListView)window.GetChild("PlayerListView"); ((Button)window.GetChild("PlayButton", true)).Released += PlayButtonReleased; ((Button)window.GetChild("BackButton", true)).Released += BackButtonReleased; InsigniaGetter insigniaGetter = new InsigniaGetter(); PlayerItem.CreateAndAddToList(playerList, this, insigniaGetter.MarkUsed(PlayerInsignia.NeutralPlayerInsignia), 0, PlayerTypeCategory.Neutral); PlayerItem.CreateAndAddToList(playerList, this, insigniaGetter.GetNextUnusedInsignia(), 1, PlayerTypeCategory.Human); for (int i = 0; i < Level.MaxNumberOfPlayers - 1; i++) { PlayerItem.CreateAndAddToList(playerList, this, insigniaGetter.GetNextUnusedInsignia(), i + 2, PlayerTypeCategory.AI); } try { pluginCustomSettings = Level.LevelLogicType.GetCustomSettings(customSettingsWindow, Game); errorMessage = null; } catch (Exception e) { string message = $"Level plugin threw an exception when getting the Custom settings window contents: {e.Message}"; Urho.IO.Log.Write(Urho.LogLevel.Error, message); pluginCustomSettings = null; errorMessage = message; } }