Exemple #1
0
        public void TestRestoreDefaultValueButtonPrecision(float initialValue)
        {
            BindableFloat                     current   = null;
            SettingsSlider <float>            sliderBar = null;
            RestoreDefaultValueButton <float> restoreDefaultValueButton = null;

            AddStep("create settings item", () =>
            {
                Child = sliderBar = new SettingsSlider <float>
                {
                    Current = current = new BindableFloat(initialValue)
                    {
                        MinValue  = 0f,
                        MaxValue  = 10f,
                        Precision = 0.1f,
                    }
                };
            });
            AddUntilStep("wait for loaded", () => sliderBar.IsLoaded);
            AddStep("retrieve restore default button", () => restoreDefaultValueButton = sliderBar.ChildrenOfType <RestoreDefaultValueButton <float> >().Single());

            AddAssert("restore button hidden", () => restoreDefaultValueButton.Alpha == 0);

            AddStep("change value to next closest", () => sliderBar.Current.Value += current.Precision * 0.6f);
            AddUntilStep("restore button shown", () => restoreDefaultValueButton.Alpha > 0);

            AddStep("restore default", () => sliderBar.Current.SetDefault());
            AddUntilStep("restore button hidden", () => restoreDefaultValueButton.Alpha == 0);
        }
        private void load(RulesetStore rulesets)
        {
            Lyric = DemoKaraokeObject.GenerateDemo001();

            DrawableKaraokeObject = new DrawableLyric(Lyric)
            {
                Position             = new Vector2(),
                ProgressUpdateByTime = false,
            };

            var slider = new SettingsSlider <double>()
            {
                LabelText = "Background dim ",
                Bindable  = new BindableDouble
                {
                    MinValue = 0,
                    MaxValue = 500,
                    Default  = 300,
                    Value    = DrawableKaraokeObject.Progress,
                },
                Width = 0.5f
            };

            slider.Bindable.ValueChanged += (v) => { DrawableKaraokeObject.Progress = v; };

            Children = new Drawable[]
            {
                slider,
            };

            Add(DrawableKaraokeObject);
        }
 private void load()
 {
     Flow.AddRange(new[]
     {
         multiplier = new SettingsSlider <double>
         {
             LabelText        = "速度倍率",
             Bindable         = new DifficultyControlPoint().SpeedMultiplierBindable,
             RelativeSizeAxes = Axes.X,
         }
     });
 }
Exemple #4
0
 private void loadSettingsMenu()
 {
     GameInfo.info.loadPlayerSettings();
     setSlider("VolumeRow", GameInfo.info.volume);
     setSlider("SensitivityRow", GameInfo.info.mouseSpeed);
     setSlider("FovRow", GameInfo.info.fov);
     setSlider("VsyncRow", GameInfo.info.vsyncLevel, SettingsSlider.translateFloat(GameInfo.info.vsyncLevel));
     setSlider("LightingRow", GameInfo.info.lightingLevel);
     setSlider("AntiAliasingRow", GameInfo.info.antiAliasing);
     setSlider("AnisotropicFilteringRow", boolToFloat(GameInfo.info.anisotropicFiltering), SettingsSlider.translateFloat(boolToFloat(GameInfo.info.anisotropicFiltering)));
     setSlider("TextureSizeRow", GameInfo.info.textureSize, SettingsSlider.translateTextureSize(GameInfo.info.textureSize));
 }
Exemple #5
0
        private void load()
        {
            // use local bindable to avoid changing enabled state of game host's bindable.
            handlerDeadzone = joystickHandler.DeadzoneThreshold.GetBoundCopy();
            localDeadzone   = handlerDeadzone.GetUnboundCopy();

            Children = new Drawable[]
            {
                new SettingsCheckbox
                {
                    LabelText = CommonStrings.Enabled,
                    Current   = enabled
                },
                deadzoneSlider = new SettingsSlider <float>
                {
                    LabelText           = JoystickSettingsStrings.DeadzoneThreshold,
                    KeyboardStep        = 0.01f,
                    DisplayAsPercentage = true,
                    Current             = localDeadzone,
                },
            };
        }
