Tilemaps are a new placeable asset type that is painted with autotiles in the scene view, with layers, brush, eraser and rectangle, and is drawn at runtime and in the export (#128)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0607221423
commit
33a7b1b63e
30 files changed
+2060
-20
No files matched your search
@@ -20,6 +20,7 @@ export const LANES = {
|
||||
font: -1900,
|
||||
particles: -2300,
|
||||
sound: -2700,
|
||||
tilemap: -3100,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -124,11 +125,24 @@ export const TAB_LABELS = {
|
||||
* nothing and took the whole suite down with it.
|
||||
*/
|
||||
export async function openTab(t, tab) {
|
||||
const label = TAB_LABELS[tab];
|
||||
const row = await t.json('__gm.tabRow()');
|
||||
if (row.hidden.includes(tab)) {
|
||||
await t.clickText('»');
|
||||
await t.clickText(label);
|
||||
return;
|
||||
}
|
||||
await t.clickText(TAB_LABELS[tab]);
|
||||
// The label alone is not the tab: the toolbar labels its scene selector "Scene" too, and being
|
||||
// drawn first that is what `clickText` had been hitting – so the tab stayed where it was
|
||||
// (measured 2026-09-17: step 39 ended on the Autotile tab although it asks for the Scene tab).
|
||||
// The hit is therefore picked by the box the tab row reports for that tab.
|
||||
const entry = row.shown.find((e) => e.tab === tab);
|
||||
const hits = entry ? await t.json(`__gm.locateAll(${JSON.stringify(label)})`) : [];
|
||||
const hit = hits.find(
|
||||
(p) => p.x >= entry.x && p.x <= entry.right && p.y >= entry.y && p.y <= entry.y + entry.h,
|
||||
);
|
||||
if (hit) await t.click(hit.x, hit.y);
|
||||
else await t.clickText(label);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user