Dawn
The hour over Betocsin, driven by Core.state.dawn.
Mounted once on mount_world. Every frame it reads the whole environment off
game.world.firstlight and pushes it into the key light, the ambient, the
authored sky (game.world.dawnsky, carried by a Skybox it installs on the
scene's sky entity), the scene's height fog, the marched air, and the place
itself — the sea of fog, the town's lanterns and its lit windows, through
game.world.place.
Three things move the reading off the raw clock:
- the watch — each tocsin beat steps the sky
WATCH_STEPahead of the clock and throws a moment of extra light along the estuary, so the night reads as four stages rather than one slide; - the drain — a won round pulls the bank off the town over
DRAIN_SECONDSand brings the lanterns and the windows up as it goes; - the flood — a lost round runs the light all the way in over
FLOOD_SECONDS, whatever the clock said.
Set Core.state.dawn by hand from execute and the whole place follows on the
next frame. game.world.place's hold(true) freezes the push so the sky, the
sea and the lanterns can be read or tinted without the next frame overwriting
the answer; hold(false) hands them back and re-pushes at once.
Scoped to this part · feeds back into the world's score.