Split out DefaultScoreCounter and make ScoreCounter abstract

This commit is contained in:
Dean Herbert 2020-10-15 16:31:21 +09:00
parent d5f2aab52e
commit 219cbec6bd
3 changed files with 36 additions and 8 deletions

View File

@ -16,7 +16,7 @@ namespace osu.Game.Tests.Visual.Gameplay
{ {
int numerator = 0, denominator = 0; int numerator = 0, denominator = 0;
ScoreCounter score = new ScoreCounter(7) ScoreCounter score = new DefaultScoreCounter()
{ {
Origin = Anchor.TopRight, Origin = Anchor.TopRight,
Anchor = Anchor.TopRight, Anchor = Anchor.TopRight,

View File

@ -1,18 +1,21 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence. // 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. // See the LICENCE file in the repository root for full licence text.
using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Screens.Play.HUD;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
{ {
public class ScoreCounter : RollingCounter<double> public abstract class ScoreCounter : RollingCounter<double>, IScoreCounter
{ {
protected override double RollingDuration => 1000; protected override double RollingDuration => 1000;
protected override Easing RollingEasing => Easing.Out; protected override Easing RollingEasing => Easing.Out;
public bool UseCommaSeparator; /// <summary>
/// Whether comma separators should be displayed.
/// </summary>
public bool UseCommaSeparator { get; }
/// <summary> /// <summary>
/// How many leading zeroes the counter has. /// How many leading zeroes the counter has.
@ -23,14 +26,13 @@ namespace osu.Game.Graphics.UserInterface
/// Displays score. /// Displays score.
/// </summary> /// </summary>
/// <param name="leading">How many leading zeroes the counter will have.</param> /// <param name="leading">How many leading zeroes the counter will have.</param>
public ScoreCounter(uint leading = 0) /// <param name="useCommaSeparator">Whether comma separators should be displayed.</param>
protected ScoreCounter(uint leading = 0, bool useCommaSeparator = false)
{ {
UseCommaSeparator = useCommaSeparator;
LeadingZeroes = leading; LeadingZeroes = leading;
} }
[BackgroundDependencyLoader]
private void load(OsuColour colours) => Colour = colours.BlueLighter;
protected override double GetProportionalDuration(double currentValue, double newValue) protected override double GetProportionalDuration(double currentValue, double newValue)
{ {
return currentValue > newValue ? currentValue - newValue : newValue - currentValue; return currentValue > newValue ? currentValue - newValue : newValue - currentValue;

View File

@ -0,0 +1,26 @@
// 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.Allocation;
using osu.Framework.Graphics;
using osu.Game.Graphics;
using osu.Game.Graphics.UserInterface;
namespace osu.Game.Screens.Play.HUD
{
public class DefaultScoreCounter : ScoreCounter
{
public DefaultScoreCounter()
: base(6)
{
Anchor = Anchor.TopCentre;
Origin = Anchor.TopCentre;
}
[BackgroundDependencyLoader]
private void load(OsuColour colours)
{
Colour = colours.BlueLighter;
}
}
}