private void PositionMenus() { foreach (KeyValuePair <HashedString, BuildMenuCategoriesScreen> submenu in submenus) { HashedString key = submenu.Key; BuildMenuCategoriesScreen value = submenu.Value; LayoutGroup component = value.GetComponent <LayoutGroup>(); Vector2 anchoredPosition; PadInfo padInfo; if (key == ROOT_HASHSTR) { anchoredPosition = rootMenuOffset; padInfo = rootMenuPadding; Image component2 = value.GetComponent <Image>(); component2.enabled = false; } else { anchoredPosition = nestedMenuOffset; padInfo = nestedMenuPadding; } value.rectTransform().anchoredPosition = anchoredPosition; component.padding.left = padInfo.left; component.padding.right = padInfo.right; component.padding.top = padInfo.top; component.padding.bottom = padInfo.bottom; } buildingsScreen.rectTransform().anchoredPosition = buildingsMenuOffset; }
private void Initialize() { foreach (KeyValuePair <HashedString, BuildMenuCategoriesScreen> submenu in submenus) { BuildMenuCategoriesScreen value = submenu.Value; value.Close(); UnityEngine.Object.DestroyImmediate(value.gameObject); } submenuStack.Clear(); tagCategoryMap = new Dictionary <Tag, HashedString>(); tagOrderMap = new Dictionary <Tag, int>(); categorizedBuildingMap = new Dictionary <HashedString, List <BuildingDef> >(); categorizedCategoryMap = new Dictionary <HashedString, List <HashedString> >(); int building_index = 0; DisplayInfo orderedBuildings = OrderedBuildings; PopulateCategorizedMaps(orderedBuildings.category, 0, orderedBuildings.data, tagCategoryMap, tagOrderMap, ref building_index, categorizedBuildingMap, categorizedCategoryMap); BuildMenuCategoriesScreen buildMenuCategoriesScreen = submenus[ROOT_HASHSTR]; buildMenuCategoriesScreen.Show(true); buildMenuCategoriesScreen.modalKeyInputBehaviour = false; foreach (KeyValuePair <HashedString, BuildMenuCategoriesScreen> submenu2 in submenus) { HashedString key = submenu2.Key; if (!(key == ROOT_HASHSTR) && categorizedCategoryMap.TryGetValue(key, out List <HashedString> value2)) { BuildMenuCategoriesScreen value3 = submenu2.Value; Image component = value3.GetComponent <Image>(); if ((UnityEngine.Object)component != (UnityEngine.Object)null) { component.enabled = (value2.Count > 0); } } } PositionMenus(); }