/tg/ Station 13 - Modules - TypesDefine Details

# code/__DEFINES/atmospherics/atmos_core.dm

MOLES Amount of total moles in said gas mixture Archived version of MOLES All gas related variables Gas specific heat per mole Name of the gas Amount of moles required of the gas to be visible Overlay path of the gas, also setup the alpha based on the amount Let the air alarm know if the gas is dangerous Id of the gas for quick access Power of the gas when used in the current iteration of fusion kPaL/(Kmol) kPa -270.3degC -48.15degC 0degC 20degC -14C - Temperature used for kitchen cold room, medical freezer, etc. I feel the need to document what happens here. Basically this is used catch rounding errors, and make gas go away in small portions. People have raised it to higher levels in the past, do not do this. Consider this number a soft limit If you're making gasmixtures that have unexpected behavior related to this value, you're doing something wrong. Minimum mole count of a gas Molar accuracy to round to Types of gases (based on gaslist_cache) Maximum error caused by QUANTIZE when removing gas (roughly, in reality around 2 * MOLAR_ACCURACY less) Moles in a standard cell after which gases are visible moles_visible * FACTOR_GAS_VISIBLE_MAX = Moles after which gas is at maximum visibility Mole step for alpha updates. This means alpha can update at 0.25, 0.5, 0.75 and so on The total visible states The gas mixture is not reacting The gas mixture is reacting The gas mixture is able to stop all reactions Maximum instability before the reaction goes endothermic Maximum reachable fusion temperature Some further context on breakdown. Unlike dismantle, the breakdown ticker doesn't reset itself when a tile is added This is because we cannot expect maps to have small spaces, so we need to even ourselves out often We do this to avoid equalizing a large space in one tick, with some significant amount of say heat diff This way large areas don't suddenly all become cold at once, it acts more like a wave number of FULL air controller ticks before an excited group dismantles and removes its turfs from active Ratio of air that must move to/from a tile to reset group processing Minimum ratio of air that must move to/from a tile Minimum amount of air that has to move before a group processing can be suspended (Round about 10) Either this must be active (round about 0.1) //Might need to raise this a tad to better support space leaks. we'll see or this (or both, obviously) Minimum temperature difference before group processing is suspended Minimum temperature difference before the gas temperatures are just set to be equal Minimum temperature to continue superconduction once started Minimum temperature to start doing superconduction calculations a hack for now a hack to help make vacuums "cold", sacrificing realism for gameplay Minimum temperature for fire to move to the next turf (150 Â°C or 433 K) Minimum temperature for fire to exist on a turf (100 Â°C or 373 K) Multiplier for the temperature shared to other turfs Helper for small fires to grow Minimum temperature to burn plasma Upper temperature ceiling for plasmafire reaction calculations for fuel consumption Multiplier for plasmafire with O2 moles * PLASMA_OXYGEN_FULLBURN for the maximum fuel consumption Minimum temperature to burn hydrogen Upper temperature ceiling for h2fire reaction calculations for fuel consumption Multiplier for h2fire with O2 moles * HYDROGEN_OXYGEN_FULLBURN for the maximum fuel consumption fire will spread if the temperature is -10 Â°C fire will start if the temperature is 0 Â°C Maximum temperature to burn freon Minimum temperature allowed for the burn to go, we would have negative pressure otherwise Multiplier for freonfire with O2 moles * FREON_OXYGEN_FULLBURN for the maximum fuel consumption moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC (103 or so) compared against for superconductivity percentage of oxygen in a normal mixture of air same but for nitrogen O2 standard value (21%) N2 standard value (79%) liters in a cell ask can_atmos_pass() just check density Normal non-active turf Set the turf to be activated on the next calculation Disable excited group How many maximum iterations do we allow the Newton-Raphson approximation for gas pressure to do.

## Define Details

### #define ARCHIVE

Archived version of MOLES

### #define ATMOS_PASS_DENSITY

just check density

### #define ATMOS_PRESSURE_APPROXIMATION_ITERATIONS

How many maximum iterations do we allow the Newton-Raphson approximation for gas pressure to do.

liters in a cell

### #define COLD_FIRE_MAXIMUM_TEMPERATURE_TO_EXIST

fire will start if the temperature is 0 Â°C

fire will spread if the temperature is -10 Â°C

### #define COLD_ROOM_TEMP

-14C - Temperature used for kitchen cold room, medical freezer, etc.

### #define EXCITED_GROUP_BREAKDOWN_CYCLES

Some further context on breakdown. Unlike dismantle, the breakdown ticker doesn't reset itself when a tile is added This is because we cannot expect maps to have small spaces, so we need to even ourselves out often We do this to avoid equalizing a large space in one tick, with some significant amount of say heat diff This way large areas don't suddenly all become cold at once, it acts more like a wave

Because of this and the behavior of share(), the breakdown cycles value can be tweaked directly to effect how fast we want gas to move number of FULL air controller ticks before an excited group breaks down (averages gas contents across turfs)

### #define EXCITED_GROUP_DISMANTLE_CYCLES

number of FULL air controller ticks before an excited group dismantles and removes its turfs from active

### #define FACTOR_GAS_VISIBLE_MAX

moles_visible * FACTOR_GAS_VISIBLE_MAX = Moles after which gas is at maximum visibility

### #define FIRE_GROWTH_RATE

Helper for small fires to grow

### #define FIRE_MINIMUM_TEMPERATURE_TO_EXIST

Minimum temperature for fire to exist on a turf (100 Â°C or 373 K)

