1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 21:27:24 +08:00

Use generic Enum methods

This commit is contained in:
Berkan Diler 2022-12-26 20:36:39 +01:00
parent 2470991aaa
commit c7ca4bbba5
20 changed files with 25 additions and 26 deletions

View File

@ -32,7 +32,7 @@ namespace osu.Game.Rulesets.Catch.Skinning.Legacy
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load(ISkinSource skin) private void load(ISkinSource skin)
{ {
foreach (var state in Enum.GetValues(typeof(CatcherAnimationState)).Cast<CatcherAnimationState>()) foreach (var state in Enum.GetValues<CatcherAnimationState>())
{ {
AddInternal(drawables[state] = getDrawableFor(state).With(d => AddInternal(drawables[state] = getDrawableFor(state).With(d =>
{ {

View File

@ -67,7 +67,7 @@ namespace osu.Game.Rulesets.Osu.UI
HitPolicy = new StartTimeOrderedHitPolicy(); HitPolicy = new StartTimeOrderedHitPolicy();
var hitWindows = new OsuHitWindows(); var hitWindows = new OsuHitWindows();
foreach (var result in Enum.GetValues(typeof(HitResult)).OfType<HitResult>().Where(r => r > HitResult.None && hitWindows.IsHitResultAllowed(r))) foreach (var result in Enum.GetValues<HitResult>().Where(r => r > HitResult.None && hitWindows.IsHitResultAllowed(r)))
poolDictionary.Add(result, new DrawableJudgementPool(result, onJudgementLoaded)); poolDictionary.Add(result, new DrawableJudgementPool(result, onJudgementLoaded));
AddRangeInternal(poolDictionary.Values); AddRangeInternal(poolDictionary.Values);

View File

@ -190,7 +190,7 @@ namespace osu.Game.Rulesets.Taiko.UI
var hitWindows = new TaikoHitWindows(); var hitWindows = new TaikoHitWindows();
foreach (var result in Enum.GetValues(typeof(HitResult)).OfType<HitResult>().Where(r => hitWindows.IsHitResultAllowed(r))) foreach (var result in Enum.GetValues<HitResult>().Where(r => hitWindows.IsHitResultAllowed(r)))
{ {
judgementPools.Add(result, new DrawablePool<DrawableTaikoJudgement>(15)); judgementPools.Add(result, new DrawablePool<DrawableTaikoJudgement>(15));
explosionPools.Add(result, new HitExplosionPool(result)); explosionPools.Add(result, new HitExplosionPool(result));

View File

@ -60,6 +60,6 @@ namespace osu.Game.Tests.Mods
/// This local helper is used rather than <see cref="Ruleset.CreateAllMods"/>, because the aforementioned method flattens multi mods. /// This local helper is used rather than <see cref="Ruleset.CreateAllMods"/>, because the aforementioned method flattens multi mods.
/// </remarks>> /// </remarks>>
private static IEnumerable<MultiMod> getMultiMods(Ruleset ruleset) private static IEnumerable<MultiMod> getMultiMods(Ruleset ruleset)
=> Enum.GetValues(typeof(ModType)).Cast<ModType>().SelectMany(ruleset.GetModsFor).OfType<MultiMod>(); => Enum.GetValues<ModType>().SelectMany(ruleset.GetModsFor).OfType<MultiMod>();
} }
} }

View File

@ -127,7 +127,7 @@ namespace osu.Game.Tournament.IPC
using (var stream = IPCStorage.GetStream(file_ipc_state_filename)) using (var stream = IPCStorage.GetStream(file_ipc_state_filename))
using (var sr = new StreamReader(stream)) using (var sr = new StreamReader(stream))
{ {
State.Value = (TourneyState)Enum.Parse(typeof(TourneyState), sr.ReadLine().AsNonNull()); State.Value = Enum.Parse<TourneyState>(sr.ReadLine().AsNonNull());
} }
} }
catch (Exception) catch (Exception)

View File

@ -43,7 +43,7 @@ namespace osu.Game.Tournament.Screens.Editors
{ {
var countries = new List<TournamentTeam>(); var countries = new List<TournamentTeam>();
foreach (var country in Enum.GetValues(typeof(CountryCode)).Cast<CountryCode>().Skip(1)) foreach (var country in Enum.GetValues<CountryCode>().Skip(1))
{ {
countries.Add(new TournamentTeam countries.Add(new TournamentTeam
{ {

View File

@ -160,7 +160,7 @@ namespace osu.Game.Beatmaps.Formats
break; break;
case @"SampleSet": case @"SampleSet":
defaultSampleBank = (LegacySampleBank)Enum.Parse(typeof(LegacySampleBank), pair.Value); defaultSampleBank = Enum.Parse<LegacySampleBank>(pair.Value);
break; break;
case @"SampleVolume": case @"SampleVolume":
@ -218,7 +218,7 @@ namespace osu.Game.Beatmaps.Formats
break; break;
case @"Countdown": case @"Countdown":
beatmap.BeatmapInfo.Countdown = (CountdownType)Enum.Parse(typeof(CountdownType), pair.Value); beatmap.BeatmapInfo.Countdown = Enum.Parse<CountdownType>(tpair.Value);
break; break;
case @"CountdownOffset": case @"CountdownOffset":

View File

@ -301,11 +301,11 @@ namespace osu.Game.Beatmaps.Formats
} }
} }
private string parseLayer(string value) => Enum.Parse(typeof(LegacyStoryLayer), value).ToString(); private string parseLayer(string value) => Enum.Parse<LegacyStoryLayer>(value).ToString();
private Anchor parseOrigin(string value) private Anchor parseOrigin(string value)
{ {
var origin = (LegacyOrigins)Enum.Parse(typeof(LegacyOrigins), value); var origin = Enum.Parse<LegacyOrigins>(value);
switch (origin) switch (origin)
{ {
@ -343,8 +343,8 @@ namespace osu.Game.Beatmaps.Formats
private AnimationLoopType parseAnimationLoopType(string value) private AnimationLoopType parseAnimationLoopType(string value)
{ {
var parsed = (AnimationLoopType)Enum.Parse(typeof(AnimationLoopType), value); var parsed = Enum.Parse<AnimationLoopType>(value);
return Enum.IsDefined(typeof(AnimationLoopType), parsed) ? parsed : AnimationLoopType.LoopForever; return Enum.IsDefined<AnimationLoopType>(parsed) ? parsed : AnimationLoopType.LoopForever;
} }
private void handleVariables(string line) private void handleVariables(string line)

View File

@ -12,7 +12,7 @@ namespace osu.Game.Graphics.UserInterface
{ {
public OsuEnumDropdown() public OsuEnumDropdown()
{ {
Items = (T[])Enum.GetValues(typeof(T)); Items = Enum.GetValues<T>();
} }
} }
} }

View File

@ -21,7 +21,7 @@ namespace osu.Game.Online.API.Requests.Responses
[JsonProperty] [JsonProperty]
private string type private string type
{ {
set => Type = (RecentActivityType)Enum.Parse(typeof(RecentActivityType), value.ToPascalCase()); set => Type = Enum.Parse<RecentActivityType>(value.ToPascalCase());
} }
public RecentActivityType Type; public RecentActivityType Type;
@ -29,7 +29,7 @@ namespace osu.Game.Online.API.Requests.Responses
[JsonProperty] [JsonProperty]
private string scoreRank private string scoreRank
{ {
set => ScoreRank = (ScoreRank)Enum.Parse(typeof(ScoreRank), value); set => ScoreRank = Enum.Parse<ScoreRank>(value);
} }
public ScoreRank ScoreRank; public ScoreRank ScoreRank;

View File

@ -185,7 +185,7 @@ namespace osu.Game.Online.API.Requests.Responses
[JsonProperty(@"playstyle")] [JsonProperty(@"playstyle")]
private string[] playStyle private string[] playStyle
{ {
set => PlayStyles = value?.Select(str => Enum.Parse(typeof(APIPlayStyle), str, true)).Cast<APIPlayStyle>().ToArray(); set => PlayStyles = value?.Select(str => Enum.Parse<APIPlayStyle>(str, true)).Cast<APIPlayStyle>().ToArray();
} }
public APIPlayStyle[] PlayStyles; public APIPlayStyle[] PlayStyles;

View File

@ -726,7 +726,7 @@ namespace osu.Game
{ {
base.LoadComplete(); base.LoadComplete();
var languages = Enum.GetValues(typeof(Language)).OfType<Language>(); var languages = Enum.GetValues<Language>();
var mappings = languages.Select(language => var mappings = languages.Select(language =>
{ {

View File

@ -607,7 +607,7 @@ namespace osu.Game
try try
{ {
foreach (ModType type in Enum.GetValues(typeof(ModType))) foreach (ModType type in Enum.GetValues<ModType>())
{ {
dict[type] = instance.GetModsFor(type) dict[type] = instance.GetModsFor(type)
// Rulesets should never return null mods, but let's be defensive just in case. // Rulesets should never return null mods, but let's be defensive just in case.

View File

@ -79,8 +79,7 @@ namespace osu.Game.Overlays.FirstRunSetup
Direction = FillDirection.Full; Direction = FillDirection.Full;
Spacing = new Vector2(5); Spacing = new Vector2(5);
ChildrenEnumerable = Enum.GetValues(typeof(Language)) ChildrenEnumerable = Enum.GetValues<Language>()
.Cast<Language>()
.Select(l => new LanguageButton(l) .Select(l => new LanguageButton(l)
{ {
Action = () => frameworkLocale.Value = l.ToCultureCode() Action = () => frameworkLocale.Value = l.ToCultureCode()

View File

@ -85,7 +85,7 @@ namespace osu.Game.Rulesets
/// This comes with considerable allocation overhead. If only accessing for reference purposes (ie. not changing bindables / settings) /// This comes with considerable allocation overhead. If only accessing for reference purposes (ie. not changing bindables / settings)
/// use <see cref="AllMods"/> instead. /// use <see cref="AllMods"/> instead.
/// </remarks> /// </remarks>
public IEnumerable<Mod> CreateAllMods() => Enum.GetValues(typeof(ModType)).Cast<ModType>() public IEnumerable<Mod> CreateAllMods() => Enum.GetValues<ModType>()
// Confine all mods of each mod type into a single IEnumerable<Mod> // Confine all mods of each mod type into a single IEnumerable<Mod>
.SelectMany(GetModsFor) .SelectMany(GetModsFor)
// Filter out all null mods // Filter out all null mods

View File

@ -264,7 +264,7 @@ namespace osu.Game.Rulesets.Scoring
/// <summary> /// <summary>
/// An array of all scorable <see cref="HitResult"/>s. /// An array of all scorable <see cref="HitResult"/>s.
/// </summary> /// </summary>
public static readonly HitResult[] ALL_TYPES = ((HitResult[])Enum.GetValues(typeof(HitResult))).Except(new[] { HitResult.LegacyComboIncrease }).ToArray(); public static readonly HitResult[] ALL_TYPES = Enum.GetValues<HitResult>().Except(new[] { HitResult.LegacyComboIncrease }).ToArray();
/// <summary> /// <summary>
/// Whether a <see cref="HitResult"/> is valid within a given <see cref="HitResult"/> range. /// Whether a <see cref="HitResult"/> is valid within a given <see cref="HitResult"/> range.

View File

@ -55,7 +55,7 @@ namespace osu.Game.Screens.Edit.Setup
{ {
Label = EditorSetupStrings.CountdownSpeed, Label = EditorSetupStrings.CountdownSpeed,
Current = { Value = Beatmap.BeatmapInfo.Countdown != CountdownType.None ? Beatmap.BeatmapInfo.Countdown : CountdownType.Normal }, Current = { Value = Beatmap.BeatmapInfo.Countdown != CountdownType.None ? Beatmap.BeatmapInfo.Countdown : CountdownType.Normal },
Items = Enum.GetValues(typeof(CountdownType)).Cast<CountdownType>().Where(type => type != CountdownType.None) Items = Enum.GetValues<CountdownType>().Where(type => type != CountdownType.None)
}, },
CountdownOffset = new LabelledNumberBox CountdownOffset = new LabelledNumberBox
{ {

View File

@ -237,7 +237,7 @@ namespace osu.Game.Screens.Utility
switch (e.Key) switch (e.Key)
{ {
case Key.Space: case Key.Space:
int availableModes = Enum.GetValues(typeof(LatencyVisualMode)).Length; int availableModes = Enum.GetValues<LatencyVisualMode>().Length;
VisualMode.Value = (LatencyVisualMode)(((int)VisualMode.Value + 1) % availableModes); VisualMode.Value = (LatencyVisualMode)(((int)VisualMode.Value + 1) % availableModes);
return true; return true;

View File

@ -115,7 +115,7 @@ namespace osu.Game.Skinning.Components
.Cast<object?>() .Cast<object?>()
.ToArray(); .ToArray();
foreach (var type in Enum.GetValues(typeof(BeatmapAttribute)).Cast<BeatmapAttribute>()) foreach (var type in Enum.GetValues<BeatmapAttribute>())
{ {
numberedTemplate = numberedTemplate.Replace($"{{{{{type}}}}}", $"{{{1 + (int)type}}}"); numberedTemplate = numberedTemplate.Replace($"{{{{{type}}}}}", $"{{{1 + (int)type}}}");
} }

View File

@ -97,7 +97,7 @@ namespace osu.Game.Skinning
Configuration = new SkinConfiguration(); Configuration = new SkinConfiguration();
// skininfo files may be null for default skin. // skininfo files may be null for default skin.
foreach (GlobalSkinComponentLookup.LookupType skinnableTarget in Enum.GetValues(typeof(GlobalSkinComponentLookup.LookupType))) foreach (GlobalSkinComponentLookup.LookupType skinnableTarget in Enum.GetValues<GlobalSkinComponentLookup.LookupType>())
{ {
string filename = $"{skinnableTarget}.json"; string filename = $"{skinnableTarget}.json";