示例#1
0
    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);
    }
示例#3
0
    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);
    }