// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System.Collections.Generic; namespace osu.Game.Rulesets { public interface IRulesetStore { /// <summary> /// Retrieve a ruleset using a known ID. /// </summary> /// <param name="id">The ruleset's internal ID.</param> /// <returns>A ruleset, if available, else null.</returns> IRulesetInfo? GetRuleset(int id); /// <summary> /// Retrieve a ruleset using a known short name. /// </summary> /// <param name="shortName">The ruleset's short name.</param> /// <returns>A ruleset, if available, else null.</returns> IRulesetInfo? GetRuleset(string shortName); /// <summary> /// All available rulesets. /// </summary> IEnumerable<IRulesetInfo> AvailableRulesets { get; } } }