milla_safe_must_sleep  
Create a subclass of this and implement on_run to manipulate tile air safely. ONLY USE THIS VERSION IF YOU CAN'T AVOID SLEEPING; it will delay atmos ticks!
| Procs | |
| add_turf_air | Add air to a turf. Only use from on_run. | 
|---|---|
| get_turf_air | Fetch the air for a turf. Only use from on_run. | 
| invoke_async | Call this to make the subclass run when it's safe to do so. Args will be passed to on_run. | 
| on_run | All subclasses should implement this. | 
| private_unsafe_invoke | Do not call this yourself. This is what is called to run your code from a safe context. | 
| set_turf_air | Completely replace the air for a turf. Only use from on_run. | 
| soft_assert_safe | Used internally to check that we're running safely, but without breaking things worse if we aren't. | 
Proc Details
add_turf_air
Add air to a turf. Only use from on_run.
get_turf_air
Fetch the air for a turf. Only use from on_run.
invoke_async
Call this to make the subclass run when it's safe to do so. Args will be passed to on_run.
on_run
All subclasses should implement this.
private_unsafe_invoke
Do not call this yourself. This is what is called to run your code from a safe context.
set_turf_air
Completely replace the air for a turf. Only use from on_run.
soft_assert_safe
Used internally to check that we're running safely, but without breaking things worse if we aren't.