-
Notifications
You must be signed in to change notification settings - Fork 0
PR_26179_CHARLIE_032-sprites-shape-tools #268
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| # PR_26179_CHARLIE_032-sprites-shape-tools | ||
|
|
||
| Team: CHARLIE | ||
|
|
||
| Mode: Batch governance stacked feature workflow | ||
|
|
||
| Base branch: PR_26179_CHARLIE_031-sprites-picker-zoom | ||
|
|
||
| Branch: PR_26179_CHARLIE_032-sprites-shape-tools | ||
|
|
||
| ## Summary | ||
|
|
||
| Implemented simple pixel-art shape tools for Sprite Creator. Line, Rectangle, and Circle now use a two-click start/end interaction and write only to the unsaved page-session editor draft. Move remains disabled/deferred. No persistence, database, API, schema, browser-owned authoritative product data, or start_of_day files were changed. | ||
|
|
||
| ## Branch Validation | ||
|
|
||
| PASS | ||
|
|
||
| - Built on the previous stacked Sprite branch. | ||
| - Scope stayed limited to shape tools. | ||
| - Move remains disabled/deferred. | ||
| - No DB/API/schema changes. | ||
| - No product save/load or authoritative browser-owned product data was added. | ||
| - No stale PR #219-#228 code was copied. | ||
| - ZIP package created at the user-requested batch path. | ||
|
|
||
| ## Requirement Checklist | ||
|
|
||
| PASS - Line tool implemented with simple pixel-art behavior. | ||
|
|
||
| PASS - Rectangle tool implemented with outline behavior. | ||
|
|
||
| PASS - Circle tool implemented with outline behavior. | ||
|
|
||
| PASS - Shape tools use unsaved page-session editor state only. | ||
|
|
||
| PASS - No persistence added. | ||
|
|
||
| PASS - No DB/API/schema changes. | ||
|
|
||
| PASS - No start_of_day changes. | ||
|
|
||
| PASS - Targeted Playwright coverage updated. | ||
|
|
||
| ## Validation Lane | ||
|
|
||
| PASS - `node --check assets/toolbox/sprites/js/index.js` | ||
|
|
||
| PASS - `node --check dev/tests/playwright/tools/SpritesToolShell.spec.mjs` | ||
|
|
||
| PASS - `git diff --check -- toolbox/sprites/index.html assets/toolbox/sprites/js/index.js dev/tests/playwright/tools/SpritesToolShell.spec.mjs` | ||
|
|
||
| PASS - Runtime guard scan found no prohibited inline style/script/event-handler or stale placeholder text in touched runtime files. | ||
|
|
||
| PASS - `npx playwright test dev/tests/playwright/tools/SpritesToolShell.spec.mjs --workers=1 --reporter=list` | ||
|
|
||
| ## Manual Validation Notes | ||
|
|
||
| 1. Open `toolbox/sprites/index.html`. | ||
| 2. Select Line, click a start pixel, then click an end pixel. | ||
| 3. Confirm a straight pixel-art line appears in the unsaved draft. | ||
| 4. Clear the canvas. | ||
| 5. Select Rectangle, click opposite corners, and confirm an outline appears. | ||
| 6. Clear the canvas. | ||
| 7. Select Circle, click a center pixel, then click a radius pixel. | ||
| 8. Confirm a simple pixel-art circle outline appears. | ||
| 9. Confirm no save, API, database, or product persistence workflow is introduced. | ||
|
|
||
| ## ZIP | ||
|
|
||
| `dev/workspace/zip/PR_26179_CHARLIE_032-sprites-shape-tools_delta.zip` | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The repo-level AGENTS.md Packaging section requires every BUILD artifact at Useful? React with 👍 / 👎. |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,6 @@ | ||
| assets/theme-v2/css/gamefoundrystudio.css | ||
| assets/toolbox/sprites/js/index.js | ||
| dev/tests/playwright/tools/SpritesToolShell.spec.mjs | ||
| docs_build/dev/reports/PR_26179_CHARLIE_031-sprites-picker-zoom.md | ||
| docs_build/dev/reports/PR_26179_CHARLIE_032-sprites-shape-tools.md | ||
| docs_build/dev/reports/codex_changed_files.txt | ||
| docs_build/dev/reports/codex_review.diff | ||
| toolbox/sprites/index.html |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the circle end pixel is diagonal from the start by more than one cell, this Chebyshev radius does not match the Euclidean perimeter test below, so the user-selected end pixel is often not painted at all (for example, center
(5,5)and end(7,7)gives radius2, but that endpoint is distance2.83and fails the<= 0.6threshold). Since the tool asks users to choose a start and end pixel for the circle, diagonal radius clicks produce a circle that does not pass through the chosen endpoint; derive the radius consistently with the perimeter test or explicitly rasterize through the selected end.Useful? React with 👍 / 👎.