Asset rows: click selects, double-click or + opens the tab (#71); 717 checks
1 parent
7eac624fb1
commit
85c2a04fb6
6 files changed
+15
-10
No files matched your search
+6
-2
@@ -32,8 +32,12 @@ no movement): everything that happens is defined by behavior graphs.
|
||||
**Toolbar and panels.** The toolbar holds the **Project** menu (new project, switch project,
|
||||
*Delete this project…*), the project name (type to rename), the **Scene** picker for the active
|
||||
scene, Undo/Redo, Play/Pause, and on the right the notice line, the save status and the frame
|
||||
rate. The **Assets** panel's `+` creates an asset; right-clicking a row offers *Set as active
|
||||
scene* (double-click or `Enter` does the same), *Create sprite from texture*, *Create animation
|
||||
rate. The **Assets** panel's `+` creates an asset and opens its tab. A click on a row only
|
||||
selects (the inspector shows it, no tab moves); a **double-click** opens the tab the asset lives
|
||||
in — Scene, Behavior, State machine, Shader, Texture, Animation or Container — and on a scene
|
||||
also makes it the active one. `Enter` does the same once the list has keyboard focus (`Tab`).
|
||||
A sprite, camera, text or collider has no tab of its own, so a double-click on one does nothing.
|
||||
Right-clicking a row offers *Set as active scene*, *Create sprite from texture*, *Create animation
|
||||
from texture* and *Delete…*. In
|
||||
**Scene objects** it offers *Select asset*, *Add collider*, *Create container*, *Unpack
|
||||
container*, *Unparent*, *Expand all* / *Collapse all* and *Remove*.
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ Like the Behavior tab it follows the selection without being bound to it — the
|
||||
its placed copies or one of its template objects shows it, anything else leaves the tab on what you
|
||||
were editing, and only a deleted container makes it fall back to another one. Selecting a template
|
||||
*object* also switches to the tab, the rule a graph node and a texture frame already follow: it
|
||||
exists in no other view. Selecting the asset itself does not.
|
||||
exists in no other view. Selecting the asset itself does not; double-clicking it does.
|
||||
|
||||
Placing a container anywhere creates **one** object. Its content is never copied: `resolveObjects`
|
||||
(`src/core/model/instance.ts`) weaves the template in whenever the holder is read, one level per
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ npm run check # typecheck + lint + format:check + tests, the gate CI runs
|
||||
# code is lost (tail's is reported), so a red run reads as green
|
||||
npm run build # writes dist/ and regenerates index.html
|
||||
./build.sh # the same under `set -o pipefail`, for callers that pipe the output
|
||||
node tools/seed-e2e.mjs && node tools/e2e.mjs # 703 editor checks, screenshots in /tmp/gm-e2e-*.png
|
||||
node tools/seed-e2e.mjs && node tools/e2e.mjs # 717 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
|
||||
@@ -150,4 +150,4 @@ widths to find click points. The **render device is not in this repo** — `/dev
|
||||
and a 1 GB `/dev/shm` come from `container.options` in the runner's own `config.yaml`, which
|
||||
applies to every job on that runner. Without them chromium falls back to llvmpipe, which gets
|
||||
WebGL 1.0 only. Measured in the job container: `ANGLE (Intel, Vulkan 1.3.230, HD Graphics 630)`,
|
||||
WebGL 2.0, and the same 703 checks as here.
|
||||
WebGL 2.0, and the same 717 checks as here.
|
||||
+2
-2
@@ -6,8 +6,8 @@ be refused, which today means a container that would end up inside itself (`plac
|
||||
`src/core/model/placement.ts` — the same function the command runs, so the preview cannot promise
|
||||
a placement the drop then denies). Picking a container up selects it, but the Container tab does
|
||||
*not* follow that while a drag is in flight: the target must not swap out from under the pointer.
|
||||
Dragging is the only way to place: a double-click on a scene makes it the active one, on anything
|
||||
else it does nothing.
|
||||
Dragging is the only way to place: a double-click on an asset opens its tab (a scene also becomes
|
||||
the active one), it never places.
|
||||
|
||||
**Editor symbols are always on top.** The viewport draws scene content (sprites) in an
|
||||
`objects` layer and editor symbols (camera icon, labels) in an `overlay` layer above it, so a
|
||||
|
||||
+2
-1
@@ -5,7 +5,8 @@ shaders; the one effect the node set is sized for is the "Adjust colors" recipe
|
||||
|
||||
## The Shader tab
|
||||
|
||||
`+` in the **Assets** panel makes a shader; selecting one opens the **Shader** tab on it, with the
|
||||
`+` in the **Assets** panel makes a shader and opens the **Shader** tab on it (a double-click on
|
||||
an existing one does the same; a click only selects). The tab has the
|
||||
same canvas the Behavior tab has: right-click places a node, drag moves, drag from a port links,
|
||||
`Snap` snaps to the 24 px grid, `Fit` frames the graph, undo takes every step back. The readout on
|
||||
the right says `N properties` while the graph compiles, otherwise why it does not (`No Output node`,
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ events like "on state entered" and a highlight of the current state while playin
|
||||
steps. The states are edited in the **State machine** tab, which is the graph canvas the Behavior
|
||||
tab uses — so placing, dragging, the header's **Snap** checkbox, renaming in the inspector,
|
||||
`Delete` and undo are the graph's.
|
||||
Selecting the asset opens the tab (a behavior, texture or container asset does not switch tabs —
|
||||
a machine has nothing to show anywhere else). Right-click on its canvas offers a `State` and
|
||||
Double-clicking the asset (or creating it) opens the tab, like every asset with a tab; a click
|
||||
only selects. Right-click on its canvas offers a `State` and
|
||||
nothing else, named by its number (`State 3` for the third); no behavior palette offers one.
|
||||
|
||||
**A behavior reads it through two nodes**, both with a `machine` input that is a picker while
|
||||
|
||||
Reference in new issue
Block a user