private void filterExcludedDecorations()
        {
            if (!(decorationExclusionGroup != null))
            {
                return;
            }
            List <StaticGameDataDefinitionKey> keys = GroupDefinitionHelper.GetKeys <DecorationDefinition>(decorationExclusionGroup);
            int result;

            foreach (StaticGameDataDefinitionKey item in keys)
            {
                if (int.TryParse(item.Id, out result) && decorationDefinitions.ContainsKey(result))
                {
                    decorationDefinitions.Remove(result);
                }
            }
            keys = GroupDefinitionHelper.GetKeys <StructureDefinition>(decorationExclusionGroup);
            foreach (StaticGameDataDefinitionKey item2 in keys)
            {
                if (int.TryParse(item2.Id, out result) && structureDefinitions.ContainsKey(result))
                {
                    structureDefinitions.Remove(result);
                }
            }
        }
        private List <StaticGameDataDefinition> filterStructureListByTheme(GroupDefinition themeDefinition)
        {
            List <StaticGameDataDefinition> list = new List <StaticGameDataDefinition>();

            foreach (StaticGameDataDefinitionKey key in GroupDefinitionHelper.GetKeys <StructureDefinition>(themeDefinition))
            {
                if (int.TryParse(key.Id, out var result) && structureDefinitions.ContainsKey(result))
                {
                    list.Add(structureDefinitions[result]);
                }
            }
            return(list);
        }
        private void Start()
        {
            Dictionary <int, DecorationDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <int, DecorationDefinition> >();

            decorationDefinitions = new Dictionary <int, DecorationDefinition>(dictionary);
            Dictionary <int, StructureDefinition> dictionary2 = Service.Get <GameData>().Get <Dictionary <int, StructureDefinition> >();

            structureDefinitions = new Dictionary <int, StructureDefinition>(dictionary2);
            filterExcludedDecorations();
            themeFilterButton.Initialize(0, ThemeTitleToken);
            DecorationCategoryButton decorationCategoryButton = themeFilterButton;

            decorationCategoryButton.ButtonClicked = (Action <int>)Delegate.Combine(decorationCategoryButton.ButtonClicked, new Action <int>(onThemeFilterButtonClicked));
            categoryFilterButton.Initialize(1, CategoryTitleToken);
            DecorationCategoryButton decorationCategoryButton2 = categoryFilterButton;

            decorationCategoryButton2.ButtonClicked = (Action <int>)Delegate.Combine(decorationCategoryButton2.ButtonClicked, new Action <int>(onCategoryFilterButtonClicked));
            categoryFilterButton.GetComponent <TintToggleGroupButton>().OnClick();
            categories = new List <DecorationCategoryDefinition>(Service.Get <IGameData>().Get <Dictionary <int, DecorationCategoryDefinition> >().Values);
            categories.Sort((DecorationCategoryDefinition x, DecorationCategoryDefinition y) => x.SortOrder.CompareTo(y.SortOrder));
            themes = GroupDefinitionHelper.GetGroups <DecorationDefinition>(iglooThemeParentGroup);
            themes.Sort();
            Service.Get <NotificationBreadcrumbController>().ResetBreadcrumbs("DecorationCatalog");
            List <ProgressionUtils.ParsedProgression <StructureDefinition> > list = ProgressionUtils.RetrieveProgressionLockedItems <StructureDefinition, StructureRewardDefinition>(ProgressionUnlockCategory.structurePurchaseRights, AbstractStaticGameDataRewardDefinition <StructureDefinition> .ToDefinitionArray);

            structureProgressionStatus = new Dictionary <int, ProgressionUtils.ParsedProgression <StructureDefinition> >(list.Count);
            foreach (ProgressionUtils.ParsedProgression <StructureDefinition> item in list)
            {
                structureProgressionStatus.Add(item.Definition.Id, item);
            }
            List <ProgressionUtils.ParsedProgression <DecorationDefinition> > list2 = ProgressionUtils.RetrieveProgressionLockedItems <DecorationDefinition, DecorationRewardDefinition>(ProgressionUnlockCategory.decorationPurchaseRights, AbstractStaticGameDataRewardDefinition <DecorationDefinition> .ToDefinitionArray);

            decorationProgressionStatus = new Dictionary <int, ProgressionUtils.ParsedProgression <DecorationDefinition> >(list2.Count);
            foreach (ProgressionUtils.ParsedProgression <DecorationDefinition> item2 in list2)
            {
                decorationProgressionStatus.Add(item2.Definition.Id, item2);
            }
            loadSubfilterButtons();
            Content.LoadAsync(onItemPrefabLoaded, IglooCatalogItemPrefabKey);
        }