mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
* Initial Commit All CanPass replaced with cross, all CheckExit replaced with uncross * Commit #2 Cross() argment turf/target now has a standard value of src.loc, the basis for this is the fact that Cross() should technically only be called with a default value by Move() code when moving to a new turf thus everything on it the target turf should be the src.loc * Commit #3 All move code has now been unhacked, all of it is functional except for border objects which still retain none of their original functionality * Commit #2 Cross() argment turf/target now has a standard value of src.loc, the basis for this is the fact that Cross() should technically only be called with a default value by Move() code when moving to a new turf thus everything on it the target turf should be the src.loc * Commit #2 Cross() argment turf/target now has a standard value of src.loc, the basis for this is the fact that Cross() should technically only be called with a default value by Move() code when moving to a new turf thus everything on it the target turf should be the src.loc (reverted from commit fdee8c8b687a4d1f305bdc5f5e1a59ebeacb4702) * Fuck me * Okay Redo * Hello, I am finished
35 lines
1.1 KiB
Plaintext
35 lines
1.1 KiB
Plaintext
/*
|
|
|
|
Zone Air System:
|
|
|
|
This air system divides the station into impermeable areas called zones.
|
|
When something happens, i.e. a door opening or a wall being taken down,
|
|
zones equalize and eventually merge. Making an airtight area closes the connection again.
|
|
|
|
Control Flow:
|
|
Every air tick:
|
|
Marked turfs are updated with update_air_properties(), followed by post_update_air_properties().
|
|
Edges, including those generated by connections in the previous step, are processed. This is where gas is exchanged.
|
|
Fire is processed.
|
|
Marked zones have their air archived.
|
|
|
|
Important Functions:
|
|
|
|
air_master.mark_for_update(turf)
|
|
When stuff happens, call this. It works on everything. You basically don't need to worry about any other
|
|
functions besides Cross().
|
|
|
|
Notes for people who used ZAS before:
|
|
There is no connected_zones anymore.
|
|
To get the zones that are connected to a zone, use this loop:
|
|
for(var/connection_edge/zone/edge in zone.edges)
|
|
var/zone/connected_zone = edge.get_connected_zone(zone)
|
|
|
|
*/
|
|
|
|
//#define ZASDBG
|
|
//#define ZLEVELS
|
|
|
|
#define AIR_BLOCKED 1
|
|
#define ZONE_BLOCKED 2
|
|
#define BLOCKED 3 |