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

Merge branch 'master' into attribute-formatting

This commit is contained in:
Dan Balasescu 2018-02-08 13:26:15 +09:00 committed by GitHub
commit 8bb69ed2c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 111 additions and 58 deletions

@ -1 +1 @@
Subproject commit a584706f1303f54cd7f5472240e95b70920ce079 Subproject commit 1440ae8538560b3c40883ec51ab39108d6a69e3b

View File

@ -136,7 +136,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4"> <Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4">
<HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.11\lib\net45\OpenTK.dll</HintPath> <HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.13\lib\net45\OpenTK.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="SharpCompress, Version=0.18.1.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL"> <Reference Include="SharpCompress, Version=0.18.1.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">

View File

@ -6,7 +6,7 @@ Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/maste
<packages> <packages>
<package id="DeltaCompressionDotNet" version="1.1.0" targetFramework="net45" /> <package id="DeltaCompressionDotNet" version="1.1.0" targetFramework="net45" />
<package id="Mono.Cecil" version="0.9.6.4" targetFramework="net45" /> <package id="Mono.Cecil" version="0.9.6.4" targetFramework="net45" />
<package id="ppy.OpenTK" version="3.0.11" targetFramework="net461" /> <package id="ppy.OpenTK" version="3.0.13" targetFramework="net461" />
<package id="SharpCompress" version="0.18.1" targetFramework="net461" /> <package id="SharpCompress" version="0.18.1" targetFramework="net461" />
<package id="Splat" version="2.0.0" targetFramework="net45" /> <package id="Splat" version="2.0.0" targetFramework="net45" />
<package id="SQLitePCLRaw.bundle_green" version="1.1.8" targetFramework="net461" /> <package id="SQLitePCLRaw.bundle_green" version="1.1.8" targetFramework="net461" />

View File

@ -41,7 +41,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4"> <Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4">
<HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.11\lib\net45\OpenTK.dll</HintPath> <HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.13\lib\net45\OpenTK.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />

View File

@ -2,5 +2,5 @@
<packages> <packages>
<package id="JetBrains.Annotations" version="11.1.0" targetFramework="net461" /> <package id="JetBrains.Annotations" version="11.1.0" targetFramework="net461" />
<package id="NUnit" version="3.8.1" targetFramework="net461" /> <package id="NUnit" version="3.8.1" targetFramework="net461" />
<package id="ppy.OpenTK" version="3.0.11" targetFramework="net461" /> <package id="ppy.OpenTK" version="3.0.13" targetFramework="net461" />
</packages> </packages>

View File

@ -41,7 +41,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4"> <Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4">
<HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.11\lib\net45\OpenTK.dll</HintPath> <HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.13\lib\net45\OpenTK.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">

View File

@ -2,5 +2,5 @@
<packages> <packages>
<package id="JetBrains.Annotations" version="11.1.0" targetFramework="net461" /> <package id="JetBrains.Annotations" version="11.1.0" targetFramework="net461" />
<package id="NUnit" version="3.8.1" targetFramework="net461" /> <package id="NUnit" version="3.8.1" targetFramework="net461" />
<package id="ppy.OpenTK" version="3.0.11" targetFramework="net461" /> <package id="ppy.OpenTK" version="3.0.13" targetFramework="net461" />
</packages> </packages>

View File

@ -42,7 +42,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4"> <Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4">
<HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.11\lib\net45\OpenTK.dll</HintPath> <HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.13\lib\net45\OpenTK.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />

View File

@ -2,5 +2,5 @@
<packages> <packages>
<package id="JetBrains.Annotations" version="11.1.0" targetFramework="net461" /> <package id="JetBrains.Annotations" version="11.1.0" targetFramework="net461" />
<package id="NUnit" version="3.8.1" targetFramework="net461" /> <package id="NUnit" version="3.8.1" targetFramework="net461" />
<package id="ppy.OpenTK" version="3.0.11" targetFramework="net461" /> <package id="ppy.OpenTK" version="3.0.13" targetFramework="net461" />
</packages> </packages>

View File

