Open a scene framed, and thin out two inspector sections (#295)
Three small things asked for in one issue. A scene came up wherever the view happened to stand, and the inspector carried a button and a list that are better reached somewhere else. - A scene comes up framed as if Fit had been clicked: after a project is loaded and when another scene is opened. From then on the view belongs to the user. - An empty scene has nothing to frame and stands at the origin, one pixel per unit. A scene the running game loads is not framed anew. - The Container tab is left out. It keeps the view of each container as before (#171). - The Unpack button and the two lines under it are gone from the inspector of a placed container. Unpack container stays in the right-click menu of the hierarchy and of the scene view. - The corners of a polygon collider are no row in the inspector any more. They are edited on the outline in the scene view. The new schema option noRow keeps a property out of the inspector while it stays a property. Tests: - Gate on melektaus-atx: 219 files, 3401 tests, CHECK EXIT 0. - One new unit test in tests/core/polygon.test.ts: the corners are a property of the collider and no row. - Three new e2e checks: a loaded project is framed like Fit (module 03), an opened scene is (04), and after a real reload a click on Fit moves nothing (09). - Module 09 unpacks through the right-click menu now and checks that the inspector offers no button. - Full suite on melektaus-atx: 1695 checks, all pass. Smokes 24, 19 and 21, all pass. - No counter-probe evaluated, and nothing looked at after the build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ca5b2db449
commit
963f8a152a
10 files changed
+106
-23
No files matched your search
@@ -402,6 +402,20 @@ export async function play(t) {
|
||||
const { ok, detail } = await sameAsGame(label);
|
||||
check(`Fit in the scene tab shows the world exactly as the game view does at ${label}`, ok, detail);
|
||||
}
|
||||
// 3i. A project that is loaded brings its scene up framed the same way, without the click (#295).
|
||||
// The scale still stands at Fit, so the framed view is not the one a bare reset would give.
|
||||
const gameAtFit = await json(`__gm.gameRect('o1')`);
|
||||
await showTab('scene');
|
||||
await evaluate('__gm.lookAt(5000, 5000)');
|
||||
await evaluate('__gm.state.loadProject(__gm.state.project, __gm.state.revision)');
|
||||
await showTab('scene');
|
||||
const sceneOnLoad = await json(`__gm.objectRect('o1')`);
|
||||
check(
|
||||
'a loaded project shows its scene framed like Fit, without a click',
|
||||
Boolean(sceneOnLoad) && ['x', 'y', 'w', 'h'].every((k) => Math.abs(sceneOnLoad[k] - gameAtFit[k]) < 0.01),
|
||||
JSON.stringify({ gameAtFit, sceneOnLoad }),
|
||||
);
|
||||
await showTab('game');
|
||||
g = await pickScale('100%');
|
||||
check('and 100% can be picked back', g.mode === 1 && g.scale === 1, JSON.stringify(g));
|
||||
await showTab('scene');
|
||||
|
||||
Reference in new issue
Block a user