/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.