1 line
7.0 KiB
Plaintext
1 line
7.0 KiB
Plaintext
{"version":3,"file":"bitmapFontXMLParser.mjs","sources":["../../../../src/scene/text-bitmap/asset/bitmapFontXMLParser.ts"],"sourcesContent":["import type { BitmapFontData, RawCharData } from '../AbstractBitmapFont';\n\nexport const bitmapFontXMLParser = {\n test(data: string | XMLDocument | BitmapFontData): boolean\n {\n const xml = data as Document;\n\n return typeof xml !== 'string'\n && 'getElementsByTagName' in xml\n && xml.getElementsByTagName('page').length\n && xml.getElementsByTagName('info')[0].getAttribute('face') !== null;\n },\n\n parse(xml: Document): BitmapFontData\n {\n const data: BitmapFontData = {\n chars: {},\n pages: [],\n lineHeight: 0,\n fontSize: 0,\n fontFamily: '',\n distanceField: null,\n baseLineOffset: 0,\n };\n\n const info = xml.getElementsByTagName('info')[0];\n const common = xml.getElementsByTagName('common')[0];\n const distanceField = xml.getElementsByTagName('distanceField')[0];\n\n if (distanceField)\n {\n data.distanceField = {\n type: distanceField.getAttribute('fieldType') as 'sdf' | 'msdf' | 'none',\n range: parseInt(distanceField.getAttribute('distanceRange'), 10),\n };\n }\n\n // pages and chars:\n const page = xml.getElementsByTagName('page');\n const char = xml.getElementsByTagName('char');\n const kerning = xml.getElementsByTagName('kerning');\n\n data.fontSize = parseInt(info.getAttribute('size'), 10);\n data.fontFamily = info.getAttribute('face');\n data.lineHeight = parseInt(common.getAttribute('lineHeight'), 10);\n\n for (let i = 0; i < page.length; i++)\n {\n data.pages.push({\n id: parseInt(page[i].getAttribute('id'), 10) || 0,\n file: page[i].getAttribute('file'),\n });\n }\n\n const map: Record<string, string> = {};\n\n data.baseLineOffset = data.lineHeight - parseInt(common.getAttribute('base'), 10);\n\n for (let i = 0; i < char.length; i++)\n {\n const charNode = char[i];\n const id = parseInt(charNode.getAttribute('id'), 10);\n\n let letter = charNode.getAttribute('letter') ?? charNode.getAttribute('char') ?? String.fromCharCode(id);\n\n if (letter === 'space')letter = ' ';\n\n map[id] = letter;\n\n data.chars[letter] = {\n id,\n // texture deets..\n page: parseInt(charNode.getAttribute('page'), 10) || 0,\n x: parseInt(charNode.getAttribute('x'), 10),\n y: parseInt(charNode.getAttribute('y'), 10),\n width: parseInt(charNode.getAttribute('width'), 10),\n height: parseInt(charNode.getAttribute('height'), 10),\n\n // render deets..\n xOffset: parseInt(charNode.getAttribute('xoffset'), 10),\n yOffset: parseInt(charNode.getAttribute('yoffset'), 10), // + baseLineOffset,\n xAdvance: parseInt(charNode.getAttribute('xadvance'), 10),\n kerning: {},\n } as RawCharData;\n }\n\n for (let i = 0; i < kerning.length; i++)\n {\n const first = parseInt(kerning[i].getAttribute('first'), 10);\n const second = parseInt(kerning[i].getAttribute('second'), 10);\n const amount = parseInt(kerning[i].getAttribute('amount'), 10);\n\n data.chars[map[second]].kerning[map[first]] = amount;// * 10000;\n }\n\n return data;\n }\n};\n"],"names":[],"mappings":"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"} |