/tg/ Station 13 - Modules - Types — Proc Details

augment_paint

A recolourable finish's drawing, on the limbs wearing one: apply_to() adds it and clear_augment_finish() takes it off. The colours stay on the limb (/obj/item/bodypart/var/augment_colors), so one element serves every finished limb, and a plain limb, which never has it, redraws as it always has.

Procs

on_icon_keyKeys the limb by what its paint and glow draw: its colours, whether it glows, its alpha, which the matrices carry, and its skin ramp. The limb icon cache is shared by every body, so without them one body's arm would be served to another.
on_limb_iconDraws the finish's paint and glow over the limb (draw_augment_paint()). Sent at the end of get_limb_icon(), after the leg split, height and textures, with the images as keys of a list to their flags: the copies only need to be keys too.

Proc Details

on_icon_key

Keys the limb by what its paint and glow draw: its colours, whether it glows, its alpha, which the matrices carry, and its skin ramp. The limb icon cache is shared by every body, so without them one body's arm would be served to another.

First it points the limb at the skin sheet in its owner's ramp (update_augment_skin_sheet()). update_body_parts() keys a limb after update_limb(), which learns species_color as the limb is set up for an owner, and before get_limb_icon(), so the sheet drawn is the one keyed. COMSIG_BODYPART_UPDATED comes too early for it, before update_limb() sets species_color. A dropped limb, drawn without a key, keeps the sheet it had when it was last keyed or set up.

on_limb_icon

Draws the finish's paint and glow over the limb (draw_augment_paint()). Sent at the end of get_limb_icon(), after the leg split, height and textures, with the images as keys of a list to their flags: the copies only need to be keys too.