public TestScreen(Sprite houseSpr, Sprite frameSpr) { this.frameSpr = frameSpr; Padding = new Point(10, 10); Margin = 10; SetFixedSize(700, 500); HorizontalLayout mainHor = new HorizontalLayout(); mainHor.SetLayoutSizeForBoth(LayoutSize.MatchParent); VerticalLayout leftOverview = new VerticalLayout(); leftOverview.SetFixedSize(200, 300).SetLayoutSize(LayoutSize.FixedSize, LayoutSize.MatchParent); leftOverview.AddScrollbar(); leftOverview.Margin = 6; leftOverview.Padding = new Point(6, 2); int buildingsCount = 12; buildings = new VerticalLayout[buildingsCount]; for (int i = 0; i < buildingsCount; i++) { int index = i; VerticalLayout inner = new VerticalLayout(); inner.OnMouseEnter = () => { MouseOvered(index); }; buildings[i] = inner; inner.Padding = new Point(0, 4); inner.SetLayoutSize(LayoutSize.MatchParent, LayoutSize.WrapContent); Image im = new Image(houseSpr); inner.OnMouseClick = () => { SelectBuilding(index); }; inner.AddChild(im); inner.AddChild(new Text($"Name {i}").SetAllignments(Allignment.Middle, Allignment.Middle)); leftOverview.AddChild(inner); } selectedText = new KeyValueText("Selected Buildings:", selected.ToString()); selectedText.layoutSizeX = LayoutSize.WrapContent; VerticalLayout specifics = new VerticalLayout(); specifics.overwriteChildLayout = false; specifics.SetMargin(6); specifics.SetLayoutSizeForBoth(LayoutSize.MatchParent); //specifics.SetChildAllignment(Allignment.Bottom); specifics.childAllignX = AnchorX.Right; VerticalLayout buildingInfos = new VerticalLayout(); buildingInfos.Padding = new Point(10); //buildingInfos.GetStandardSprite(true); buildingInfos.SetLayoutSize(LayoutSize.MatchParent, LayoutSize.WrapContent); buildingName = new Text("Building Name"); buildingInfos.AddChild(buildingName); buildingStats = new KeyValueText[] { new KeyValueText("building info Test", "12"), new KeyValueText("and more", "13"), new KeyValueText("even more", "14"), new KeyValueText("even more", "15"), new KeyValueText("even more", "15") }; foreach (var el in buildingStats) { buildingInfos.AddChild(el); } specifics.AddChild(selectedText); specifics.AddChild(buildingInfos); mainHor.AddChild(leftOverview); mainHor.AddChild(specifics); HorizontalLayout buttons = new HorizontalLayout(); //buttons.SetChildAllignment(Allignment.Right).SetMargin(10); buttons.SetLayoutSize(LayoutSize.MatchParent, LayoutSize.WrapContent); finishButton = new Button("Finish Selection"); buttons.AddChild(finishButton); buttons.AddChild(new Button("Cancel")); specifics.AddChild(buttons); AddChild(mainHor); }
private void CreateUI() { mainMenu = new MainMenu(Content, StartNewGame, game.Exit); mainMenuCanvas.AddChild(mainMenu); mainMenuCanvas.Finish(); Dictionary <string, SoundEffect> sounds = new Dictionary <string, SoundEffect>() { { "level0Intro", Content.Load <SoundEffect>("Sounds/level0Intro") }, { "level1Intro", Content.Load <SoundEffect>("Sounds/level1Intro") }, { "level2Intro", Content.Load <SoundEffect>("Sounds/level2Intro") }, { "gameFinished", Content.Load <SoundEffect>("Sounds/gameFinished") }, { "gameOver", Content.Load <SoundEffect>("Sounds/gameOver") }, }; transitionText = new MapTransitionText(TransitionContinueClicked, BackToMenu, game.Exit, sounds); transitionCanvas.AddChild(transitionText); transitionCanvas.Finish(); mapCanvas.AddChild(new UnitPanel(() => { if (currentMap != null) { return(currentMap.GetSelectedUnit()); } else { return(null); } }, mapCanvas.sprites)); mapCanvas.AddChild(new EnemyInfoPanel(() => { if (currentMap != null) { return(currentMap.GetMouseOverEnemy()); } else { return(null); } })); damagePopup = new DamagePopup(camera); Map.damagePopup = damagePopup; mapCanvas.AddChild(damagePopup); HorizontalLayout mainButtons = new HorizontalLayout(); mainButtons.SetMargin(6).Padding = new Point(6, 6); mainButtons.SetLayoutSize(LayoutSize.WrapContent, LayoutSize.FixedSize); mainButtons.SetFixedHeight(44); mainButtons.SetFixedWidth(270); mainButtons.sprite = mapCanvas.sprites["panel"]; Button menuButton = new Button(mapCanvas.sprites["menu"]); menuButton.SetFixedSize(32, 32); Button musicButton = new Button(Config.musicPlaying ? mapCanvas.sprites["musicOn"] : mapCanvas.sprites["musicOff"]); musicButton.SetFixedSize(32, 32); musicButton.OnMouseClick = () => { Config.musicPlaying = !Config.musicPlaying; if (Config.musicPlaying) { musicButton.sprite = mapCanvas.sprites["musicOn"]; } else { musicButton.sprite = mapCanvas.sprites["musicOff"]; } }; Button nextTurnButton = new Button(mapCanvas.sprites["nextTurn"]); nextTurnButton.SetFixedSize(32, 32); nextTurnButton.OnMouseClick = () => { if (currentMap != null) { currentMap.EndTurn(); } }; KeyValueText turnText = new KeyValueText("turns", "12"); turnText.SetLayoutSizeForBoth(LayoutSize.MatchParent); turnText.SetValueTextUpdate(() => { return(currentMap != null ? currentMap.turnCounter.ToString() : ""); }); mainButtons.AddChild(menuButton, musicButton, nextTurnButton, turnText); mapCanvas.AddChild(mainButtons); EnemyTurnSign enemyTurnSign = new EnemyTurnSign(() => { return(currentMap); }); mapCanvas.AddChild(enemyTurnSign); ControlsPanel controls = new ControlsPanel(mapCanvas.sprites); mapCanvas.AddChild(controls); mapCanvas.Finish(); }