Vacuum: one selection for pick-up and blow, full list while Ctrl is held (t20)

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>
This commit is contained in:
2026-10-24 13:57:43 -04:00
co-authored by Claude Opus 5.5
parent 51bdd00a9f
commit cd483dd546
18 changed files with 140 additions and 70 deletions
+11
View File
@@ -4,6 +4,17 @@ What agents have done, newest first. Add an entry for every piece of work: the d
note or request it was for, what changed, the files touched, the tests run, and anything left
open or not verified. Keep each entry short; the git history has the details.
## 2026-10-24: t20 follow-up: one selection, full list while Ctrl is held (Claude Code, Codex)
- `GAME.blow` is now the selection for picking up and blowing out (`vacFilter` -2 = the selection).
`blowList()` returns only selected materials in the bag; no pruning, no auto-select. `GAME.ctrl`
(input.js) makes `renderBag` add a "Not in bag" section of every `seen` material the vacuum can
take; selected but empty materials always show there. Clear button, click-the-only-row, gamepad B.
- Files: `src/ui/{actions,selection,hud,input,state,gamepad,previews,notebook,session}.js`,
`src/sim/{vacuum,progress}.js`, `src/styles/style.css`, `test/play.py`, `test/t_basics.js`.
- Tests: `run_all.py --browser` passed (play.py 226) except `t_smooth` half-resolution at load 8.4,
which passed on rerun. Screenshots `shots/t20b-{noctrl,ctrl,ctrl-900}.png`.
## 2026-10-24: t20: pick up what you click, blow out what's in hand (Claude Code, Codex)
- After discussing options with the owner: one Vacuum, a drag locks onto the material it starts on