Game-drawn cursors for each tool; a real pointer when building (t89)

This commit is contained in:
2026-10-29 22:59:53 -04:00
parent 974e5a6272
commit 99aae0aae0
8 changed files with 176 additions and 3 deletions
+6
View File
@@ -650,3 +650,9 @@ above, including:
above 4294967295 with a nearby hint. Zero is a seed; empty means random on Generate.
The dice uses the same six-digit random rule as the initial field and refreshes the
automatic camp name while preserving a name the player typed.
- **Game cursors (t89, 2026-10-29).** Building has a small hollow arrow at the mouse,
retaining the highlighted block or drag line. The owner found a block alone odd to aim with.
Nozzle, igniter, copy/cut and paste use open crosshairs in their existing colours; the drill
keeps its light cross. Draw pointers in the game in both looks, leaving the aim point open.
Menus keep the system pointer.
+3 -2
View File
@@ -596,9 +596,9 @@ Gamepad input.
- functions: padPressed, pollPad
- variables: PAD
### src/ui/previews.js (241 lines)
### src/ui/previews.js (269 lines)
Cursor previews: shared grid helpers, air streaks and tool preview dispatch.
- functions: blockRectPx, drawGrid, previewColor, drawAirStreaks, drawReachCircle, drawPreviews, previewBlock
- functions: blockRectPx, drawGrid, previewColor, drawAirStreaks, drawReachCircle, drawPreviews, drawToolCursor, previewBlock
### src/ui/preview-drill.js (67 lines)
Drill pulse wavefronts and aiming fan. The pulses in flight: a wavefront running out from the face of the bot, fading as it goes
@@ -651,6 +651,7 @@ The frame loop and boot.
- `test/t_conveyors.js`: Screw conveyors that never carry liquid (it flows through), screw and belt throughput, filters.
- `test/t_corner_seal.js`: Corner-touching square walls seal loose grains without changing free piles or worldgen.
- `test/t_cursor.js`: Ore identification, cached connected veins, ping timing, settings and label lifetime.
- `test/t_cursors.py`: t89: exact mouse pointers, open aim centres, menus and both-look cursor captures.
- `test/t_dev_console.js`: Dev command validation, discovery, build costs, runtime controls and save metadata.
- `test/t_dev_console.py`: Dev console confirmation, keyboard isolation, HUD, time controls and saved badge.
- `test/t_diag_screws.js`: Diagonal screws: sealed four-lane corner transfers, bars, joins and persistence.
+4
View File
@@ -94,6 +94,10 @@ screenshots go to `shots/t72-{retrace,escape,open}.png`.
## Browser tests
- `python3 test/t_cursors.py` checks t89: open pointer centres at the exact mouse position,
both looks, building and selection drags, distant nozzle blowing, zoom 2/12, canvas scaling,
menus and gamepad suppression. Captures each tool/mode as `shots/t89-{pixel,smooth}-*.png`.
- `python3 test/t_seed.py` checks the new-world seed field: typed and pasted text,
real text dragging, clamping at 4294967295, zero and empty seeds, keyboard dice
activation, automatic/custom names and real generation with seed zero. Both-look
+13
View File
@@ -4,6 +4,19 @@ 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-29: t89 custom game cursors (Codex)
- Finished interrupted work: hollow build arrow at the exact mouse, open coloured crosses for
nozzle/igniter/copy/cut/paste, existing drill cross, and native pointer on paused canvas.
- Files: src/ui/previews.js, src/styles/style.css, test/{t_cursors.py,run_all.py},
docs/{DESIGN,TESTING,PROJECT_MAP}.md, tasks/t89* and this log. Map regenerated.
- All 41 headless suites, 29 focused t_cursors.py checks and pixel test/play.py pass;
no page/console errors. Isolated pre-change build fails the cursor check as expected.
Browser tests needed host GPU access after sandbox world startup timed out.
- Inspected shots/t89-{pixel,smooth}-{drill,nozzle,build,igniter,copy,cut,paste}.png and
extra drag/blow/zoom/menu shots: open aim centres, clear arrow and retained previews.
No simulation/worldgen changes; full browser suite not run. Ready for owner review.
## 2026-10-29: t100 new-world seed controls (Codex)
- Added a labeled dice button and shared seed parsing/random rule; ignore non-digits,