1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-15 15:05:34 +08:00

Extract StatisticCounter to a separate class and use it instead.

This commit is contained in:
Lucas A 2020-11-01 13:25:36 +01:00
parent 44471b4596
commit 6bfff43634
3 changed files with 41 additions and 20 deletions

View File

@ -6,7 +6,6 @@ using osu.Framework.Graphics.Containers;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
using osu.Game.Screens.Ranking.Expanded.Accuracy;
using osuTK; using osuTK;
namespace osu.Game.Screens.Ranking.Expanded.Statistics namespace osu.Game.Screens.Ranking.Expanded.Statistics
@ -19,7 +18,7 @@ namespace osu.Game.Screens.Ranking.Expanded.Statistics
private readonly int count; private readonly int count;
private readonly int? maxCount; private readonly int? maxCount;
protected RollingCounter<int> Counter { get; private set; } private RollingCounter<int> counter;
/// <summary> /// <summary>
/// Creates a new <see cref="CounterStatistic"/>. /// Creates a new <see cref="CounterStatistic"/>.
@ -37,7 +36,7 @@ namespace osu.Game.Screens.Ranking.Expanded.Statistics
public override void Appear() public override void Appear()
{ {
base.Appear(); base.Appear();
Counter.Current.Value = count; counter.Current.Value = count;
} }
protected override Drawable CreateContent() protected override Drawable CreateContent()
@ -46,7 +45,7 @@ namespace osu.Game.Screens.Ranking.Expanded.Statistics
{ {
AutoSizeAxes = Axes.Both, AutoSizeAxes = Axes.Both,
Direction = FillDirection.Horizontal, Direction = FillDirection.Horizontal,
Child = Counter = new StatisticCounter Child = counter = new StatisticCounter
{ {
Anchor = Anchor.TopCentre, Anchor = Anchor.TopCentre,
Origin = Anchor.TopCentre Origin = Anchor.TopCentre
@ -67,18 +66,5 @@ namespace osu.Game.Screens.Ranking.Expanded.Statistics
return container; return container;
} }
private class StatisticCounter : RollingCounter<int>
{
protected override double RollingDuration => AccuracyCircle.ACCURACY_TRANSFORM_DURATION;
protected override Easing RollingEasing => AccuracyCircle.ACCURACY_TRANSFORM_EASING;
protected override OsuSpriteText CreateSpriteText() => base.CreateSpriteText().With(s =>
{
s.Font = OsuFont.Torus.With(size: 20, fixedWidth: true);
s.Spacing = new Vector2(-2, 0);
});
}
} }
} }

View File

@ -5,11 +5,13 @@ using System;
using System.Threading; using System.Threading;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Bindables; using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Game.Graphics.UserInterface;
using osu.Game.Scoring; using osu.Game.Scoring;
namespace osu.Game.Screens.Ranking.Expanded.Statistics namespace osu.Game.Screens.Ranking.Expanded.Statistics
{ {
public class PerformanceStatistic : CounterStatistic public class PerformanceStatistic : StatisticDisplay
{ {
private readonly ScoreInfo score; private readonly ScoreInfo score;
@ -17,8 +19,10 @@ namespace osu.Game.Screens.Ranking.Expanded.Statistics
private readonly CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); private readonly CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
private RollingCounter<int> counter;
public PerformanceStatistic(ScoreInfo score) public PerformanceStatistic(ScoreInfo score)
: base("PP", 0) : base("PP")
{ {
this.score = score; this.score = score;
} }
@ -46,7 +50,7 @@ namespace osu.Game.Screens.Ranking.Expanded.Statistics
public override void Appear() public override void Appear()
{ {
base.Appear(); base.Appear();
Counter.Current.BindTo(performance); counter.Current.BindTo(performance);
} }
protected override void Dispose(bool isDisposing) protected override void Dispose(bool isDisposing)
@ -54,5 +58,11 @@ namespace osu.Game.Screens.Ranking.Expanded.Statistics
cancellationTokenSource?.Cancel(); cancellationTokenSource?.Cancel();
base.Dispose(isDisposing); base.Dispose(isDisposing);
} }
protected override Drawable CreateContent() => counter = new StatisticCounter
{
Anchor = Anchor.TopCentre,
Origin = Anchor.TopCentre
};
} }
} }

View File

@ -0,0 +1,25 @@
// 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 osu.Framework.Graphics;
using osu.Game.Graphics;
using osu.Game.Graphics.Sprites;
using osu.Game.Graphics.UserInterface;
using osu.Game.Screens.Ranking.Expanded.Accuracy;
using osuTK;
namespace osu.Game.Screens.Ranking.Expanded.Statistics
{
public class StatisticCounter : RollingCounter<int>
{
protected override double RollingDuration => AccuracyCircle.ACCURACY_TRANSFORM_DURATION;
protected override Easing RollingEasing => AccuracyCircle.ACCURACY_TRANSFORM_EASING;
protected override OsuSpriteText CreateSpriteText() => base.CreateSpriteText().With(s =>
{
s.Font = OsuFont.Torus.With(size: 20, fixedWidth: true);
s.Spacing = new Vector2(-2, 0);
});
}
}