namespace Content.Server.Maps; /// /// Manages which station map will be used for the next round. /// public interface IGameMapManager { void Initialize(); /// /// Returns all maps eligible to be played right now. /// /// enumerator of map prototypes IEnumerable CurrentlyEligibleMaps(); /// /// Returns all maps that can be voted for. /// /// enumerator of map prototypes IEnumerable AllVotableMaps(); /// /// Returns all maps. /// /// enumerator of map prototypes IEnumerable AllMaps(); /// /// Gets the currently selected map /// /// selected map GameMapPrototype? GetSelectedMap(); /// /// Clears the selected map, if any /// void ClearSelectedMap(); /// /// Attempts to select the given map, checking eligibility criteria /// /// map prototype /// success or failure bool TrySelectMapIfEligible(string gameMap); /// /// Select the given map regardless of eligibility /// /// map prototype /// success or failure void SelectMap(string gameMap); /// /// Selects a random map eligible map /// void SelectMapRandom(); /// /// Selects the map at the front of the rotation queue /// /// selected map void SelectMapFromRotationQueue(bool markAsPlayed = false); /// /// Selects the map by following rules set in the config /// public void SelectMapByConfigRules(); /// /// Checks if the given map exists /// /// name of the map /// existence bool CheckMapExists(string gameMap); }