Remove previous fix and move filtered logic to carousel.

- Add an optional bool parameter to SelectBeatmap to skip selecting
filtered maps
This commit is contained in:
naoey
2018-03-09 15:51:00 +05:30
parent 81c1ec2005
commit 25fb527cc7
2 changed files with 20 additions and 43 deletions

View File

@ -169,20 +169,29 @@ namespace osu.Game.Screens.Select
});
}
public void SelectBeatmap(BeatmapInfo beatmap)
/// <summary>
/// Selects a given beatmap on the carousel.
/// </summary>
/// <param name="beatmap">The beatmap to select.</param>
/// <param name="skipFiltered">Whether to skip selecting filtered beatmaps.</param>
/// <returns>True if a selection was made, false if it was skipped.</returns>
public bool SelectBeatmap(BeatmapInfo beatmap, bool skipFiltered = false)
{
if (beatmap?.Hidden != false)
return;
return false;
foreach (CarouselBeatmapSet group in beatmapSets)
{
var item = group.Beatmaps.FirstOrDefault(p => p.Beatmap.Equals(beatmap));
if (item != null)
{
select(item);
return;
}
}
var group = beatmapSets.FirstOrDefault(s => s.BeatmapSet.OnlineBeatmapSetID == beatmap.BeatmapSet.OnlineBeatmapSetID);
if (group == null || !skipFiltered && group.Filtered)
return false;
var item = group.Beatmaps.FirstOrDefault(p => p.Beatmap.Equals(beatmap));
if (item == null || !skipFiltered && item.Filtered)
return false;
select(item);
return true;
}
/// <summary>