Lakes no longer pour water to a guessed lip and repair it afterwards. Each lake lowers the land
in the nearest valley with a smoothstep bowl, and water fills it to its spill level (the lower of
the highest ground on each side, Priority-Flood in one dimension), so it is flat and contained by
construction. Clay beds, no caves or loose pockets close under lakes, trees kept off the shore.
Removes the levelling pass, the lower-rim lip and the bank-slope cap.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cj2RPXdPykKMEz5BXXczsj
Digging basins to the lower rim left a 9-18 grain vertical cliff on each lake's high side
(owner screenshots, seed 766733). From each edge inward the ground now falls at most 0.7 grains
a column and is never raised above the natural surface. New no-cliff check in t_lakes.js;
world hashes re-baselined (shallow ore: 2 cells changed, on a lake bank).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
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>
Written by the local model (qwen3-coder-30b) in a sandboxed worktree via local-run; reviewed by Claude.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Written by the local model (qwen3-coder-30b) in a sandboxed worktree via local-run; reviewed by Claude.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Written by the local model (qwen3-coder-30b) in a sandboxed worktree via local-run; reviewed by Claude.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Belts, filters, screw conveyors, shafts and pipe pieces never fill a rectangle;
a diagonal belt drag stays sloped with Shift held.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Stickiness gated every diagonal step, so clay lumps, snow, wood chunks,
ash and dirt crawled down sloped walls (a clay grain never got down a
20-piece slope). It now applies only grain against grain: a grain
resting on anything built always tries its diagonal step, so chutes
carry every material while heaps keep their shape. The random draw is
unchanged, so generated worlds stay the same.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>