1
0

AtmosphereSystem.CVars.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using Content.Shared.CCVar;
  2. using Robust.Shared.Configuration;
  3. namespace Content.Server.Atmos.EntitySystems
  4. {
  5. public sealed partial class AtmosphereSystem
  6. {
  7. [Dependency] private readonly IConfigurationManager _cfg = default!;
  8. public bool SpaceWind { get; private set; }
  9. public float SpaceWindPressureForceDivisorThrow { get; private set; }
  10. public float SpaceWindPressureForceDivisorPush { get; private set; }
  11. public float SpaceWindMaxVelocity { get; private set; }
  12. public float SpaceWindMaxPushForce { get; private set; }
  13. public bool MonstermosEqualization { get; private set; }
  14. public bool MonstermosDepressurization { get; private set; }
  15. public bool MonstermosRipTiles { get; private set; }
  16. public bool GridImpulse { get; private set; }
  17. public float SpacingEscapeRatio { get; private set; }
  18. public float SpacingMinGas { get; private set; }
  19. public float SpacingMaxWind { get; private set; }
  20. public bool Superconduction { get; private set; }
  21. public bool ExcitedGroups { get; private set; }
  22. public bool ExcitedGroupsSpaceIsAllConsuming { get; private set; }
  23. public float AtmosMaxProcessTime { get; private set; }
  24. public float AtmosTickRate { get; private set; }
  25. public float Speedup { get; private set; }
  26. public float HeatScale { get; private set; }
  27. /// <summary>
  28. /// Time between each atmos sub-update. If you are writing an atmos device, use AtmosDeviceUpdateEvent.dt
  29. /// instead of this value, because atmos devices do not update each are sub-update and sometimes are skipped to
  30. /// meet the tick deadline.
  31. /// </summary>
  32. public float AtmosTime => 1f / AtmosTickRate;
  33. private void InitializeCVars()
  34. {
  35. Subs.CVar(_cfg, CCVars.SpaceWind, value => SpaceWind = value, true);
  36. Subs.CVar(_cfg, CCVars.SpaceWindPressureForceDivisorThrow, value => SpaceWindPressureForceDivisorThrow = value, true);
  37. Subs.CVar(_cfg, CCVars.SpaceWindPressureForceDivisorPush, value => SpaceWindPressureForceDivisorPush = value, true);
  38. Subs.CVar(_cfg, CCVars.SpaceWindMaxVelocity, value => SpaceWindMaxVelocity = value, true);
  39. Subs.CVar(_cfg, CCVars.SpaceWindMaxPushForce, value => SpaceWindMaxPushForce = value, true);
  40. Subs.CVar(_cfg, CCVars.MonstermosEqualization, value => MonstermosEqualization = value, true);
  41. Subs.CVar(_cfg, CCVars.MonstermosDepressurization, value => MonstermosDepressurization = value, true);
  42. Subs.CVar(_cfg, CCVars.MonstermosRipTiles, value => MonstermosRipTiles = value, true);
  43. Subs.CVar(_cfg, CCVars.AtmosGridImpulse, value => GridImpulse = value, true);
  44. Subs.CVar(_cfg, CCVars.AtmosSpacingEscapeRatio, value => SpacingEscapeRatio = value, true);
  45. Subs.CVar(_cfg, CCVars.AtmosSpacingMinGas, value => SpacingMinGas = value, true);
  46. Subs.CVar(_cfg, CCVars.AtmosSpacingMaxWind, value => SpacingMaxWind = value, true);
  47. Subs.CVar(_cfg, CCVars.Superconduction, value => Superconduction = value, true);
  48. Subs.CVar(_cfg, CCVars.AtmosMaxProcessTime, value => AtmosMaxProcessTime = value, true);
  49. Subs.CVar(_cfg, CCVars.AtmosTickRate, value => AtmosTickRate = value, true);
  50. Subs.CVar(_cfg, CCVars.AtmosSpeedup, value => Speedup = value, true);
  51. Subs.CVar(_cfg, CCVars.AtmosHeatScale, value => { HeatScale = value; InitializeGases(); }, true);
  52. Subs.CVar(_cfg, CCVars.ExcitedGroups, value => ExcitedGroups = value, true);
  53. Subs.CVar(_cfg, CCVars.ExcitedGroupsSpaceIsAllConsuming, value => ExcitedGroupsSpaceIsAllConsuming = value, true);
  54. }
  55. }
  56. }