/// <summary> /// Adds a player to the leaderboard. /// </summary> /// <param name="user">The player.</param> /// <param name="isTracked"> /// Whether the player should be tracked on the leaderboard. /// Set to <c>true</c> for the local player or a player whose replay is currently being played. /// </param> public ILeaderboardScore Add([CanBeNull] APIUser user, bool isTracked) { var drawable = CreateLeaderboardScoreDrawable(user, isTracked); if (isTracked) { if (trackedScore != null) { throw new InvalidOperationException("Cannot track more than one score."); } trackedScore = drawable; } drawable.Expanded.BindTo(Expanded); Flow.Add(drawable); drawable.TotalScore.BindValueChanged(_ => sorting.Invalidate(), true); int displayCount = Math.Min(Flow.Count, maxPanels); Height = displayCount * (GameplayLeaderboardScore.PANEL_HEIGHT + Flow.Spacing.Y); requiresScroll = displayCount != Flow.Count; return(drawable); }
public void Clear() { Flow.Clear(); trackedScore = null; scroll.ScrollToStart(false); }