Exemple #6
0
        /// <summary>
        ///		Adds a <see cref="Slider"/> to a panel
        /// </summary>
        /// <param name="panel"></param>
        /// <param name="sideText"></param>
        /// <param name="currentValue"></param>
        /// <param name="wholeNumbers"></param>
        /// <param name="min"></param>
        /// <param name="max"></param>
        /// <returns></returns>
        public Slider AddSliderToPanel(GameObject panel, string sideText, float currentValue, bool wholeNumbers = false,
                                       float min = 0, float max = 100)
        {
            //Create new slider object
            GameObject     sliderObject   = Instantiate(settingsSliderPrefab, GetPanelItemArea(panel), false);
            SettingsSlider sliderSettings = sliderObject.GetComponent <SettingsSlider>();

            //Set up the existing value
            sliderSettings.Setup(currentValue);

            //Set the text
            sliderSettings.propertyText.text = GameUILocale.ResolveString(sideText);

            //Set up the slider itself
            Slider slider = sliderSettings.slider;

            slider.wholeNumbers = wholeNumbers;
            slider.minValue     = min;
            slider.maxValue     = max;
            slider.value        = currentValue;

            return(slider);
        }
Exemple #7
0
        private void load(Storage storage, DialogOverlay dialog, OsuGame game)
        {
            var config = Config as GamebosuConfigManager;

            lockClockRate = config.GetBindable <bool>(GamebosuSetting.LockClockRate);

            Children = new Drawable[]
            {
                clockRate = new SettingsSlider <double>
                {
                    LabelText = "Gameboy Clock rate",
                    Current   = config.GetBindable <double>(GamebosuSetting.ClockRate)
                },
                new SettingsCheckbox
                {
                    LabelText = "Lock gameboy clock rate",
                    Current   = lockClockRate
                },
                new SettingsCheckbox
                {
                    LabelText = "Prefer Gameboy Color mode when launching original gameboy ROMs",
                    Current   = config.GetBindable <bool>(GamebosuSetting.PreferGBCMode)
                },
                new SettingsSlider <float>
                {
                    LabelText = "Gameboy Scale",
                    Current   = config.GetBindable <float>(GamebosuSetting.GameboyScale)
                },
                new SettingsButton
                {
                    Text   = "Open ROMs folder",
                    Action = () => storage.GetStorageForDirectory("roms")?.PresentExternally()
                },
                new DangerousSettingsButton
                {
                    Text   = "Delete ROM save data",
                    Action = () =>
                    {
                        Action deleteAction = delegate
                        {
                            var saves = storage.GetStorageForDirectory("roms/saves");
                            var files = saves.GetFiles(".");
                            try
                            {
                                files.ForEach(file => saves.Delete(file));
                            }
                            catch (Exception)
                            {
                                dialog.Push(new DeleteDataErrorDialog
                                {
                                    BodyText = $"Couldn't delete ROM save data (save data may be used by the currently loaded ROM). Try deleting save data from the main menu"
                                });
                            }
                        };

                        dialog.Push(new DeleteDataDialog(deleteAction));
                    }
                },
                new SettingsCheckbox
                {
                    LabelText = "Enable Sound Playback (VERY EXPERIMENTAL)",
                    Current   = config.GetBindable <bool>(GamebosuSetting.EnableSoundPlayback)
                },
                new SettingsCheckbox
                {
                    LabelText = "Disable that annoying disclaimer when launching gamebosu!",
                    Current   = config.GetBindable <bool>(GamebosuSetting.DisableDisplayingThatAnnoyingDisclaimer)
                },
                new YellowSettingsButton
                {
                    Text   = "Open ROM listing",
                    Action = () => game?.PerformFromScreen(scr => scr.Push(new GamebosuMainScreen(ruleset)))
                },
            };

            lockClockRate.BindValueChanged(e => clockRate.Current.Disabled = e.NewValue, true);
        }
