Files
VOREStation/code/ZAS
Kashargul 89fb9871e0 next set of admin verbs (#19260)
* next set of admin verbs

* invoke

* .

* a few more

* few more

* .

* few more

* some more

* move thos

* next

* some debug verbs

* axe the old mod loading

* del

* is local for some verbs

* few more

* .

* .

* .

* Add local narrate.

* Fixes this

Needed to be user.mob, since user is  the client and usr was the old user.mob

* fixes

* .

* .

* .

* .

---------

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
2026-03-21 17:16:41 -04:00
..
2026-02-22 22:10:59 +01:00
2025-05-21 08:16:41 +02:00
2026-02-22 22:10:59 +01:00
2026-03-15 02:54:17 -04:00
2026-03-21 17:16:41 -04:00
2026-02-22 22:10:59 +01:00
2026-02-22 22:10:59 +01:00
2026-02-22 22:10:59 +01:00
2026-02-22 22:10:59 +01:00
2026-02-22 22:10:59 +01:00

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:

SSair.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 CanPass().

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/datum/zone/connected_zone = edge.get_connected_zone(zone)