From e88258700e9a3fb4288a54e15d8fd1b75f5aae48 Mon Sep 17 00:00:00 2001 From: Hubol Date: Sun, 14 Jan 2024 21:00:19 -0600 Subject: [PATCH] Untested fnt format preprocessor --- src/lib/pixi/create-bitmap-font-factory.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib/pixi/create-bitmap-font-factory.ts b/src/lib/pixi/create-bitmap-font-factory.ts index 6fc9505..f766304 100644 --- a/src/lib/pixi/create-bitmap-font-factory.ts +++ b/src/lib/pixi/create-bitmap-font-factory.ts @@ -1,7 +1,17 @@ import { BitmapFont, Texture } from "pixi.js"; export async function createBitmapFontFactory(fntUrl: string) { - const fntData = await fetch(fntUrl).then(x => x.text()); + const fntData = await fetch(fntUrl).then(x => x.text()).then(preprocessFntText); return (texture: Texture) => BitmapFont.install(fntData, texture); -} \ No newline at end of file +} + +const atSignRegex = /(?:@(.))/gm; +const atSignSubstitution = (_: string, y: string) => String(y.charCodeAt(0)); + +// Allows writing e.g. @a and replacing with 97 +function preprocessFntText(fntText: string) { + if (!fntText.includes("info NeedsPreprocessing")) + return fntText; + return fntText.replace(atSignRegex, atSignSubstitution) +}