godot/tools/scripts/make_bmfhdr.py

70 lines
1.2 KiB
Python
Raw Normal View History

2014-02-10 01:10:30 +00:00
import sys
if (len(sys.argv)!=2):
print("Pass me a .fnt argument!")
2016-04-02 18:26:12 +00:00
2014-02-10 01:10:30 +00:00
f = open(sys.argv[1],"rb")
name = sys.argv[1].lower().replace(".fnt","")
l = f.readline()
font_height=0
font_ascent=0
font_charcount=0
font_chars=[]
font_cc=0
while(l!=""):
fs = l.strip().find(" ")
if (fs==-1):
l=f.readline()
continue
t = l[0:fs]
2016-04-02 18:26:12 +00:00
2014-02-10 01:10:30 +00:00
dv = l[fs+1:].split(" ")
d = {}
for x in dv:
if (x.find("=")==-1):
continue
s = x.split("=")
d[ s[0] ] = s[1]
2016-04-02 18:26:12 +00:00
2014-02-10 01:10:30 +00:00
if (t=="common"):
font_height=d["lineHeight"]
font_ascent=d["base"]
2016-04-02 18:26:12 +00:00
2014-02-10 01:10:30 +00:00
if (t=="char"):
font_chars.append(d["id"])
font_chars.append(d["x"])
font_chars.append(d["y"])
font_chars.append(d["width"])
font_chars.append(d["height"])
font_chars.append(d["xoffset"])
font_chars.append(d["yoffset"])
font_chars.append(d["xadvance"])
font_cc+=1
2016-04-02 18:26:12 +00:00
2014-02-10 01:10:30 +00:00
l = f.readline()
2016-04-02 18:26:12 +00:00
2014-02-10 01:10:30 +00:00
print("static const int _bi_font_"+name+"_height="+str(font_height)+";")
print("static const int _bi_font_"+name+"_ascent="+str(font_ascent)+";")
print("static const int _bi_font_"+name+"_charcount="+str(font_cc)+";")
cstr="static const int _bi_font_"+name+"_characters={"
for i in range(len(font_chars)):
2016-04-02 18:26:12 +00:00
c=font_chars[i]
2014-02-10 01:10:30 +00:00
if (i>0):
cstr+=", "
cstr+=c
2016-04-02 18:26:12 +00:00
2014-02-10 01:10:30 +00:00
cstr+=("};")
2016-04-02 18:26:12 +00:00
2014-02-10 01:10:30 +00:00
print(cstr)