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)); }
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; }