protected override void OnSpawn() { base.OnSpawn(); ConsumeMouseScroll = true; initTime = KTime.Instance.UnscaledGameTime; bool flag = UseHotkeyBuildMenu(); if (flag) { Instance = this; productInfoScreen = Util.KInstantiateUI <ProductInfoScreen>(productInfoScreenPrefab, base.gameObject, true); productInfoScreen.rectTransform().pivot = new Vector2(0f, 0f); productInfoScreen.onElementsFullySelected = OnRecipeElementsFullySelected; productInfoScreen.Show(false); buildingsScreen = Util.KInstantiateUI <BuildMenuBuildingsScreen>(buildingsMenuPrefab.gameObject, base.gameObject, true); BuildMenuBuildingsScreen buildMenuBuildingsScreen = buildingsScreen; buildMenuBuildingsScreen.onBuildingSelected = (Action <BuildingDef>)Delegate.Combine(buildMenuBuildingsScreen.onBuildingSelected, new Action <BuildingDef>(OnBuildingSelected)); buildingsScreen.Show(false); Game.Instance.Subscribe(288942073, OnUIClear); Game.Instance.Subscribe(-1190690038, OnBuildToolDeactivated); Initialize(); this.rectTransform().anchoredPosition = Vector2.zero; } else { base.gameObject.SetActive(flag); } }
public void Configure(HashedString category, int depth, object data, Dictionary <HashedString, List <BuildingDef> > categorized_building_map, Dictionary <HashedString, List <HashedString> > categorized_category_map, BuildMenuBuildingsScreen buildings_screen) { this.category = category; categorizedBuildingMap = categorized_building_map; categorizedCategoryMap = categorized_category_map; buildingsScreen = buildings_screen; List <ToggleInfo> list = new List <ToggleInfo>(); if (typeof(IList <BuildMenu.BuildingInfo>).IsAssignableFrom(data.GetType())) { buildingInfos = (IList <BuildMenu.BuildingInfo>)data; } else if (typeof(IList <BuildMenu.DisplayInfo>).IsAssignableFrom(data.GetType())) { subcategories = new List <HashedString>(); IList <BuildMenu.DisplayInfo> list2 = (IList <BuildMenu.DisplayInfo>)data; foreach (BuildMenu.DisplayInfo item2 in list2) { BuildMenu.DisplayInfo current = item2; string iconName = current.iconName; string text = HashCache.Get().Get(current.category).ToUpper(); text = text.Replace(" ", string.Empty); ToggleInfo item = new ToggleInfo(Strings.Get("STRINGS.UI.NEWBUILDCATEGORIES." + text + ".NAME"), iconName, new UserData { category = current.category, depth = depth, requirementsState = PlanScreen.RequirementsState.Tech }, current.hotkey, Strings.Get("STRINGS.UI.NEWBUILDCATEGORIES." + text + ".TOOLTIP"), string.Empty); list.Add(item); subcategories.Add(current.category); } Setup(list); toggles.ForEach(delegate(KToggle to) { ImageToggleState[] components = to.GetComponents <ImageToggleState>(); ImageToggleState[] array = components; foreach (ImageToggleState imageToggleState in array) { if ((UnityEngine.Object)imageToggleState.TargetImage.sprite != (UnityEngine.Object)null && imageToggleState.TargetImage.name == "FG" && !imageToggleState.useSprites) { imageToggleState.SetSprites(Assets.GetSprite(imageToggleState.TargetImage.sprite.name + "_disabled"), imageToggleState.TargetImage.sprite, imageToggleState.TargetImage.sprite, Assets.GetSprite(imageToggleState.TargetImage.sprite.name + "_disabled")); } } to.GetComponent <KToggle>().soundPlayer.Enabled = false; }); } UpdateBuildableStates(true); }
private BuildMenuCategoriesScreen CreateCategorySubMenu(HashedString category, int depth, object data, Dictionary <HashedString, List <BuildingDef> > categorized_building_map, Dictionary <HashedString, List <HashedString> > categorized_category_map, Dictionary <Tag, HashedString> tag_category_map, BuildMenuBuildingsScreen buildings_screen) { BuildMenuCategoriesScreen buildMenuCategoriesScreen = Util.KInstantiateUI <BuildMenuCategoriesScreen>(categoriesMenuPrefab.gameObject, base.gameObject, true); buildMenuCategoriesScreen.Show(false); buildMenuCategoriesScreen.Configure(category, depth, data, categorizedBuildingMap, categorizedCategoryMap, buildingsScreen); BuildMenuCategoriesScreen buildMenuCategoriesScreen2 = buildMenuCategoriesScreen; buildMenuCategoriesScreen2.onCategoryClicked = (Action <HashedString, int>)Delegate.Combine(buildMenuCategoriesScreen2.onCategoryClicked, new Action <HashedString, int>(OnCategoryClicked)); buildMenuCategoriesScreen.name = "BuildMenu_" + category.ToString(); return(buildMenuCategoriesScreen); }