HardYards/web/world
m3ultra a5ed4fcdb6 Place the shed and spare table; expose world.shedTable (unblocks Lane D)
SPRINT3 decision 9 / §Lane A.1. Lane D's §7 loop — rig, carry a spare, repair
mid-storm — had nowhere to pick a spare up, so wireYardActions self-skipped the
pickup and nothing in the game could put one in your hands.

world.shedTable.pos is published synchronously from constants even though the
meshes arrive later: createWorld() has to stay sync (a.test.js and the selftest
build a yard with no server), and wireYardActions reads the position at wiring
time. dress() then refines it onto Lane E's baked pickup_anchor — which moved it
5 cm off my guess at where a table top is, so it was worth reading.

dress() is async and separate from createWorld for the same reason: a fetch in
the constructor would make the selftest slow and flaky, or break it. Each load is
guarded individually, so a missing GLB leaves its graybox standing instead of
taking the boot down.

Verified by hand rather than by registration check: walk up, hold E, spare in
hand; a second hold says "hands full"; leaning on the table with E held for 6 s
deals exactly one spare (D's latch works); nothing fires from across the yard.
Selftest 169/0/0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 01:20:35 +10:00
..
data/storms Add vertical gusts, freeze debris.pieces, fix fog restore 2026-07-16 23:58:31 +10:00
js Place the shed and spare table; expose world.shedTable (unblocks Lane D) 2026-07-17 01:20:35 +10:00
models Make rake_pivot a real pivot; log Sprint 2 in THREADS 2026-07-17 00:56:15 +10:00
vendor Vendor three.js r175, add stdlib dev server and launch config 2026-07-16 21:33:42 +10:00
dev_player.html Merge all lanes; add importmap; fix /world/ absolute paths 2026-07-16 22:23:20 +10:00
dev_rigging.html Add prep-phase picking UI over RiggingSession (unblocks A step 8) 2026-07-17 00:14:34 +10:00
index.html Assemble the game: real wind, player, sail, sky and debris (gate 1) 2026-07-16 23:38:03 +10:00
selftest.html Merge all lanes; add importmap; fix /world/ absolute paths 2026-07-16 22:23:20 +10:00
weather_demo.html Expose audio state and levels 2026-07-16 21:56:22 +10:00