Exemple #8
0
        private static GameObject SetupSubPanel(Transform parent)
        {
            GameObject subPanelToInstantiate = parent.Find("SettingsSubPanel, Controls (Gamepad)").gameObject;

            GameObject subPanelInstance = GameObject.Instantiate(subPanelToInstantiate, parent);

            Transform instanceLayout = subPanelInstance.transform.Find("Scroll View/Viewport/VerticalLayout");

            foreach (Transform child in instanceLayout)
            {
                GameObject.Destroy(child.gameObject);
            }

            GameObject sliderSetting   = subPanelToInstantiate.transform.Find("Scroll View/Viewport/VerticalLayout/SettingsEntryButton, Slider (Look Scale X)").gameObject;
            GameObject boolSetting     = subPanelToInstantiate.transform.Find("Scroll View/Viewport/VerticalLayout/SettingsEntryButton, Bool (Invert X)").gameObject;
            GameObject carouselSetting = parent.transform.Find("SettingsSubPanel, Video/Scroll View/Viewport/VerticalLayout/SettingsEntryButton, Carousel (Vsync)").gameObject;

            LanguageTextMeshController descriptionText = parent.transform.Find("GenericDescriptionPanel/ContentSizeFitter/DescriptionText").GetComponent <LanguageTextMeshController>();

            bool first = true;

            foreach (KeyValuePair <string, ModConfig.ConfigSetting> keyValuePair in ModConfig.settings)
            {
                ModConfig.ConfigSetting setting = keyValuePair.Value;

                BaseSettingsControl settingInstance;
                if (setting.entry.SettingType == typeof(float) || setting.entry.SettingType == typeof(int))
                {
                    settingInstance = GameObject.Instantiate(sliderSetting, instanceLayout).GetComponent <BaseSettingsControl>();

                    SettingsSlider slider = settingInstance as SettingsSlider;
                    slider.minValue     = setting.minValue;
                    slider.maxValue     = setting.maxValue;
                    slider.formatString = setting.entry.SettingType == typeof(float) ? "{0:0.00}" : "{0:N0}";
                }
                else if (setting.entry.SettingType == typeof(bool))
                {
                    settingInstance = GameObject.Instantiate(boolSetting, instanceLayout).GetComponent <BaseSettingsControl>();
                }
                else
                {
                    settingInstance = GameObject.Instantiate(carouselSetting, instanceLayout).GetComponent <BaseSettingsControl>();

                    CarouselController carousel = settingInstance as CarouselController;
                    List <CarouselController.Choice> choices = new List <CarouselController.Choice>();
                    if (keyValuePair.Key == "vr_ray_color")
                    {
                        string[] choiceStrings = new string[]
                        {
                            "White",
                            "Green",
                            "Red",
                            "Blue",
                            "Yellow",
                            "Magenta",
                            "Cyan",
                            "Lime",
                            "Black"
                        };

                        string[] hexStrings = new string[]
                        {
                            "#FFFFFF",
                            "#008000",
                            "#FF0000",
                            "#0000FF",
                            "#FFFF00",
                            "#FF00FF",
                            "#00FFFF",
                            "#00FF00",
                            "#000000"
                        };

                        for (int i = 0; i < choiceStrings.Length; i++)
                        {
                            CarouselController.Choice choice = new CarouselController.Choice();
                            choice.convarValue           = hexStrings[i];
                            choice.suboptionDisplayToken = choiceStrings[i];
                            choices.Add(choice);
                        }
                    }

                    carousel.choices = choices.ToArray();
                }

                settingInstance.settingSource   = BaseSettingsControl.SettingSource.ConVar;
                settingInstance.nameToken       = setting.entry.Definition.Key;
                settingInstance.settingName     = keyValuePair.Key;
                settingInstance.gameObject.name = "VRModSetting, " + settingInstance.nameToken;

                HGButton button = settingInstance.GetComponent <HGButton>();
                if (button)
                {
                    string prefixString = "";

                    if (setting.settingUpdate == ModConfig.ConfigSetting.SettingUpdate.NextStage)
                    {
                        prefixString = "[WILL APPLY NEXT STAGE] ";
                    }
                    else if (setting.settingUpdate == ModConfig.ConfigSetting.SettingUpdate.AfterRestart)
                    {
                        prefixString = "[RESTART REQUIRED] ";
                    }

                    button.updateTextOnHover = true;
                    button.hoverToken        = prefixString + setting.entry.Description.Description;
                    button.hoverLanguageTextMeshController = descriptionText;

                    button.defaultFallbackButton = first;
                    first = false;
                }
            }

            GameObject controllerBindingSetting = subPanelToInstantiate.transform.Find("Scroll View/Viewport/VerticalLayout/SettingsEntryButton, Binding (Jump)").gameObject;
            GameObject keyboardBindingSetting   = parent.Find("SettingsSubPanel, Controls (M&KB)/Scroll View/Viewport/VerticalLayout/SettingsEntryButton, Binding (Jump)").gameObject;

            ActionAddons.ActionDef[] actionDefs = ActionAddons.actionDefs;
            foreach (var actionDef in actionDefs)
            {
                if (actionDef.keyboardMap != KeyboardKeyCode.None)
                {
                    AddBindingSetting(actionDef, keyboardBindingSetting, instanceLayout);
                }
                if (actionDef.joystickMap != ActionAddons.ControllerInput.None)
                {
                    AddBindingSetting(actionDef, controllerBindingSetting, instanceLayout);
                }
            }

            subPanelInstance.transform.Find("Scroll View").gameObject.AddComponent <ScrollToSelection>();

            return(subPanelInstance);
        }
