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:
@@ -243,6 +243,13 @@ above, including:
|
||||
the hand (this settles the old t18 question), and an empty hand blows nothing and says so.
|
||||
Picking something up fills an empty hand, never a chosen one. One tool, no menu; R and F do
|
||||
nothing special with the Vacuum. The owner mostly uses it to collect ore and fuel and feed furnaces.
|
||||
Follow-up the same day: the hand became **one selection for both** picking up and blowing out,
|
||||
because there was no way to choose several materials to pick up, or ones not in the bag yet. With
|
||||
anything selected, a drag takes only the selection wherever it starts; with nothing selected it
|
||||
takes what you click. Holding Ctrl lists every material found so far below a "Not in bag" divider
|
||||
(no menu). Selected materials stay selected when they run out, and picking up never selects
|
||||
anything (both reverse the first t20 version). Clear: a button in the bag, clicking the only
|
||||
selected row, or gamepad B.
|
||||
|
||||
- **Fog of war also reveals the ground around the bot (t17, 2026-10-24).** About 20 grains in every
|
||||
direction, through rock, fully clear with a soft edge. Line of sight alone hid everything inside
|
||||
|
||||
+3
-3
@@ -366,7 +366,7 @@ Audio: chiptune effects and generative music that changes with depth. Everything
|
||||
- functions: auInit, auVolumes, rateOk, tone, noiseBurst, sfxPlace, playSfx, auAmbient, mtof, zoneForDepth, scaleNote, musicScheduler
|
||||
- variables: AU, SFX, SFX_NEAR, SFX_FAR, ZONES
|
||||
|
||||
### src/ui/state.js (66 lines)
|
||||
### src/ui/state.js (67 lines)
|
||||
Game shell (src/ui/): browser only. This file: settings, the GAME state object, DOM helpers, toasts and the status line.
|
||||
- functions: loadSettings, saveSettings, el, esc, rgbOf, fmtT, toast, setStatus
|
||||
- variables: SET_DEFAULT, SET, TOOLS, ICONS, BAG_ORDER, GAME, keys, hudDirty, $
|
||||
@@ -404,7 +404,7 @@ The build menu along the bottom: categories, piece tiles and their icons.
|
||||
- functions: pieceIcon, catOf, selectBuildCat, cycleBuildCat, buildVariantChips, renderBuildBar, setupBuildBar
|
||||
- variables: BUILD_CATS, BUILD_ORDER, PIECE_ICONS, lastBuildKey, lastBuildMenu
|
||||
|
||||
### src/ui/selection.js (230 lines)
|
||||
### src/ui/selection.js (241 lines)
|
||||
The selected tool and piece: R / Q / E, drill width, filter picker, the selection card, the bag panel.
|
||||
- functions: pieceUsesWall, setDrillWidth, tuneUnderCursor, cycleItem, cycleWall, rotate, toggleBlow, pickFilterUnderCursor, toggleFilterMat, setBrush, pieceV, pieceExtra, filterChoices, matList, filterParts, filterSentence, applyFilterRun, openFilterPicker, openWallPicker, filterBlockAt, chipCost, pieceCostNow, renderSelCard, renderBag
|
||||
- variables: lastBagKey
|
||||
@@ -413,7 +413,7 @@ The selected tool and piece: R / Q / E, drill width, filter picker, the selectio
|
||||
Discovery cards, hover info (I) and the cursor label.
|
||||
- functions: showCard, howText, discoveryCard, reactionsOf, hoverInfo, renderInfo, drawCursorLabel
|
||||
|
||||
### src/ui/input.js (79 lines)
|
||||
### src/ui/input.js (80 lines)
|
||||
Keyboard and mouse listeners.
|
||||
- functions: isTyping
|
||||
- variables: canvas
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user