Vacuum menu on F replaces the pick-up modes (t16)

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>
This commit is contained in:
2026-10-24 02:28:56 -04:00
co-authored by Claude Opus 5.5
parent 6d2fe2fdf6
commit 95b5eeb99d
17 changed files with 177 additions and 125 deletions
+8 -3
View File
@@ -43,7 +43,7 @@ decides something new, add it under "Decisions" with the date.
## The core loop
1. Dig with the resonance drill. Rock shatters into loose grains: rubble, ore, coal, clay, sand.
2. Vacuum up what you want (mark materials with ⬇ to take only those), and blow it out where you need it.
2. Vacuum up what you want (mark materials in the vacuum menu, F, to take only those), and blow it out where you need it.
3. Build a furnace from wall blocks, with a grate floor over a mold. Charge it with ore and coal,
light it, and let the molten metal run into the mold.
4. Bars drop out of the bottom of the mold; collect them and sell them at the trade dock, or fill buyers' orders, which pay more.
@@ -127,8 +127,8 @@ above, including:
- **Holding Ctrl** while placing replaces what is built there (moved to G on 2026-10-23).
- **Fans melt like copper (1085°C).** Put the fan outside the furnace, blowing in through a grate.
The game warns when a fan gets close to melting.
- **The vacuum takes only marked materials** in Only marked mode, even if the drag starts on
something else. The t6 controls below replace the shared ticks.
- **The vacuum takes only marked materials** once any are marked, even if the drag starts on
something else. The t6 controls below replace the shared ticks; t16 replaces t6's modes.
- **The Refiner** grinds stone, granite and basalt rubble, gravel, sand and dirt for trace ore,
roughly halving the waste. Ore and anything else it cannot grind drop straight through.
- **Pipes, pumps and outlets** move liquids up to 500°C, one liquid per line. A line is stored as
@@ -225,6 +225,11 @@ above, including:
As built: T or the chip cycles What I click → Only marked → Everything; adding a mark switches
to Only marked and removing the last goes back to What I click. A bag name or Q/E blows one
material; ⬆ marks build an even mix (bars are never mixed).
- **The vacuum menu replaces the modes (t16, 2026-10-24).** Pick-up has no mode: nothing marked
takes everything, anything marked takes only those, Shift takes everything for one click. F with
the Vacuum (when nothing in reach can be used) or a click on the card opens a menu with ⬇ Pick up
and ⬆ Blow toggles per material; the bag rows lose their buttons. T no longer does anything for
the vacuum. The owner found t6's version had too many modes.
## Ideas not built yet
+5 -5
View File
@@ -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 (69 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, loadCollect, el, esc, rgbOf, fmtT, toast, setStatus
- variables: SET_DEFAULT, SET, TOOLS, ICONS, BAG_ORDER, GAME, keys, hudDirty, $
@@ -404,10 +404,10 @@ 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 (263 lines)
### src/ui/selection.js (270 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, setPickMode, cyclePickMode, toggleCollect, toggleBlow, pickFilterUnderCursor, toggleFilterMat, toggleCollectUnderCursor, setBrush, pieceV, pieceExtra, filterChoices, matList, filterParts, filterSentence, applyFilterRun, openFilterPicker, openWallPicker, filterBlockAt, chipCost, pieceCostNow, renderSelCard, renderBag
- variables: PICK_MODES, PICK_LABELS, lastBagKey
- functions: pieceUsesWall, setDrillWidth, tuneUnderCursor, cycleItem, cycleWall, rotate, toggleCollect, toggleBlow, pickFilterUnderCursor, toggleFilterMat, toggleCollectUnderCursor, setBrush, pieceV, pieceExtra, filterChoices, matList, filterParts, filterSentence, applyFilterRun, openFilterPicker, openVacuumMenu, openWallPicker, filterBlockAt, chipCost, pieceCostNow, renderSelCard, renderBag
- variables: lastBagKey
### src/ui/info.js (171 lines)
Discovery cards, hover info (I) and the cursor label.
@@ -418,7 +418,7 @@ Keyboard and mouse listeners.
- functions: isTyping
- variables: canvas
### src/ui/actions.js (239 lines)
### src/ui/actions.js (233 lines)
What input does: overlays, F, pick, copy / cut / paste, undo, building and tool use each frame. Which overlays are on, shown as a coloured frame round the screen and a named badge
- functions: updateOverlayUI, toggleLens, doInteract, pickUnderCursor, aimBlock, stampOrigin, selModeHeld, startPaste, stopSelectAndPaste, plural, piecesIn, doUndo, endRmbRecord, dragDirFor, blockLabel, primaryPress, primaryRelease, secondaryPress, toolTick
- variables: ovShown
+15
View File
@@ -4,6 +4,21 @@ 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: t16 Vacuum tool rework, again (Claude Code, Codex)
- The owner: too many modes; chose an F menu with two pick-up states.
- `src/ui/selection.js`: `openVacuumMenu()` (a tile per material with ⬇ Pick up / ⬆ Blow, plus
Pick up everything and Blow one at a time); `GAME.pickMode`, `setPickMode`, `cyclePickMode`,
`GAME.vacLocked` and the 'first' locking removed. Bag rows lose ⬇/⬆ buttons (a ⬇ tag shows
marks). `actions.js`: pick-up is everything unless marked; F with the vacuum opens the menu
when nothing in reach can be used. Card chips open the menu (`build-menu.js`). T and gamepad B
no longer change vacuum modes. Text in `notebook.js`, `progress.js`, `session.js` (Welcome),
`previews.js`; CSS `.vpick`.
- `test/play.py`: mode checks replaced (no marks takes everything, marks, Shift, menu toggles,
F order, card chip, no bag buttons, menu screenshots at 1280 and 900); `test/t_basics.js` name.
- Tests: `run_all.py --browser` all pass (208 `play.py` checks). Codex ran out of credits before
its final test run; Claude fixed one check (it mutated a mold's kind) and the suction line.
## 2026-10-24: t6 Rework the vacuum/blower tool, with t15 (Claude Code, Codex)
- The owner folded t15 (a material menu for the vacuum) into t6's chosen design.