diff --git a/osu.Game/Beatmaps/BeatmapDifficultyManager.cs b/osu.Game/Beatmaps/BeatmapDifficultyManager.cs
index 914874e210..d86c0dd945 100644
--- a/osu.Game/Beatmaps/BeatmapDifficultyManager.cs
+++ b/osu.Game/Beatmaps/BeatmapDifficultyManager.cs
@@ -47,6 +47,19 @@ namespace osu.Game.Beatmaps
currentMods.BindValueChanged(_ => updateTrackedBindables(), true);
}
+ ///
+ /// Retrieves a bindable containing the star difficulty of a that follows the currently-selected ruleset and mods.
+ ///
+ /// The to get the difficulty of.
+ /// An optional which stops updating the star difficulty for the given .
+ /// A bindable that is updated to contain the star difficulty when it becomes available.
+ public IBindable GetBindableDifficulty([NotNull] BeatmapInfo beatmapInfo, CancellationToken cancellationToken = default)
+ {
+ var bindable = createBindable(beatmapInfo, currentRuleset.Value, currentMods.Value, cancellationToken);
+ trackedBindables.Add(bindable);
+ return bindable;
+ }
+
///
/// Retrieves a bindable containing the star difficulty of a with a given and combination.
///
@@ -54,30 +67,14 @@ namespace osu.Game.Beatmaps
/// The bindable will not update to follow the currently-selected ruleset and mods.
///
/// The to get the difficulty of.
- /// The to get the difficulty with.
- /// The s to get the difficulty with.
+ /// The to get the difficulty with. If null, the difficulty will change along with the game-wide ruleset and mods.
+ /// The s to get the difficulty with. If null, the difficulty will change along with the game-wide mods.
/// An optional which stops updating the star difficulty for the given .
/// A bindable that is updated to contain the star difficulty when it becomes available.
- public IBindable GetUntrackedBindable([NotNull] BeatmapInfo beatmapInfo, [CanBeNull] RulesetInfo rulesetInfo = null, [CanBeNull] IEnumerable mods = null,
- CancellationToken cancellationToken = default)
+ public IBindable GetBindableDifficulty([NotNull] BeatmapInfo beatmapInfo, [NotNull] RulesetInfo rulesetInfo, [CanBeNull] IEnumerable mods,
+ CancellationToken cancellationToken = default)
=> createBindable(beatmapInfo, rulesetInfo, mods, cancellationToken);
- ///
- /// Retrieves a bindable containing the star difficulty of a that follows the user's currently-selected ruleset and mods.
- ///
- ///
- /// Ensure to hold a local reference of the returned bindable in order to receive value-changed events.
- ///
- /// The to get the difficulty of.
- /// An optional which stops updating the star difficulty for the given .
- /// A bindable that is updated to contain the star difficulty when it becomes available, or when the currently-selected ruleset and mods change.
- public IBindable GetTrackedBindable([NotNull] BeatmapInfo beatmapInfo, CancellationToken cancellationToken = default)
- {
- var bindable = createBindable(beatmapInfo, currentRuleset.Value, currentMods.Value, cancellationToken);
- trackedBindables.Add(bindable);
- return bindable;
- }
-
///
/// Retrieves the difficulty of a .
///
diff --git a/osu.Game/Screens/Select/Carousel/DrawableCarouselBeatmap.cs b/osu.Game/Screens/Select/Carousel/DrawableCarouselBeatmap.cs
index 1b5b448e1f..c559b4f8f5 100644
--- a/osu.Game/Screens/Select/Carousel/DrawableCarouselBeatmap.cs
+++ b/osu.Game/Screens/Select/Carousel/DrawableCarouselBeatmap.cs
@@ -194,7 +194,7 @@ namespace osu.Game.Screens.Select.Carousel
if (Item.State.Value != CarouselItemState.Collapsed)
{
// We've potentially cancelled the computation above so a new bindable is required.
- starDifficultyBindable = difficultyManager.GetTrackedBindable(beatmap, (starDifficultyCancellationSource = new CancellationTokenSource()).Token);
+ starDifficultyBindable = difficultyManager.GetBindableDifficulty(beatmap, (starDifficultyCancellationSource = new CancellationTokenSource()).Token);
starDifficultyBindable.BindValueChanged(d => starCounter.Current = (float)d.NewValue.Stars, true);
}
diff --git a/osu.Game/Screens/Select/Details/AdvancedStats.cs b/osu.Game/Screens/Select/Details/AdvancedStats.cs
index aefba397b9..1557a025ef 100644
--- a/osu.Game/Screens/Select/Details/AdvancedStats.cs
+++ b/osu.Game/Screens/Select/Details/AdvancedStats.cs
@@ -161,8 +161,8 @@ namespace osu.Game.Screens.Select.Details
var ourSource = starDifficultyCancellationSource = new CancellationTokenSource();
- normalStarDifficulty = difficultyManager.GetUntrackedBindable(Beatmap, ruleset.Value, cancellationToken: ourSource.Token);
- moddedStarDifficulty = difficultyManager.GetUntrackedBindable(Beatmap, ruleset.Value, mods.Value, ourSource.Token);
+ normalStarDifficulty = difficultyManager.GetBindableDifficulty(Beatmap, ruleset.Value, null, cancellationToken: ourSource.Token);
+ moddedStarDifficulty = difficultyManager.GetBindableDifficulty(Beatmap, ruleset.Value, mods.Value, ourSource.Token);
normalStarDifficulty.BindValueChanged(_ => updateDisplay());
moddedStarDifficulty.BindValueChanged(_ => updateDisplay(), true);