public static void HostMenu() { LoadUIStylesheet(); Desktop.Widgets.Clear(); Panel mainPanel = new Panel(); mainPanel.Background = new TextureRegion(Resources.MenuBackground); Grid grid = new Grid(); grid.RowSpacing = 8; grid.ColumnsProportions.Add(new Proportion(ProportionType.Part)); grid.ColumnsProportions.Add(new Proportion(ProportionType.Part)); grid.ColumnsProportions.Add(new Proportion(ProportionType.Part)); grid.ColumnsProportions.Add(new Proportion(ProportionType.Part)); grid.RowsProportions.Add(new Proportion(ProportionType.Part)); grid.RowsProportions.Add(new Proportion(ProportionType.Part)); grid.RowsProportions.Add(new Proportion(ProportionType.Part)); grid.RowsProportions.Add(new Proportion(ProportionType.Part)); grid.RowsProportions.Add(new Proportion(ProportionType.Part)); grid.RowsProportions.Add(new Proportion(ProportionType.Part)); grid.RowsProportions.Add(new Proportion(ProportionType.Pixels, 25)); grid.RowsProportions.Add(new Proportion(ProportionType.Pixels, 60)); grid.RowsProportions.Add(new Proportion(ProportionType.Pixels, 25)); grid.RowsProportions.Add(new Proportion(ProportionType.Pixels, 60)); grid.RowsProportions.Add(new Proportion(ProportionType.Pixels, 60)); Label nameLabel = new Label(); nameLabel.Text = "Server name"; nameLabel.GridColumn = 1; nameLabel.GridRow = 1; nameLabel.HorizontalAlignment = HorizontalAlignment.Left; grid.Widgets.Add(nameLabel); TextBox nameInput = new TextBox(); nameInput.Text = "FP Server"; nameInput.GridColumn = 2; nameInput.GridRow = 1; nameInput.HorizontalAlignment = HorizontalAlignment.Right; grid.Widgets.Add(nameInput); Label mapLabel = new Label(); mapLabel.Text = "Map"; mapLabel.GridColumn = 1; mapLabel.GridRow = 2; mapLabel.HorizontalAlignment = HorizontalAlignment.Left; grid.Widgets.Add(mapLabel); ComboBox mapCombo = new ComboBox(); mapCombo.GridColumn = 2; mapCombo.GridRow = 2; mapCombo.HorizontalAlignment = HorizontalAlignment.Right; List <string> maps = BaseMap.getAvailableLevels(); maps.ForEach(e => { mapCombo.Items.Add(new ListItem(e)); }); mapCombo.SelectedIndex = 0; grid.Widgets.Add(mapCombo); Label slotsLabel = new Label(); slotsLabel.Text = "Slots"; slotsLabel.GridColumn = 1; slotsLabel.GridRow = 3; slotsLabel.HorizontalAlignment = HorizontalAlignment.Left; grid.Widgets.Add(slotsLabel); SpinButton slotsSlider = new SpinButton(); slotsSlider.GridColumn = 2; slotsSlider.GridRow = 3; slotsSlider.HorizontalAlignment = HorizontalAlignment.Right; grid.Widgets.Add(slotsSlider); TextButton HostBtn = new TextButton(); HostBtn.Text = "Host"; HostBtn.GridColumn = 1; HostBtn.GridRow = 4; HostBtn.GridColumnSpan = 2; HostBtn.HorizontalAlignment = HorizontalAlignment.Center; HostBtn.Click += (s, a) => { if (mapCombo.SelectedItem == null) { var messageBox = Dialog.CreateMessageBox("Error", "You must select a map!"); messageBox.ShowModal(); return; } //NetHandler.startServer(mapCombo.SelectedItem.Text); ConnectCallback("localhost"); }; grid.Widgets.Add(HostBtn); TextButton backBtn = new TextButton(); backBtn.Text = "Back"; backBtn.GridColumn = 1; backBtn.GridRow = 5; backBtn.GridColumnSpan = 2; backBtn.HorizontalAlignment = HorizontalAlignment.Center; backBtn.Click += (s, a) => { MainMenu(); }; grid.Widgets.Add(backBtn); mainPanel.Widgets.Add(grid); Desktop.Root = mainPanel; }