20 lines
853 B
JavaScript
20 lines
853 B
JavaScript
import { mkdir, writeFile } from 'node:fs/promises';
|
|
import topHudData from '../src/assets/controller/top-hud.js';
|
|
import helmData from '../src/assets/controller/helm-action.js';
|
|
import cannonBase64 from '../src/assets/controller/cannon-roundel.js';
|
|
|
|
const outDir = new URL('../public/assets/controller/', import.meta.url);
|
|
await mkdir(outDir, { recursive: true });
|
|
|
|
const writeDataUrl = async (name, dataUrl) => {
|
|
const match = /^data:[^;]+;base64,(.+)$/.exec(dataUrl);
|
|
if (!match) throw new Error(`Invalid data URL for ${name}`);
|
|
await writeFile(new URL(name, outDir), Buffer.from(match[1], 'base64'));
|
|
};
|
|
|
|
await writeDataUrl('top-hud.webp', topHudData);
|
|
await writeDataUrl('helm-sheet.webp', helmData);
|
|
await writeFile(new URL('cannon-roundel.jpg', outDir), Buffer.from(cannonBase64, 'base64'));
|
|
|
|
console.log('Materialized controller assets');
|