Fix padding on fnt file

This commit is contained in:
2026-09-26 17:49:01 -03:00
parent 243ff52063
commit 01a81b926e
+10 -2
View File
@@ -11,8 +11,12 @@ export function init_font() {
font_fnt = parse_fnt(AssetManager.instance.get("bworld:m6x11_fnt"));
}
// bmfont's text format. glyphs in the image have transparent padding around them, which their offsets don't count, so
// it's taken off here or text is drawn padding * scale pixels right of and below where it's measured
function parse_fnt(text: string): FntFont {
const lines = text.split(/\r?\n/);
// up, right, down, left
let padding = [0, 0, 0, 0];
const font: FntFont = {
line_height: 0,
@@ -34,6 +38,10 @@ function parse_fnt(text: string): FntFont {
data[k] = v?.replace(/"/g, "");
}
if (type === "info" && data.padding) {
padding = data.padding.split(",").map(Number);
}
if (type === "common") {
font.line_height = Number(data.lineHeight);
}
@@ -49,8 +57,8 @@ function parse_fnt(text: string): FntFont {
y: Number(data.y),
width: Number(data.width),
height: Number(data.height),
xoffset: Number(data.xoffset),
yoffset: Number(data.yoffset),
xoffset: Number(data.xoffset) - padding[3],
yoffset: Number(data.yoffset) - padding[0],
xadvance: Number(data.xadvance),
page: Number(data.page),
};