mirror of
https://github.com/osukey/osukey.git
synced 2025-08-05 15:44:04 +09:00
Update Scoreboard Refresh Method for deleting individual scores
This commit is contained in:
@ -19,8 +19,10 @@ namespace osu.Game.Screens.Select.Leaderboards
|
||||
{
|
||||
public class BeatmapLeaderboard : Leaderboard<BeatmapLeaderboardScope, ScoreInfo>
|
||||
{
|
||||
|
||||
public Action<ScoreInfo> ScoreSelected;
|
||||
|
||||
|
||||
[Resolved]
|
||||
private RulesetStore rulesets { get; set; }
|
||||
|
||||
@ -103,6 +105,8 @@ namespace osu.Game.Screens.Select.Leaderboards
|
||||
{
|
||||
ScoreSelected = s => ScoreSelected?.Invoke(s)
|
||||
});
|
||||
|
||||
scoreManager.ItemRemoved += deleteLocalScore;
|
||||
}
|
||||
|
||||
protected override void Reset()
|
||||
@ -111,6 +115,16 @@ namespace osu.Game.Screens.Select.Leaderboards
|
||||
TopScore = null;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool isDisposing)
|
||||
{
|
||||
base.Dispose(isDisposing);
|
||||
|
||||
if (scoreManager != null)
|
||||
{
|
||||
scoreManager.ItemRemoved -= deleteLocalScore;
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool IsOnlineScope => Scope != BeatmapLeaderboardScope.Local;
|
||||
|
||||
protected override APIRequest FetchScores(Action<IEnumerable<ScoreInfo>> scoresCallback)
|
||||
@ -188,9 +202,16 @@ namespace osu.Game.Screens.Select.Leaderboards
|
||||
|
||||
return new LeaderboardScore(model, index, IsOnlineScope)
|
||||
{
|
||||
Action = () => ScoreSelected?.Invoke(model),
|
||||
RefreshAction = () => this.RefreshScores()
|
||||
Action = () => ScoreSelected?.Invoke(model)
|
||||
};
|
||||
}
|
||||
|
||||
private void deleteLocalScore(ScoreInfo score)
|
||||
{
|
||||
if (score == null)
|
||||
return;
|
||||
|
||||
Schedule(() => this.RefreshScores());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user