private void CreateUI() { Point windowSizes = new Point(600, 400); Style.PushStyle("moneyPanel"); Panel moneyPanel = new VerticalLayout().SetAnchor(AnchorX.Right, AnchorY.Top); moneyPanel.SetFixedWidth(300).SetLayoutSize(LayoutSize.FixedSize, LayoutSize.WrapContent); moneyPanel.sprite = Style.sprites["panel"]; moneyPanel.Padding = new Point(16, 8); moneyPanel.AddChild(new Text($"${simulator.playerCompany.displayMoney}").SetTextUpdateFunction(() => { return($"${simulator.playerCompany.displayMoney}"); }).SetAllignments(Allignment.Right, Allignment.Middle).SetFont(Style.fonts["textSmall"]).SetGetTranslation(false)); uiCanvas.AddChild(moneyPanel); Style.PopStyle(); Style.PushStyle("mainButtonPanel"); Panel mainButtonPanel = new VerticalLayout().SetAnchor(AnchorX.Left, AnchorY.Bottom); mainButtonPanel.SetMargin(8).SetLayoutSize(LayoutSize.WrapContent, LayoutSize.WrapContent); mainButtonPanel.sprite = Style.sprites["panel"]; mainButtonPanel.Padding = new Point(8, 8); foreach (GameState gs in Enum.GetValues(typeof(GameState))) { GameState state = gs; Button b = new Button(state.ToString()); b.OnMouseClick = () => ChangeGameState(state); mainButtonPanel.AddChild(b); } uiCanvas.AddChild(mainButtonPanel); Style.PopStyle(); Style.PushStyle("storeScreen"); playerStoreUIScreen = new StoreScreen(CreateAgent, FireAgent); Style.PushStyle("panelSpriteOn"); playerStoreWindow = new Window(playerStoreUIScreen, "Store", uiCanvas).SetIsDraggable(false); playerStoreWindow.SetAnchor(AnchorX.Middle, AnchorY.Middle); playerStoreWindow.Close(); Style.PopStyle("panelSpriteOn"); uiCanvas.AddChild(playerStoreWindow); CitiesScreen citiesScreen = new CitiesScreen(windowSizes, simulator.cities); Style.PushStyle("panelSpriteOn"); citiesWindow = new Window(citiesScreen, "Cities", uiCanvas).SetIsDraggable(false); citiesWindow.SetAnchor(AnchorX.Middle, AnchorY.Middle); citiesWindow.Close(); Style.PopStyle("panelSpriteOn"); uiCanvas.AddChild(citiesWindow); Style.PopStyle(); uiCanvas.AddChild(CreateTimeControlls()); uiCanvas.FinishCreation(); }
public StoreScreen(Action <Store> HireAgentFunction, Action <Store> FireAgentFunction) : base() { Layout.PushLayout("storeScreen"); this.HireAgentFunction = HireAgentFunction; this.FireAgentFunction = FireAgentFunction; Padding = new Point(10, 10); Margin = 10; SetFixedSize(700, 500); VerticalLayout leftSide = new VerticalLayout(); leftSide.SetFixedWidth(300); deliveredPizzas = new KeyValueText("deliveredPizzas", "0"); outStandingOrders = new KeyValueText("outstandingOrders", "0"); avgDeliveryTime = new KeyValueText("avgDeliveryTime", "5"); deliveryEmployeesCount = new KeyValueText("deliveryEmployees", "3"); HorizontalLayout buttonsHor = new HorizontalLayout(); Button hireButton = new Button("hireEmployee"); Button fireButton = new Button("fireEmployee"); hireButton.OnMouseClick = () => { HireAgentFunction(store); UpdateTexts(); }; fireButton.OnMouseClick = () => { FireAgentFunction(store); UpdateTexts(); }; buttonsHor.AddChild(hireButton, fireButton); lastWeeksIncome = new KeyValueText("lastWeekIncome", "0"); costs = new Text("costs"); weeklyRent = new KeyValueText("rent", "0"); weeklyEmployeeWage = new KeyValueText("employees", "0"); weeklyTotalCost = new KeyValueText("total", "0"); leftSide.AddChild(deliveryEmployeesCount); leftSide.AddChild(deliveredPizzas); leftSide.AddChild(outStandingOrders); leftSide.AddChild(avgDeliveryTime); leftSide.AddChild(buttonsHor); leftSide.AddChild(lastWeeksIncome); leftSide.AddChild(costs); leftSide.AddChild(weeklyRent); leftSide.AddChild(weeklyEmployeeWage); leftSide.AddChild(weeklyTotalCost); AddChild(leftSide); Layout.PopLayout("storeScreen"); }
private void CreateUI() { Style.PushStyle("mapMain"); Layout.PushLayout("mapMain"); Style.PushStyle("panelSpriteOn"); VerticalLayout main = new VerticalLayout(); main.SetFixedWidth(250); Style.PopStyle("panelSpriteOn"); KeyValueText currSeedLabel = new KeyValueText("currSeed", "123456789"); currSeedLabel.SetValueTextUpdate(() => { return(mapParameter.randomSeed.ToString()); }); Checkbox keepOldSeedCheck = new Checkbox("keepCurrSeed", (val) => keepCurrentSeed = val, false, keepCurrentSeed); //Slider values: 0 -> Map Size 32, Slider 4 -> Map Size 512 KeyValueText xDesc = new KeyValueText("mapWidth", "128"); xDesc.SetValueTextUpdate(() => { return($"{mapParameter.size.X}"); }); Slider sizeX = new Slider((xVal) => SetMapSize(xVal, true), 0, 4, 1, GetMapSizeSliderVal(mapParameter.size.X)); KeyValueText yDesc = new KeyValueText("mapHeight", "512"); yDesc.SetValueTextUpdate(() => { return($"{mapParameter.size.Y}"); }); Slider sizeY = new Slider((yVal) => SetMapSize(yVal, false), 0, 4, 1, GetMapSizeSliderVal(mapParameter.size.Y)); /*Text terrainLabel = new Text("terrain"); * * KeyValueText minHeightDesc = new KeyValueText("minHeight", ""); * minHeightDesc.SetValueTextUpdate(() => $"{mapParameter.minHeight}"); * Slider minHeight = new Slider((val) => mapParameter.minHeight = val, 6, 12, 1, mapParameter.minHeight); * * KeyValueText maxHeightDesc = new KeyValueText("maxHeight", ""); * maxHeightDesc.SetValueTextUpdate(() => $"{mapParameter.maxHeight}"); * Slider maxHeight = new Slider((val) => mapParameter.maxHeight = val, 12, 20, 1, mapParameter.maxHeight); * * KeyValueText waterDiffDesc = new KeyValueText("waterDiff", ""); * waterDiffDesc.SetValueTextUpdate(() => $"{mapParameter.waterMinDiff}"); * Slider waterDiff = new Slider((val) => mapParameter.waterMinDiff = val, 0, 6, 1, mapParameter.waterMinDiff);*/ Checkbox checkWater = new Checkbox("hasWater", (val) => { mapParameter.hasWater = val; }, startValue: mapParameter.hasWater); Checkbox checkRivers = new Checkbox("hasRivers", (val) => { mapParameter.hasRivers = val; }, startValue: mapParameter.hasRivers); Checkbox checkCitiesConnect = new Checkbox("hasCityConnections", (val) => mapParameter.hasCityConnections = val, false, mapParameter.hasCityConnections); KeyValueText cityNumText = new KeyValueText("cityNum", "100%"); cityNumText.SetValueTextUpdate(() => { return($"{(int)(mapParameter.citiesNumber * 100f)}%"); }); Slider cityNumSlider = new Slider((val) => mapParameter.citiesNumber = val / 100f, 0, 100, 5, (int)(mapParameter.citiesNumber * 100f)); KeyValueText forestText = new KeyValueText("forestSize", $"{100}%"); forestText.SetValueTextUpdate(() => { return($"{(int)(mapParameter.forestSize * 100)}%"); }); Slider forestSlider = new Slider((val) => mapParameter.forestSize = val / 100f, 0, 100, 10, (int)(mapParameter.forestSize * 100)); KeyValueText resourceText = new KeyValueText("resourceSize", $"{100}%"); resourceText.SetValueTextUpdate(() => { return($"{(int)(mapParameter.resourceSize * 100)}%"); }); Slider resourceSlider = new Slider((val) => mapParameter.resourceSize = val / 100f, 0, 100, 10, (int)(mapParameter.resourceSize * 100)); KeyValueText citySizeText = new KeyValueText("citySize", $"{100}%"); citySizeText.SetValueTextUpdate(() => { return($"{mapParameter.citySize}"); }); Slider citySizeSlider = new Slider((val) => { mapParameter.citySize = citySizeBaseValue + (val / 100f * citySizeRange - citySizeRange / 2); }, 0, 100, 5, 50); KeyValueText citySizeOffsetText = new KeyValueText("citySizeRandomOffset", $"{100}%"); citySizeOffsetText.SetValueTextUpdate(() => { return($"{mapParameter.citySizeRandomOffset}"); }); Slider citySizeOffsetSlider = new Slider((val) => { mapParameter.citySizeRandomOffset = val / 100f * citySizeOffsetMax; }, 0, 100, 5, 50); Text mouseOverText = new Text("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa").SetTextUpdateFunction(UpdateMouseOverTileText); mapGenButton = new GeneratingButton(); mapGenButton.OnMouseClick = GenerateNewMap; cancelButton = new GeneratingCancelButton(); cancelButton.OnMouseClick = CancelMapGeneration; Button exitButton = new Button("exit"); exitButton.OnMouseClick = game.Exit; main.AddChild(mouseOverText, new Space(6), currSeedLabel, keepOldSeedCheck, new Space(6), xDesc, sizeX, yDesc, sizeY, new Space(6), //minHeightDesc, minHeight, maxHeightDesc, maxHeight, waterDiffDesc, waterDiff , new Space(6), checkWater, checkRivers, checkCitiesConnect, cityNumText, cityNumSlider, new Space(6), citySizeText, citySizeSlider, new Space(6), citySizeOffsetText, citySizeOffsetSlider, new Space(6), forestText, forestSlider, resourceText, resourceSlider, new Space(6), mapGenButton, cancelButton, exitButton); uiCanvas.AddChild(main); Style.PopStyle("mapMain"); Layout.PopLayout("mapMain"); uiCanvas.FinishCreation(); }