Level lakes at the end of world generation, keeping their water (t96)

Volume-preserving levelling pass for water bodies of 50+ cells; the dock foundation is placed
first so it cannot erase levelled water. Seed hashes re-baselined (water and air only).
Started by Codex, finished and reviewed by Claude after Codex hit its usage limit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-29 19:28:23 -04:00
co-authored by Claude Opus 5.5
parent 75d4e8ee4e
commit ae78756fa2
10 changed files with 227 additions and 50 deletions
+8 -3
View File
@@ -76,9 +76,14 @@ The conveyor fixture uses a wider feed pile, the screen fixture warms longer, an
checks waking within eight ticks separately from the probabilistic consumption of fuel.
`test/t_lakes.js` pins SHA-256 over raw `mat` followed by Float32 `temp` bytes for seeds
7, 42 and 424242 at 2048x1024. These hashes predate t96 and must not be re-baselined for a
wake/background-tree change. It also checks generated tree bases, startup wakes, and the
seed-7 lake leveling within two grains after 6,000 undisturbed ticks, fresh and reloaded.
7, 42 and 424242 at 2048x1024. t96 round 2 re-baselines only for the lake-levelling pass;
`t_corner_seal.js` also pins three smaller worlds with the same intentional change. The lake
suite checks all five seeds (also 2 and 1): surface pools wider than 20 grains start within
one grain of level and stay so after 600 ticks, exact WATER count from the pre-pass 0.99
progress callback, dry tree bases and startup wakes. Small fixtures cover solid/powder rims,
volume, centered partial rows, the 50-grain cutoff and diagonal separation.
`python3 test/t_lakes.py` checks pixel startup and fresh/reloaded lakes after 600 ticks with
two browser helpers and no page errors; `shots/t96-level.png` shows the untouched new lake.
`test/t_bot_rescue.js` covers deep basalt burial, nearest/upward and diagonal nudges,
unexplored-pocket rejection, newest open trail points, ring wrap/load reset, bounded searches,