void EventSave(MenuObject obj)
        {
            List <MenuObject> objs = new List <MenuObject> ();
            MenuTextEntry     nameMenuTextEntry = new MenuTextEntry(42, Color.Black, name);

            nameMenuTextEntry.escapeHandler   += EventNameEscape;
            nameMenuTextEntry.selectedHandler += EventNameSave;
            objs.Add(nameMenuTextEntry);
            nameMenu = new Menu(objs, MenuLayout.Vertical, 10,
                                Constants.Constants.HEIGHT / 2);
            //nameMenu.selectChangeTime = 0.5f;
        }
        void EventNameSave(MenuObject obj)
        {
            MenuTextEntry tE = (MenuTextEntry)obj;

            name = tE.text;
            MenuText t = (MenuText)menu.objects [menu.objects.Count - 1];

            t.text              = name;
            t.colourSelected    = Color.Green;
            t.colourNotSelected = Color.Green;
            t.RenderText();
            menu.GenerateWidth();
            GenerateMenuBackground();
            menu.lastSelectChange = -0.2f;
            nameMenu = null;
            map.ToXML(name, vecPlayer, enemies);
        }
Пример #3
0
        protected int SetupServerConfig(int layerIndex)
        {
            RelativeRect rect = new RelativeRect(RelativeLoc.XLeftBorder + RelativeLoc.BorderOffset, RelativeLoc.YUpper + RelativeLoc.BorderOffset, RelativeSize.TwoColumnWidth, RelativeSize.SevenEightsHeight, OriginLocation.UpperLeft);

            GridLayoutGroup serverSetupGrid = new GridLayoutGroup(rect, 15, 2);

            Columns[0] = serverSetupGrid;

            serverSetupGrid.MaxChildSize = MenuCommon.ButtonHeight.Paramater;

            serverSetupGrid.SetColSpan(0);
            serverSetupGrid.SetColSpan(6);
            serverSetupGrid.SetColSpan(9);
            serverSetupGrid.SetColSpan(11);

            // server config header
            serverSetupGrid.AddChild(new Header(new RelativeRect(), MenuRes.ServerConfiguration));

            // name
            serverSetupGrid.AddChild(MakeGridLabel(MenuRes.ServerName));
            var te = new MenuTextEntry(RelativeRect.FullLeft, StartupInfo.Name);

            te.TextChanged += ServerName_TextChanged;
            serverSetupGrid.AddChild(te);

            // password
            serverSetupGrid.AddChild(MakeGridLabel(MenuRes.ServerPassword));
            te              = new MenuTextEntry(RelativeRect.FullLeft, StartupInfo.Password);
            te.TextChanged += Password_TextChanged;
            serverSetupGrid.AddChild(te);

            // ip address
            serverSetupGrid.AddChild(MakeGridLabel(MenuRes.ServerLanIP));
            var ip = MakeGridLabel(Core.GetLocalIPString());

            ip.Rect.AnchorLocation = OriginLocation.MiddleLeft;
            serverSetupGrid.AddChild(ip);

            serverSetupGrid.AddChild(MakeGridLabel(MenuRes.ServerWANIP));
            string wan = Core.GetWANIPString();

            if (PreferencesManager.GetValueB(PrefNames.PublicHostName))
            {
                wan = PreferencesManager.Get(PrefNames.PublicHostName);
            }
            var wanIP = MakeGridLabel(wan);

            wanIP.Rect.AnchorLocation = OriginLocation.MiddleLeft;
            serverSetupGrid.AddChild(wanIP);


            // public visibility (should this be a checkbox?)
            serverSetupGrid.AddChild(MakeGridLabel(MenuRes.ServerVis));
            SpinSelector selector = new SpinSelector(new RelativeRect(), MenuRes.ServerVisModes.Split(";".ToCharArray()), StartupInfo.Public ? 1 : 0);

            selector.ValueChanged += ServerVis_ValueChanged;
            serverSetupGrid.AddChild(selector);

            // ship options section
            serverSetupGrid.AddChild(new Header(new RelativeRect(), MenuRes.PlayerShipOptions));

            // FTL Drive type
            serverSetupGrid.AddChild(MakeGridLabel(MenuRes.FTLType));
            selector = new SpinSelector(new RelativeRect(), MenuRes.FTLTypes.Split(";".ToCharArray()), (int)StartupInfo.FTL);
            selector.ValueChanged += FTLType_ValueChanged;
            serverSetupGrid.AddChild(selector);

            // sensor range
            serverSetupGrid.AddChild(MakeGridLabel(MenuRes.RadarRange));
            List <string> radarRanges = new List <string>();

            for (int i = 10; i <= 50; i += 5)
            {
                radarRanges.Add(i.ToString() + "u");
            }

            selector = new SpinSelector(new RelativeRect(), radarRanges, ((int)StartupInfo.SensorRange / 5) - 2);
            selector.ValueChanged += RadarRange_ValueChanged;
            serverSetupGrid.AddChild(selector);

            // main screen display options (why are these not dynamic?)
            serverSetupGrid.AddChild(new Header(new RelativeRect(), MenuRes.MainScreenOptions));

            // tactical radar button
            var cb = new MenuCheckButton(RelativeRect.Full, MenuRes.TacticalRadar);

            cb.ButtonCheckChanged += TacRadar_CheckChanged;
            if (StartupInfo.TacticalRadarMSD)
            {
                cb.Check();
            }
            serverSetupGrid.AddChild(cb);

            // long range radar button
            cb = new MenuCheckButton(RelativeRect.Full, MenuRes.LongRangeRadar);
            cb.ButtonCheckChanged += LRRadar_CheckChanged;
            if (StartupInfo.LongRangeRadarMSD)
            {
                cb.Check();
            }
            serverSetupGrid.AddChild(cb);

            // game rules section
            serverSetupGrid.AddChild(new Header(new RelativeRect(), MenuRes.GameRules));

            // sensor scan complexity
            serverSetupGrid.AddChild(MakeGridLabel(MenuRes.ScanComplexity));
            selector = new SpinSelector(new RelativeRect(), MenuRes.ScanTypes.Split(";".ToCharArray()), (int)StartupInfo.Scans);
            selector.ValueChanged += Scan_ValueChanged;

            serverSetupGrid.AddChild(selector);

            // use weapon frequencies
            cb = new MenuCheckButton(RelativeRect.Full, MenuRes.WeaponFrequencies);
            cb.ButtonCheckChanged += WeaponFreq_CheckChanged;
            if (StartupInfo.UseWeaponFrequencies)
            {
                cb.Check();
            }
            serverSetupGrid.AddChild(cb);

            // use individual system damage
            cb = new MenuCheckButton(RelativeRect.Full, MenuRes.PerSystemDamage);
            cb.ButtonCheckChanged += SystemDamage_CheckChanged;
            if (StartupInfo.UseSystemDamage)
            {
                cb.Check();
            }
            serverSetupGrid.AddChild(cb);

            // add the left side group to the main layout
            AddElement(Columns[0], layerIndex);

            return(layerIndex + 1);
        }