Add a Container tab and propagate template edits
The Container tab reuses SceneViewport against any object holder, so a container template is edited exactly like a scene. Right-click no longer changes the selection, which previously made nesting impossible: opening the menu on a container loaded it, and "Place in container" then targeted itself. Template edits (move, rename, override) now reach already-placed instances per slot, through a shared templateSync used by both the apply path and the plain object commands. Copies the user has touched keep their own value. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
6bedc948be
commit
9d93020bd8
35 files changed
+1452
-363
No files matched your search
@@ -80,7 +80,7 @@ export async function play(t) {
|
||||
Boolean(await evaluate(`__gm.locate('INSPECTOR')`)) &&
|
||||
(await evaluate('__gm.hierarchyExpandAll(); __gm.hierarchyOrder().length')) === 7,
|
||||
);
|
||||
await select({ kind: 'object', sceneId: 'scene1', objectId: 'o2' });
|
||||
await select({ kind: 'object', holderId: 'scene1', objectId: 'o2' });
|
||||
await mutate(`__gm.state.activeScene.objects.find(o => o.id === 'o2').position.x = 400`);
|
||||
let liveO2 = await entity('o2');
|
||||
check(
|
||||
@@ -158,7 +158,7 @@ export async function play(t) {
|
||||
await mutate(`__gm.state.activeScene.objects.find(o => o.id === 'o2').position.x = ${xBeforePlay}`);
|
||||
|
||||
// 7c. Without a camera nothing is rendered: delete the camera object, play, then undo.
|
||||
await select({ kind: 'object', sceneId: 'scene1', objectId: 'o3' });
|
||||
await select({ kind: 'object', holderId: 'scene1', objectId: 'o3' });
|
||||
await press('Delete');
|
||||
await sleep(200);
|
||||
check('camera object deleted', (await objects()).length === 6);
|
||||
|
||||
Reference in new issue
Block a user