From 34e47888ccb73f6e384863bb603b5c18f0d26062 Mon Sep 17 00:00:00 2001 From: Admin Date: Thu, 17 Sep 2026 23:56:06 +0000 Subject: [PATCH] Materialize controller images for browser --- scripts/materialize-controller-assets.mjs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 scripts/materialize-controller-assets.mjs 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');