dynamic_airlock_linker 
A manager that is used on mapload to generate airlock chambers based on the usage of /obj/effect/map_effect/dynamic_airlock helpers. These helpers make up the "zone" of an airlock chamber, as well as indicate which airlocks are exterior or interior, what access should be applied to the doors and controls, And what buttons, vents, and airlock controllers should be linked together. This is performed on Initialize of one of the related helpers. Once done, all the other helpers are deleted to prevent it happening again for that zone.
Vars | |
| airlock_controllers | A list of all /obj/machinery/airlock_controllers found in the airlock zone. |
|---|---|
| exterior_helpers | A list of /obj/effect/map_effect/dynamic_airlock/door/exteriors to integrate into the airlock. |
| interior_helpers | A list of /obj/effect/map_effect/dynamic_airlock/door/interiors to integrate into the airlock. |
| req_access | A collection of "all" access defines collated from any /obj/effect/map_effect/dynamic_airlock/access helpers present in the airlock. |
| req_one_access | A collection of "any" access defines collated from any /obj/effect/map_effect/dynamic_airlock/access helpers present in the airlock. |
| vent_pumps | A list of all /obj/machinery/atmospherics/unary/vent_pump/high_volume vent pumps found in the airlock zone. |
Procs | |
| build | Use all the information discovered about the airlock zone to link up the included airlock controllers, buttons, airlocks, and vent pumps. Make sure that all helpers found in this process are qdel'd so that no other helper attempts to do the same thing with this zone. |
| consume_access_helpers | Find all the /obj/effect/mapping_helpers/airlock/access helpers on the passed in helper's tile, and add them to the list of accesses we'll assign to the linked objects later. Make sure that all mapping helpers found in this process are qdel'd so they don't attempt to assign access to anything else later. |
| extend_zone | Starting from an arbitrary initial helper, search out from all adjacent tiles and find all other helpers that are part of this zone. |
Var Details
airlock_controllers 
A list of all /obj/machinery/airlock_controllers found in the airlock zone.
exterior_helpers 
A list of /obj/effect/map_effect/dynamic_airlock/door/exteriors to integrate into the airlock.
interior_helpers 
A list of /obj/effect/map_effect/dynamic_airlock/door/interiors to integrate into the airlock.
req_access 
A collection of "all" access defines collated from any /obj/effect/map_effect/dynamic_airlock/access helpers present in the airlock.
req_one_access 
A collection of "any" access defines collated from any /obj/effect/map_effect/dynamic_airlock/access helpers present in the airlock.
vent_pumps 
A list of all /obj/machinery/atmospherics/unary/vent_pump/high_volume vent pumps found in the airlock zone.
Proc Details
build
Use all the information discovered about the airlock zone to link up the included airlock controllers, buttons, airlocks, and vent pumps. Make sure that all helpers found in this process are qdel'd so that no other helper attempts to do the same thing with this zone.
consume_access_helpers
Find all the /obj/effect/mapping_helpers/airlock/access helpers on the passed in helper's tile, and add them to the list of accesses we'll assign to the linked objects later. Make sure that all mapping helpers found in this process are qdel'd so they don't attempt to assign access to anything else later.
extend_zone
Starting from an arbitrary initial helper, search out from all adjacent tiles and find all other helpers that are part of this zone.
Right now this is a (relatively) busy proc that can't leave any setup to the Initialize of any helpers in its zone, because airlock controllers need all of their airlocks etc known when linkage occurs, which is in LateInitialize. I'm not sure if that's something that can be "fixed".