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>
Downhill runs have no cleats, so they no longer draw the sidewall or
ribs either: placed, as ghosts, or in the drag preview, which now knows
the belt's direction. Uphill runs keep the wall and ribs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Far sidewall drawn behind the load with cleat ribs at their physics
positions; sloped screens get a tinted mesh between rails and shake only
when loaded. Powder skips cleat checks outside chunks that have cleats,
and empty slopes let their chunks sleep. Record the screw conveyor and
stall/carry-depth decisions.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The magic grip is gone: cleats every 8 face cells, 6 grains tall, carry
pockets uphill (about 71 grains/s against 90 flat) and overflow rolls
back. Sloped filters always run downhill; grains travel by gravity and
a shake, and sorting stays exact. Drawing needs another pass.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Player text says Screw conveyor; code uses screw (BP_SCREW, piece id
screw, screwIntake...). No compatibility code for old saves or
blueprints. Suite outputs match before and after apart from names.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Silos show a wide fill window in the material's colour in both looks,
and the cursor label names the contents anywhere over the outline.
Aiming the drill beyond its reach keeps normal colours, marks where the
pulse stops, and drops the red circle and the out-of-reach toast.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>
With the cursor outside the reach circle, blown grains aim at the circle's edge in the cursor's
direction instead of flying all the way to the cursor, and the blow preview stops there too.
New test/t_nozzle.js and a play.py preview check.
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>
With anything selected a drag takes only the selection; with nothing
selected it takes what you click. Right click blows the selected materials
in the bag. Holding Ctrl lists every material found so far under "Not in
bag". Selections stay when materials run out; Clear button, clicking the
only selected row, or gamepad B clears.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A drag takes only the material it starts on (Shift: everything). The blow
selection is the hand: click or Q/E for one material, Ctrl+click for a mix.
Empty materials leave the hand, an empty hand blows nothing, and a pickup
fills an empty hand. Removes the pick-up marks and the F vacuum menu.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pick-up takes everything unless something is marked; F with the Vacuum
(when nothing in reach can be used) or the card chips open a menu with
pick-up and blow toggles per material. The bag rows lose their buttons.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The game as of artifact version 24, ready for local development with
coding agents.
- Source split from three large files into 52 small ones under src/sim,
src/render and src/ui, joined in the order in src/manifest.json by
build.py. The joined code is unchanged apart from comments; every
headless suite gives the same output, and screenshots in both looks
are pixel-identical to before.
- Light tidying with no change in behaviour: one movement scan loop,
shared hazard-stripe and belt shader helpers, unused code removed, a
shared check helper for the test suites.
- World files can be exported as an ordinary download outside claude.ai.
- Tests: broken old scripts removed, experiments moved to tools/,
test/run_all.py added. Tools: shot.py (repeatable screenshots),
where.py, map.py.
- Docs: AGENTS.md, CLAUDE.md, NOTES.md (the owner's to-do inbox),
docs/PROJECT_MAP.md, DESIGN.md, TESTING.md, systems notes, the
owner's requests and an agent log.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K9kLmYADKSEjuwUN3rFxDA