zone_painter_icon_manifest - ryzom/ryzomcore GitHub Wiki

Zone painter β€” icon and cursor manifest (complete art list)

2026-07-29. The complete listing of every spot in the zone painter UI that wants an icon or cursor, audited against generic 3D-editor toolbar expectations (common editor conventions artists already know) and against the legacy plugins' art. Shopping list for the art-preparation pass; each entry is a motif description for new art.

Provenance: nel_patch_paint art (fullscreen painter cursors and HUD badges) is Nevrax-original and may be converted. Patch-edit cursors are redraw-only from the motif descriptions here (and in zone_painter_legacy_rollout_spec.md).

Where art goes (mechanism, from the in-code cursor manifest): shared shapes β†’ ryzomcore_graphics/interfaces/v3 (packed into every tool's atlas); painter-only shapes β†’ ZONE_PAINTER_EXTRA_TEXTURES in the tool's CMakeLists. A name must land in the atlas .txt before it can resolve. Buttons take tx_normal/tx_pushed/tx_over; pressed states come from the pushed face, so one glyph per icon suffices.

Style: the w_ legacy skin's flat chrome; glyphs should read at 16–20 px inside the 26 px toolbar buttons. Phase-in is icon+text or icon-with-tooltip β€” nothing here blocks on art; every face works as text today.

1. Top toolbar (toolbar strip β€” the highest-value icon row)

Face (today) Function Motif
BOARD toggle session board 3Γ—3 grid of squares, one square filled
SAVE save current zone classic floppy disk (universal), or down-arrow-into-tray
UNDO undo arc arrow curving left
REDO redo arc arrow curving right (mirror of undo)
TILE paint mode: tiles a quad subdivided 2Γ—2 with one sub-square textured/hatched
COLOR paint mode: vertex color paint brush over a color swatch corner
DISP paint mode: displace surface profile with a bump and a small up arrow
PROP property edit mode tag/label glyph, or slider row
PATCH patch edit mode quad lattice with corner dots (echoes the sub-object strip)
SPRING… season face + menu keep text (it names the season); optional leading glyph per season: sprout leaf / sun / falling leaf / snowflake
SCRIPT script window toggle scroll or >_ console glyph
SEL… pivot face + menu (patch mode) keep text label; optional leading pivot glyph (see Β§4)

Future toolbar residents once patch tools grow beyond hotkeys (generic-editor expectation, select/move/rotate/scale quartet): Select (arrow), Move (four-way cross arrows), Rotate (circular arrow around a dot), Scale (nested squares with diagonal arrow). W/E/R already drive these; the buttons make them discoverable.

2. Painter panel (rollout column)

Spot Function Motif
Tiles β†’ "Tiles" / Displace β†’ "Palette" open palette window painter's palette board, or tile grid with pointer
Tiles β†’ 256 toggle 128/256 texture mode "256" text badge is already the right answer (legacy did the same); optional big/small square pair
Tiles β†’ group indicator tile group All/0–7 text digits (legacy used colored digit badges; text suffices)
Brush β†’ size brush size small/med/large three concentric or side-by-side filled circles (legacy motif, worth keeping)
Brush β†’ mask cycle (none/R/G/B) color mask channel keep text β€” channel letters are clearer than any glyph
Fill β†’ Fill / F1 / F2 / F3 fill patch at rotation 0–3 paint bucket pouring; rotation variants add a small quarter-turn arrow badge (0 = plain bucket)
Fill β†’ Lock borders border lock padlock (legacy had exactly this badge)
Session β†’ dirty markers file state filled dot (dirty) / hollow dot (clean) if ever iconified; currently * text

3. Patch rollout (from the legacy rollout spec β€” repeated here so this page is complete)

The sub-object level strip, four icons ~24 px (motifs from zone_painter_legacy_rollout_spec.md):

  1. Vertex β€” four small plus-cross markers at the corners of an implied quad.
  2. Edge β€” the outline of a quad drawn as beaded/dotted segments, unfilled.
  3. Patch β€” a solid filled quad, slightly foreshortened, dark outline, corner ticks.
  4. Tile β€” the same filled quad subdivided into a 2Γ—2 grid.

Geometry-block buttons stay text (Bind, Unbind, Weld, Subdivide… β€” the legacy panel used text buttons too); only the level strip is iconic.

4. Pivot menu glyphs (optional, Max-convention)

Five modes, shown today as text menu + 3-letter face. If given glyphs: Selection center (dots with a center mark), World center (axis origin tripod), Center of all objects (two rectangles, center mark), Center of sel. objects (highlighted rectangle, center mark), User pivot (a placed crosshair pin). The face keeps its text label either way.

5. Board and browser glyphs

Spot Function Motif
board cell: rotate CW / CCW instance rotate actions (menu/legend) quarter-circle arrows, both windings
board cell: mirror instance mirror butterfly / mirrored-triangle pair with a dashed axis
board cell: locked non-openable empty cell small padlock (currently "L:" prefix + dim)
board cell: read-only neighbor context half-dim overlay (state, not glyph β€” no art needed)
board cell: dirty unsaved file small filled dot or corner triangle (currently *)
browser: view toggle list vs large-icon cards classic pair: stacked rows glyph / 2Γ—2 squares glyph
browser: Back return to world list left arrow
folder picker: Up parent directory up arrow with folder
script window: RUN run script right-pointing play triangle
script window: REC record toggle filled circle (red when live β€” the one color-coded glyph)
script window: REC>ED copy recording to editor filled circle + right arrow

6. Cursor manifest (superset of the in-code list above zpSelectMode)

Already packed (interfaces/v3): default/select, eyedropper pick, rotate (also orbit), scale, pan, can-pan, container resizers.

To prepare β€” paint modes: tile brush (brush over a small quad grid), color brush (plain brush tip), displace brush (brush over a bumped profile). Prop mode uses the default select cursor.

To prepare β€” patch edit: move (four-way cross arrows; the legacy plugin only had axis-constrained variants, so this is new art), region select (dashed rectangle corner), bind (two beaded segments angled together + small cross: "drag vertex onto edge"), weld (two dots merging into one, or cross with converging arrows), attach (small circle with an arrow leading out to lower right + cross), subdivide (a segment with an inserted midpoint dot). Extrude/bevel cursors (motifs in the rollout spec: face lifted off a hatched base; trapezoid profile) only if those ops ever come.

To prepare β€” navigation: zoom/dolly (magnifier). Pan and orbit reuse packed shapes.

Convertible from nel_patch_paint (Nevrax art): the eyedropper, paint bucket, eyedropper+question (inspect), and cross+tick (trick) cursors. Everything in the patch-edit list above is redraw-only per the provenance rule.

7. Legacy fullscreen-painter HUD badges (reference, Nevrax art, convertible)

For completeness β€” the old painter's on-screen state badges, in case the immersive UI wants equivalents: brush size = three sizes of filled circle; tile group = "all" + digit badges; texture mode = "128"/"256" text badges; border lock = padlock; lighting toggle = torch/flashlight; tile-orientation mode = letter badges plus a circular-arrow glyph for "oriented". Our rollout column already carries these as text/spinners; badges become relevant only for HUD-style presentations (fullscreen/XR milestones).

⚠️ **GitHub.com Fallback** ⚠️