Z-order via position.z and reset-to-default for asset properties

- Position is now { x, y, z }; higher z draws on top, ties keep hierarchy order
- Viewport sorts the objects layer deterministically (syncDrawOrder)
- Inspector shows a Z field; asset properties that differ from the schema
  default are marked bold with a reset button (ResetAssetPropertyCommand)
- isModified() helper, unit tests, E2E checks and seed updated

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
rootandClaude Fable 5.1 committed 2026-09-07 11:42:18 +02:00
1 parent aaa8154adf
commit d4b1ffa051
18 files changed
+232 -63

No files matched your search

+9 -6
View File
@@ -13,8 +13,11 @@ export interface FieldRow {
row: Widget;
/** Push a model value into the widget (no events fired). */
setValue(value: PropertyValue): void;
/** Highlight the row as overridden (scene objects) and show the reset button. */
setOverridden(overridden: boolean): void;
/**
* Highlight the row as deviating from its base value and show the reset button:
* an override on scene objects, a non-default value on assets.
*/
setModified(modified: boolean): void;
}
/**
@@ -76,10 +79,10 @@ export function createFieldRow(def: PropertyDef, value: PropertyValue, handlers:
return {
row,
setValue,
setOverridden(overridden) {
label.setStyle(overridden ? 'bodyBold' : 'muted');
if (reset && reset.visible !== overridden) {
reset.visible = overridden;
setModified(modified) {
label.setStyle(modified ? 'bodyBold' : 'muted');
if (reset && reset.visible !== modified) {
reset.visible = modified;
row.relayout();
}
},