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

modular_aphelion/modules/custom_sprites/code/images.dm

/proc/custom_sprite_blank_iconA 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_iconClip 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_DIRWhere the editors' pictures are drawn. tmp/ is cleared every round.
/proc/custom_sprite_view_recipesA 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_recipesDraws 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_pathWhere custom_sprite_draw_recipes() keeps the picture of one view drawn under a name; size is "[width]x[height]".
/proc/custom_sprite_forget_picturesDeletes the pictures kept under a name, and under any name it begins.
/proc/custom_sprite_picture_urlA drawn PNG as the data URL a window shows.
/proc/custom_sprite_picture_iconA drawn PNG as a native icon, for reading its pixels.
/proc/custom_sprite_hair_liftWhere 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_upA 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_putKeep runtime caches bounded. Callers treat cached icons/lists as immutable.
/proc/custom_sprite_sample_paletteSample the most frequent opaque shades from all four authored directions.
/proc/custom_sprite_tint_colorMatch the Custom palette's frontend multiplication and nearest-integer channel rounding.
/proc/custom_sprite_shadeA 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_paletteBake effective hair color into source shades; gradients already supply their own RGB.
/proc/custom_style_hair_shadesThe 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_mapMaps painted hair shades from one base hair look to another.
/proc/custom_sprite_hydratePaints a drawing into a workspace's frames, centred on a wider canvas and at the bottom of a taller one.
/proc/custom_sprite_paint_iconCalled by debounced previews and appearance rendering, never by the per-stroke UI payload. Throwaway drawings skip the cache.
/proc/custom_sprite_limb_stateRaw limb geometry, using exactly the state selection in get_limb_icon().
/proc/custom_sprite_silhouetteWhite RGB and original alpha: multiplying by this clips without darkening the paint.
/proc/custom_sprite_icon_boundsInclusive bounds in the editor's top-left coordinate system.
/proc/custom_sprite_canvas_boundsFull canvas for hair and facial hair; per-view locks are applied separately.
/proc/custom_sprite_taur_overlayThe taur organ owns its visible body; its two leg placeholders have no paintable pixels.
/proc/custom_sprite_taur_silhouetteNative taur geometry in its centered 64 by 32 frame, shared by editing and rendering.
CUSTOM_SPRITE_HAND_ARM_ROWSArm rows above a hand's top edge that hand paint may still cover.
/proc/custom_sprite_hand_silhouetteA 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_silhouetteCompose geometry in the canvas frame without stretching or changing the body's origin. wrist gives a hand its wrist band.
/proc/custom_sprite_mask_boundsEach view's paintable area padded by one pixel, from row-string masks.
/proc/custom_sprite_body_draw_mask_keyWhat 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_maskRow 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_rowsEach 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_rowsOne 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_charThe mark that names looks[index] in cover rows: 1 to 9, then a to z.
/proc/custom_sprite_cover_labelsThe looks' labels in mark order, for the window's tooltip.
/proc/custom_sprite_cover_wornWhich looks, in mark order, are worn items (1) rather than parts of the body (0), for the window's tooltip.
/proc/custom_sprite_background_tilesNova'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.