Temple
The Arsacid fire temple of *First Light: The Three Fires* — the ridge it stands on, the stone it is cut from, and the three fires it exists to keep.
Temple
The Arsacid fire temple of First Light: The Three Fires — the ridge it stands on, the stone it is cut from, and the three fires it exists to keep.
One instance, on the scene's temple mount. Everything it owns is built under a
single temple_root child, so a rebuild replaces it whole and a hot reload
cannot leave two temples standing on one ridge.
What it builds
| Piece | What it is |
|---|---|
temple_plateau | the turned sandstone table: a worn walkable top, a chamfered outer wall, the ridge shoulder falling away beneath it, and the ember basin sunk at the centre |
temple_desert / temple_ridgeline | the land far below and the jagged horizon that closes it |
way_*, court_*, inlay_*, triunity_*, crack_* | the paved court around the well, the three courses running out to the altars, the ring inlays, the bronze line joining the three fires, and the seams worn into the open stone |
rim_*, gate_* | the broken parapet, cut through at the three gates, each gate flanked by basalt pylons carrying a bowl nobody has lit in a long time |
well_* | the Eternal Well: bronze collar, eight rays let into the floor, three fluted bronze standards (one aimed at each fire), and the ember in the pit |
altar_<id>_* | each of the three altars: a three-course plinth with coping stones, a fluted drum, a bronze brazier on three feet, the coal bed, the flame, two flanking name-stones with pennants, the name-stone and its plaque, oil jars and cut wood |
rubble_*, ridge_rock_*, fallen_drum_* | what the ridge has shed, on the stone and past the parapet |
Positions come from game.FL — FL.pos.well, FL.pos.gates, FL.fires[i].pos
and FL.arena.radius — so the loop, the daevas and this slice agree on where an
altar is without any of them saying so twice.
What it drives every frame
dress() reads FL.state.fires[id].heat and .lit and drives six things per
fire, so a fire's state is legible from the gameplay camera without a number on
screen:
- the flame emitter's rate and brightness,
- the spark emitter's rate (which climbs with the square of heat, so only a well-fed fire throws embers),
- the smoke emitter, silent while the fire lives and heavy the moment it dies,
- the coal bed's emissive, through that fire's own
tf_ember_<id>material, - the core's emissive and size, through
tf_flame_<id>, - the point light's intensity, reach and colour.
Two beats of flicker at different rates run over all of them, so a fire breathes rather than pulsing evenly. A dead altar is a dark bowl with smoke coming off it and no light on the stone around it; a full one throws its own colour across the plateau.
The Eternal Well answers to FL.state.censer.heat the same way, more gently — it
is the source and it never goes out.
Materials and geometry
Every coloured surface is a real .material from game/temple/materials — the
Model tint is used nowhere here, because a tint at full blend replaces the lit
colour and a stone lit only by firelight has to answer to that light. The turned
shapes come from game/temple/meshes, cut by game.temple.Geom.
Interface
- Requires
game.FL, and reads it only. It writes nothing another slice owns. - Builds under
temple_rootand rebuilds itself when that root goes missing, so a scene rebuild or a play/edit flip puts the temple back without a restart.
Scoped to this part · feeds back into the world's score.