Pneumatic nozzle: air streaks while sucking and blowing (t25)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -235,6 +235,12 @@ above, including:
|
||||
the bag; Ctrl+click a bag name adds it to the blow mix and Ctrl+right-click to pick-up; the menu
|
||||
is one line per material because the first version was too large.
|
||||
|
||||
- **Air streaks for the nozzle (t25, 2026-10-24).** On top of the grains that fly in and out, the
|
||||
owner chose air streaks: while sucking, short teal streaks swirl in toward the ring; while
|
||||
blowing, amber streaks run from the bot to the cursor and spread to the brush width. Drawn only
|
||||
(time-based, no random numbers, so the simulation is unchanged), only in reach, and off with
|
||||
"Sparks and debris" or in unexplored fog.
|
||||
|
||||
- **The Vacuum is the Pneumatic nozzle (t26, 2026-10-24).** The owner's choice of name, since the
|
||||
tool blows as much as it sucks. It shows as the tool card's title row, with the nozzle width as a
|
||||
chip, and in the hotbar tooltip and all player text ("the nozzle" after the first mention). Code
|
||||
|
||||
+5
-5
@@ -366,8 +366,8 @@ 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 (67 lines)
|
||||
Game shell (src/ui/): browser only. This file: settings, the GAME state object, DOM helpers, toasts and the status line.
|
||||
### src/ui/state.js (75 lines)
|
||||
Game shell (src/ui/): browser only. This file: settings, the GAME state object, DOM helpers, toasts and tool status.
|
||||
- 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 (243 lines)
|
||||
### src/ui/selection.js (242 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
|
||||
@@ -428,9 +428,9 @@ Gamepad input.
|
||||
- functions: padPressed, pollPad
|
||||
- variables: PAD
|
||||
|
||||
### src/ui/previews.js (334 lines)
|
||||
### src/ui/previews.js (371 lines)
|
||||
Previews drawn under the cursor: build ghosts, drill aim and pulses, selections, paste.
|
||||
- functions: blockRectPx, drawGrid, previewColor, crackSeg, drawCracks, pulseRGB, fanPoints, drawDrillPulses, drawDrillAim, drawPreviews, drawTag, drawSelection, drawPastePreview
|
||||
- functions: blockRectPx, drawGrid, previewColor, crackSeg, drawCracks, pulseRGB, fanPoints, drawDrillPulses, drawDrillAim, drawAirStreaks, drawPreviews, drawTag, drawSelection, drawPastePreview
|
||||
- variables: CRACK_N, CRACK_LV, SEL_COL
|
||||
|
||||
### src/ui/events.js (42 lines)
|
||||
|
||||
@@ -4,6 +4,15 @@ 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: t25: air streaks for the Pneumatic nozzle (Claude Code, Codex)
|
||||
|
||||
- `drawAirStreaks` in `src/ui/previews.js`: 12 teal streaks spiral into the ring while sucking, 10
|
||||
amber streaks run from the nozzle to the cursor in a cone while blowing. `performance.now()`
|
||||
only, no `rnd()`; skipped with particles off or in fog. `test/play.py`: drawing both doesn't
|
||||
change the sim RNG. Also commits the `docs/PROJECT_MAP.md` refresh missed in t27/t26.
|
||||
- Tests: `run_all.py --browser` passed (play.py 240; t_smooth's half-resolution flake at load 9
|
||||
passed on rerun). Screenshots `shots/t25-{suck,blow}.png`.
|
||||
|
||||
## 2026-10-24: t26: the Vacuum is renamed the Pneumatic nozzle (Claude Code, Codex)
|
||||
|
||||
- `TOOLS[1].name`, a title row in the tool card ("Pneumatic nozzle" plus a `width N` chip, moved
|
||||
|
||||
Reference in New Issue
Block a user