Esempio n. 1
0
        internal MenuPage(List <IOptionsPackage> packages, int x, int y, int width, int height) : base(x, y, width, height, false)
        {
            Packages = packages;

            var modChoices = new List <ISelectionChoice>();

            foreach (IOptionsPackage package in packages)
            {
                // Skip mods with no tabs
                if (package.Tabs.Count < 1)
                {
                    continue;
                }

                // Create mod page and add it, hide it initially
                var sheet = new ModSheet(package, xPositionOnScreen + Game1.pixelZoom * 15, yPositionOnScreen + Game1.pixelZoom * 55, width - (Game1.pixelZoom * 15), height - Game1.pixelZoom * 65)
                {
                    Visible = false
                };
                Sheets.Add(sheet);

                // Add names to mod selector dropdown
                modChoices.Add(new SelectionChoice(package.ModManifest.UniqueID, package.ModManifest.Name, package.ModManifest.Description));
            }

            ModSelection = new ConfigSelection("modDropdown", "", modChoices);
            ModDropdown  = new ConfigDropdown(ModSelection, (int)Game1.smallFont.MeasureString("Stardew Configuration Menu Framework").X, (int)(xPositionOnScreen + Game1.pixelZoom * 15), (int)(yPositionOnScreen + Game1.pixelZoom * 30))
            {
                Visible = true
            };

            if (Sheets.Count > 0)
            {
                Sheets[ModDropdown.SelectedIndex].Visible = true;
            }

            AddListeners();
        }
Esempio n. 2
0
        private void GenerateOptions(TabbedOptionsPackage options, ModConfig config)
        {
            var firstTab = new OptionsTab("main", "Main");

            options.Tabs.Add(firstTab);

            var enableDrop = new ConfigToggle("enableDrop", "Enable Dropdown", config.enableDropdown);

            firstTab.Options.Add(enableDrop);

            var choices = new List <ISelectionChoice> {
                new SelectionChoice("none", "None"),
                new SelectionChoice("5", "Checkbox 5", "Hover text for Checkbox 5"),
                new SelectionChoice("6", "Checkbox 6", "Hover text for Checkbox 6"),
                new SelectionChoice("7", "Checkbox 7", "Hover text for Checkbox 7")
            };

            var dropdown = new ConfigSelection("drop", "Disable Another Option", choices, config.dropdownChoice, config.enableDropdown);

            dropdown.SelectionDidChange += Dropdown_SelectionDidChange;;
            firstTab.Options.Add(dropdown);

            enableDrop.StateDidChange += (toggle) => {
                dropdown.Enabled = toggle.IsOn;
            };

            var checkbox2 = new ConfigToggle("toggle2", "Add checkbox 9", config.checkbox2);

            firstTab.Options.Add(checkbox2);
            checkbox2.StateDidChange += AddDynamicOption;

            firstTab.Options.Add(new ConfigToggle("toggle3", "Checkbox 3", false));

            var slider = new ConfigRange("range", "Slider", 10, 25, 1, config.rangeValue, true);

            var stepper = new ConfigStepper("stepper", "Plus/Minus Controls", (decimal)5.0, (decimal)105.0, (decimal)1.5, config.stepperValue, RangeDisplayType.PERCENT);

            firstTab.Options.Add(slider);
            firstTab.Options.Add(stepper);

            firstTab.Options.Add(new ConfigToggle("stepperCheck", "Show Stepper Value", false));

            firstTab.Options.Add(new ConfigToggle("toggle5", "Checkbox 5"));
            firstTab.Options.Add(new ConfigToggle("toggle6", "Checkbox 6"));
            firstTab.Options.Add(new ConfigToggle("toggle7", "Checkbox 7"));
            firstTab.Options.Add(new ConfigToggle("toggle8", "Checkbox 8"));

            var saveButton = new ConfigAction("okButton", "OK Button", ButtonType.OK);

            firstTab.Options.Add(saveButton);

            saveButton.ActionWasTriggered += SaveButton_ActionWasTriggered;

            GraphicsEvents.OnPostRenderEvent += (sender, e) => {
                if (firstTab.GetOption <IConfigToggle>("toggle3").IsOn)
                {
                    Game1.spriteBatch.DrawString(Game1.dialogueFont, "Cool!", new Vector2(Game1.getMouseX(), Game1.getMouseY()), Color.Black);
                }

                if (firstTab.GetOption <IConfigToggle>("stepperCheck").IsOn)
                {
                    Game1.spriteBatch.DrawString(Game1.dialogueFont, stepper.Value.ToString(), new Vector2(Game1.getMouseX(), Game1.getMouseY() + 12 * Game1.pixelZoom), Color.Black);
                }
            };

            var secondTab = new OptionsTab("second", "Second");

            secondTab.Options.Add(new ConfigHeader("secondTabHeader", "Second Tab!"));
            options.Tabs.Add(secondTab);
        }
