1
0
mirror of https://github.com/ppy/osu.git synced 2026-06-04 22:57:46 +08:00
Files
osu-lazer/osu.Game/Screens/Select/ISongSelect.cs
T
Dean Herbert c28c64940a Move v2 files to final location
This contains only renames and namespace updates.
2026-03-03 16:45:15 +09:00

69 lines
2.4 KiB
C#

// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System.Collections.Generic;
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Game.Beatmaps;
using osu.Game.Graphics.UserInterface;
using osu.Game.Scoring;
namespace osu.Game.Screens.Select
{
/// <summary>
/// Actions exposed by song select which are used by subcomponents to perform top-level operations.
/// </summary>
[Cached]
public interface ISongSelect
{
/// <summary>
/// Requests the user for confirmation to delete the given beatmap set.
/// </summary>
void Delete(BeatmapSetInfo beatmapBeatmapSetInfo);
/// <summary>
/// Immediately restores any hidden beatmaps in the provided beatmap set.
/// </summary>
void RestoreAllHidden(BeatmapSetInfo beatmapSet);
/// <summary>
/// Opens the manage collections dialog.
/// </summary>
void ManageCollections();
/// <summary>
/// Opens results screen with the given score.
/// This assumes active beatmap and ruleset selection matches the score.
/// </summary>
void PresentScore(ScoreInfo score);
/// <summary>
/// Set the current filter text query to the provided string.
/// </summary>
void Search(string query);
/// <summary>
/// Gets relevant actionable items for beatmap context menus, based on the type of song select.
/// </summary>
IEnumerable<OsuMenuItem> GetForwardActions(BeatmapInfo beatmap);
/// <summary>
/// Temporarily bypasses filters and shows all difficulties of the given beatmapset.
/// </summary>
/// <param name="beatmapSet">The beatmapset.</param>
void ScopeToBeatmapSet(BeatmapSetInfo beatmapSet);
/// <summary>
/// Removes the beatmapset scope and reverts the previously selected filters.
/// </summary>
void UnscopeBeatmapSet();
/// <summary>
/// Contains the currently scoped beatmapset. Used by external consumers for displaying its state.
/// Cannot be used to change the value, any changes must be done through <see cref="ScopeToBeatmapSet"/>
/// or <see cref="UnscopeBeatmapSet"/>.
/// </summary>
IBindable<BeatmapSetInfo?> ScopedBeatmapSet { get; }
}
}