1
0

AtmosDebugCommands.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. using Content.Client.Atmos.EntitySystems;
  2. using Content.Shared.Atmos;
  3. using JetBrains.Annotations;
  4. using Robust.Shared.Console;
  5. namespace Content.Client.Commands;
  6. [UsedImplicitly]
  7. internal sealed class AtvRangeCommand : LocalizedCommands
  8. {
  9. [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!;
  10. public override string Command => "atvrange";
  11. public override string Help => LocalizationManager.GetString($"cmd-{Command}-help", ("command", Command));
  12. public override void Execute(IConsoleShell shell, string argStr, string[] args)
  13. {
  14. if (args.Length != 2)
  15. {
  16. shell.WriteLine(Help);
  17. return;
  18. }
  19. if (!float.TryParse(args[0], out var xStart))
  20. {
  21. shell.WriteError(LocalizationManager.GetString($"cmd-{Command}-error-start"));
  22. return;
  23. }
  24. if (!float.TryParse(args[1], out var xEnd))
  25. {
  26. shell.WriteError(LocalizationManager.GetString($"cmd-{Command}-error-end"));
  27. return;
  28. }
  29. if (xStart == xEnd)
  30. {
  31. shell.WriteError(LocalizationManager.GetString($"cmd-{Command}-error-zero"));
  32. return;
  33. }
  34. var sys = _entitySystemManager.GetEntitySystem<AtmosDebugOverlaySystem>();
  35. sys.CfgBase = xStart;
  36. sys.CfgScale = xEnd - xStart;
  37. }
  38. }
  39. [UsedImplicitly]
  40. internal sealed class AtvModeCommand : LocalizedCommands
  41. {
  42. [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!;
  43. public override string Command => "atvmode";
  44. public override string Help => LocalizationManager.GetString($"cmd-{Command}-help", ("command", Command));
  45. public override void Execute(IConsoleShell shell, string argStr, string[] args)
  46. {
  47. if (args.Length < 1)
  48. {
  49. shell.WriteLine(Help);
  50. return;
  51. }
  52. if (!Enum.TryParse<AtmosDebugOverlayMode>(args[0], out var xMode))
  53. {
  54. shell.WriteError(LocalizationManager.GetString($"cmd-{Command}-error-invalid"));
  55. return;
  56. }
  57. int xSpecificGas = 0;
  58. float xBase = 0;
  59. float xScale = Atmospherics.MolesCellStandard * 2;
  60. if (xMode == AtmosDebugOverlayMode.GasMoles)
  61. {
  62. if (args.Length != 2)
  63. {
  64. shell.WriteError(LocalizationManager.GetString($"cmd-{Command}-error-target-gas"));
  65. return;
  66. }
  67. if (!AtmosCommandUtils.TryParseGasID(args[1], out xSpecificGas))
  68. {
  69. shell.WriteError(LocalizationManager.GetString($"cmd-{Command}-error-out-of-range"));
  70. return;
  71. }
  72. }
  73. else
  74. {
  75. if (args.Length != 1)
  76. {
  77. shell.WriteLine(LocalizationManager.GetString($"cmd-{Command}-error-info"));
  78. return;
  79. }
  80. if (xMode == AtmosDebugOverlayMode.Temperature)
  81. {
  82. // Red is 100C, Green is 20C, Blue is -60C
  83. xBase = Atmospherics.T20C + 80;
  84. xScale = -160;
  85. }
  86. }
  87. var sys = _entitySystemManager.GetEntitySystem<AtmosDebugOverlaySystem>();
  88. sys.CfgMode = xMode;
  89. sys.CfgSpecificGas = xSpecificGas;
  90. sys.CfgBase = xBase;
  91. sys.CfgScale = xScale;
  92. }
  93. }
  94. [UsedImplicitly]
  95. internal sealed class AtvCBMCommand : LocalizedCommands
  96. {
  97. [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!;
  98. public override string Command => "atvcbm";
  99. public override string Help => LocalizationManager.GetString($"cmd-{Command}-help", ("command", Command));
  100. public override void Execute(IConsoleShell shell, string argStr, string[] args)
  101. {
  102. if (args.Length != 1)
  103. {
  104. shell.WriteLine(Help);
  105. return;
  106. }
  107. if (!bool.TryParse(args[0], out var xFlag))
  108. {
  109. shell.WriteError(LocalizationManager.GetString($"cmd-{Command}-error"));
  110. return;
  111. }
  112. var sys = _entitySystemManager.GetEntitySystem<AtmosDebugOverlaySystem>();
  113. sys.CfgCBM = xFlag;
  114. }
  115. }