using System.Globalization; using Robust.Shared.Console; using Robust.Shared.GameObjects; using Robust.Shared.IoC; namespace Robust.Shared.Map.Commands; /// /// Pauses a given map, halting all entity processing on it. /// public sealed partial class PauseMapCommand : LocalizedEntityCommands { [Dependency] SharedMapSystem _mapSystem = default!; public override string Command => "pausemap"; public override void Execute(IConsoleShell shell, string argStr, string[] args) { if (args.Length != 1) { shell.WriteError("Need to supply a valid MapId"); return; } var mapId = new MapId(int.Parse(args[0], CultureInfo.InvariantCulture)); if (!_mapSystem.MapExists(mapId)) { shell.WriteError("That map does not exist."); return; } _mapSystem.SetPaused(mapId, true); } } /// /// Unpauses a given map, resuming all entity processing on it. /// public sealed partial class UnpauseMapCommand : LocalizedEntityCommands { [Dependency] SharedMapSystem _mapSystem = default!; public override string Command => "unpausemap"; public override void Execute(IConsoleShell shell, string argStr, string[] args) { if (args.Length != 1) { shell.WriteError("Need to supply a valid MapId"); return; } var mapId = new MapId(int.Parse(args[0], CultureInfo.InvariantCulture)); if (!_mapSystem.MapExists(mapId)) { shell.WriteError("That map does not exist."); return; } _mapSystem.SetPaused(mapId, false); } } /// /// Checks whether a given map is currently paused. /// public sealed partial class QueryMapPausedCommand : LocalizedEntityCommands { [Dependency] SharedMapSystem _mapSystem = default!; public override string Command => "querymappaused"; public override void Execute(IConsoleShell shell, string argStr, string[] args) { if (args.Length != 1) { shell.WriteError("Need to supply a valid MapId"); return; } var mapId = new MapId(int.Parse(args[0], CultureInfo.InvariantCulture)); if (!_mapSystem.MapExists(mapId)) { shell.WriteError("That map does not exist."); return; } shell.WriteLine(_mapSystem.IsPaused(mapId).ToString()); } }