1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 18:07:23 +08:00

Simplify menu item checks (and add for other items)

This commit is contained in:
Dean Herbert 2020-04-16 12:10:20 +09:00
parent 255ae0ea61
commit c4caf38feb

View File

@ -41,9 +41,6 @@ namespace osu.Game.Screens.Select.Carousel
[Resolved(CanBeNull = true)]
private BeatmapSetOverlay beatmapOverlay { get; set; }
[Resolved(CanBeNull = true)]
private SongSelect songSelect { get; set; }
public DrawableCarouselBeatmap(CarouselBeatmap panel)
: base(panel)
{
@ -52,12 +49,13 @@ namespace osu.Game.Screens.Select.Carousel
}
[BackgroundDependencyLoader(true)]
private void load(BeatmapManager manager)
private void load(BeatmapManager manager, SongSelect songSelect)
{
if (songSelect != null)
{
startRequested = b => songSelect.FinaliseSelection(b);
editRequested = songSelect.Edit;
if (songSelect.AllowEditing)
editRequested = songSelect.Edit;
}
if (manager != null)
@ -190,18 +188,19 @@ namespace osu.Game.Screens.Select.Carousel
{
get
{
List<MenuItem> items = new List<MenuItem>
{
new OsuMenuItem("Play", MenuItemType.Highlighted, () => startRequested?.Invoke(beatmap)),
};
List<MenuItem> items = new List<MenuItem>();
if (songSelect.AllowEditing)
items.Add(new OsuMenuItem("Edit", MenuItemType.Standard, () => editRequested?.Invoke(beatmap)));
if (startRequested != null)
items.Add(new OsuMenuItem("Play", MenuItemType.Highlighted, () => startRequested(beatmap)));
items.Add(new OsuMenuItem("Hide", MenuItemType.Destructive, () => hideRequested?.Invoke(beatmap)));
if (editRequested != null)
items.Add(new OsuMenuItem("Edit", MenuItemType.Standard, () => editRequested(beatmap)));
if (beatmap.OnlineBeatmapID.HasValue)
items.Add(new OsuMenuItem("Details", MenuItemType.Standard, () => beatmapOverlay?.FetchAndShowBeatmap(beatmap.OnlineBeatmapID.Value)));
if (hideRequested != null)
items.Add(new OsuMenuItem("Hide", MenuItemType.Destructive, () => hideRequested(beatmap)));
if (beatmap.OnlineBeatmapID.HasValue && beatmapOverlay != null)
items.Add(new OsuMenuItem("Details", MenuItemType.Standard, () => beatmapOverlay.FetchAndShowBeatmap(beatmap.OnlineBeatmapID.Value)));
return items.ToArray();
}