using Robust.Shared.Configuration; namespace Content.Shared.CCVar; public sealed partial class CCVars { /// /// Whether gas differences will move entities. /// public static readonly CVarDef SpaceWind = CVarDef.Create("atmos.space_wind", false, CVar.SERVERONLY); /// /// Divisor from maxForce (pressureDifference * 2.25f) to force applied on objects. /// public static readonly CVarDef SpaceWindPressureForceDivisorThrow = CVarDef.Create("atmos.space_wind_pressure_force_divisor_throw", 15f, CVar.SERVERONLY); /// /// Divisor from maxForce (pressureDifference * 2.25f) to force applied on objects. /// public static readonly CVarDef SpaceWindPressureForceDivisorPush = CVarDef.Create("atmos.space_wind_pressure_force_divisor_push", 2500f, CVar.SERVERONLY); /// /// The maximum velocity (not force) that may be applied to an object by atmospheric pressure differences. /// Useful to prevent clipping through objects. /// public static readonly CVarDef SpaceWindMaxVelocity = CVarDef.Create("atmos.space_wind_max_velocity", 30f, CVar.SERVERONLY); /// /// The maximum force that may be applied to an object by pushing (i.e. not throwing) atmospheric pressure differences. /// A "throwing" atmospheric pressure difference ignores this limit, but not the max. velocity limit. /// public static readonly CVarDef SpaceWindMaxPushForce = CVarDef.Create("atmos.space_wind_max_push_force", 20f, CVar.SERVERONLY); /// /// Whether monstermos tile equalization is enabled. /// public static readonly CVarDef MonstermosEqualization = CVarDef.Create("atmos.monstermos_equalization", true, CVar.SERVERONLY); /// /// Whether monstermos explosive depressurization is enabled. /// Needs to be enabled to work. /// public static readonly CVarDef MonstermosDepressurization = CVarDef.Create("atmos.monstermos_depressurization", true, CVar.SERVERONLY); /// /// Whether monstermos explosive depressurization will rip tiles.. /// Needs and to be enabled to work. /// WARNING: This cvar causes MAJOR contrast issues, and usually tends to make any spaced scene look very cluttered. /// This not only usually looks strange, but can also reduce playability for people with impaired vision. Please think twice before enabling this on your server. /// Also looks weird on slow spacing for unrelated reasons. If you do want to enable this, you should probably turn on instaspacing. /// public static readonly CVarDef MonstermosRipTiles = CVarDef.Create("atmos.monstermos_rip_tiles", false, CVar.SERVERONLY); /// /// Whether explosive depressurization will cause the grid to gain an impulse. /// Needs and to be enabled to work. /// public static readonly CVarDef AtmosGridImpulse = CVarDef.Create("atmos.grid_impulse", false, CVar.SERVERONLY); /// /// 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 /// public static readonly CVarDef AtmosSpacingEscapeRatio = CVarDef.Create("atmos.mmos_spacing_speed", 0.15f, CVar.SERVERONLY); /// /// 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. /// public static readonly CVarDef AtmosSpacingMinGas = CVarDef.Create("atmos.mmos_min_gas", 2.0f, CVar.SERVERONLY); /// /// 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) /// public static readonly CVarDef AtmosSpacingMaxWind = CVarDef.Create("atmos.mmos_max_wind", 500f, CVar.SERVERONLY); /// /// Whether atmos superconduction is enabled. /// /// Disabled by default, superconduction is awful. public static readonly CVarDef Superconduction = CVarDef.Create("atmos.superconduction", false, CVar.SERVERONLY); /// /// Heat loss per tile due to radiation at 20 degC, in W. /// public static readonly CVarDef SuperconductionTileLoss = CVarDef.Create("atmos.superconduction_tile_loss", 30f, CVar.SERVERONLY); /// /// Whether excited groups will be processed and created. /// public static readonly CVarDef ExcitedGroups = CVarDef.Create("atmos.excited_groups", true, CVar.SERVERONLY); /// /// Whether all tiles in an excited group will clear themselves once being exposed to space. /// Similar to , without none of the tile ripping or /// things being thrown around very violently. /// Needs to be enabled to work. /// public static readonly CVarDef ExcitedGroupsSpaceIsAllConsuming = CVarDef.Create("atmos.excited_groups_space_is_all_consuming", false, CVar.SERVERONLY); /// /// Maximum time in milliseconds that atmos can take processing. /// public static readonly CVarDef AtmosMaxProcessTime = CVarDef.Create("atmos.max_process_time", 3f, CVar.SERVERONLY); /// /// Atmos tickrate in TPS. Atmos processing will happen every 1/TPS seconds. /// public static readonly CVarDef AtmosTickRate = CVarDef.Create("atmos.tickrate", 15f, CVar.SERVERONLY); /// /// Scale factor for how fast things happen in our atmosphere /// simulation compared to real life. 1x means pumps run at 1x /// speed. Players typically expect things to happen faster /// in-game. /// public static readonly CVarDef AtmosSpeedup = CVarDef.Create("atmos.speedup", 8f, CVar.SERVERONLY); /// /// Like atmos.speedup, but only for gas and reaction heat values. 64x means /// gases heat up and cool down 64x faster than real life. /// public static readonly CVarDef AtmosHeatScale = CVarDef.Create("atmos.heat_scale", 8f, CVar.SERVERONLY); /// /// Maximum explosion radius for explosions caused by bursting a gas tank ("max caps"). /// Setting this to zero disables the explosion but still allows the tank to burst and leak. /// public static readonly CVarDef AtmosTankFragment = CVarDef.Create("atmos.max_explosion_range", 26f, CVar.SERVERONLY); /// /// Whether atmospherics will process delta-pressure damage on entities with a DeltaPressureComponent. /// Entities with this component will take damage if they are exposed to a pressure difference /// above the minimum pressure threshold defined in the component. /// // TODO: Needs CVARs for global configuration, like min pressure, max damage, etc. public static readonly CVarDef DeltaPressureDamage = CVarDef.Create("atmos.delta_pressure_damage", true, CVar.SERVERONLY); /// /// Number of entities to submit for parallel processing per processing run. /// Low numbers may suffer from thinning out the work per job and leading to threads waiting, /// or seeing a lot of threading overhead. /// High numbers may cause Atmospherics to exceed its time budget per tick, as it will not /// check its time often enough to know if it's exceeding it. /// public static readonly CVarDef DeltaPressureParallelToProcessPerIteration = CVarDef.Create("atmos.delta_pressure_parallel_process_per_iteration", 1000, CVar.SERVERONLY); /// /// Number of entities to process per processing job. /// Low numbers may cause Atmospherics to see high threading overhead, /// high numbers may cause Atmospherics to distribute the work unevenly. /// public static readonly CVarDef DeltaPressureParallelBatchSize = CVarDef.Create("atmos.delta_pressure_parallel_batch_size", 10, CVar.SERVERONLY); }