Update mod instantiaton utility method to no longer check for validity

This commit is contained in:
Salman Ahmed
2022-03-17 05:51:12 +03:00
parent 52d1c0cc15
commit 1a04260807

View File

@ -153,31 +153,17 @@ namespace osu.Game.Utils
} }
/// <summary> /// <summary>
/// Verifies all proposed mods are valid for a given ruleset and returns instantiated <see cref="Mod"/>s for further processing. /// Returns an instantiated list of all proposed mods on a given ruleset.
/// </summary> /// </summary>
/// <param name="ruleset">The ruleset to verify mods against.</param> /// <param name="ruleset">The ruleset to instantiate mods.</param>
/// <param name="proposedMods">The proposed mods.</param> /// <param name="proposedMods">The proposed mods.</param>
/// <param name="valid">Mods instantiated from <paramref name="proposedMods"/> which were valid for the given <paramref name="ruleset"/>.</param> /// <param name="mods">Mods instantiated from <paramref name="proposedMods"/> on the given <paramref name="ruleset"/>.</param>
/// <returns>Whether all <paramref name="proposedMods"/> were valid for the given <paramref name="ruleset"/>.</returns> public static void InstantiateModsForRuleset(Ruleset ruleset, IEnumerable<APIMod> proposedMods, out List<Mod> mods)
public static bool InstantiateValidModsForRuleset(Ruleset ruleset, IEnumerable<APIMod> proposedMods, out List<Mod> valid)
{ {
valid = new List<Mod>(); mods = new List<Mod>();
bool proposedWereValid = true;
foreach (var apiMod in proposedMods) foreach (var apiMod in proposedMods)
{ mods.Add(apiMod.ToMod(ruleset));
try
{
// will throw if invalid
valid.Add(apiMod.ToMod(ruleset));
}
catch
{
proposedWereValid = false;
}
}
return proposedWereValid;
} }
} }
} }