Exemplo n.º 1
0
        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;
        }