- Tubes run in eight directions: a drag at about 45° lays a diagonal run, R cycles all eight.
- Diagonal runs carry grains at the straight rate (120 grains/s), join straight tubes and belts,
keep grains in at the corners, pass water, and carry bars level.
- New part ids 11-14 (saved ids are never renumbered); tube checks use an IS_TUBE table.
- New test/t_diag_tubes.js (85 checks).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- New Sloped wall piece: a half-block triangle in any wall material, at half a wall's cost.
Dragging walls or slopes at about 45° lays a diagonal line; the drag picks the slope's
orientation and T flips or turns it.
- Each slope fills one cell past its corner, so a diagonal run is sealed against grains and water.
- New test/t_slopes.js: a slope funnel passes 400/400 sand (square steps 379/400).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Smooth look: natural ground gets a soft seam where loose grains meet it; packed grains keep a
pebble texture and are slightly lighter. Pixel look and thermal lens: the same idea per pixel.
- play.py: the F-on-a-mold toast check records toasts the key press makes instead of counting
the ones on screen, which failed when an older toast expired at the same moment.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- One helper each for wall and mold refunds, tube edges and lanes, pipe text, piece dimensions,
font lookup, reach circles and surface averaging.
- previews, smooth, notebook, materials, worldgen and selection split into topic files
(preview-drill, preview-selection, smooth-shaders, notebook-market, notebook-blueprints,
material-tables, worldgen-helpers, selection-pickers, selection-panels).
- Every suite's output identical apart from timings; seeds make the same worlds.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>