Files
il/resources/public/js/cljs-runtime/module$node_modules$pixi_DOT_js$lib$scene$text_bitmap$asset$bitmapFontXMLParser.js
2026-07-01 22:38:29 -06:00

35 lines
2.6 KiB
JavaScript

shadow$provide.module$node_modules$pixi_DOT_js$lib$scene$text_bitmap$asset$bitmapFontXMLParser = function(global, require, module, exports) {
exports.bitmapFontXMLParser = {test(data) {
return "string" !== typeof data && "getElementsByTagName" in data && data.getElementsByTagName("page").length && null !== data.getElementsByTagName("info")[0].getAttribute("face");
}, parse(xml) {
const data = {chars:{}, pages:[], lineHeight:0, fontSize:0, fontFamily:"", distanceField:null, baseLineOffset:0};
var info = xml.getElementsByTagName("info")[0], common = xml.getElementsByTagName("common")[0], distanceField = xml.getElementsByTagName("distanceField")[0];
distanceField && (data.distanceField = {type:distanceField.getAttribute("fieldType"), range:parseInt(distanceField.getAttribute("distanceRange"), 10)});
var page = xml.getElementsByTagName("page");
distanceField = xml.getElementsByTagName("char");
xml = xml.getElementsByTagName("kerning");
data.fontSize = parseInt(info.getAttribute("size"), 10);
data.fontFamily = info.getAttribute("face");
data.lineHeight = parseInt(common.getAttribute("lineHeight"), 10);
for (info = 0; info < page.length; info++) {
data.pages.push({id:parseInt(page[info].getAttribute("id"), 10) || 0, file:page[info].getAttribute("file")});
}
info = {};
data.baseLineOffset = data.lineHeight - parseInt(common.getAttribute("base"), 10);
for (common = 0; common < distanceField.length; common++) {
page = distanceField[common];
var id = parseInt(page.getAttribute("id"), 10);
let letter = page.getAttribute("letter") ?? page.getAttribute("char") ?? String.fromCharCode(id);
"space" === letter && (letter = " ");
info[id] = letter;
data.chars[letter] = {id, page:parseInt(page.getAttribute("page"), 10) || 0, x:parseInt(page.getAttribute("x"), 10), y:parseInt(page.getAttribute("y"), 10), width:parseInt(page.getAttribute("width"), 10), height:parseInt(page.getAttribute("height"), 10), xOffset:parseInt(page.getAttribute("xoffset"), 10), yOffset:parseInt(page.getAttribute("yoffset"), 10), xAdvance:parseInt(page.getAttribute("xadvance"), 10), kerning:{}};
}
for (distanceField = 0; distanceField < xml.length; distanceField++) {
common = parseInt(xml[distanceField].getAttribute("first"), 10), page = parseInt(xml[distanceField].getAttribute("second"), 10), id = parseInt(xml[distanceField].getAttribute("amount"), 10), data.chars[info[page]] && (data.chars[info[page]].kerning[info[common]] = id);
}
return data;
}};
};
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$scene$text_bitmap$asset$bitmapFontXMLParser.js.map