Show a placed object's struct the way its asset does
The instance inspector drew its own, flatter version of a struct: one row per field, no bundle head. It now draws the same block as the asset side, because there is only one implementation left - both call buildStructBlock. What the instance does not get is everything that touches the shape: renaming a field, '+ Field', and the per-field '×'. The shape belongs to the asset; a placed object overrides values. The revert and override marks sit on the head rather than on a field, since an override covers the whole bundle at once. Underneath this, editing a single field of an unoverridden struct used to blank its siblings: structFieldsOf filled the untouched fields from spec.read, which is object.overrides[key] and therefore undefined until something is overridden. structOf then handed back the empty shape. PreviewedValue carries 'current' now - the resolved value the row actually shows - and the fields come from that. Without it the old path stays, which is right for the asset side, whose prop bag is dense.
This commit is contained in:
1 parent
14f542365e
commit
9f482573e5
9 files changed
+606
-207
No files matched your search
@@ -120,8 +120,10 @@ shown on the node and editable in the inspector.
|
||||
has, one level down and with a value column – and a field may itself be a **list**, which is
|
||||
the one count button that opens the tab one level deeper. Adding, renaming or removing a field reaches the
|
||||
declaration, the behavior's own value **and every instance override** in one command, so no
|
||||
stored value keeps a shape its declaration no longer promises. A placed instance sees the same
|
||||
fields as plain value rows: it may override them, not declare them.
|
||||
stored value keeps a shape its declaration no longer promises. A placed instance draws the very
|
||||
same block (`buildStructBlock`), minus the renaming and the `+ Field` / `×` buttons: it may
|
||||
override the values, not declare them. Its ↺ / ↑ sit on the head row, because an override covers
|
||||
the whole bundle rather than a single field.
|
||||
- **Owner** = parent: a placed behavior is usually parented to the object it controls
|
||||
(inspector → Parent, or drag it onto that object in the hierarchy; dashed line in the
|
||||
viewport). The `Owner` node returns it; `Self` returns the behavior itself; `Parent` walks up
|
||||
@@ -607,7 +609,7 @@ npm run check # typecheck + lint + format:check + tests, what CI would ru
|
||||
# code is lost (tail's is reported), so a red run reads as green
|
||||
npm run build # writes dist/ and regenerates index.html
|
||||
export GM_REMOTE=user@host # optional: run the browser elsewhere; see below
|
||||
node tools/seed-e2e.mjs && node tools/e2e.mjs # 502 editor checks, screenshots in /tmp/gm-e2e-*.png
|
||||
node tools/seed-e2e.mjs && node tools/e2e.mjs # 509 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
|
||||
|
||||
Reference in new issue
Block a user