コード例 #1
0
        protected ListItem CreateListItem(ListPanelController <T> .Item item)
        {
            string id            = item.Id;
            bool   isFavourite   = IsFavourite(id);
            bool   isBlacklisted = IsBlacklisted(id);
            bool   isDefault     = IsDefault(id);

            string prefix = isDefault
                ? string.Concat("(", Translation.Instance.GetTranslation(TranslationID.LABEL_DEFAULT), ") ")
                : string.Empty;

            string name = id == "#NONE#"
               ? Translation.Instance.GetTranslation(TranslationID.LABEL_NONE)
               : item is ListPanelController <T> .SimpleItem si1
               ? si1.Value.GetName()
               : string.Empty;

            string displayName = string.Concat(prefix, name);

            UITextureAtlas thumbnailAtlas;
            string         thumbnailSprite;

            if (id == "#NONE#")
            {
                thumbnailAtlas  = Resources.DefaultAtlas;
                thumbnailSprite = "Niet";
            }
            else if (item is ListPanelController <T> .SimpleItem si2)
            {
                if (!TextureUtil.IsThumbTransparent(si2.Value))
                {
                    thumbnailAtlas  = si2.Value.m_Atlas;
                    thumbnailSprite = si2.Value.m_Thumbnail;
                }
                else
                {
                    thumbnailAtlas  = Resources.DefaultAtlas;
                    thumbnailSprite = "ToolbarIconProps";
                }
            }
            else
            {
                // Default item
                thumbnailAtlas  = Resources.DefaultAtlas;
                thumbnailSprite = "IconPolicyExtraInsulationDisabled";
            }

            ItemType type = UIUtil.PanelToItemType(PanelType);

            Color color = id == "#NONE#"
                ? default
                : item is ListPanelController <T> .SimpleItem si3
                ? si3.Value.GetLightColor()
                : default;

            return(new ListItem(id, displayName, thumbnailAtlas, thumbnailSprite, null, isFavourite, isBlacklisted, isDefault, type, color));
        }
コード例 #2
0
        protected override void SetupRowsData()
        {
            int selectedIndex = 0;

            if (fastList.RowsData == null)
            {
                fastList.RowsData = new FastList <object>();
            }
            fastList.RowsData.Clear();
            ListPanelController <T> controller = GetController();
            var itemCount = controller.Items.Count;

            fastList.RowsData.SetCapacity(itemCount);
            FavouritesList.Clear();
            Blacklist.Clear();
            NormalList.Clear();
            int           index     = 0;
            List <string> favList   = Persistence.GetFavourites(UIUtil.PanelToItemType(PanelType));
            List <string> blacklist = Persistence.GetBlacklisted(UIUtil.PanelToItemType(PanelType));

            foreach (ListPanelController <T> .Item item in controller.Items)
            {
                if (item.Id == "#NONE#" || item.Id == "#DEFAULT#")
                {
                    ListItem listItem = CreateListItem(item);
                    if (NetworkSkinPanelController.IsSelected(listItem.ID, listItem.Type))
                    {
                        selectedIndex = index;
                    }
                    fastList.RowsData.Add(listItem);
                    index++;
                    continue;
                }
                else if (favList.Contains(item.Id))
                {
                    FavouritesList.Add(item);
                }
                else if (blacklist.Contains(item.Id) && !IsDefault(item.Id))
                {
                    Blacklist.Add(item);
                }
                else
                {
                    NormalList.Add(item);
                }
            }
            for (int i = 0; i < FavouritesList.Count; i++)
            {
                ListPanelController <T> .Item item = FavouritesList[i] as ListPanelController <T> .Item;
                ListItem listItem = CreateListItem(item);
                if (NetworkSkinPanelController.IsSelected(listItem.ID, listItem.Type))
                {
                    selectedIndex = index;
                }
                fastList.RowsData.Add(listItem);
                index++;
            }
            for (int i = 0; i < NormalList.Count; i++)
            {
                ListPanelController <T> .Item item = NormalList[i] as ListPanelController <T> .Item;
                ListItem listItem = CreateListItem(item);
                if (NetworkSkinPanelController.IsSelected(listItem.ID, listItem.Type))
                {
                    selectedIndex = index;
                }
                fastList.RowsData.Add(listItem);
                index++;
            }
            if (!Persistence.HideBlacklisted)
            {
                for (int i = 0; i < Blacklist.Count; i++)
                {
                    ListPanelController <T> .Item item = Blacklist[i] as ListPanelController <T> .Item;
                    ListItem listItem = CreateListItem(item);
                    if (NetworkSkinPanelController.IsSelected(listItem.ID, listItem.Type))
                    {
                        selectedIndex = index;
                    }
                    fastList.RowsData.Add(listItem);
                    index++;
                }
            }
            fastList.DisplayAt(Persistence.DisplayAtSelected ? selectedIndex : -1);
            fastList.SelectedIndex = selectedIndex;
        }