dirt_mask_queue 
SSdirt makes mess masks in the background and caches them: the first ask queues them, finish_all() makes them, and the body that asked is drawn again. They're made from the splats as they were when asked for, whatever happens to them meanwhile. Skin's masks are clipped to each limb and cloth's cover the canvas, and both match the parity manifest's cases, one splat or two merged, the second drawn over a first cached from an earlier ask. A request whose limb names a missing state is dropped, cached as failed, and never queued again, and the queue goes on past it. Masks asked for on more body types than the template cache holds are all made, though templates drop while they wait.
Vars | |
| mask_limit | SSdirt.masks.limit while the mask-queue pin runs on a smaller cache, until restore_mask_limit(). |
|---|---|
Procs | |
| Destroy | Puts the mask cache back at its own limit if the pin stopped on its smaller one. |
| baked_runs | Returns the runs a request's masks are baked from (dirt_shown_runs()), made start to end by a job of its own outside the queue and the mask cache: a limb's on skin (/datum/dirt_mask_job/proc/limb_runs()), the canvas's on cloth (canvas_runs()). A baked pixel can't be told back into its roles, so the pins count them in these. Null when the job made no masks. |
| describe_runs | Returns how many pixels each role's runs cover facing south, north, east and west, as one line of text. Haze is the film's runs at half coverage (128), film its others. |
| restore_mask_limit | Puts SSdirt.masks back at its own limit after the mask-queue pin, emptied, as its order was kept for the smaller one. |
| template_bodies | Returns the sprites of bodies drawn from different templates, one for each: alist(template key = dirt_zone_sources()). |
Var Details
mask_limit 
SSdirt.masks.limit while the mask-queue pin runs on a smaller cache, until restore_mask_limit().
Proc Details
Destroy
Puts the mask cache back at its own limit if the pin stopped on its smaller one.
baked_runs
Returns the runs a request's masks are baked from (dirt_shown_runs()), made start to end by a job of its own outside the queue and the mask cache: a limb's on skin (/datum/dirt_mask_job/proc/limb_runs()), the canvas's on cloth (canvas_runs()). A baked pixel can't be told back into its roles, so the pins count them in these. Null when the job made no masks.
Arguments:
- request: The request.
- zone: On skin, the limb's body zone.
describe_runs
Returns how many pixels each role's runs cover facing south, north, east and west, as one line of text. Haze is the film's runs at half coverage (128), film its others.
Arguments:
- runs: alist(DIRT_ROLE_* define = alist(direction = runs)), from baked_runs(), or null.
restore_mask_limit
Puts SSdirt.masks back at its own limit after the mask-queue pin, emptied, as its order was kept for the smaller one.
template_bodies
Returns the sprites of bodies drawn from different templates, one for each: alist(template key = dirt_zone_sources()).
Arguments:
- wanted: How many.