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>
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>
- 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>
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>
The hint and Clear button were inside the scrolling bag list, so a long
Ctrl list scrolled them away. They now sit in a footer under the list, and
Clear is a full-width, highlighted "Clear selection" button.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blowing out the last of a selected material removes it from the selection,
so an emptied selection picks up what you click again. Ctrl + wheel never
zooms the page and scrolls the bag list under the mouse. A bag click while
Ctrl is held adds to the selection even if the click lacks the Ctrl flag.
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>
Ctrl (replace) + W (fly) hits the browser's close-tab shortcut, which a page
cannot block. A beforeunload prompt now catches it. Autosave on hiding the
tab no longer depends on the audio context.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The short description row became a status row for the selected piece
(variant, Replace, ghosts, messages). Gamepad shows the selected tile's popup.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bars no longer get thrown up into the furnace, and F is no longer needed to
collect them. Blocked bars wait in the trough; the short stub stays for the
next firing; F is optional upkeep (clean, chip slag, rake).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>