Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Closes https://github.com/space-wizards/space-station-14/issues/7192 Closes https://github.com/space-wizards/space-station-14/issues/6537 Closes https://github.com/space-wizards/space-station-14/issues/9579
76 lines
2.1 KiB
C#
76 lines
2.1 KiB
C#
namespace Content.Server.Maps;
|
|
|
|
/// <summary>
|
|
/// Manages which station map will be used for the next round.
|
|
/// </summary>
|
|
public interface IGameMapManager
|
|
{
|
|
void Initialize();
|
|
|
|
/// <summary>
|
|
/// Returns all maps eligible to be played right now.
|
|
/// </summary>
|
|
/// <returns>enumerator of map prototypes</returns>
|
|
IEnumerable<GameMapPrototype> CurrentlyEligibleMaps();
|
|
|
|
/// <summary>
|
|
/// Returns all maps that can be voted for.
|
|
/// </summary>
|
|
/// <returns>enumerator of map prototypes</returns>
|
|
IEnumerable<GameMapPrototype> AllVotableMaps();
|
|
|
|
/// <summary>
|
|
/// Returns all maps.
|
|
/// </summary>
|
|
/// <returns>enumerator of map prototypes</returns>
|
|
IEnumerable<GameMapPrototype> AllMaps();
|
|
|
|
/// <summary>
|
|
/// Gets the currently selected map
|
|
/// </summary>
|
|
/// <returns>selected map</returns>
|
|
GameMapPrototype? GetSelectedMap();
|
|
|
|
/// <summary>
|
|
/// Clears the selected map, if any
|
|
/// </summary>
|
|
void ClearSelectedMap();
|
|
|
|
/// <summary>
|
|
/// Attempts to select the given map, checking eligibility criteria
|
|
/// </summary>
|
|
/// <param name="gameMap">map prototype</param>
|
|
/// <returns>success or failure</returns>
|
|
bool TrySelectMapIfEligible(string gameMap);
|
|
|
|
/// <summary>
|
|
/// Select the given map regardless of eligibility
|
|
/// </summary>
|
|
/// <param name="gameMap">map prototype</param>
|
|
/// <returns>success or failure</returns>
|
|
void SelectMap(string gameMap);
|
|
|
|
/// <summary>
|
|
/// Selects a random map eligible map
|
|
/// </summary>
|
|
void SelectMapRandom();
|
|
|
|
/// <summary>
|
|
/// Selects the map at the front of the rotation queue
|
|
/// </summary>
|
|
/// <returns>selected map</returns>
|
|
void SelectMapFromRotationQueue(bool markAsPlayed = false);
|
|
|
|
/// <summary>
|
|
/// Selects the map by following rules set in the config
|
|
/// </summary>
|
|
public void SelectMapByConfigRules();
|
|
|
|
/// <summary>
|
|
/// Checks if the given map exists
|
|
/// </summary>
|
|
/// <param name="gameMap">name of the map</param>
|
|
/// <returns>existence</returns>
|
|
bool CheckMapExists(string gameMap);
|
|
}
|