@ -41,7 +41,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4"> <Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4">
<HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.11\lib\net45\OpenTK.dll</HintPath> <HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.13\lib\net45\OpenTK.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />

View File

@ -2,5 +2,5 @@
<packages> <packages>
<package id="JetBrains.Annotations" version="11.1.0" targetFramework="net461" /> <package id="JetBrains.Annotations" version="11.1.0" targetFramework="net461" />
<package id="NUnit" version="3.8.1" targetFramework="net461" /> <package id="NUnit" version="3.8.1" targetFramework="net461" />
<package id="ppy.OpenTK" version="3.0.11" targetFramework="net461" /> <package id="ppy.OpenTK" version="3.0.13" targetFramework="net461" />
</packages> </packages>

View File

@ -63,8 +63,8 @@ namespace osu.Game.Tests.Visual
{ {
Value = new[] Value = new[]
{ {
new User { GlobalRank = 1355 }, new User { Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 1355 } } },
new User { GlobalRank = 8756 }, new User { Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 8756 } } },
}, },
}, },
}), }),
@ -99,10 +99,10 @@ namespace osu.Game.Tests.Visual
}, },
Participants = Participants =
{ {
Value = new[] Value = new[]
{ {
new User { GlobalRank = 578975 }, new User { Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 578975 } } },
new User { GlobalRank = 24554 }, new User { Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 24554 } } },
}, },
}, },
}), }),
@ -116,8 +116,8 @@ namespace osu.Game.Tests.Visual
AddStep(@"change beatmap", () => first.Room.Beatmap.Value = null); AddStep(@"change beatmap", () => first.Room.Beatmap.Value = null);
AddStep(@"change participants", () => first.Room.Participants.Value = new[] AddStep(@"change participants", () => first.Room.Participants.Value = new[]
{ {
new User { GlobalRank = 1254 }, new User { Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 1254 } } },
new User { GlobalRank = 123189 }, new User { Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 123189 } } },
}); });
} }

View File

@ -65,7 +65,7 @@ namespace osu.Game.Tests.Visual
{ {
Statistics = new UserStatistics Statistics = new UserStatistics
{ {
Rank = 123456, Ranks = new UserStatistics.UserRanks { Global = 123456 },
PP = 12345, PP = 12345,
} }
}; };
@ -77,7 +77,7 @@ namespace osu.Game.Tests.Visual
{ {
Statistics = new UserStatistics Statistics = new UserStatistics
{ {
Rank = 89000, Ranks = new UserStatistics.UserRanks { Global = 89000 },
PP = 12345, PP = 12345,
}, },
RankHistory = new User.RankHistoryData RankHistory = new User.RankHistoryData
@ -93,7 +93,7 @@ namespace osu.Game.Tests.Visual
{ {
Statistics = new UserStatistics Statistics = new UserStatistics
{ {
Rank = 89000, Ranks = new UserStatistics.UserRanks { Global = 89000 },
PP = 12345, PP = 12345,
}, },
RankHistory = new User.RankHistoryData RankHistory = new User.RankHistoryData
@ -109,7 +109,7 @@ namespace osu.Game.Tests.Visual
{ {
Statistics = new UserStatistics Statistics = new UserStatistics
{ {
Rank = 12000, Ranks = new UserStatistics.UserRanks { Global = 12000 },
PP = 12345, PP = 12345,
}, },
RankHistory = new User.RankHistoryData RankHistory = new User.RankHistoryData

View File

@ -54,12 +54,12 @@ namespace osu.Game.Tests.Visual
{ {
Value = new[] Value = new[]
{ {
new User { Username = @"flyte", Id = 3103765, GlobalRank = 1425 }, new User { Username = @"flyte", Id = 3103765, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 142 } } },
new User { Username = @"Cookiezi", Id = 124493, GlobalRank = 5466 }, new User { Username = @"Cookiezi", Id = 124493, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 546 } } },
new User { Username = @"Angelsim", Id = 1777162, GlobalRank = 2873 }, new User { Username = @"Angelsim", Id = 1777162, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 287 } } },
new User { Username = @"Rafis", Id = 2558286, GlobalRank = 4687 }, new User { Username = @"Rafis", Id = 2558286, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 468 } } },
new User { Username = @"hvick225", Id = 50265, GlobalRank = 3258 }, new User { Username = @"hvick225", Id = 50265, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 325 } } },
new User { Username = @"peppy", Id = 2, GlobalRank = 6251 } new User { Username = @"peppy", Id = 2, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 625 } } },
} }
} }
}; };
@ -80,8 +80,8 @@ namespace osu.Game.Tests.Visual
AddStep(@"change max participants", () => room.MaxParticipants.Value = null); AddStep(@"change max participants", () => room.MaxParticipants.Value = null);
AddStep(@"change participants", () => room.Participants.Value = new[] AddStep(@"change participants", () => room.Participants.Value = new[]
{ {
new User { Username = @"filsdelama", Id = 2831793, GlobalRank = 8542 }, new User { Username = @"filsdelama", Id = 2831793, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 854 } } },
new User { Username = @"_index", Id = 652457, GlobalRank = 15024 } new User { Username = @"_index", Id = 652457, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 150 } } }
}); });
AddStep(@"change room", () => AddStep(@"change room", () =>
@ -121,9 +121,9 @@ namespace osu.Game.Tests.Visual
{ {
Value = new[] Value = new[]
{ {
new User { Username = @"Angelsim", Id = 1777162, GlobalRank = 4 }, new User { Username = @"Angelsim", Id = 1777162, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 4 } } },
new User { Username = @"HappyStick", Id = 256802, GlobalRank = 752 }, new User { Username = @"HappyStick", Id = 256802, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 752 } } },
new User { Username = @"-Konpaku-", Id = 2258797, GlobalRank = 571 } new User { Username = @"-Konpaku-", Id = 2258797, Statistics = new UserStatistics { Ranks = new UserStatistics.UserRanks { Global = 571 } } }
} }
} }
}; };

