modular_aphelion/modules/custom_sprites/code/images.dm 
| /proc/custom_sprite_blank_icon | A blank in every editable direction, including bald hairstyles without an icon state. Insert() alone leaves an empty icon reporting 0x0, so seed its dimensions from the blank. |
|---|---|
| /proc/custom_sprite_flat_icon | Clip in body coordinates before flattening can expand a wide or offset overlay's origin. A tall
canvas reaches above the tile, and shift_x and shift_z move the whole window the way a lifted
hairstyle moves the paint drawn over it. |
| CUSTOM_SPRITE_PICTURE_DIR | Where the editors' pictures are drawn. tmp/ is cleared every round. |
| /proc/custom_sprite_view_recipes | A look in custom_sprite_flat_icon()'s window, facing each of the editors' views, from one universal icon walk: view -> iconforge recipe. custom_sprite_draw_recipes() draws them. |
| /proc/custom_sprite_draw_recipes | Draws recipes with iconforge, a picture each, on the main thread: a few tenths of a millisecond per picture,
where getFlatIcon() takes several for one view of a body. Each PNG goes to publish, a data URL of it when
there's none. Returns view -> what publish made of it. |
| /proc/custom_sprite_picture_path | Where custom_sprite_draw_recipes() keeps the picture of one view drawn under a name; size is "[width]x[height]". |
| /proc/custom_sprite_forget_pictures | Deletes the pictures kept under a name, and under any name it begins. |
| /proc/custom_sprite_picture_url | A drawn PNG as the data URL a window shows. |
| /proc/custom_sprite_picture_icon | A drawn PNG as a native icon, for reading its pixels. |
| /proc/custom_sprite_hair_lift | Where a body's hair, and custom hair painted over it, are drawn from the tile, as list(x, z) pixels.
A hairstyle drawn above the head, such as Afro (Huge), lifts both, as the species' hair offset does.
style names a hairstyle other than the body's own. |
| /proc/custom_sprite_extend_up | A copy of a 32-row icon grown to height rows, its top row repeated upward, so hair masks and gradients carry on over tall paint. |
| /proc/custom_sprite_cache_put | Keep runtime caches bounded. Callers treat cached icons/lists as immutable. |
| /proc/custom_sprite_sample_palette | Sample the most frequent opaque shades from all four authored directions. |
| /proc/custom_sprite_tint_color | Match the Custom palette's frontend multiplication and nearest-integer channel rounding. |
| /proc/custom_sprite_shade | A sampled shade multiplied by a colour's channels, exactly as painted hair shades have always been built. Not custom_sprite_tint_color(): that rounds as the window does, and recolours match paint by these exact values. |
| /proc/custom_sprite_sample_hair_palette | Bake effective hair color into source shades; gradients already supply their own RGB. |
| /proc/custom_style_hair_shades | The hairstyle's shades tinted by a hair look's color, in sampling order and without merging. Palettes dedupe these; recolors need the positions to line up between two looks. |
| /proc/custom_style_hair_color_map | Maps painted hair shades from one base hair look to another. |
| /proc/custom_sprite_hydrate | Paints a drawing into a workspace's frames, centred on a wider canvas and at the bottom of a taller one. |
| /proc/custom_sprite_paint_icon | Called by debounced previews and appearance rendering, never by the per-stroke UI payload. Throwaway drawings skip the cache. |
| /proc/custom_sprite_limb_state | Raw limb geometry, using exactly the state selection in get_limb_icon(). |
| /proc/custom_sprite_silhouette | White RGB and original alpha: multiplying by this clips without darkening the paint. |
| /proc/custom_sprite_icon_bounds | Inclusive bounds in the editor's top-left coordinate system. |
| /proc/custom_sprite_canvas_bounds | Full canvas for hair and facial hair; per-view locks are applied separately. |
| /proc/custom_sprite_taur_overlay | The taur organ owns its visible body; its two leg placeholders have no paintable pixels. |
| /proc/custom_sprite_taur_silhouette | Native taur geometry in its centered 64 by 32 frame, shared by editing and rendering. |
| CUSTOM_SPRITE_HAND_ARM_ROWS | Arm rows above a hand's top edge that hand paint may still cover. |
| /proc/custom_sprite_hand_silhouette | A hand's own pixels plus, with wrist, a short band of the arm just above them, so hand paint can't climb the arm. |
| /proc/custom_sprite_body_silhouette | Compose geometry in the canvas frame without stretching or changing the body's origin. wrist gives a hand its wrist band. |
| /proc/custom_sprite_mask_bounds | Each view's paintable area padded by one pixel, from row-string masks. |
| /proc/custom_sprite_body_draw_mask_key | What custom_sprite_body_draw_mask() draws a zone's silhouette from, as text: the canvas, the zone, and the icons and states of the limbs that draw it. The same key draws the same mask, so it stands for the mask's rows in other keys. |
| /proc/custom_sprite_body_draw_mask | Row strings keep the wire payload small and test the same silhouette used by rendering. wrist gives a hand its wrist band. |
| /proc/custom_sprite_icon_rows | Each view of a 32-row icon as row strings from the top, width characters each: "0" where it's
clear and "1" where it has a pixel. With ids (colour -> region character) a pixel reads as its
colour's region instead, and a blend as the region custom_sprite_region_fallback() finds in ordered. |
| /proc/custom_sprite_cover_rows | One view of the cover looks as rows of marks: "0" where nothing covers, else the mark of the
topmost look (custom_sprite_cover_char(N) for looks[N]). Only images drawn after above_layer
count, so the same looks serve body paint and hand paint. bounds (0-based, inclusive x0, y0,
x1, y1) limits the pixel reads to the drawable box; outside it is clear. With cache_key (from
custom_sprite_cover_looks), the same look reuses its rows across rebuilds and editors. |
| /proc/custom_sprite_cover_char | The mark that names looks[index] in cover rows: 1 to 9, then a to z. |
| /proc/custom_sprite_cover_labels | The looks' labels in mark order, for the window's tooltip. |
| /proc/custom_sprite_cover_worn | Which looks, in mark order, are worn items (1) rather than parts of the body (0), for the window's tooltip. |
| /proc/custom_sprite_background_tiles | Nova's character preview backgrounds as tiles for the custom editors' background swatches. |
Define Details
CUSTOM_SPRITE_HAND_ARM_ROWS 
Arm rows above a hand's top edge that hand paint may still cover.
CUSTOM_SPRITE_PICTURE_DIR 
Where the editors' pictures are drawn. tmp/ is cleared every round.