Space sections substantially slower (5-15 sec, exponential) with cooling (#16115)

* Space sections fractionally slower (1 sec, exponential)

- ExplosivelyDepressurize reduces air pressure by about 20% each pass, sets to vacuum below 20 kPa
- Causes some issues with AdjacentBits on airlock close

* Introduced constants for Spacing in atmospherics

* Limit space wind allowed during spacing to 1000 kPa per tile/sec

- Less tile ripping per tick
- Tiles rip based on wind
- Robustness checks

* Slowed down the spacing a bit

* Slowed down the spacing a bit more

* Better dynamics about high pressure air escaping,

- Reduce air temperature (due to decompression) during spacing
- Make some water vapor for flavor

* Limit temperature loss to >8 Deg.C. No Water vapor
This commit is contained in:
Tom Leys
2023-05-21 07:53:04 +12:00
committed by GitHub
parent e7967ab658
commit 28bec85d86
2 changed files with 75 additions and 12 deletions

View File

@@ -309,6 +309,25 @@ namespace Content.Shared.Atmos
/// </summary>
public const float MaxTransferRate = 200;
/// <summary>
/// What fraction of air from a spaced tile escapes every tick.
/// 1.0 for instant spacing, 0.2 means 20% of remaining air lost each time
/// </summary>
public const float SpacingEscapeRatio = 0.05f;
/// <summary>
/// Minimum amount of air allowed on a spaced tile before it is reset to 0 immediately in kPa
/// Since the decay due to SpacingEscapeRatio follows a curve, it would never reach 0.0 exactly
/// unless we truncate it somewhere.
/// </summary>
public const float SpacingMinGas = 2.0f;
/// <summary>
/// How much wind can go through a single tile before that tile doesn't depressurize itself
/// (I.e spacing is limited in large rooms heading into smaller spaces)
/// </summary>
public const float SpacingMaxWind = 500.0f;
#endregion
}