Esempio n. 3
0
        void LoadMenu(object sender, EventArgs e)
        {
            Settings = Helper.ModRegistry.GetApi <IConfigMenu>("Juice805.StardewConfigMenu");
            Package  = new SimpleOptionsPackage(this);
            var config = Helper.ReadConfig <TestConfig>();

            Settings.AddOptionsPackage(Package);

            var testbox = new ConfigToggle("checkbox", "Checkbox", config.checkbox);

            Package.AddOption(testbox);

            var emptyDropdown = new ConfigSelection("emptyDropdown", "Empty Dropdowns are disabled");

            Package.AddOption(emptyDropdown);

            testbox.StateDidChange += (toggle) => {
                emptyDropdown.Enabled = toggle.IsOn;                 // should not do anything
            };

            var list = new List <ISelectionChoice>();

            list.Add(new SelectionChoice("first", "First", "This is the first option!"));
            list.Add(new SelectionChoice("second", "Second", "This is the Second option!"));
            list.Add(new SelectionChoice("third", "Third"));
            list.Add(new SelectionChoice("fourth", "Fourth"));

            var filledDropdown = new ConfigSelection("filledDropdown", "Filled Dropdown", list, config.filledDropown, true);

            Package.AddOption(filledDropdown);

            var stepper = new ConfigStepper("stepper", "Plus/Minus Controls", (decimal)5.0, (decimal)105.0, (decimal)1.5, config.stepperValue, RangeDisplayType.PERCENT);

            Package.AddOption(stepper);

            var label = new ConfigHeader("catlabel", "Category Label");

            Package.AddOption(label);

            var button = new ConfigAction("setButton", "Click Me!", ButtonType.SET);

            button.ActionWasTriggered += (identifier) => {
                filledDropdown.Enabled = !filledDropdown.Enabled;
            };
            Package.AddOption(button);

            var tranformingButton = new ConfigAction("clearButton", "Clear Button", ButtonType.CLEAR);

            tranformingButton.ButtonType          = ButtonType.CLEAR;
            tranformingButton.ActionWasTriggered += (identifier) => {
                switch (tranformingButton.ButtonType)
                {
                case ButtonType.CLEAR:
                    tranformingButton.Label      = "Are you sure?";
                    tranformingButton.ButtonType = ButtonType.OK;
                    break;

                case ButtonType.OK:
                    tranformingButton.Label      = "Cleared";
                    tranformingButton.ButtonType = ButtonType.DONE;
                    break;

                case ButtonType.DONE:
                    tranformingButton.Label      = "Clear Button";
                    tranformingButton.ButtonType = ButtonType.CLEAR;
                    break;

                default:
                    tranformingButton.Label      = "Clear Button";
                    tranformingButton.ButtonType = ButtonType.CLEAR;
                    break;
                }
            };

            Package.AddOption(tranformingButton);

            Package.AddOption(new ConfigAction("doneButton", "Done Button", ButtonType.DONE));
            Package.AddOption(new ConfigAction("giftButton", "Gift Button", ButtonType.GIFT));

            var saveButton = new ConfigAction("okButton", "OK Button", ButtonType.OK);

            Package.AddOption(saveButton);

            saveButton.ActionWasTriggered += (_) => {
                SaveConfig();
            };
        }