internal static void Prefix(OptionsMenuLogic __instance) { foreach (var menu in __instance.subMenus_) { if (menu.GetType().IsSubclassOf(typeof(SuperMenu))) { MenuSystem.MenuBlueprint = ((SuperMenu)menu).menuBlueprint_; } } var CentrifugeMenu = __instance.gameObject.AddComponent <CentrifugeMenu>(); CentrifugeMenu.MenuTree = MenuSystem.MenuTree; List <OptionsSubmenu> menus = new List <OptionsSubmenu>(__instance.subMenus_); foreach (var menu in __instance.subMenus_) { if (menu.Name_ == CentrifugeMenu.Name_) { menus.Remove(menu); } } menus.Add(CentrifugeMenu); __instance.subMenus_ = menus.ToArray(); }
internal static bool Prefix(OptionsMenuLogic __instance, string submenuName) { List <OptionsSubmenu> menus = __instance.subMenus_.ToList(); OptionsSubmenu subMenu = menus.Find(x => x.Name_ == submenuName); if (subMenu && subMenu is CentrifugeMenu) { CentrifugeMenu centrifugeMenu = subMenu as CentrifugeMenu; if (!centrifugeMenu.MenuTree.Any()) { MenuSystem.ShowUnavailableMessage(); return(false); } } return(true); }