From 50dd1c18a470d9bc1e51f5722b068a8e5fbe6a2f Mon Sep 17 00:00:00 2001 From: meleki Date: Sat, 3 Oct 2026 21:01:34 +0200 Subject: [PATCH] Zoom transition and General settings (#309) The wheel and Fit now show the zoom as a short transition. The time is set under Menu > General settings and kept in the browser. - Concepts: the transition, the new menu entry and what ends it. - Keyboard: the wheel and Fit animate the change of zoom. - Architecture: viewTween.ts with tweenView and the ViewTween driver. - Development: e2e sum 1735. --- Architecture.md | 5 +++++ Concepts.md | 13 +++++++++++-- Development.md | 2 +- Keyboard.md | 1 + 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Architecture.md b/Architecture.md index 8461e00..feb0f95 100644 --- a/Architecture.md +++ b/Architecture.md @@ -214,6 +214,11 @@ src/editor/ App → Editor (layout + ticker), PlaySession (the run), ReleaseDialog + releases (the link behind "Release…", what the dialog says and warns about, #266), ProjectSettingsDialog + settingsChanges (name, the start-scene switch and the collision layers in one dialog; the pure rule of what Apply has to carry out), + GeneralSettingsDialog + generalSettings (#309: what the editor does for the person at + the screen, one entry in `localStorage`), viewTween (#309: a wheel step or Fit as a + transition; `tweenView` is the way between two views as a pure function, `ViewTween` + drives it on the ticker, and each zoomable surface hands it reading, writing and + drawing its own view), EditorRun (run in editor), state, actions (what several places do alike: `removeSelection` is Delete for every kind of selection, one case each, `removeShapes` the shapes of a vector art), shortcuts, clipboard (#240: copy and paste of diff --git a/Concepts.md b/Concepts.md index b616a6e..dd6c9af 100644 --- a/Concepts.md +++ b/Concepts.md @@ -204,7 +204,9 @@ out lives in the menu now: the project list in *Open project…*, the project na **start-scene switch** (*Start scene* / *Active scene*, see **Start scene**), the **While playing** preset (see above), the **Link zoom** of the released game (see above), the **symbol scale** of the scene view's icons (see [Scene editing](Scene-editing)), the collision layers and the -render layers in *Project settings…*. A project is deleted in *Open project…*: **Delete** asks first, and Cancel, Esc +render layers in *Project settings…*. What is about the person at the screen rather than the +project is in *General settings…* (#309), kept in this browser and the same in every project: the +**zoom transition** (see below). A project is deleted in *Open project…*: **Delete** asks first, and Cancel, Esc and the deletion itself all lead back to the project list. The active scene is picked where the scenes are — by double-clicking one in the **Assets** panel. The **Assets** panel's `+` creates an asset and opens its tab; its menu lists the types in two alphabetical groups, first what can be placed into a scene, then what only lives in the library @@ -308,7 +310,14 @@ one kind can be open at once — two textures, three behaviors — each with its project already. Closing the tab on screen shows its left neighbour (the right one when it was first), the Scene tab when none is left. Deleting an asset closes its tab. - Each document keeps its **zoom and scroll** for the session: switch between two textures and - both are where you left them. Following a call node into another behavior stays in the same + both are where you left them. +- A wheel step and **Fit** are shown as a short **zoom transition** (#309) wherever the editor + zooms: the Scene and Container tabs, the Texture, Curve, Pixel art and Vector art tabs, the + Animation tab's preview and timeline, the graph, the Tile tab's board and a plugin's node board. + How long it takes is set in *Menu → General settings…* in milliseconds, 200 by default; 0 jumps + at once. The steps are the same as without it: quick wheel steps add up to exactly as many + steps, and the point under the pointer stays under it all the way. A pan, another document or a + new size of the view ends the transition on the step it was heading for. Following a call node into another behavior stays in the same tab, and the breadcrumb stays with that tab. - Open tabs are not remembered: a loaded project starts on the Scene tab. - Tabs are drawn as **index cards** (#176): the one showing is a light grey card with rounded upper diff --git a/Development.md b/Development.md index 00d1bcd..0dcc153 100644 --- a/Development.md +++ b/Development.md @@ -18,7 +18,7 @@ php tests/php/accounts.test.php # the API's accoun # has and the web server's container has not (SKIP there) php tests/php/snapshots.test.php # the snapshot store (#231), the same way php tests/php/releases.test.php # the release store (#266), the same way -node tools/seed-e2e.mjs && node tools/e2e.mjs # 1732 editor checks, screenshots in /tmp/gm-e2e-*.png +node tools/seed-e2e.mjs && node tools/e2e.mjs # 1735 editor checks, screenshots in /tmp/gm-e2e-*.png GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step ./e2e.sh start [GM_STEPS] # the same run detached, see below ./e2e.sh status # live progress, or the last run's result diff --git a/Keyboard.md b/Keyboard.md index 9622ac0..69f2e3b 100644 --- a/Keyboard.md +++ b/Keyboard.md @@ -18,5 +18,6 @@ and every tab), the value itself is kept at that precision — fields that are i milliseconds, the index and count ports of list and text nodes) set `NumberField`'s `decimals: 0` and round to whole numbers · viewport: wheel zooms in whole steps (1/8, 1/4, 1/2, then 1 to 6, 8, 12, 16, 24 screen pixels per world pixel; see [Scene editing](Scene-editing)), +each step shown as a short transition (see *The tab row* in [Concepts](Concepts)), middle-drag or `Shift`+drag pans, drag on empty space rubber-bands, `Ctrl`/`Shift`-click toggles an object in the selection (hierarchy rows too) · tilemap panel: holding `Alt` switches to Pick — a click takes that cell's tile from the active layer — and releasing it brings back the tool before ([Tilemaps](Tilemaps)) · Vector art tab: `Alt`-click a point to make it symmetric and straight again, `Esc` ends the line the Pen is drawing, `Delete` removes the selected shapes, picked on the canvas or in the list, and on the frame round the selection `Shift` keeps the proportions while a square is pulled, `Alt` scales about the middle and `Shift` on the knob turns in steps of 15 degrees ([Vector art](Vector-Art#scaling-turning-and-mirroring)) · wherever points are edited (Curve tab, Vector art tab, a polygon collider in the scene view, a frame's collision outline in the Texture tab): a double-click on the line puts a point there, a click picks one, and with a point picked `Delete` takes that point instead of the selection; a right-click on a point opens its menu.