View File

@ -42,11 +42,10 @@ namespace osu.Game.Tests.Visual
LastVisit = DateTimeOffset.Now, LastVisit = DateTimeOffset.Now,
Age = 1, Age = 1,
ProfileOrder = new[] { "me" }, ProfileOrder = new[] { "me" },
CountryRank = 1,
Statistics = new UserStatistics Statistics = new UserStatistics
{ {
Rank = 2148, Ranks = new UserStatistics.UserRanks { Global = 2148, Country = 1 },
PP = 4567.89m PP = 4567.89m,
}, },
RankHistory = new User.RankHistoryData RankHistory = new User.RankHistoryData
{ {

View File

@ -42,7 +42,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4"> <Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4">
<HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.11\lib\net45\OpenTK.dll</HintPath> <HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.13\lib\net45\OpenTK.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="SQLitePCLRaw.batteries_green, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL"> <Reference Include="SQLitePCLRaw.batteries_green, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL">

View File

@ -7,7 +7,7 @@ Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/maste
<package id="DeepEqual" version="1.6.0.0" targetFramework="net461" /> <package id="DeepEqual" version="1.6.0.0" targetFramework="net461" />
<package id="JetBrains.Annotations" version="11.1.0" targetFramework="net461" /> <package id="JetBrains.Annotations" version="11.1.0" targetFramework="net461" />
<package id="NUnit" version="3.8.1" targetFramework="net461" /> <package id="NUnit" version="3.8.1" targetFramework="net461" />
<package id="ppy.OpenTK" version="3.0.11" targetFramework="net461" /> <package id="ppy.OpenTK" version="3.0.13" targetFramework="net461" />
<package id="SQLitePCLRaw.bundle_green" version="1.1.8" targetFramework="net461" /> <package id="SQLitePCLRaw.bundle_green" version="1.1.8" targetFramework="net461" />
<package id="SQLitePCLRaw.core" version="1.1.8" targetFramework="net461" /> <package id="SQLitePCLRaw.core" version="1.1.8" targetFramework="net461" />
<package id="SQLitePCLRaw.lib.e_sqlite3.linux" version="1.1.8" targetFramework="net461" /> <package id="SQLitePCLRaw.lib.e_sqlite3.linux" version="1.1.8" targetFramework="net461" />

View File

@ -20,6 +20,11 @@ namespace osu.Game.Graphics.UserInterface
public class OsuSliderBar<T> : SliderBar<T>, IHasTooltip, IHasAccentColour public class OsuSliderBar<T> : SliderBar<T>, IHasTooltip, IHasAccentColour
where T : struct, IEquatable<T>, IComparable, IConvertible where T : struct, IEquatable<T>, IComparable, IConvertible
{ {
/// <summary>
/// Maximum number of decimal digits to be displayed in the tooltip.
/// </summary>
private const int max_decimal_digits = 5;
private SampleChannel sample; private SampleChannel sample;
private double lastSampleTime; private double lastSampleTime;
private T lastSampleValue; private T lastSampleValue;
@ -35,6 +40,7 @@ namespace osu.Game.Graphics.UserInterface
var bindableDouble = CurrentNumber as BindableNumber<double>; var bindableDouble = CurrentNumber as BindableNumber<double>;
var bindableFloat = CurrentNumber as BindableNumber<float>; var bindableFloat = CurrentNumber as BindableNumber<float>;
var floatValue = bindableDouble?.Value ?? bindableFloat?.Value; var floatValue = bindableDouble?.Value ?? bindableFloat?.Value;
var floatPrecision = bindableDouble?.Precision ?? bindableFloat?.Precision;
if (floatValue != null) if (floatValue != null)
{ {
@ -44,7 +50,12 @@ namespace osu.Game.Graphics.UserInterface
if (floatMaxValue == 1 && (floatMinValue == 0 || floatMinValue == -1)) if (floatMaxValue == 1 && (floatMinValue == 0 || floatMinValue == -1))
return floatValue.Value.ToString("P0"); return floatValue.Value.ToString("P0");
return floatValue.Value.ToString("N1"); var decimalPrecision = normalise((decimal)floatPrecision, max_decimal_digits);
// Find the number of significant digits (we could have less than 5 after normalize())
var significantDigits = findPrecision(decimalPrecision);
return floatValue.Value.ToString($"N{significantDigits}");
} }
var bindableInt = CurrentNumber as BindableNumber<int>; var bindableInt = CurrentNumber as BindableNumber<int>;
@ -177,5 +188,31 @@ namespace osu.Game.Graphics.UserInterface
{ {
Nub.MoveToX(RangePadding + UsableWidth * value, 250, Easing.OutQuint); Nub.MoveToX(RangePadding + UsableWidth * value, 250, Easing.OutQuint);
} }
/// <summary>
/// Removes all non-significant digits, keeping at most a requested number of decimal digits.
/// </summary>
/// <param name="d">The decimal to normalize.</param>
/// <param name="sd">The maximum number of decimal digits to keep. The final result may have fewer decimal digits than this value.</param>
/// <returns>The normalised decimal.</returns>
private decimal normalise(decimal d, int sd)
=> decimal.Parse(Math.Round(d, sd).ToString(string.Concat("0.", new string('#', sd)), CultureInfo.InvariantCulture), CultureInfo.InvariantCulture);
/// <summary>
/// Finds the number of digits after the decimal.
/// </summary>
/// <param name="d">The value to find the number of decimal digits for.</param>
/// <returns>The number decimal digits.</returns>
private int findPrecision(decimal d)
{
int precision = 0;
while (d != Math.Round(d))
{
d *= 10;
precision++;
}
return precision;
}
} }
} }

