1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-11 10:33:30 +08:00

Add leaderboard display for local scores

This commit is contained in:
smoogipoo 2018-11-29 18:30:43 +09:00
parent 4144f4bd2f
commit 10ed09521c
3 changed files with 11 additions and 2 deletions

View File

@ -57,6 +57,8 @@ namespace osu.Game.Scoring
public List<ScoreInfo> GetAllUsableScores() => ModelStore.ConsumableItems.Where(s => !s.DeletePending).ToList();
public IEnumerable<ScoreInfo> QueryScores(Expression<Func<ScoreInfo, bool>> query) => ModelStore.ConsumableItems.AsNoTracking().Where(query);
public ScoreInfo Query(Expression<Func<ScoreInfo, bool>> query) => ModelStore.ConsumableItems.AsNoTracking().FirstOrDefault(query);
}
}

View File

@ -179,6 +179,9 @@ namespace osu.Game.Screens.Select.Leaderboards
private APIAccess api;
private BeatmapInfo beatmap;
[Resolved]
private ScoreManager scoreManager { get; set; }
private ScheduledDelegate pendingUpdateScores;
public BeatmapInfo Beatmap
@ -216,6 +219,8 @@ namespace osu.Game.Screens.Select.Leaderboards
api.OnStateChange -= handleApiStateChange;
}
public void RefreshScores() => updateScores();
private GetScoresRequest getScoresRequest;
private void handleApiStateChange(APIState oldState, APIState newState)
@ -242,8 +247,8 @@ namespace osu.Game.Screens.Select.Leaderboards
{
if (Scope == LeaderboardScope.Local)
{
// TODO: get local scores from wherever here.
PlaceholderState = PlaceholderState.NoScores;
Scores = scoreManager.QueryScores(s => s.BeatmapInfo.ID == Beatmap.ID).ToArray();
PlaceholderState = Scores.Any() ? PlaceholderState.Successful : PlaceholderState.NoScores;
return;
}

View File

@ -108,6 +108,8 @@ namespace osu.Game.Screens.Select
removeAutoModOnResume = false;
}
BeatmapDetails.Leaderboard.RefreshScores();
Beatmap.Value.Track.Looping = true;
base.OnResuming(last);