From ff477cd56c36eb99a8e238dd0de607fc5f3a6222 Mon Sep 17 00:00:00 2001 From: Andrei Zavatski Date: Tue, 1 Oct 2019 14:12:03 +0300 Subject: [PATCH] Remove humanized number dependency --- .../UserInterface/TestSceneMetricNumbers.cs | 58 ------------------- .../Rankings/Tables/CountriesTable.cs | 27 ++++++--- .../Rankings/Tables/PerformanceTable.cs | 13 ++--- .../Overlays/Rankings/Tables/RankingsTable.cs | 34 +---------- .../Overlays/Rankings/Tables/ScoresTable.cs | 20 ++++--- osu.Game/Utils/HumanizerUtils.cs | 27 --------- 6 files changed, 41 insertions(+), 138 deletions(-) delete mode 100644 osu.Game.Tests/Visual/UserInterface/TestSceneMetricNumbers.cs diff --git a/osu.Game.Tests/Visual/UserInterface/TestSceneMetricNumbers.cs b/osu.Game.Tests/Visual/UserInterface/TestSceneMetricNumbers.cs deleted file mode 100644 index 8e3924e1fb..0000000000 --- a/osu.Game.Tests/Visual/UserInterface/TestSceneMetricNumbers.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. -// See the LICENCE file in the repository root for full licence text. - -using osu.Framework.Graphics; -using osu.Framework.Graphics.Containers; -using osu.Framework.Graphics.Cursor; -using osu.Framework.Graphics.Sprites; -using osu.Game.Utils; - -namespace osu.Game.Tests.Visual.UserInterface -{ - public class TestSceneMetricNumbers : OsuTestScene - { - public TestSceneMetricNumbers() - { - Child = new FillFlowContainer - { - Anchor = Anchor.Centre, - Origin = Anchor.Centre, - AutoSizeAxes = Axes.Both, - Direction = FillDirection.Vertical, - Children = new Drawable[] - { - new DrawableNumber(0), - new DrawableNumber(1001), - new DrawableNumber(999_999), - new DrawableNumber(1_000_000), - new DrawableNumber(845_006_456), - new DrawableNumber(999_999_999), - new DrawableNumber(1_000_000_000), - new DrawableNumber(7_875_454_545), - new DrawableNumber(999_999_999_999), - new DrawableNumber(1_000_000_000_000), - new DrawableNumber(687_545_454_554_545), - new DrawableNumber(999_999_999_999_999), - new DrawableNumber(1_000_000_000_000_000), - new DrawableNumber(587_545_454_554_545_455), - new DrawableNumber(999_999_999_999_999_999), - new DrawableNumber(1_000_000_000_000_000_000), - new DrawableNumber(long.MaxValue), - } - }; - } - - private class DrawableNumber : SpriteText, IHasTooltip - { - public string TooltipText => value.ToString("F0"); - - private readonly long value; - - public DrawableNumber(long value) - { - this.value = value; - Text = HumanizerUtils.ToReadableString(value); - } - } - } -} diff --git a/osu.Game/Overlays/Rankings/Tables/CountriesTable.cs b/osu.Game/Overlays/Rankings/Tables/CountriesTable.cs index 96ff506814..8e0e55595d 100644 --- a/osu.Game/Overlays/Rankings/Tables/CountriesTable.cs +++ b/osu.Game/Overlays/Rankings/Tables/CountriesTable.cs @@ -50,22 +50,33 @@ protected override TableColumn[] CreateHeaders() => new[] Size = new Vector2(20, 13), ShowPlaceholderOnNull = false, }, - new OsuSpriteText + new RowText { Text = $@"{item.Country.FullName}", - Font = OsuFont.GetFont(size: TEXT_SIZE), } } }, - new ColoredText + new ColoredRowText { Text = $@"{item.ActiveUsers:N0}", }, - new ColoredMetricNumber(item.PlayCount), - new ColoredMetricNumber(item.RankedScore), - new ColoredMetricNumber(item.RankedScore / Math.Max(item.ActiveUsers, 1)), - new MetricNumber(item.Performance), - new ColoredText + new ColoredRowText + { + Text = $@"{item.PlayCount:N0}", + }, + new ColoredRowText + { + Text = $@"{item.RankedScore:N0}", + }, + new ColoredRowText + { + Text = $@"{item.RankedScore / Math.Max(item.ActiveUsers, 1):N0}", + }, + new RowText + { + Text = $@"{item.Performance:N0}", + }, + new ColoredRowText { Text = $@"{item.Performance / Math.Max(item.ActiveUsers, 1):N0}", } diff --git a/osu.Game/Overlays/Rankings/Tables/PerformanceTable.cs b/osu.Game/Overlays/Rankings/Tables/PerformanceTable.cs index c79553a3be..2d582f4321 100644 --- a/osu.Game/Overlays/Rankings/Tables/PerformanceTable.cs +++ b/osu.Game/Overlays/Rankings/Tables/PerformanceTable.cs @@ -63,28 +63,27 @@ protected override Drawable[] CreateContent(int index, APIUserRankings item) username } }, - new ColoredText + new ColoredRowText { Text = $@"{item.Accuracy:F2}%", }, - new ColoredText + new ColoredRowText { Text = $@"{item.PlayCount:N0}", }, - new OsuSpriteText + new RowText { Text = $@"{item.PP:N0}", - Font = OsuFont.GetFont(size: TEXT_SIZE), }, - new ColoredText + new ColoredRowText { Text = $@"{item.GradesCount.SS + item.GradesCount.SSPlus:N0}", }, - new ColoredText + new ColoredRowText { Text = $@"{item.GradesCount.S + item.GradesCount.SPlus:N0}", }, - new ColoredText + new ColoredRowText { Text = $@"{item.GradesCount.A:N0}", }, diff --git a/osu.Game/Overlays/Rankings/Tables/RankingsTable.cs b/osu.Game/Overlays/Rankings/Tables/RankingsTable.cs index 6c53a9fa74..a04e8be9d0 100644 --- a/osu.Game/Overlays/Rankings/Tables/RankingsTable.cs +++ b/osu.Game/Overlays/Rankings/Tables/RankingsTable.cs @@ -10,8 +10,6 @@ using osu.Game.Graphics; using osu.Game.Graphics.Sprites; using osu.Framework.Extensions.IEnumerableExtensions; -using osu.Framework.Graphics.Cursor; -using osu.Game.Utils; namespace osu.Game.Overlays.Rankings.Tables { @@ -88,42 +86,16 @@ private void load(OsuColour colours) } } - protected class MetricNumber : OsuSpriteText, IHasTooltip + protected class RowText : OsuSpriteText { - public string TooltipText => $"{value:N0}"; - - private readonly long value; - - public MetricNumber(long value) + public RowText() { - this.value = value; - - Text = HumanizerUtils.ToReadableString(value); Font = OsuFont.GetFont(size: TEXT_SIZE); } } - protected class ColoredMetricNumber : MetricNumber + protected class ColoredRowText : RowText { - public ColoredMetricNumber(long value) - : base(value) - { - } - - [BackgroundDependencyLoader] - private void load(OsuColour colours) - { - Colour = colours.GreySeafoamLighter; - } - } - - protected class ColoredText : OsuSpriteText - { - public ColoredText() - { - Font = OsuFont.GetFont(size: TEXT_SIZE); - } - [BackgroundDependencyLoader] private void load(OsuColour colours) { diff --git a/osu.Game/Overlays/Rankings/Tables/ScoresTable.cs b/osu.Game/Overlays/Rankings/Tables/ScoresTable.cs index 1c8b474689..5d572a6af0 100644 --- a/osu.Game/Overlays/Rankings/Tables/ScoresTable.cs +++ b/osu.Game/Overlays/Rankings/Tables/ScoresTable.cs @@ -64,25 +64,31 @@ protected override Drawable[] CreateContent(int index, APIUserRankings item) username } }, - new ColoredText + new ColoredRowText { Text = $@"{item.Accuracy:F2}%", }, - new ColoredText + new ColoredRowText { Text = $@"{item.PlayCount:N0}", }, - new ColoredMetricNumber(item.TotalScore), - new MetricNumber(item.RankedScore), - new ColoredText + new ColoredRowText + { + Text = $@"{item.TotalScore:N0}", + }, + new RowText + { + Text = $@"{item.RankedScore:N0}", + }, + new ColoredRowText { Text = $@"{item.GradesCount.SS + item.GradesCount.SSPlus:N0}", }, - new ColoredText + new ColoredRowText { Text = $@"{item.GradesCount.S + item.GradesCount.SPlus:N0}", }, - new ColoredText + new ColoredRowText { Text = $@"{item.GradesCount.A:N0}", }, diff --git a/osu.Game/Utils/HumanizerUtils.cs b/osu.Game/Utils/HumanizerUtils.cs index 9920f7d127..5b7c3630d9 100644 --- a/osu.Game/Utils/HumanizerUtils.cs +++ b/osu.Game/Utils/HumanizerUtils.cs @@ -26,32 +26,5 @@ public static string Humanize(DateTimeOffset input) return input.Humanize(culture: new CultureInfo("en-US")); } } - - /// - /// Turns the current or provided big number into a readable string. - /// - /// The number to be humanized. - /// Simplified number with a suffix. - public static string ToReadableString(long input) - { - const int k = 1000; - - if (input < k) - return input.ToString(); - - int i = (int)Math.Floor(Math.Round(Math.Log(input, k))); - return $"{input / Math.Pow(k, i):F} {suffixes[i]}"; - } - - private static readonly string[] suffixes = - { - "", - "k", - "million", - "billion", - "trillion", - "quadrillion", - "quintillion", - }; } }