Beispiel #1
0
        private void MusicSelector_ValueChanged(object sender, SpinSelector e)
        {
            SpinSelector selector = sender as SpinSelector;

            if (selector == null)
            {
                return;
            }

            PreferencesManager.Set(PrefNames.MusicEnabled, selector.SelectedIndex);
        }
Beispiel #2
0
        private void FsaaSelector_ValueChanged(object sender, SpinSelector e)
        {
            SpinSelector selector = sender as SpinSelector;

            if (selector == null)
            {
                return;
            }

            int newFSAA = (int)(Math.Pow(2, selector.SelectedIndex));

            WindowManager.SetFSAALevel(newFSAA);
        }
Beispiel #3
0
 private void ScenarioVariation_ValueChanged(object sender, SpinSelector e)
 {
     if (e.SelectedIndex == 0)
     {
         StartupInfo.SelectedVariation = null;
         VariationText.SetText(MenuRes.NoVariationDescription);
     }
     else
     {
         StartupInfo.SelectedVariation = StartupInfo.SelectedScenario.Variations[e.SelectedIndex - 1];
         VariationText.SetText(StartupInfo.SelectedVariation.Description);
     }
 }
Beispiel #4
0
        private void WindowSizeSelector_ValueChanged(object sender, SpinSelector e)
        {
            SpinSelector selector = sender as SpinSelector;

            if (selector == null)
            {
                return;
            }

            switch (selector.SelectedIndex)
            {
            default:
                WindowManager.SetNormal();
                break;

            case 1:
                WindowManager.SetMaximized();
                break;

            case 2:
                WindowManager.SetFullscreen();
                break;
            }
        }
Beispiel #5
0
        protected void SetupOptions()
        {
            // lsefside setup
            RelativeRect rect = new RelativeRect(RelativeLoc.XLeftBorder + RelativeLoc.BorderOffset, RelativeLoc.YUpperBorder + RelativeLoc.BorderOffset, ButtonWidth, RelativeSize.ThreeQuarterHeight, OriginLocation.UpperLeft);

            Columns[0] = SetupCommonColumn(rect);

            // graphics header
            Columns[0].AddChild(new Header(new RelativeRect(), MenuRes.Graphics));

            // fullscreen toggle
            SpinSelector windowSizeSelector = new SpinSelector(new RelativeRect(), MenuRes.FullscreenModes.Split(";".ToCharArray()), 0);

            windowSizeSelector.ValueChanged += WindowSizeSelector_ValueChanged;
            Columns[0].AddChild(windowSizeSelector);

            // anti-alias selector
            int aa = WindowManager.GetWindowInfo(WindowManager.MainWindowID).AntiAliasingFactor;

            if (aa < 0)
            {
                aa = 0;
            }
            if (aa > 8)
            {
                aa = 8;
            }

            if (aa != 0)
            {
                aa = (int)Math.Log(aa, 2);
            }

            SpinSelector fsaaSelector = new SpinSelector(new RelativeRect(), MenuRes.FSAA.Split(";".ToCharArray()), aa);

            fsaaSelector.ValueChanged += FsaaSelector_ValueChanged;
            Columns[0].AddChild(fsaaSelector);


            // sound options header
            Columns[0].AddChild(new UIBlank(new RelativeRect()));
            Columns[0].AddChild(new Header(new RelativeRect(), MenuRes.SoundOptions));

            // sound volume
            int volume      = PreferencesManager.GetValueI(PrefNames.SoundVolume, 50);
            var soundSlider = new HSlider(new RelativeRect(), MenuRes.EffectsVolume, volume);

            soundSlider.ValueChanged += SoundSlider_ValueChanged;
            Columns[0].AddChild(soundSlider);

            // music volume
            var musicSlider = new HSlider(new RelativeRect(), MenuRes.MusicVolume, PreferencesManager.GetValueI(PrefNames.MusicVolume, 50));

            musicSlider.ValueChanged += MusicSlider_ValueChanged;
            Columns[0].AddChild(musicSlider);

            // Music playback header
            Columns[0].AddChild(new UIBlank(new RelativeRect()));
            Columns[0].AddChild(new Header(new RelativeRect(), MenuRes.MusicPlayback));

            // music mode selector
            SpinSelector musicSelector = new SpinSelector(new RelativeRect(), MenuRes.MusicPlaybackModes.Split(";".ToCharArray()), PreferencesManager.GetValueI(PrefNames.MusicEnabled, 2));

            musicSelector.ValueChanged += MusicSelector_ValueChanged;
            Columns[0].AddChild(musicSelector);

            AddElement(Columns[0], 2);
        }
