bsc_ui_art
The drawn half of BIG STEAL CAR's interface.
bsc_ui_art
The drawn half of BIG STEAL CAR's interface.
Every mark in the game's screens that is not a letterform lives here: the paper
lanterns of the wanted meter, the vermilion 車 seal, Inaho Inari's torii, cherry
blossom, the Hoshino Ryusei in profile, a noren, the lane's family crest, a wet
sumi brush stroke, the wave-scale ground under the izakaya boards — and the
hand-inked survey plan of Hozumi-dori 3-chome that the minimap draws from
BSC.BLOCK.
It is painted with the UI canvas command list, so every mark is vector work
that stays crisp at any size. Nothing here touches the engine: each function
appends shapes to a table and returns, which is why several marks compose onto
one surface — the wanted meter is five lanterns on a single canvas, and the
minimap is a whole neighbourhood on another.
Required as require("art.ui.bsc_ui_art").
Interface
What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.
conforms to
zero/source-extract/v2strict
poly(out: Cmds, pts: { { number } }, fill: string?, stroke: string?, sw: number?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| pts | { { number } } | |
| fill | string? | |
| stroke | string? | |
| sw | number? |
pline(out: Cmds, pts: { { number } }, color: string, w: number?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| pts | { { number } } | |
| color | string | |
| w | number? |
node(cmds: Cmds, w: number, h: number, style: any?, id: string?) → any
a canvas widget wrapping a finished command list
| arg | type | description |
|---|---|---|
| cmds | Cmds | |
| w | number | |
| h | number | |
| style | any? | |
| id | string? |
profile(x: number, y: number, w: number, h: number) → void
═══════════════════════════════════════════════════════════════════════════ CHOCHIN — the paper lantern. The wanted meter is five of these on a wire; each fills with light from the foot up as the heat climbs. ═══════════════════════════════════════════════════════════════════════════ the lantern's silhouette as (halfWidth, y) samples down the body
| arg | type | description |
|---|---|---|
| x | number | |
| y | number | |
| w | number | |
| h | number |
halfWidthAt(t: number, hw0: number, hwm: number) → number
| arg | type | description |
|---|---|---|
| t | number | |
| hw0 | number | |
| hwm | number |
hanko(out: Cmds, x: number, y: number, s: number, color: string?) → void
═══════════════════════════════════════════════════════════════════════════ HANKO — the vermilion seal. 車 ("car") cut into a rounded square: the mark that stamps the logo and signs the end cards. ═══════════════════════════════════════════════════════════════════════════
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| s | number | |
| color | string? |
st(x1: number, y1: number, x2: number, y2: number) → void
| arg | type | description |
|---|---|---|
| x1 | number | |
| y1 | number | |
| x2 | number | |
| y2 | number |
torii(out: Cmds, x: number, y: number, w: number, h: number, color: string?) → void
═══════════════════════════════════════════════════════════════════════════ TORII — Inaho Inari's gate. Objective bullet, minimap north, shrine marker. ═══════════════════════════════════════════════════════════════════════════
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| color | string? |
px(v: number) → void
| arg | type | description |
|---|---|---|
| v | number |
py(v: number) → void
| arg | type | description |
|---|---|---|
| v | number |
petalPts(cx: number, cy: number, r: number, ang: number) → void
═══════════════════════════════════════════════════════════════════════════ SAKURA — one petal, notched at the tip, and the five-petal blossom. ═══════════════════════════════════════════════════════════════════════════
| arg | type | description |
|---|---|---|
| cx | number | |
| cy | number | |
| r | number | |
| ang | number |
put(px: number, py: number) → void
| arg | type | description |
|---|---|---|
| px | number | |
| py | number |
petal(out: Cmds, cx: number, cy: number, r: number, ang: number, color: string?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| cx | number | |
| cy | number | |
| r | number | |
| ang | number | |
| color | string? |
blossom(out: Cmds, cx: number, cy: number, r: number, color: string?, core: string?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| cx | number | |
| cy | number | |
| r | number | |
| color | string? | |
| core | string? |
px(v: number) → void
| arg | type | description |
|---|---|---|
| v | number |
py(v: number) → void
| arg | type | description |
|---|---|---|
| v | number |
bento(out: Cmds, x: number, y: number, w: number, h: number, color: string?) → void
═══════════════════════════════════════════════════════════════════════════ Small glyphs. ═══════════════════════════════════════════════════════════════════════════
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| color | string? |
envelope(out: Cmds, x: number, y: number, w: number, h: number, color: string?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| color | string? |
siren(out: Cmds, x: number, y: number, w: number, h: number, color: string?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| color | string? |
foot(out: Cmds, x: number, y: number, w: number, h: number, color: string?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| color | string? |
signal(out: Cmds, x: number, y: number, w: number, h: number, bars: number, color: string?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| bars | number | |
| color | string? |
battery(out: Cmds, x: number, y: number, w: number, h: number, level: number, color: string?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| level | number | |
| color | string? |
chevron(out: Cmds, x: number, y: number, s: number, color: string?, dir: string?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| s | number | |
| color | string? | |
| dir | string? |
p(dx: number, dy: number) → void
| arg | type | description |
|---|---|---|
| dx | number | |
| dy | number |
aperture(out: Cmds, x: number, y: number, s: number, color: string?) → void
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| s | number | |
| color | string? |
p(px: number, py: number) → void
| arg | type | description |
|---|---|---|
| px | number | |
| py | number |
kamon(out: Cmds, x: number, y: number, s: number, color: string?) → void
═══════════════════════════════════════════════════════════════════════════ KAMON — the lane's invented family crest: a wheel of five blossoms in a double ring. Backs the logo, stamps the pause board and the end cards. ═══════════════════════════════════════════════════════════════════════════
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| s | number | |
| color | string? |
brush(out: Cmds, x: number, y: number, w: number, h: number, color: string?) → void
═══════════════════════════════════════════════════════════════════════════ BRUSH — a single wet sumi stroke: the plate display type sits on. ═══════════════════════════════════════════════════════════════════════════
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| color | string? |
woodBoard(out: Cmds, x: number, y: number, w: number, h: number, planks: number?) → void
═══════════════════════════════════════════════════════════════════════════ WOOD — the izakaya board: warm planks with grain and end-nails. ═══════════════════════════════════════════════════════════════════════════
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| planks | number? |
planSheet(out: Cmds, x: number, y: number, w: number, h: number, block: any, opts: any?) → void
The sheet itself: everything that never changes. Draw it once, keep the command list, and lay `planMarks` over a copy of it each frame.
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| block | any | |
| opts | any? |
P(wx: number, wz: number) → void
| arg | type | description |
|---|---|---|
| wx | number | |
| wz | number |
box(x0: number, z0: number, x1: number, z1: number, fill: string?, stroke: string?, sw: number?) → void
| arg | type | description |
|---|---|---|
| x0 | number | |
| z0 | number | |
| x1 | number | |
| z1 | number | |
| fill | string? | |
| stroke | string? | |
| sw | number? |
slab(lm: any, sw: number, sd: number, fill: string) → void
the named blocks along the feeder and up the lane
| arg | type | description |
|---|---|---|
| lm | any | |
| sw | number | |
| sd | number | |
| fill | string |
lab(lm: any, s: string, dz: number) → void
| arg | type | description |
|---|---|---|
| lm | any | |
| s | string | |
| dz | number |
planMarks(out: Cmds, x: number, y: number, w: number, h: number, opts: any?) → void
The live marks over the sheet: the heat wash, the objective and the player.
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| opts | any? |
plan(out: Cmds, x: number, y: number, w: number, h: number, block: any, opts: any?) → void
the whole sheet in one call, for a caller that is not redrawing every frame
| arg | type | description |
|---|---|---|
| out | Cmds | |
| x | number | |
| y | number | |
| w | number | |
| h | number | |
| block | any | |
| opts | any? |
Cmds = { any }Sub-parts
Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.
Problems
Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.
agent_score is exposed.+ quality × 0.35
+ performance × 0.25
± compat factor
Usability ratings
Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".
Scoped to this part · feeds back into the world's score.