diff --git a/scripts/materialize-controller-assets.mjs b/scripts/materialize-controller-assets.mjs new file mode 100644 index 0000000..6c2fa7d --- /dev/null +++ b/scripts/materialize-controller-assets.mjs @@ -0,0 +1,19 @@ +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');