Lakes fill only to their lower rim and keep clear of spawn and the dock (t96)

The lake lip was Math.min(surfY), the highest ground (y grows downward), so water was poured
above the lower rim and, once levelled, ran up to the trade dock on 4 of 12 seeds. The lip is
now the lower rim edge minus one, and each lake stays 80 grains from spawn. Seed hashes and
the shallow-ore hash re-baselined (changes only under lake basins); golden fixtures also
freeze surfY/dirtY/AMB from the previous generator.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-29 19:45:51 -04:00
co-authored by Claude Opus 5.5
parent ae78756fa2
commit 80668a4baf
10 changed files with 41 additions and 13 deletions
+12
View File
@@ -4,6 +4,18 @@ What agents have done, newest first. Add an entry for every piece of work: the d
note or request it was for, what changed, the files touched, the tests run, and anything left
open or not verified. Keep each entry short; the git history has the details.
## 2026-10-29: t96 round 3, lakes fill to their lower rim (Claude)
- Owner chose option 2. src/sim/worldgen.js: lake `lip` is the lower rim edge minus one (was
the highest ground in the basin), and lake half-width is capped to keep 80 grains from spawn
and the dock. Same random draws. Lakes are smaller and stay off the dock (seeds 5/6/7/42 used to
reach it).
- Tests: t_lakes.js adds seeds 5 and 6 and a dock-clearance check (fails on the old generator for
7/42/5/6); hashes re-baselined in t_lakes.js, t_corner_seal.js and t_world.js (shallow ore:
414 of 28,291 cells changed, all under the two new lake basins). t_lakes.py width threshold
300 -> 150. Golden fixtures now also freeze surfY/dirtY/AMB from the previous generator.
- Full `run_all.py --browser`: see the commit; t_smooth.py is the known flake (t99).
## 2026-10-29: t96 round 2 — level lakes during generation (Codex)
- Level 50+ grain water bodies with typed-array flood fills, exact volume and centered partial