module icons

This commit is contained in:
tresabhi committed 2026-08-04 19:40:57 -05:00
1 parent e5e747f7a0
commit aaae8fb8ff
2 files changed
+40 -34

No files matched your search

@@ -1,34 +0,0 @@
import sharp from "sharp";
import { AssetUploader } from "../core/github/assetUploader";
import { vfs } from "./constants";
export async function moduleIcons() {
console.log("Building module icons...");
using uploader = new AssetUploader("module icons");
const files = await vfs
.dir(`Data/Gfx/UI/ModulesTechTree`)
.then((files) =>
files.filter(
(file) =>
!file.endsWith("@2x.packed.webp") && file.startsWith("vehicle"),
),
);
for (const file of files) {
const nameRaw = file.match(/vehicle(.+)\.packed\.webp/)![1];
const name = nameRaw[0].toLowerCase() + nameRaw.slice(1);
const content = await sharp(
await vfs.file(`Data/Gfx/UI/ModulesTechTree/${file}`),
)
.trim()
.toBuffer();
await uploader.add({
content,
path: `icons/modules/${name}.webp`,
});
}
await uploader.flush();
}
@@ -0,0 +1,40 @@
import type { APIContext, GetStaticPathsItem } from "astro";
import sharp from "sharp";
import { mixStaticPaths } from "../../../../core/blitzkit/mixStaticPaths";
import { vfs } from "../../../../core/blitzkit/vfs";
import { getStaticPaths as _getStaticPaths } from "../../_index";
export const getStaticPaths = mixStaticPaths(_getStaticPaths, async () => {
const paths: GetStaticPathsItem[] = [];
const files = await vfs
.dir(`Data/Gfx/UI/ModulesTechTree`)
.then((files) =>
files.filter(
(file) =>
!file.endsWith("@2x.packed.webp") && file.startsWith("vehicle"),
),
);
for (const file of files) {
const nameRaw = file.match(/vehicle(.+)\.packed\.webp/)![1];
const id = nameRaw[0].toLowerCase() + nameRaw.slice(1);
const path = `Data/Gfx/UI/ModulesTechTree/${file}`;
paths.push({
params: { id },
props: { path },
});
}
return paths;
});
export async function GET({ props }: APIContext<{ path: string }>) {
const buffer = await sharp(await vfs.file(props.path))
.trim()
.toBuffer();
const bytes = new Uint8Array(buffer);
return new Response(bytes);
}