art/saint/saintparts — the Slag Saint, cast part by part.
Every rigid piece of the saint is one function here. A part is built in the
local space of its own JOINT: a limb hangs DOWN from y = 0, so rotating the
node it lives on swings it the way a limb swings. The component parents the
parts into a rig and poses them; nothing in this file knows about poses.
Two shells per limb. `*_frame` is the skeletal casting underneath — thin,
dark, ribbed. `*_plate` is the bronze armour over it. Phase 3 and heavy
damage hide the plate, and the thing under it is already there.
Meshes are built once per session and cached, so a hot reload of the
component re-poses the saint without re-casting it.
rivetRing(g: ?, y: number, r: number, count: number, size: number, tilt: number?) → void
Shared detail passes — the things that make a casting read as made
A ring of rivets around a tube of radius `r` at height `y`.
| arg | type | description |
|---|
| g | ? | |
| y | number | |
| r | number | |
| count | number | |
| size | number | |
| tilt | number? | |
band(g: ?, y: number, r: number, thickness: number, height: number, ring: { { number } }?) → void
A raised band around a tube — the reinforcing hoop a big casting needs.
| arg | type | description |
|---|
| g | ? | |
| y | number | |
| r | number | |
| thickness | number | |
| height | number | |
| ring | { { number } }? | |
bell( ) → any
The head — a cathedral bell
The bell itself: crown, waist, soundbow and flared lip, hung from y = 0.
2.75m of bronze. The mouth is 3.1m across; it does not fit a doorway.
bellMouth( ) → any
The dark inside of the mouth, so the bell reads as hollow from below.
bellEyes( ) → any
Two vent slots on the front of the bell. Light gets out of them, and at
fifteen metres they are the only thing on the saint that reads as a face.
socket( ) → any
What is left when the saint tears its own head off: a torn socket with the
furnace open to the air. Hidden until the moment it happens.
clapper( ) → any
The clapper, hung inside the mouth. It swings when the saint tolls.
neck( ) → any
The yoke the bell hangs in, and the neck stack under it.
chest( ) → any
The chest — a shuttered furnace door
The chest casting: a heavy frame around a recessed door opening, with the
pectoral plates and the collar ridge that carry the shoulders.
chestDoor(side: number) → any
One furnace door. Built hinged on its outer edge, so the node it hangs on
is the hinge: rotating that node swings the door open.
`side` is -1 for the saint's left, +1 for its right.
| arg | type | description |
|---|
| side | number | |
chestLatch( ) → any
The latch bar across the doors. It shears off when the chest unshutters.
core( ) → any
What is behind the doors: a lumpy mass of half-melted slag, lit from
inside. Every vertex carries the seam channel, so the whole thing glows.
torsoPlate( ) → any
The torso — a reliquary cage
The rib cage: hoops and straps around a dark inner column. The saint's
middle is a container, and it is meant to look like one.
torsoFrame( ) → any
Inside the cage: a scorched column with the furnace channel running up it.
pelvis( ) → any
The pelvis — a cast block hung with a skirt of scale plate
limbFrame(len: number, r0: number, r1: number, seed: number) → any
Limbs
A skeletal limb casting: a thin scorched shaft with ribs and the furnace
channel running through it. What is under the plate.
| arg | type | description |
|---|
| len | number | |
| r0 | number | |
| r1 | number | |
| seed | number | |
limbPlate(len: number, r0: number, r1: number, seed: number, opts: any?) → any
The bronze shell over a limb: a tapered tube with hoops, a ligature rod
down one side and rivets where it was closed around the frame.
| arg | type | description |
|---|
| len | number | |
| r0 | number | |
| r1 | number | |
| seed | number | |
| opts | any? | |
pauldron( ) → any
A pauldron: a dome over three lames, with the ring the binding chain took.
hand( ) → any
The left hand: four splayed fingers on a heavy palm. It is a hand that has
only ever been used to hold something still.
anvil( ) → any
The right arm ends in an anvil on a chain. Horn, heel, waist, base — the
shape a smith would recognise, at four metres.
chain(links: number, pitch: number, r: number) → any
A run of chain, hanging down -Y from the node it is on. `links` long.
| arg | type | description |
|---|
| links | number | |
| pitch | number | |
| r | number | |
foot( ) → any
The foot: a broad splayed pad. Fifteen metres of bronze needs somewhere to
put its weight, and this is where the floor gets cracked.
floorRing( ) → any
The ring bolted into the basin floor that the phase-1 chains run to.
get(key: string, maker: () → void
Build (or return) a named part. `maker` is called only once per session.
| arg | type | description |
|---|
| key | string | |
| maker | ( | |