public TableCell CellForIdx(TableView tableView, int idx) { LevelListTableCell tableCell = (LevelListTableCell)tableView.DequeueReusableCellForIdentifier(_songsTableView.reuseIdentifier); if (!tableCell) { if (songListTableCellInstance == null) { songListTableCellInstance = Resources.FindObjectsOfTypeAll <LevelListTableCell>().First(x => (x.name == "LevelListTableCell")); } tableCell = Instantiate(songListTableCellInstance); } var level = _allBeatmaps.FirstOrDefault(x => x.levelID == requestedSongs[idx].levelId); if (level != null) { tableCell.SetDataFromLevelAsync(level, false); tableCell.RefreshAvailabilityAsync(_additionalContentModel, level.levelID); } else { TextMeshProUGUI songNameText = LevelListTableCell_SongNameText(ref tableCell); TextMeshProUGUI authorNameText = LevelListTableCell_AuthorText(ref tableCell); songNameText.text = string.Format("{0} <size=80%>{1}</size>", requestedSongs[idx].songName, requestedSongs[idx].songSubName); authorNameText.text = "Loading info..."; RawImage coverImage = LevelListTableCell_CoverImage(ref tableCell); coverImage.texture = null; coverImage.color = Color.clear; LevelListTableCell_BadgeImage(ref tableCell).enabled = false; Image[] chars = LevelListTableCell_CharImages(ref tableCell); foreach (Image img in chars) { img.enabled = false; } SongDownloader.Instance.RequestSongByLevelID(requestedSongs[idx].hash, (info) => { songNameText.text = string.Format("{0} <size=80%>{1}</size>", info.songName, info.songSubName); authorNameText.text = info.songAuthorName; StartCoroutine(LoadScripts.LoadSpriteCoroutine(info.coverURL, (cover) => { coverImage.texture = cover; coverImage.color = Color.white; })); }); } tableCell.reuseIdentifier = _songsTableView.reuseIdentifier; return(tableCell); }
public TableCell CellForIdx(TableView tableView, int idx) { LevelListTableCell tableCell = (LevelListTableCell)tableView.DequeueReusableCellForIdentifier(_songsTableView.reuseIdentifier); if (!tableCell) { if (songListTableCellInstance == null) { songListTableCellInstance = Resources.FindObjectsOfTypeAll <LevelListTableCell>().First(x => (x.name == "LevelListTableCell")); } tableCell = Instantiate(songListTableCellInstance); } var level = _beatmapLevelsModel.allLoadedBeatmapLevelPackCollection.beatmapLevelPacks.SelectMany(x => x.beatmapLevelCollection.beatmapLevels).FirstOrDefault(x => x.levelID == requestedSongs[idx].levelId); if (level != null) { tableCell.SetDataFromLevelAsync(level, false); tableCell.RefreshAvailabilityAsync(_additionalContentModel, level.levelID); } else { tableCell.GetPrivateField <TextMeshProUGUI>("_songNameText").text = string.Format("{0} <size=80%>{1}</size>", level.songName, level.songSubName); tableCell.GetPrivateField <TextMeshProUGUI>("_authorText").text = level.songAuthorName; var coverImage = tableCell.GetPrivateField <RawImage>("_coverRawImage"); coverImage.texture = null; coverImage.color = Color.clear; Image[] chars = tableCell.GetPrivateField <Image[]>("_beatmapCharacteristicImages"); foreach (var img in chars) { img.enabled = false; } SongDownloader.Instance.RequestSongByLevelID(requestedSongs[idx].hash, (info) => { tableCell.GetPrivateField <TextMeshProUGUI>("_songNameText").text = string.Format("{0} <size=80%>{1}</size>", info.songName, info.songSubName); tableCell.GetPrivateField <TextMeshProUGUI>("_authorText").text = info.songAuthorName; StartCoroutine(LoadScripts.LoadSpriteCoroutine(info.coverURL, (cover) => { coverImage.texture = cover; })); }); } tableCell.reuseIdentifier = _songsTableView.reuseIdentifier; return(tableCell); }
public TableCell CellForIdx(TableView tableView, int idx) { LevelListTableCell tableCell = (LevelListTableCell)tableView.DequeueReusableCellForIdentifier(songTable.reuseIdentifier); if (!tableCell) { tableCellBaseInstance = tableCellBaseInstance ?? Resources.FindObjectsOfTypeAll <LevelListTableCell>().First(x => (x.name == "LevelListTableCell")); tableCell = Instantiate(tableCellBaseInstance); } tableCell.SetDataFromLevelAsync(availableSongs[idx], _playerDataModel.playerData.favoritesLevelIds.Contains(availableSongs[idx].levelID)); tableCell.RefreshAvailabilityAsync(_additionalContentModel, availableSongs[idx].levelID); tableCell.reuseIdentifier = songTable.reuseIdentifier; return(tableCell); }