View File

@ -105,7 +105,7 @@ namespace osu.Game.Overlays.Profile
return; return;
} }
int[] userRanks = user.RankHistory?.Data ?? new[] { user.Statistics.Rank }; int[] userRanks = user.RankHistory?.Data ?? new[] { user.Statistics.Ranks.Global };
ranks = userRanks.Select((x, index) => new KeyValuePair<int, int>(index, x)).Where(x => x.Value != 0).ToArray(); ranks = userRanks.Select((x, index) => new KeyValuePair<int, int>(index, x)).Where(x => x.Value != 0).ToArray();
if (ranks.Length > 1) if (ranks.Length > 1)
@ -124,9 +124,11 @@ namespace osu.Game.Overlays.Profile
private void updateRankTexts() private void updateRankTexts()
{ {
rankText.Text = User.Value.Statistics.Rank > 0 ? $"#{User.Value.Statistics.Rank:#,0}" : "no rank"; var user = User.Value;
performanceText.Text = User.Value.Statistics.PP != null ? $"{User.Value.Statistics.PP:#,0}pp" : string.Empty;
relativeText.Text = $"{User.Value.Country?.FullName} #{User.Value.CountryRank:#,0}"; performanceText.Text = user.Statistics.PP != null ? $"{user.Statistics.PP:#,0}pp" : string.Empty;
rankText.Text = user.Statistics.Ranks.Global > 0 ? $"#{user.Statistics.Ranks.Global:#,0}" : "no rank";
relativeText.Text = user.Country != null && user.Statistics.Ranks.Country > 0 ? $"{user.Country.FullName} #{user.Statistics.Ranks.Country:#,0}" : "no rank";
} }
private void showHistoryRankTexts(int dayIndex) private void showHistoryRankTexts(int dayIndex)

