Describe each account's folder of uploaded files (#344)
Uploaded images, fonts and sounds now belong to the account that
uploaded them, and the pickers can delete them.
- API: a new section Uploaded files belong to an account, with the
folder in the file name, who sees what, and DELETE with 403/409.
- Textures: the Delete button in the picker and when it refuses.
- Fonts, Sounds, Home: file names carry the account's folder.
- Development: the PHP test files.test.php and 1850 checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nine-slice and sort line on pixel art and vector art (#308)
Both settings used to belong to the texture frame alone. Now a pixel
art or vector art asset carries them too, so the pages say so.
- Textures, Pixel-Art, Vector-Art: a section "Nine-slice and sort
line" each. The drawing tabs show the lines but do not drag them.
- Architecture: PictureCut, cutTarget.ts and cutSection.ts.
- Development: e2e sum 1732.
Document admin-only deletes, file modes and Esc as Cancel (#85)
Brings the pages in line with refactoring round 8 of the code.
- API: deleting an image, font or sound is for administrators only, a
bad upload answers 422, private files are 0640 and the web server
answers 403 for them, and saves take turns on a lock file. The line
that said there was no authentication yet is gone.
- Home: the "Not yet" list named several scenes in one run, auth and
graph comments and groups, which all exist.
- Concepts, Keyboard, Vector art: Escape on a question is its Cancel,
deleting a project leads back to the picker, and Delete removes
shapes picked in the list.
- Architecture: AtomicFile, routeFiles, HashedFileStore, the lock
file, removeSelection and removeShapes, objectName and groupName,
and the Escape of a Dialog.
- Development: the check sum, and the race check in
accounts.test.php needs pcntl.
- Eight pages lose the 38 characters Gitea flagged as ambiguous, and
quoted labels follow the editor's American spelling.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Textures gets a paragraph on the preload: every picture, font and
pixel art cel of the project is requested when it opens or changes.
Development moves the check count to 1423.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Textures: new section "Generate collision..." with the dialog rows
and how the outline is traced.
- Architecture: traceCollision and GenerateCollisionDialog.
- Development: check sum 1202 (computed).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Colliders: the shape "Frame collision", how it is measured and
when it turns red.
- Physics, Tiles, Tilemaps: friction and bounciness on a tile, and
why cells of different surfaces never merge.
- Textures: an outline drawn on a frame can serve as a collider.
- Architecture: frameOutline.ts and the surface grouping.
- Development: check sum 1198.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The feature was documented in pieces - Textures carried the generated
picture, Architecture the modules, Keyboard the tab. Someone who wants
to draw something had to collect it. Vector Art is now one page that
reads from the first click to the finished sprite.
- The new page covers the asset and its canvas, the two tools, what a
handle does, how rings make a hole, the shape list with its order,
and the limits that are their own issues (#186, #187, #188, #189).
- Sidebar and Home carry the page, so it is reachable and not only
linkable.
- Textures and Tiles point at it where they mention a drawn picture,
instead of describing it a second time in their own words.
Tests:
node tools/e2e.mjs (all modules) ALL PASSED - 1184 checks
Development carries that number.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Vector art is drawn into a picture (#129, stage 2): Textures says that a drawn picture is rasterized at twice the canvas resolution and that the canvas is the frame - what juts out over it is not in the picture; Architecture names vectorart, core/model/vectorPath and viewport/vectorArtPicture; Development carries the check sum 1165
A picture may be drawn instead of uploaded (#185): Textures gains the section on the contract - a drawn asset resolves through the same picture path as a texture, with the two differences that it has no frames and is not stored, being redrawn from the asset; Architecture lists core/model/generated and viewport/generatedPictures
Collision outlines for autotiles: several outlines per frame in Textures, outlined autotiles in Tilemaps and Tiles, Architecture and Development updated, check total 1068 (#141)
Physics stage 2: capsule and polygon shapes in Colliders, collision outline per frame in Textures, outlined tiles in Tilemaps and Tiles, Physics, Architecture and Development updated, check total 1067 (#151, #141)
API: name on both listings and both uploads, and what the server does to it.
Textures and Fonts: tiles and rows are captioned by name, and an asset made
in the picker is named after the file. Architecture: the api/ line names the
libraries. Development: 780 editor checks.