forked from phenom/healer-man
Update Healer Man server
This commit is contained in:
1 parent
6114a2295f
commit
69809f7228
593 files changed
+903643
-40774
No files matched your search
@@ -0,0 +1,63 @@
|
||||
const { chromium } = require('C:/Users/phenom/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/node_modules/playwright');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const output = path.resolve('artifacts/playtest/rom-deep-review/water-screen-effects');
|
||||
|
||||
(async () => {
|
||||
const { createServer } = await import('vite');
|
||||
const server = await createServer({ configFile: false, publicDir: 'public',
|
||||
cacheDir: path.join(output, '.vite'),
|
||||
optimizeDeps: { entries: ['scripts/runewaker-pipeline/environment-preview.html'] },
|
||||
server: { host: '127.0.0.1', port: 0, strictPort: true, watch: null } });
|
||||
await server.listen();
|
||||
const browser = await chromium.launch({ channel: 'msedge', headless: true });
|
||||
const results = [];
|
||||
try {
|
||||
for (const staged of [false, true]) {
|
||||
const page = await browser.newPage({ viewport: { width: 1600, height: 1000 } });
|
||||
const errors = [];
|
||||
page.on('pageerror', error => errors.push(error.message));
|
||||
page.on('console', message => { if (message.type() === 'error') errors.push(message.text()); });
|
||||
await page.route('**/favicon.ico', route => route.fulfill({ status: 204 }));
|
||||
const baseline = path.join(output, 'pre-promotion-backup/src/assets/game/dungeons/the-origin/the-origin-visual.glb');
|
||||
const asset = staged ? path.join(output, 'shipping-the-origin-visual.glb') : baseline;
|
||||
if (staged || fs.existsSync(baseline)) await page.route('**/src/assets/game/dungeons/the-origin/the-origin-visual.glb',
|
||||
route => route.fulfill({ path: asset, contentType: 'model/gltf-binary' }));
|
||||
await page.goto(`http://127.0.0.1:${server.httpServer.address().port}/scripts/runewaker-pipeline/environment-preview.html?dungeon=the-origin`, { waitUntil: 'commit' });
|
||||
await page.waitForFunction(() => window.romEnvironmentReview?.ready, null, { timeout: 180000 });
|
||||
const waterPoint = [-219.8775686, -21.5003624, 182.7898102];
|
||||
await page.evaluate(target => window.romEnvironmentReview.inspectAt(
|
||||
[target[0] + 5, target[1] + 3, target[2] + 5], target), waterPoint);
|
||||
await page.waitForTimeout(1600);
|
||||
await page.evaluate(() => window.romEnvironmentReview.resetFrameSample());
|
||||
await page.waitForTimeout(4000);
|
||||
const diagnostics = await page.evaluate(() => ({
|
||||
performance: window.romEnvironmentReview.frameSample(),
|
||||
water: window.romEnvironmentReview.waterDiagnostics(),
|
||||
center: window.romEnvironmentReview.raycastAt(innerWidth / 2, innerHeight / 2, 4),
|
||||
drawCalls: window.romEnvironmentReview.drawCalls(),
|
||||
}));
|
||||
const file = `exposed-water-${staged ? 'reflection' : 'baseline'}.png`;
|
||||
await page.screenshot({ path: path.join(output, file) });
|
||||
await page.evaluate(target => window.romEnvironmentReview.inspectAt(
|
||||
[target[0] + 5, target[1] + 0.7, target[2] + 12], [target[0] - 5, target[1], target[2] - 7]), waterPoint);
|
||||
await page.waitForTimeout(1200);
|
||||
const glancing = `glancing-water-${staged ? 'reflection' : 'baseline'}.png`;
|
||||
await page.screenshot({ path: path.join(output, glancing) });
|
||||
const glancingDiagnostics = await page.evaluate(() => ({
|
||||
water: window.romEnvironmentReview.waterDiagnostics(),
|
||||
center: window.romEnvironmentReview.raycastAt(innerWidth / 2, innerHeight / 2, 4),
|
||||
}));
|
||||
results.push({ staged, screenshot: file, glancing, glancingDiagnostics, errors, ...diagnostics });
|
||||
console.log(JSON.stringify({ staged, errors, fps: diagnostics.performance.fps,
|
||||
ready: diagnostics.water.filter(layer => layer.screenEffectsReady).length,
|
||||
planes: new Set(diagnostics.water.map(layer => layer.reflection).filter(Boolean)).size }));
|
||||
await page.close();
|
||||
}
|
||||
} finally {
|
||||
await browser.close();
|
||||
await server.close();
|
||||
fs.writeFileSync(path.join(output, 'browser-proof.json'), JSON.stringify(results, null, 2) + '\n');
|
||||
}
|
||||
if (results.some(result => result.errors.length)) process.exitCode = 1;
|
||||
})().catch(error => { console.error(error); process.exitCode = 1; });
|
||||
Reference in new issue
Block a user