void GameEvents_FirstUpdateTick(object sender, System.EventArgs e) { Settings = Helper.ModRegistry.GetApi <IConfigMenu>("Juice805.StardewConfigMenu"); Package = new TabbedOptionsPackage(this); var config = Helper.ReadConfig <ModConfig>(); GenerateOptions(Package, config); Settings.AddOptionsPackage(Package); }
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); }