View File

@ -33,6 +33,11 @@ namespace osu.Game.Overlays.Settings.Sections.Input
LabelText = "Cursor Sensitivity", LabelText = "Cursor Sensitivity",
Bindable = config.GetBindable<double>(FrameworkSetting.CursorSensitivity) Bindable = config.GetBindable<double>(FrameworkSetting.CursorSensitivity)
}, },
new SettingsCheckbox
{
LabelText = "Map absolute input to window",
Bindable = config.GetBindable<bool>(FrameworkSetting.MapAbsoluteInputToWindow)
},
new SettingsEnumDropdown<ConfineMouseMode> new SettingsEnumDropdown<ConfineMouseMode>
{ {
LabelText = "Confine mouse cursor to window", LabelText = "Confine mouse cursor to window",
@ -88,6 +93,7 @@ namespace osu.Game.Overlays.Settings.Sections.Input
// this bindable will still act as the "interactive" bindable displayed during a drag. // this bindable will still act as the "interactive" bindable displayed during a drag.
base.Bindable = new BindableDouble(doubleValue.Value) base.Bindable = new BindableDouble(doubleValue.Value)
{ {
Default = doubleValue.Default,
MinValue = doubleValue.MinValue, MinValue = doubleValue.MinValue,
MaxValue = doubleValue.MaxValue MaxValue = doubleValue.MaxValue
}; };

View File

@ -181,7 +181,7 @@ namespace osu.Game.Overlays.Settings
{ {
hovering = true; hovering = true;
UpdateState(); UpdateState();
return true; return false;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(InputState state)

View File

@ -35,7 +35,7 @@ namespace osu.Game.Screens.Multiplayer
{ {
set set
{ {
var ranks = value.Select(u => u.GlobalRank); var ranks = value.Select(u => u.Statistics.Ranks.Global);
levelRangeLower.Text = ranks.Min().ToString(); levelRangeLower.Text = ranks.Min().ToString();
levelRangeHigher.Text = ranks.Max().ToString(); levelRangeHigher.Text = ranks.Max().ToString();
} }

View File

@ -42,7 +42,6 @@ namespace osu.Game.Screens.Play.PlayerSettings
{ {
Anchor = Anchor.CentreRight, Anchor = Anchor.CentreRight,
Origin = Anchor.CentreRight, Origin = Anchor.CentreRight,
Text = "1x",
Font = @"Exo2.0-Bold", Font = @"Exo2.0-Bold",
} }
}, },
@ -54,12 +53,13 @@ namespace osu.Game.Screens.Play.PlayerSettings
Default = 1, Default = 1,
MinValue = 0.5, MinValue = 0.5,
MaxValue = 2, MaxValue = 2,
Precision = 0.01, Precision = 0.1,
}, },
} }
}; };
sliderbar.Bindable.ValueChanged += rateMultiplier => multiplierText.Text = $"{rateMultiplier}x"; sliderbar.Bindable.ValueChanged += rateMultiplier => multiplierText.Text = $"{sliderbar.Bar.TooltipText}x";
sliderbar.Bindable.TriggerChange();
} }
protected override void LoadComplete() protected override void LoadComplete()

