Main/resources/[tools]/NativeUI/elements/StringMeasurer.lua

105 lines
1.5 KiB
Lua
Raw Permalink Normal View History

2025-06-07 08:51:21 +02:00
CharacterMap = {
[' '] = 6,
['!'] = 6,
['"'] = 6,
['#'] = 11,
['$'] = 10,
['%'] = 17,
['&'] = 13,
['\\'] = 4,
['('] = 6,
[')'] = 6,
['*'] = 7,
['+'] = 10,
[','] = 4,
['-'] = 6,
['.'] = 4,
['/'] = 7,
['0'] = 12,
['1'] = 7,
['2'] = 11,
['3'] = 11,
['4'] = 11,
['5'] = 11,
['6'] = 12,
['7'] = 10,
['8'] = 11,
['9'] = 11,
[':'] = 5,
[';'] = 4,
['<'] = 9,
['='] = 9,
['>'] = 9,
['?'] = 10,
['@'] = 15,
['A'] = 12,
['B'] = 13,
['C'] = 14,
['D'] = 14,
['E'] = 12,
['F'] = 12,
['G'] = 15,
['H'] = 14,
['I'] = 5,
['J'] = 11,
['K'] = 13,
['L'] = 11,
['M'] = 16,
['N'] = 14,
['O'] = 16,
['P'] = 12,
['Q'] = 15,
['R'] = 13,
['S'] = 12,
['T'] = 11,
['U'] = 13,
['V'] = 12,
['W'] = 18,
['X'] = 11,
['Y'] = 11,
['Z'] = 12,
['['] = 6,
[']'] = 6,
['^'] = 9,
['_'] = 18,
['`'] = 8,
['a'] = 11,
['b'] = 12,
['c'] = 11,
['d'] = 12,
['e'] = 12,
['f'] = 5,
['g'] = 13,
['h'] = 11,
['i'] = 4,
['j'] = 4,
['k'] = 10,
['l'] = 4,
['m'] = 18,
['n'] = 11,
['o'] = 12,
['p'] = 12,
['q'] = 12,
['r'] = 7,
['s'] = 9,
['t'] = 5,
['u'] = 11,
['v'] = 10,
['w'] = 14,
['x'] = 9,
['y'] = 10,
['z'] = 9,
['{'] = 6,
['|'] = 3,
['}'] = 6,
}
function MeasureString(str)
local output = 0
for i = 1, GetCharacterCount(str), 1 do
if CharacterMap[string.sub(str, i, i)] then
output = output + CharacterMap[string.sub(str, i, i)] + 1
end
end
return output
end