Convert to extension method to avoid recursive calls

This commit is contained in:
Dean Herbert
2022-03-03 14:15:25 +09:00
parent fab9323707
commit 42e07b7308
7 changed files with 13 additions and 14 deletions

View File

@ -10,6 +10,7 @@ using osu.Framework.Bindables;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Logging; using osu.Framework.Logging;
using osu.Game.Configuration; using osu.Game.Configuration;
using osu.Game.Extensions;
using osu.Game.Online.API; using osu.Game.Online.API;
using osu.Game.Online.API.Requests.Responses; using osu.Game.Online.API.Requests.Responses;
using osu.Game.Rulesets; using osu.Game.Rulesets;
@ -108,7 +109,7 @@ namespace osu.Desktop
presence.Assets.LargeImageText = $"{user.Value.Username}" + (user.Value.Statistics?.GlobalRank > 0 ? $" (rank #{user.Value.Statistics.GlobalRank:N0})" : string.Empty); presence.Assets.LargeImageText = $"{user.Value.Username}" + (user.Value.Statistics?.GlobalRank > 0 ? $" (rank #{user.Value.Statistics.GlobalRank:N0})" : string.Empty);
// update ruleset // update ruleset
presence.Assets.SmallImageKey = ruleset.Value.IsLegacyRuleset ? $"mode_{ruleset.Value.OnlineID}" : "mode_custom"; presence.Assets.SmallImageKey = ruleset.Value.IsLegacyRuleset() ? $"mode_{ruleset.Value.OnlineID}" : "mode_custom";
presence.Assets.SmallImageText = ruleset.Value.Name; presence.Assets.SmallImageText = ruleset.Value.Name;
client.SetPresence(presence); client.SetPresence(presence);

View File

@ -9,6 +9,7 @@ using osu.Framework.Allocation;
using osu.Framework.Bindables; using osu.Framework.Bindables;
using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Extensions.IEnumerableExtensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Game.Extensions;
using osu.Game.Online.API; using osu.Game.Online.API;
using osu.Game.Online.API.Requests; using osu.Game.Online.API.Requests;
using osu.Game.Rulesets; using osu.Game.Rulesets;
@ -83,7 +84,7 @@ namespace osu.Game.Beatmaps
requestedUserId = api.LocalUser.Value.Id; requestedUserId = api.LocalUser.Value.Id;
// only query API for built-in rulesets // only query API for built-in rulesets
rulesets.AvailableRulesets.Where(ruleset => ruleset.IsLegacyRuleset).ForEach(rulesetInfo => rulesets.AvailableRulesets.Where(ruleset => ruleset.IsLegacyRuleset()).ForEach(rulesetInfo =>
{ {
var req = new GetUserRequest(api.LocalUser.Value.Id, rulesetInfo); var req = new GetUserRequest(api.LocalUser.Value.Id, rulesetInfo);

View File

@ -72,6 +72,11 @@ namespace osu.Game.Extensions
return result; return result;
} }
/// <summary>
/// Check whether this <see cref="IRulesetInfo"/>'s online ID is within the range that defines it as a legacy ruleset (ie. either osu!, osu!taiko, osu!catch or osu!mania).
/// </summary>
public static bool IsLegacyRuleset(this IRulesetInfo ruleset) => ruleset.OnlineID >= 0 && ruleset.OnlineID <= ILegacyRuleset.MAX_LEGACY_RULESET_ID;
/// <summary> /// <summary>
/// Check whether the online ID of two <see cref="IBeatmapSetInfo"/>s match. /// Check whether the online ID of two <see cref="IBeatmapSetInfo"/>s match.
/// </summary> /// </summary>

View File

@ -29,10 +29,5 @@ namespace osu.Game.Rulesets
string InstantiationInfo { get; } string InstantiationInfo { get; }
Ruleset CreateInstance(); Ruleset CreateInstance();
/// <summary>
/// Whether this ruleset's online ID is within the range that defines it as a legacy ruleset (ie. either osu!, osu!taiko, osu!catch or osu!mania).
/// </summary>
public bool IsLegacyRuleset => OnlineID >= 0 && OnlineID <= ILegacyRuleset.MAX_LEGACY_RULESET_ID;
} }
} }

View File

@ -91,11 +91,6 @@ namespace osu.Game.Rulesets
Available = Available Available = Available
}; };
/// <summary>
/// Whether this ruleset's online ID is within the range that defines it as a legacy ruleset (ie. either osu!, osu!taiko, osu!catch or osu!mania).
/// </summary>
public bool IsLegacyRuleset => ((IRulesetInfo)this).IsLegacyRuleset;
public Ruleset CreateInstance() public Ruleset CreateInstance()
{ {
if (!Available) if (!Available)

View File

@ -4,6 +4,7 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Extensions;
using osu.Game.Online.API; using osu.Game.Online.API;
using osu.Game.Online.Rooms; using osu.Game.Online.Rooms;
using osu.Game.Online.Solo; using osu.Game.Online.Solo;
@ -31,7 +32,7 @@ namespace osu.Game.Screens.Play
if (beatmapId <= 0) if (beatmapId <= 0)
return null; return null;
if (!Ruleset.Value.IsLegacyRuleset) if (!Ruleset.Value.IsLegacyRuleset())
return null; return null;
return new CreateSoloScoreRequest(beatmapId, rulesetId, Game.VersionHash); return new CreateSoloScoreRequest(beatmapId, rulesetId, Game.VersionHash);

View File

@ -11,6 +11,7 @@ using osu.Framework.Bindables;
using osu.Framework.Extensions; using osu.Framework.Extensions;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Database; using osu.Game.Database;
using osu.Game.Extensions;
using osu.Game.Online.API; using osu.Game.Online.API;
using osu.Game.Online.API.Requests; using osu.Game.Online.API.Requests;
using osu.Game.Online.Leaderboards; using osu.Game.Online.Leaderboards;
@ -118,7 +119,7 @@ namespace osu.Game.Screens.Select.Leaderboards
return null; return null;
} }
if (!fetchRuleset.IsLegacyRuleset) if (!fetchRuleset.IsLegacyRuleset())
{ {
SetErrorState(LeaderboardState.RulesetUnavailable); SetErrorState(LeaderboardState.RulesetUnavailable);
return null; return null;