View File

@ -13,6 +13,8 @@ namespace osu.Game.Screens.Play.PlayerSettings
public class PlayerSliderBar<T> : SettingsSlider<T> public class PlayerSliderBar<T> : SettingsSlider<T>
where T : struct, IEquatable<T>, IComparable, IConvertible where T : struct, IEquatable<T>, IComparable, IConvertible
{ {
public OsuSliderBar<T> Bar => (OsuSliderBar<T>)Control;
protected override Drawable CreateControl() => new Sliderbar protected override Drawable CreateControl() => new Sliderbar
{ {
Margin = new MarginPadding { Top = 5, Bottom = 5 }, Margin = new MarginPadding { Top = 5, Bottom = 5 },
@ -21,8 +23,6 @@ namespace osu.Game.Screens.Play.PlayerSettings
private class Sliderbar : OsuSliderBar<T> private class Sliderbar : OsuSliderBar<T>
{ {
public override string TooltipText => $"{CurrentNumber.Value}";
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load(OsuColour colours) private void load(OsuColour colours)
{ {

View File

@ -26,10 +26,6 @@ namespace osu.Game.Users
[JsonProperty(@"age")] [JsonProperty(@"age")]
public int? Age; public int? Age;
public int GlobalRank;
public int CountryRank;
//public Team Team; //public Team Team;
[JsonProperty(@"profile_colour")] [JsonProperty(@"profile_colour")]

View File

@ -22,8 +22,11 @@ namespace osu.Game.Users
[JsonProperty(@"pp")] [JsonProperty(@"pp")]
public decimal? PP; public decimal? PP;
[JsonProperty(@"pp_rank")] [JsonProperty(@"pp_rank")] // the API sometimes only returns this value in condensed user responses
public int Rank; private int rank { set => Ranks.Global = value; }
[JsonProperty(@"rank")]
public UserRanks Ranks;
[JsonProperty(@"ranked_score")] [JsonProperty(@"ranked_score")]
public long RankedScore; public long RankedScore;
@ -66,5 +69,15 @@ namespace osu.Game.Users
[JsonProperty(@"a")] [JsonProperty(@"a")]
public int A; public int A;
} }
public struct UserRanks
{
[JsonProperty(@"global")]
public int Global;
[JsonProperty(@"country")]
public int Country;
}
} }
} }

View File

@ -148,7 +148,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4"> <Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4">
<HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.11\lib\net45\OpenTK.dll</HintPath> <HintPath>$(SolutionDir)\packages\ppy.OpenTK.3.0.13\lib\net45\OpenTK.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Remotion.Linq, Version=2.1.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b, processorArchitecture=MSIL"> <Reference Include="Remotion.Linq, Version=2.1.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b, processorArchitecture=MSIL">

View File

@ -67,7 +67,7 @@ Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/maste
<package id="Microsoft.Extensions.Primitives" version="2.0.0" targetFramework="net461" /> <package id="Microsoft.Extensions.Primitives" version="2.0.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net461" /> <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net461" />
<package id="NUnit" version="3.8.1" targetFramework="net461" /> <package id="NUnit" version="3.8.1" targetFramework="net461" />
<package id="ppy.OpenTK" version="3.0.11" targetFramework="net461" /> <package id="ppy.OpenTK" version="3.0.13" targetFramework="net461" />
<package id="Remotion.Linq" version="2.1.2" targetFramework="net461" /> <package id="Remotion.Linq" version="2.1.2" targetFramework="net461" />
<package id="SharpCompress" version="0.18.1" targetFramework="net461" /> <package id="SharpCompress" version="0.18.1" targetFramework="net461" />
<package id="SQLitePCLRaw.bundle_green" version="1.1.8" targetFramework="net461" /> <package id="SQLitePCLRaw.bundle_green" version="1.1.8" targetFramework="net461" />