Exemple #9
0
        private void load(VignetteConfigManager config)
        {
            colour = config.GetBindable <Colour4>(VignetteSetting.BackgroundColour);

            AddRange(new Drawable[]
            {
                new Container
                {
                    Height           = 100,
                    Masking          = true,
                    CornerRadius     = 2.5f,
                    RelativeSizeAxes = Axes.X,
                    Child            = previewBox = new Box
                    {
                        Colour           = Colour4.Red,
                        RelativeSizeAxes = Axes.Both,
                    }
                },
                new SettingsHexColourBox
                {
                    Label   = "Hex",
                    Current = colour,
                },
                red = new SettingsSlider <float>
                {
                    Label   = "Red",
                    Current = new BindableFloat
                    {
                        Value    = colour.Value.R,
                        MinValue = 0,
                        MaxValue = 1,
                    },
                },
                green = new SettingsSlider <float>
                {
                    Label   = "Green",
                    Current = new BindableFloat
                    {
                        Value    = colour.Value.G,
                        MinValue = 0,
                        MaxValue = 1,
                    },
                },
                blue = new SettingsSlider <float>
                {
                    Label   = "Blue",
                    Current = new BindableFloat
                    {
                        Value    = colour.Value.B,
                        MinValue = 0,
                        MaxValue = 1,
                    },
                },
            });

            red.Current.ValueChanged   += e => colour.Value = new Colour4(e.NewValue, colour.Value.G, colour.Value.B, 1);
            green.Current.ValueChanged += e => colour.Value = new Colour4(colour.Value.R, e.NewValue, colour.Value.B, 1);
            blue.Current.ValueChanged  += e => colour.Value = new Colour4(colour.Value.R, colour.Value.G, e.NewValue, 1);

            colour.BindValueChanged(e =>
            {
                previewBox.Colour   = e.NewValue;
                red.Current.Value   = e.NewValue.R;
                green.Current.Value = e.NewValue.G;
                blue.Current.Value  = e.NewValue.B;
            }, true);
        }