Ejemplo n.º 1
0
 private void OnCategoryClicked(HashedString new_category, int depth)
 {
     while (submenuStack.Count > depth)
     {
         KIconToggleMenu kIconToggleMenu = submenuStack.Pop();
         kIconToggleMenu.ClearSelection();
         kIconToggleMenu.Close();
     }
     productInfoScreen.Close();
     if (new_category != selectedCategory && new_category.IsValid)
     {
         foreach (KIconToggleMenu item in submenuStack)
         {
             if (item is BuildMenuCategoriesScreen)
             {
                 BuildMenuCategoriesScreen buildMenuCategoriesScreen = item as BuildMenuCategoriesScreen;
                 buildMenuCategoriesScreen.SetHasFocus(false);
             }
         }
         selectedCategory = new_category;
         submenus.TryGetValue(new_category, out BuildMenuCategoriesScreen value);
         if ((UnityEngine.Object)value != (UnityEngine.Object)null)
         {
             value.Show(true);
             value.SetHasFocus(true);
             submenuStack.Push(value);
         }
     }
     else
     {
         selectedCategory = HashedString.Invalid;
     }
     foreach (KIconToggleMenu item2 in submenuStack)
     {
         if (item2 is BuildMenuCategoriesScreen)
         {
             (item2 as BuildMenuCategoriesScreen).UpdateBuildableStates(true);
         }
     }
     submenus[ROOT_HASHSTR].UpdateBuildableStates(true);
 }