Beispiel #6
0
        protected int SetupScenarioList(int layerIndex)
        {
            // right side group
            RelativeRect rect = new RelativeRect(RelativeLoc.XRightBorder + RelativeLoc.BorderOffset, RelativeLoc.YUpper + RelativeLoc.BorderOffset, RelativeSize.TwoColumnWidth, RelativeSize.SevenEightsHeight, OriginLocation.UpperRight);

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

            Columns[1] = scenarioGrid;

            scenarioGrid.MaxChildSize = MenuCommon.ButtonHeight.Paramater;

            scenarioGrid.SetColSpan(0, 1);
            scenarioGrid.SetColSpan(1, 6);
            scenarioGrid.SetColSpan(7, 4);
            scenarioGrid.SetColSpan(12, 3);

            // Scenario header
            scenarioGrid.AddChild(new Header(new RelativeRect(), MenuRes.Scenario));

            ButtonScrollList scenarioList = new ButtonScrollList(RelativeRect.Full);

            scenarioList.DesiredRows = 6;

            foreach (var scenario in Scenarios.GetScenarioList())
            {
                scenarioList.AddItem(scenario.Name, scenario);
            }

            scenarioList.SelectedIndexChanged += ScenarioList_SelectedIndexChanged;
            scenarioList.FillMode              = UIFillModes.Stretch4Quad;
            scenarioGrid.AddChild(scenarioList);


            SecenarioText = new TextArea(RelativeRect.Full, string.Empty, MenuManager.MainFont, ThemeManager.GetThemeAsset("ui/TextEntryBackground.png"));
            SecenarioText.DefaultMaterial.Color = Color.Gray;
            SecenarioText.DesiredRows           = 8;
            SecenarioText.BorderPadding         = 4;
            SecenarioText.MiniumElementHeight   = 20;

            scenarioGrid.AddChild(SecenarioText);

            // sensor scan complexity
            // get data from selected scenario
            scenarioGrid.AddChild(MakeGridLabel(MenuRes.Variation));
            VariationList = new SpinSelector(new RelativeRect(), MenuRes.DefaultVariation.Split(";".ToCharArray()), 0);
            VariationList.ValueChanged += ScenarioVariation_ValueChanged;
            scenarioGrid.AddChild(VariationList);

            // replace with variation info
            VariationText = new TextArea(RelativeRect.Full, string.Empty, MenuManager.MainFont, ThemeManager.GetThemeAsset("ui/TextEntryBackground.png"));
            VariationText.DefaultMaterial.Color = Color.Gray;
            VariationText.DesiredRows           = 6;
            VariationText.BorderPadding         = 4;
            VariationText.MiniumElementHeight   = 20;
            scenarioGrid.AddChild(VariationText);

            AddElement(Columns[1], layerIndex + 1);

            scenarioList.SetSelectedIndex(0);

            return(layerIndex + 1);
        }
Beispiel #7
0
 private void Scan_ValueChanged(object sender, SpinSelector e)
 {
     StartupInfo.Scans = (ServerStartupInfo.ScanSettings)e.SelectedIndex;
 }
Beispiel #8
0
 private void RadarRange_ValueChanged(object sender, SpinSelector e)
 {
     StartupInfo.SensorRange = ((e.SelectedIndex + 2) * 5);
 }
Beispiel #9
0
 private void FTLType_ValueChanged(object sender, SpinSelector e)
 {
     StartupInfo.FTL = (ServerStartupInfo.FTLSettings)e.SelectedIndex;
 }
Beispiel #10
0
 private void ServerVis_ValueChanged(object sender, SpinSelector e)
 {
     StartupInfo.Public = e.SelectedIndex != 0;
 }
Beispiel #11
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);
        }