public void InitSubcategory(UICatalogSubcat cat)
        {
            var index = cat.MaskBit;

            if (!ChoosingSub)
            {
                return;
            }
            ChoosingSub = false;
            ((UIMainPanel)Parent).Switcher.Close();
            ((UIMainPanel)Parent).Switcher.MainButton.ReplaceImage(Content.Get().CustomUI.Get("cat_" + cat.IconName + ".png").Get(GameFacade.GraphicsDevice));

            foreach (var btn in SelButtons)
            {
                GameFacade.Screens.Tween.To(btn, 0.5f, new Dictionary <string, float>()
                {
                    { "Opacity", 0f }
                }, TweenQuad.EaseOut);
            }
            foreach (var label in SelLabels)
            {
                GameFacade.Screens.Tween.To(label, 0.5f, new Dictionary <string, float>()
                {
                    { "Opacity", 0f }
                }, TweenQuad.EaseOut);
            }

            CatContainer.Opacity = 0f;
            GameFacade.Screens.Tween.To(CatContainer, 0.5f, new Dictionary <string, float>()
            {
                { "Opacity", 1f }
            }, TweenQuad.EaseOut);

            if (Mode == UICatalogMode.Build)
            {
                InitCategory((sbyte)index, true);
                FilterCategory = FullCategory;
            }
            else if (index == 8)
            {
                FilterCategory = FullCategory.Where(x => (GetSubsort(x.Item)) > 0);
            }
            else
            {
                var mask = 1 << index;
                if (Mode == UICatalogMode.Normal && index == 7)
                {
                    mask |= 16;
                }
                FilterCategory = FullCategory.Where(x => (GetSubsort(x.Item) & mask) > 0);
            }
            CatContainer.Reset();
        }
        private bool SubcatIsEmpty(UICatalogSubcat cat)
        {
            var index = cat.MaskBit;

            if (Mode == UICatalogMode.Build)
            {
                return(FullCategory.FirstOrDefault() == null);
            }
            else if (index == 8)
            {
                return(!FullCategory.Any(x => (GetSubsort(x.Item)) > 0));
            }
            else
            {
                var mask = 1 << index;
                return(!FullCategory.Any(x => (GetSubsort(x.Item) & mask) > 0));
            }
        }