SOURCE / PINNED RELEASE
Made of little things.
Napplet Machines V8
- Release
- b3f614e739f0…
- Author-recorded commit
- 534f19acb4ba…
- License
- LICENSE
- Author’s source reference
- nostr://npub182jczunncwe0jn6frpqwq3e0qjws7yqqnc3auccqv9nte2dnd63scjm4rf/wss%3A%2F%2Fgit.napplet.soy%2F/n-b5572362d4a
Archive hash verified: 0f7feb97e2c3d336…. The source-to-build association is the author’s claim; it has not been independently rebuilt.
export default async ({ players, check }) => {
const { page, frame } = players[0],
element = await frame.frameElement();
await page.setViewportSize({ width: 1200, height: 750 });
await element.evaluate((el) =>
Object.assign(el.style, {
position: 'fixed',
top: 0,
left: 0,
width: '1200px',
height: '750px',
minHeight: 0,
border: 0,
zIndex: 9999,
}),
);
await frame.locator('#trackSelect').selectOption('2');
await frame.getByRole('button', { name: 'Workshop', exact: false }).click();
const coords = [
[-38, -24],
[-6, -29],
[31, -25],
[39, 0],
[16, 8],
[29, 28],
[-4, 31],
[-35, 21],
[-28, 0],
];
for (const [x, y] of coords) {
const box = await frame.locator('#plan').boundingBox(),
scale = Number(await frame.locator('#plan').getAttribute('data-scale'));
await page.mouse.click(
box.x + box.width / 2 + x * scale,
box.y + box.height / 2 + y * scale,
);
await frame.locator('#widthInput').fill('20.8');
await frame.locator('#widthInput').dispatchEvent('input');
}
await frame.locator('#allWalls').click();
await frame.locator('#trackName').scrollIntoViewIfNeeded();
await page.waitForTimeout(1200);
await element.screenshot({
path: '.napplet-space/promotion/filled-corners-workshop.png',
});
check(
'wide elevated hairpins render in the workshop',
Number(await frame.locator('#scene').getAttribute('data-closed-sections')) >
0,
);
};
