/datum/air_group

Air groups are collections of tiles that let us save processing time by treating a bunch of similar tiles as a single tile. This is quite useful because atmospherics processing is quite the time hog and processing one tile is much faster. Whenever our tiles become too different, we can break up and create new smaller groups.
Vars | |
air | The gas mixture we use for the air group. |
---|---|
archived_cycle | Cycle that our archived vars were made. The use of archived cycle saves processing power by permitting the archiving step of FET to be rolled into the updating step. |
border_group | Groups that border us and are in group processing mode. |
border_individual | Tiles that border us that either have no group, aka singletons, or are not in group processing mode. |
borders | Our tiles that border this group to other groups/singletons. |
current_cycle | Current cycle of the atmospherics master. |
enemies | Tiles that border us and are in another group that is currently processing. |
group_processing | Processing all tiles as one large tile if TRUE. |
length_space_border | Length of our border with space |
members | All tiles in this group |
self_group_borders | Our tiles that border groups that are processing. |
self_tile_borders | Our tiles that border singletons. |
space_borders | Tiles that border space |
spaced | If true, will drain the gasses of the airgroup. |
Procs | |
check_regroup | |
process_group | Process the various air groups. |
resume_group_processing | Collect air from the members to the group. |
space_fastpath | |
space_group | Zeroes and spaces the air of the group and resumes group processing. |
suspend_group_processing | Distribute air from the group out to members |
unspace_group | Unspaces the group and stops group processing. |
update_group_from_tiles | Copy group air information to individual tile air. Used right before turning on group processing. |
update_tiles_from_group | Copy group air information to individual tile air. Used right before turning off group processing. |
Var Details
air

The gas mixture we use for the air group.
archived_cycle

Cycle that our archived vars were made. The use of archived cycle saves processing power by permitting the archiving step of FET to be rolled into the updating step.
border_group

Groups that border us and are in group processing mode.
border_individual

Tiles that border us that either have no group, aka singletons, or are not in group processing mode.
borders

Our tiles that border this group to other groups/singletons.
current_cycle

Current cycle of the atmospherics master.
enemies

Tiles that border us and are in another group that is currently processing.
group_processing

Processing all tiles as one large tile if TRUE.
length_space_border

Length of our border with space
members

All tiles in this group
self_group_borders

Our tiles that border groups that are processing.
self_tile_borders

Our tiles that border singletons.
space_borders

Tiles that border space
spaced

If true, will drain the gasses of the airgroup.
Proc Details
check_regroup
- If individually processing tiles, checks all member tiles to see if they are close enough that the group may resume group processing.
- Returns: False if group should not continue processing, TRUE if it should.
- Warning: Do not call, called by air_master.process()
process_group
Process the various air groups.
resume_group_processing
Collect air from the members to the group.
space_fastpath
- If group processing is off, and the air group is bordered by a space tile, execute a fast evacuation of the air in the group.
- If the average pressure in the group is < 5kpa, the group will be zeroed.
- Returns: TRUE if the group is zeroed, FALSE if not.
space_group
Zeroes and spaces the air of the group and resumes group processing.
suspend_group_processing
Distribute air from the group out to members
unspace_group
Unspaces the group and stops group processing.
update_group_from_tiles
Copy group air information to individual tile air. Used right before turning on group processing.
update_tiles_from_group
Copy group air information to individual tile air. Used right before turning off group processing.