From ba34f366ebfc96aff61c22ada69929b8fdb65b90 Mon Sep 17 00:00:00 2001 From: meleki Date: Thu, 1 Oct 2026 07:45:09 +0200 Subject: [PATCH] Say that an animation offers no private variable for a new row (#270) - Animations: the rule, that an existing row stays, and where it is built (offeredDefs against animatableDefsOf). - Behaviors: one sentence under Private. - Development: 1610 editor checks. --- Animations.md | 5 +++++ Behaviors.md | 2 ++ Development.md | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Animations.md b/Animations.md index 461ebf5..13fa2cf 100644 --- a/Animations.md +++ b/Animations.md @@ -27,6 +27,11 @@ the placed object overrides it. Shader parameters are numbers, as the `Property` them, and keys are clamped to its min/max. A variable is written before the behaviors run, so a graph reads this frame's value. When the behavior is removed, the variable renamed or the shader swapped for one without the parameter, the row reads *(missing)* and keeps its keys. +A variable switched **Private** (see [Behaviors](Behaviors)) is not offered for a new row (#270). +A row that aims at it already stays: it plays, keeps its label, and *Change target…* in its +inspector still lists its own variable. Under the hood the dialog asks `offeredDefs` in +`src/core/model/animation.ts`, while the label and the runtime read `animatableDefsOf`, which +knows nothing of the lock. Its two properties are **Frames per second** (default 10) and **Playback**: *Loop*, *Once (hold)* (ends on the last value and leaves it), *Once (reset)* (ends and puts back what every target held diff --git a/Behaviors.md b/Behaviors.md index 50890a0..252024f 100644 --- a/Behaviors.md +++ b/Behaviors.md @@ -35,6 +35,8 @@ playing use the same two words. A `Properties` node of type *Behavior* does not offer a private variable under `+ Property`, but a port that names it still reads and writes it — one picked while it was public, or one typed by hand under type *Any*. + An [animation](Animations) does not offer a private variable for a new row either (#270); a row + that aimed at it before keeps playing and keeps its label. `Properties` is the same node for the object it is handed (fixed input `object`). Its **Type** setting, above the list, decides what `+ Property` offers: *Sprite*, *Text*, *Collider*, *Camera*, *Container* and *Clip area* offer their fields, diff --git a/Development.md b/Development.md index 96095aa..059c80c 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 # 1609 editor checks, screenshots in /tmp/gm-e2e-*.png +node tools/seed-e2e.mjs && node tools/e2e.mjs # 1610 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