Fix padding on fnt file
This commit is contained in:
+10
-2
@@ -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),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user