/// <summary> /// Add Horizontal Options to the content area. /// </summary> /// <param name="entries">The menu data.</param> /// <param name="c">The content area to add the entries to.</param> /// <param name="returnScreen">The screen to return to when the user hits cancel.</param> public static void AddModMenuContent( List <IMenuMod.MenuEntry> entries, ContentArea c, MenuScreen returnScreen ) { foreach (var entry in entries) { c.AddHorizontalOption( entry.Name, new HorizontalOptionConfig { ApplySetting = (_, i) => entry.Saver(i), RefreshSetting = (s, _) => s.optionList.SetOptionTo(entry.Loader()), CancelAction = _ => ((Patch.UIManager)UIManager.instance).GoToDynamicMenu(returnScreen), Description = string.IsNullOrEmpty(entry.Description) ? null : new DescriptionInfo { Text = entry.Description }, Label = entry.Name, Options = entry.Values, Style = HorizontalOptionStyle.VanillaStyle }, out var option ); option.menuSetting.RefreshValueFromGameSettings(); } }
/// <summary> /// Creates a horizontal option. /// </summary> /// <param name="content">The <c>ContentArea</c> to put the option in.</param> /// <param name="name">The name of the option game object.</param> /// <param name="config">The configuration options for the horizontal option.</param> /// <returns></returns> public static ContentArea AddHorizontalOption( this ContentArea content, string name, HorizontalOptionConfig config ) => content.AddHorizontalOption(name, config, out _);