Minimum temperature for fire to move to the next turf (150 Â°C or 433 K)

Multiplier for the temperature shared to other turfs

### #define FREON_LOWER_TEMPERATURE

Minimum temperature allowed for the burn to go, we would have negative pressure otherwise

### #define FREON_MAXIMUM_BURN_TEMPERATURE

Maximum temperature to burn freon

### #define FREON_OXYGEN_FULLBURN

Multiplier for freonfire with O2 moles * FREON_OXYGEN_FULLBURN for the maximum fuel consumption

### #define FUSION_INSTABILITY_ENDOTHERMALITY

Maximum instability before the reaction goes endothermic

### #define FUSION_MAXIMUM_TEMPERATURE

Maximum reachable fusion temperature

### #define GAS_META

All gas related variables

### #define GAS_TYPE_COUNT

Types of gases (based on gaslist_cache)

### #define HEAT_CAPACITY_VACUUM

a hack to help make vacuums "cold", sacrificing realism for gameplay

### #define HYDROGEN_MINIMUM_BURN_TEMPERATURE

Minimum temperature to burn hydrogen

### #define HYDROGEN_OXYGEN_FULLBURN

Multiplier for h2fire with O2 moles * HYDROGEN_OXYGEN_FULLBURN for the maximum fuel consumption

### #define HYDROGEN_UPPER_TEMPERATURE

Upper temperature ceiling for h2fire reaction calculations for fuel consumption

### #define KILL_EXCITED

Disable excited group

### #define MAKE_ACTIVE

Set the turf to be activated on the next calculation

### #define MAXIMUM_ERROR_GAS_REMOVAL

Maximum error caused by QUANTIZE when removing gas (roughly, in reality around 2 * MOLAR_ACCURACY less)

### #define META_GAS_DANGER

Let the air alarm know if the gas is dangerous

### #define META_GAS_FUSION_POWER

Power of the gas when used in the current iteration of fusion

### #define META_GAS_ID

Id of the gas for quick access

### #define META_GAS_MOLES_VISIBLE

Amount of moles required of the gas to be visible

Name of the gas

### #define META_GAS_OVERLAY

Overlay path of the gas, also setup the alpha based on the amount

### #define META_GAS_SPECIFIC_HEAT

Gas specific heat per mole

### #define MINIMUM_AIR_RATIO_TO_MOVE

Minimum ratio of air that must move to/from a tile

### #define MINIMUM_AIR_RATIO_TO_SUSPEND

Ratio of air that must move to/from a tile to reset group processing

### #define MINIMUM_AIR_TO_SUSPEND

Minimum amount of air that has to move before a group processing can be suspended (Round about 10)

### #define MINIMUM_HEAT_CAPACITY

I feel the need to document what happens here. Basically this is used catch rounding errors, and make gas go away in small portions. People have raised it to higher levels in the past, do not do this. Consider this number a soft limit If you're making gasmixtures that have unexpected behavior related to this value, you're doing something wrong.

On an unrelated note this may cause a bug that creates negative gas, related to round(). When it has a second arg it will round up. So for instance round(0.5, 1) == 1. I've hardcoded a fix for this into share, by forcing the garbage collect. Any other attempts to fix it just killed atmos. I leave this to a greater man then I The minimum heat capacity of a gas

### #define MINIMUM_MOLES_DELTA_TO_MOVE

Either this must be active (round about 0.1) //Might need to raise this a tad to better support space leaks. we'll see

### #define MINIMUM_MOLE_COUNT

Minimum mole count of a gas

### #define MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER

Minimum temperature difference before the gas temperatures are just set to be equal

### #define MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND

Minimum temperature difference before group processing is suspended

### #define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION

Minimum temperature to continue superconduction once started

### #define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION

Minimum temperature to start doing superconduction calculations

### #define MINIMUM_TEMPERATURE_TO_MOVE

or this (or both, obviously)

### #define MOLAR_ACCURACY

Molar accuracy to round to

### #define MOLES

Amount of total moles in said gas mixture

### #define MOLES_CELLSTANDARD

moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC (103 or so)

### #define MOLES_GAS_VISIBLE

Moles in a standard cell after which gases are visible

### #define MOLES_GAS_VISIBLE_STEP

Mole step for alpha updates. This means alpha can update at 0.25, 0.5, 0.75 and so on

### #define MOLES_N2STANDARD

N2 standard value (79%)

### #define MOLES_O2STANDARD

O2 standard value (21%)

### #define M_CELL_WITH_RATIO

compared against for superconductivity

### #define N2STANDARD

same but for nitrogen

### #define NORMAL_TURF

Normal non-active turf

### #define NO_REACTION

The gas mixture is not reacting

### #define O2STANDARD

percentage of oxygen in a normal mixture of air

kPa

### #define PLASMA_MINIMUM_BURN_TEMPERATURE

Minimum temperature to burn plasma

### #define PLASMA_OXYGEN_FULLBURN

Multiplier for plasmafire with O2 moles * PLASMA_OXYGEN_FULLBURN for the maximum fuel consumption

### #define PLASMA_UPPER_TEMPERATURE

Upper temperature ceiling for plasmafire reaction calculations for fuel consumption

### #define REACTING

The gas mixture is reacting

kPaL/(Kmol)

### #define STOP_REACTIONS

The gas mixture is able to stop all reactions

0degC

20degC

-270.3degC

-48.15degC

### #define TOTAL_VISIBLE_STATES

The total visible states

a hack for now