From 72d51b7221e31588cd0728e8ed09389e6712a1c0 Mon Sep 17 00:00:00 2001 From: Ochi Wolfe Date: Sun, 1 Sep 2013 22:14:59 +0200 Subject: [PATCH] Font-loading is now done via font name (=name of font folder), updated DejaVu font file --- TextureCreator/TextureCreator.py | 5 +++-- .../DejaVu/{DejaVu.ttf => DejaVuSansMono.ttf} | Bin 333636 -> 335068 bytes TextureCreator/lib/TexturePainter.py | 15 ++++++++++++--- TextureCreator/scripts/_special.script | 4 ++-- 4 files changed, 17 insertions(+), 7 deletions(-) rename TextureCreator/fonts/DejaVu/{DejaVu.ttf => DejaVuSansMono.ttf} (79%) diff --git a/TextureCreator/TextureCreator.py b/TextureCreator/TextureCreator.py index fe1f285..f61449d 100644 --- a/TextureCreator/TextureCreator.py +++ b/TextureCreator/TextureCreator.py @@ -24,11 +24,12 @@ SCRIPTS_DIR = "scripts" OUTPUT_DIR = "output" if not os.path.exists(OUTPUT_DIR): - os.mkdir(OUTPUT_DIR) + os.mkdir(OUTPUT_DIR) # Iterate through all directories in the "fonts" directory. for fontName in os.listdir(FONTS_DIR): - fontFilePaths = glob.glob(os.path.join(FONTS_DIR, fontName, "*.[o,t]tf")) + fontFilePaths = glob.glob(os.path.join(FONTS_DIR, fontName, "*.[o,t]tf")) \ + + glob.glob(os.path.join(FONTS_DIR, fontName, "*.[O,T]TF")) # Ignore this font directory is there are no font files inside it. if len(fontFilePaths) < 1: diff --git a/TextureCreator/fonts/DejaVu/DejaVu.ttf b/TextureCreator/fonts/DejaVu/DejaVuSansMono.ttf similarity index 79% rename from TextureCreator/fonts/DejaVu/DejaVu.ttf rename to TextureCreator/fonts/DejaVu/DejaVuSansMono.ttf index 7260bd65e0dd2df5d0c398d579c126788603e5fd..8b7bb2a4e1b2c27786398c320e9020bcc24c3af3 100644 GIT binary patch delta 40111 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 O?5v+^vLHJv&-q^go&tXW delta 39939 zcmbrn3wRVo*0^8Q-E&E1NG4bA5N-*V$W2641jK;IA|fK9iwc5@E+QfzVq{oFM2v`r zWe`|I&2lp$5+vwGLVs_vOgqWgXS=lSdNPF0^eb?Vf; zx@S71&&ZF*2hAw()4mdNVgf7mrQof^7d2$_qt$yIs%`p-CU|6Z;KaJ}xTA=h5N z>F>K5aD7IIOA4;K{)WC)zl9TpxNH^%W?p-Jr>+Incdr+skA?p5G53z1I5K73MO=>* zBD3R|sgtvgg*<+e3WP8^-#PKF;Jtq}{`QR!Bg)87eAnm)CJGP#i<`!A?Z0dMLwCLw zT>KT+lZE-={&9DV9{bDU?VW{{GlcZ+;}Cc^86K|ZaNT;`y_2V1^h(EZTo((`@U8Lp zjTv2k(y$@Ix&nI_j=OjCw27%fD@Rz9sg%f?Fgkee9it8%pM&6}5G^t$-uJ-dCLcdP zTUZOdLQHQyanc$@#cJbK64n}PiN9u)65nKOCjO35PJFwu zo%jx82l4l;2ZXdHTR~x3Gp!xO-?QE$zSDZ2_%7=U;`@A03+bEZdqx<(`ToBO=^yDI zBMkpo|2`_9I>!JUE~%DR%F7n&TFHwFbdtPi1J_<5do&?zA~N}GDg1m|I5F}3VPevn zp+6rgoNjiiH{E)KE7N+=nr1y*xY7JHSrw-WFs-T9L)MIvMOLBb#%rx>879|j|DUm5 z5G{T4eIJMmeS3T#i~D>PzAwZBzA9gpc+mHw?5e|KIpO^nW4_`78Vt z;+X$){}k%thGO=FJ6SN(;&KipU!*Ij2 zp0}PCt*oUu(^@;zRy#9RJ2Or@Gv0UH_k+0CcM>=5$Bhrg*Zxm%=74tQ8|} zPGh_=$(Ux$FlHHZjrqnxV<|&s6=P(B@s_cL(XiY2#MoyXFb*5Xjg!V{quMk~ubE_~ zn~lsYGuzBHyP7@BUS^&-&>Uh8H%FSco56AB1aq=E-JEI8HVe$>%thuhv&dXyt}{29 zW#(3Mr@6wIs;c~nD zu2fe8S2I^@S9@1yS9e!WS6|lv*I?H$*Uhd`t~*`hU6WkXTr*s=TytIXT?<`HT`##- zxz@TixZZMYaqV#Jc75X7=Q`jz>^kl`={oJIb{lT5JIS5yZsg8#XS;LVUEMw0z1(^3 zf$kyh;qH;{;O*{l?g{S6?&XwJM6JMiJpKb)6>M$($m({(bLUysi%*pzh{tVsAq)dR?k?^J)Vi4sh)h# zqn2|imuIi%bI<-P&v%}qo*zA@JZHVa>-PG+son&^fF{s;e9f&a^YZ(r{K?_lpR@6Fy(-aEbHy_3At zgz(OQS>Czc`QC-zrQVmktGsKy8@z9Mw|IAWcY8na?(-h-9`+vhp7fsfRwoz<-h`xt z^n_regsg<@gxrL#2|W^eCFBW_Fc4V$6NUr3O2X|hE@48#(eUnI~#P5h4g&*M*ob^$Z&#emd`5_e=Kr?6!?V&Sthn~K^z5%|$zG1{~hEZ@QjE6}u z%{PP3S=!cIV)J1kEQObZ2>MnLSqmF{Z)v41#CO1M-zUC(z5~9)#E-*CI1SZo+Xi_3 zNlM?J?r-GJBFu(de^)+xKreqDp95hCYrOD})VjA58|RlD5zuFhBFYZXVpur7pRvhM7<`^vR+$0J1QIX zy4Ab1ULV5#FbIaihEvUD+-g4qApcvM}CfE$+ zunYFW=di!tcYGez`RTrTbYH!*_9-FBP3VVIXaLQiHMCFaoYXz3XHws!0ZGBZNyCzE zP8yYTXVUnjNlDX^W+cr@nwvB~X<^dRq?eLbC9O@`kn~p4mZTj?yOTai+Lv@7>2T8V zq?1Xfld6-AWN&g(a(Z&3y## zflYzUf%3qvz}~>;f&GE+0!ITs22KUeric`Gia#Yar9n!wl-4QjQ#z+~PwAP`HzhbA zWpK){l$%pVrQDe^K4ntMw3Hbsvr^`!%uiXEvNYwTlvOEfQ#Pc$m9iyeN6PM$Pg3@! z97s8way;c^%ITEqR3p`!nv|NJ+9)+EH9IvowQFjR)LyB1sRL7oqz+FVnRY~(TsYR)4QrD$!Of5^@8cf}px+k?F^~=&Mn%S#83!{eGfrguoN*>2 ztY$=}1&Nt~%*@OtnJqKhW_HZ%mU(GrpUnQ5gEEI^j>x<<^MbLN_he4YoSK=R`Do^x z%z2p$G8bnq&s>pNoVh-8Q|9K(^2}YCdow@J+@JYf=F!5=7c?#TzRj`Z!h;vx7re{7 zPmVY5H)qQ!=2K>Ye9C;@Tr8hNErJT>%Vw!x}^_uH7S>);I=_&u^;gl#> zu!%n^S9%`zJRw(kp7cB^U-7ApxR{OjX8Ee`Ha6nd^hW%;-iS+lbA1K!4gW6xF1d-5 zwMQNKnacXKpQ_LK4LRT!i)Q+0-%=myJE-G)$-}}Cge4qI~q&&+SVvS>)!>| z{GW+#Bn}ffzF&O5`yzhR@A3Qm$^ORv=Kfax9DfIYC;x^1i~X1Rd;72SU*-Rc|62d` zzEAys^{w>1;4Acnd@uW!_)2{xzJL4P@x9`E&-a1vV{R}E;pODd9I}R6!?_C>VU46c zgQKl+!lMqcBH5aRBbhj|NHnmPsJj%$k)M5Md||)gcl#6lN$hIP{4M?2{`UTk{;vM+ z{!7`@`uh9(2l@y5hx$J8-|SoATjqPtx6t>JZ?SKqZ@up=-)7$$-wxj{-(KJ6wH@Iu z-0|dpcSMS2WK0z4beHA7otwK~b&Oj(9W!v?DkQzMR%>AjFL$Kr{!yg=gXVBlL)BqBG<+c}Sj=r{(WP3*!o-pK*=xrtvQ0?!&@Q`ur+03U^%5rSSJFrsnL( zIhb>--S_RzweQrSQSR8>iMbEvPR|W?Y|yby$BrvAS2kanvvS_bXA772y-e;c{Ic(_ zvVP&7D?1fNuAG{)oxDfMdzQSZJBBCd!Gp9}vM{x$qd_&?#V z!k>n>gg1xZ4wr?m2=@v14qqJZ8txSC7;YDC6V3`Z3TKAX!>Qqvus3X+|Ly!Q=YKqZ z@cgIe*PU*6y6x%g(``<-I^FbilhciZryHGac)I@S%+ndC6Hj@MnpNSdQ&qoI{aE!~ z)wfj#tG=vyzv{iJ%~h+bR#lCw8e4UH)yS$5Rl}=ps2W-|psIgW->N=UJ*v7_3XXPE0V=G5j-d1^8rLQuvGNIC2 z>8X@Q&K)^(}_Lj8B;yxT>8$y(}7-r?i@Z^Cm&DVS8rUsyXxKHAJ6*tasM;2@L+#eGAAoe zqi577|AhMW_4ZK>9E#>fL!jIs0;^?{pkV5=>!bZ@P_z#3# zU^wyr5Z=Tp@4{27J|RuydV+W}!Y6^+Tm86=b%TfaRfGw^vSM9LNOvl%zYtPug*Awf zCvpnw8p7r_)?mUGa4GU@3H!he#DjMex!H!NXTm)S7z5T!Li$Nz(d6!j;9=s=5Yk0% z(yiwR9|O9|`UfHX?^YF{sol@o@F+>R7ui^g35#rKdf{G8|Emv+^O*ZJ8|$BhG^N5? zMo7~t*mQ)Oes$Bl)^ctM{tk~4r@NAHKw%XV;y}_I;;$0Yf(i@UNl)8Y>j)Qs8V|42 z|4De5gmLQ)!WV%-Wznxmj0c7F4&h20H3pJYfog2LOQ;HYllV5me}ftidkGmENgopD z5E0;u_cL1 zn{3<@2>)v1zK`%08}~%Q+u#xO?|0ciEj@Qp=QlL<)VV{bNGt*cZAfc z`A@{DN%NoK6!CL}v{G|g!43E+vZ$@cLr6`tsEj9-knxk%ia3?Z%C_;eA?ySfBUiFZ zAV>{8O4t*65${4s&9km1PD^C5xF|eInc65kpg8DKHBZ9$F^Y!o>x6W)RkcWa6|+3u@AWT6i8MYzU2rKTg=x#`6SW zOB>G|!qzsPCkd&Y!ZVk!J#--c6k$gj&(nn0!)^4x2hUsJbxR8OEFr`Jg_lBGrU0|R zOW`eXNa4kSmN?duw)Zw8%z+Dtw_uv9UiPR*UagfdEO)Mf@4lfd?Nwe1hVPc68IT9!|@eM+nKZk-6-z4+{ zVIDMP@5YSD&+X(YPRR-rfHn8#0&mEbf z9cgd%fVE>s8{a)btfZ?}X43z@zY%E+)XImkm1I~+Gx{*L@=2IS{Bc6MX63WQpAzEq zb{oFX6X$5XbF`Wdy>m3}xxW)f_uO1yT==#SE`t|{Gr-R=Th6^od=KGK@mFz9HPI(r z&_CxQ#49)&Q`_)l;`<1v0%^Xl2}xJ@X`RULKtKBL5c2bh@G|jxg#6+(D4k^`)x-WG zgDu1)F;?6m?)J12)5MEBO!yn?)l_khcZ8TD7JJ)>2fQP_w}`vMgWh`HM&5>|o14b* zBH#FlZ%yA4e-~rK1aAvD%-hGCBJLHBu#Vp@9u<#^kW7~uo(#T$Y3ga_Y3OMr-b^?y z-j$cKklpX;`e5u6c2eCdzyQ43il3gll-8#-*~{7Y)lc;`5tX*iFM;8{pG7A zz5W@LDVK{))x!fh;^A;uEDgB*uNCfDR=*uXF5nT9#rxI6BN5R!{IhklyC9ImYHw># zi8QsfOOjqlkg~Y2=kkWWzXh^IYavoR{xw{;lCKtyTHZ;%QaFEk2f4bWY)YXN3NG;~RTIGG8yl$O0*U3Ba<@(s4 z^Ky<{UAXS$cPMybQ3qVxQe?Z<)p2c0k#g;Dk#a5lU&^&U|9VZ;;pB=|at)si3olri zh)R!@oiH_S<;8MM$?}ySN%>&m#MPbTl#=DEM@#Rk<3zwM`isIAuVj`qf90e~4!nAw ze6VEZt1eS+ES$ZrLqi56N_m3+@R>Pb6?^UtWcyz)+_kP#mx9`<;VITZ*JptoW2$^l zr_h+>dK~#A>tQ7?Z2x*wTpaLvJKUS}dZ&i#|Dx^vMfNlL*N?BmJ&}G>@Vtd$&)PkfxrVhdX z^@S5ieY$okeh#+%FI-kqzxh;gTGs;Glx|zTE7qH93oA-gEy5+8(J zZ#Uw4%yyx z?+oK93$<>*<>wDtiSFifZt*!Kzt)j|L1iCM&F)_%)<*8NbI=IOkxV_5U#mT%4qm3C`7%iMv#)v5?F1uSYG%`1LXu;r3aSPU0;oXpCm<>H0x?pz- z9W&Ay#J6wGkp+cw`79~yb-2EKwq)1l_f$#GZK0$|s-%nTl4KSoJ?513FMba9aoF8 zeO67NEWBHy$B5YdPmmDatPb zChapvyV4F<*SSvPD&rREDyKE^Et^=mwnFQqyOjUtDwQoG>7 z_1|7)t`Rpsw;{bS@ZBRU3iH0}#K_sKKY!$NLt(Q+^&4`!!IM93DC-Iblge0(OZ_+X z(%Y+lL*a}=^&9=8_HwOL)!MdB6!tF3Y#6GQtTOBUmCOfX1;>^?ovJezCLN9z98I;C z2sM#5sAa)%I@U~dl)ZqgE1VF^8%=!@%OC4WxS?>F&bv@o>IU7!&*)UU+&wyPd}_@E z-k>J1Q*LYmQ|{$@;aXSN@krF?XzEkvzq1DF&Mq#zl~e{GO*!1@sZON6q$a;wCy%Jr zdc~28B~$7^WqlUS)0InPaJ|mKo~=E7oYGp^dvUE!+0L4!c1hN(uBwE#j{d{QN7(C~ zma}WxgG#s7^4JW^G45gTt|4bvo&F^013X;=Ifa2^%~|w1AM4W4_Js5r4d+xa9i8=s zi;s0`xKVq>EY>>X!o#h<+e5VEyJHt#*oD0+5|JO7@0k~{les+&>s)ioK>A5*tMRS- zUG~1krTv@A97E0xO=vEA%hJ&2&E>X~0;Oe0SDvv42i(TfrE9WeCqq74`ejQQGE%t1 z!OGL&L^Cgw2ka-KFCkRnmnHyI@w0nlNW}QuN!_y(@tV0Q(LRpeJ7o?PnY&#sJx485!`QIoM-w)BHQ*+mX4UE5V&Wys;Br@P6Y47H-GMb5wrs?|f?-5LgZs+**J`O?Q0rp#a8_naSG;+lt!TMzCF)Lp8nr;nlWqOd4SnU4vUz>3 zVofQyzqD3T`D|0m{i{ny=E;T$vU6zaHL`h^Zo260D5>Q#$IskXEo2UgliMxV!>}fb&U5G2c^JoJc>a7v3cc|I;(D6Iv z!}6ZeJMWSmjEnErYEwJgYTGEMk(+hXywA?w$Cm4P?;gNVvdfrWy7O*+CeZxVQdJ_` zpe|%JYg1c$ZF*bDCzOu7SKcq1zdBZ3MOV;mXtlAm)UA;@t@OkMd4@6qsZDCKTS*=r=x7QYxM7R z^woI1*w&Byq&wU`JJ{1l>;FgDpAZU6kzMZ6tFB4kYooeXY7PdfZ?xPVEpc;I<-iHM z7i*k|>f8IR8s6-ZY77?k`B&@E?kTLEQ$k-(ksV}*kbA1shdk}$|7dgeT&pq1a%2}z zow_)6`bO)IwTnmI#%{9{s!p>UeR~jhR`*c4EpLv>Yc>@vpB{`R=usbEKeDLVpfbdD z%Jf?L`e6RY0@UO;p0x{b^wk+6uU04Cs_mz!25cNxz>HA02j$((ot4tO-Sz^dyW^A| z4V678TgY>z2Og9iTHQqx2Rv3jOT<>z;><{*_JJT1o>>LGAQh~F0|f2t|p>~ z--V9}_fq;{zsWD09DO&x9_K&w8-{5G*rt!#jB@^MO`65ZPh= zVl`rgdRyLa&I-8sorcQXFLJ_KXJ%>nCSz_)U(2=rW?2*`AAxhPns=gK#xHK_Vdt-S zA%!DXUj(JKu5Z=P2sK$M??@<?^7@1_^9G7`TepRV z{!@OGuvw1Lm!m`Nm&tA9z1Aotbxi2=GWh^`Z!$BvydyN}1^EoAk67!tyepKrT;{YW zGpeobc>k%cRrBy8)?`<@s+DoQH3RwX(xJ;`i6q-`V;9$-l_tF;m&k;-<)pA5Gm}c! zzbwBpQs#-LqfH$tr}5{NE?XhLu!4g``}3>*q;<9%nW{CNR_;gZtTP%@?sg*(asP?D zTrP{3tJc@8yh9fKshu6Re$XkPrupAC+KcOOoaUz+YvkMcX8g53k(YD$TlgpP9mef7 z`jOpXFTXNh#aOyckEKEK_VcA2C_1QwJJgM#f3xwK@hyf>AYo&q$SQC>ujLc11Zw>!Ghab8tV0`{N@UVChdAwZZ$qP$`H@g*9(~fJ?SU6#ba2iv6%VOLtj6t zuV-^TNMAozdh1%Ys1{FXIYZwXs^xR^^-ElLb~VG!lci^0lab_v_pFc4zEA(X7c#cU zcRV|FZN4boxkY|$%8yG|l*>+SWY5s&$7D`M4kYH!9eXq%|g!Wf=BBgcompJ-% zWup3z;H=WmFBZ)n|v%9z`>3tdoIzFZ;Ab2K%YATiu5_wHOgQHDs$o zINjQ5$LNX?c2{&)4zzO|P}@n4E!P#fny;3$1NJiqy(8+;)ZWSPaCm@~TC?HD9%rh) z9uQ}!LtFukc|JF zcG3ml*Za-{`QsxQbrxR}X`_xH!ai21ioYLM@s5t26Uf)w_0|m@J-I#^UgGH6V>zlH zJVAn;p|niy67Ny3Pb(l z3W#MuZa)TCLqrb$_x8*hZjU9cvsiOM6Z467hfRa$7uxuK9g;S7Q zKmP2hAAi~pSI#moo*-obOU6*;y78dniMnN+;+dp}>4P$#weLdRl$$xo4$}uy@*%yx zmi`b<%IkF#pdF_lP@}?b`)Gz|DBxqeE%g$5k)1(u(_%fQ&ZtgXa`@DSo}tM;wwtoH zK63l%yWNzv^zC7ae$ee=-YP@#a+RTGrE<}tP611t0_--9I&?XGVi#b`qXj(0ZZ$A& zFm!k9e1_Z|tpF{=u;q(kmK-%0?B{T{r?Cvk?e7C@xy}&Pj}?%uzCWOY&>`(Jl_y#V zokyNnS|?iYrC2_b|bg zU*hQ7@*4fdK_^2=oeYhg47NO)p)fqw{zAe&q^T$O+M#X88(X(BHuT{w?hA~@j{Zh% zzeZop0;M0c6Gk|O3Yi}I8xO-S_>UQEc}$-^z1+jYe7`-9SiA-Eh^bCaTGswDA#OIQ zc|>Y7|0OI4)*??o$G}L2#U(l;=Q`_NcQPJ6DE1+}$#L)!ntoB-!hyD}kNjS16#90T zMDK1=RQ770L?4A2k)9BR2UO8$#xQ)v<(#f_Id(Yb6 zM}-!XZ8X~%Eypt|ZS@1(3s|??Erk4*Xf~$tv${p?-Kj=@iKA~1+Nl0E^zDN{X{fzr zbP7%p>6nYwR^QNj8d1y?-sy3RsCRV^PVx$;c>9S&OD5@A?PeR?ERO5o){fre$Xms2 zJ$a72O;Ba9tF3xC)$RIO8`2rn^DpDBqaLKcL^IG##SB@#kry*rAt-?5pV48Mc0Pu5 zE585Y>nH5>qzWwg3}x+D^tqi~ik1iMg4F5!fupZ#CPAAra~!S=(gi?MIdotm>S_C1q>WO!9H&^5Q4P#0j=yrru7Ij7+F zDcC-$*>j}ks5Ztqs@ZY|rY?92`u3M$w!Et&*GJJXr7vCA8RW@V$6w7eVlq$g^@vs$1F*XY{wAZe9Nn16q!W=El91{J4QB z|E!Xut*vGuSKpceQ@l>dc`QLt8$A`KJvf;NDKhy}2Ik-dhBtUx`fB z?%l7o^jELAmt#B_Vb#KsNp^0E+v#qIe6{+T7P+I3-2SR|buIlidR*$2Dm2hbE7;!D zn)R$Mm=km}Vo4Ejynmu#%@)EeQN5u_k?+j5N(MXxyP-3 z-o=+Te^V_~BX@swp6>V)`B7UQX=LlGlbKz>e)~(9h`WxVV~+e?-36)!w*J?)LlJe7 zE7ldT<;QJ@g#DmcRe+fp*9EoZLAQqjbKvkstxJBv>l3$(zH;l~b-}ObpN!Lwt`l|TP8Y}=9J0H> zw(oR-OmpNxr+{b|$mYr+T?0FV(*=K!N4r3cYPWWX!4@6W&Y+Hy#|E`((Kva~{Z;i^ z-K2FA+(&J>9@TLf-0`D2Uha(QFxL2eh3W#^p|9=P^auHIEf4Z6h7CyfrTxulY^|;% zk99#Ed2ANcl}BemU3qjCXn9aIol|ghp?DvMM(QT5bei-_J*sEamdBcOZf!X&`VZZr zb>-1@;-7K)LDgsbowZtd6kqT$Tkd>EtQ_^l57N5wSPNZ97u>BYX6r`>X-tc7CoppzlmM6m=%9vwt=<9g4P4U3oA%kKd{UFM{PNSPVeh_6N=Z54Z7O;w5T48VeWuy+23zZ z%b?oDYb6|W<|{p9J)xW0cIfN#dKTz;951)$@gII~A+BUsS7XaQS>4I4kA25tZ_nzx z&2v;V$T$9uVl=_6UdJS(-gNY{rt_*#V|r1!+c>54WPQDaD}#E)jOxXHxZyTfoUv!G z1L)b)-PU9Ok0rQG&cs~Xqh2ZM=@T^=le^6{t!MYW($jq$(~HX8X1cA%HvA9Owd&0* z+TnwxPRpqM-%eoFuajWQv;K>`#h=TSX}0s0PK)-B7VOAd#miOKx?3~<>lUmNIDW>- z+h9l^F5THm?*7m*R3m4ftC5HQ7SnJ0U*zo^Ipx#jkw&o$n8r|hyMTzhj=X~-e^<%1 zquk!r6dZXbCchwF?u;eX1(zcC7$1ap>aN)qB!fPJxi71o5R>=(FY?R(AXoc*j%^y3 zdf5eFr?$LzOx~CZ1hd_J{$NNYWV?BGP~&N25Qg+F>F$d>)&+5L=24COeD9b(Yw4fL z`zd)a+Lz~Fj%BdBpugSJ=T(#11>5qgY! zG!}?h!UJ|fs86O*U%ktvTdF2`N?g9UY|0W9WLd1O@5p(aP$Sp=PWz)BEq^Fp9*n$? zUwVagPuB%dePt+eM@;^3y!`y!m^}Z#$RCN9hd0Lb?S|zfr|gGc((<4htagH$BP!u{ zm7qPHSKu2)ss)9sP?r_oEyP;-KvBK)R z=~@ez{S!Nu_IQ2$(>rxnuJzp?MGMviAa`%CrO#r+Y*s&heO=4Bk+dIK+Xr~&8VF#ZndHQ z_D>Aix&9zm?WK3RSbI6ElWMSv_zdBvspnu_f6gJQ{?1K(b4TtrK30y0|H^gTFFDa; zF+l!BlVy&CgMztz{e1 zt#w-K*+g-UVb#3OVc%(9$1u(7$fM0$cQ$|TI9PWwJ90fp z?a7Qp4`zFi@?2|xp5<=!=P_t*7D#J~J|Z7giqZQoS)b|otg5*)JsF_t$Ih}h^0#!& z_k@0IVl)rVQx$eL9%lnl-(=Xwx7uJ|5UXolA_y1w*`mb=y8FkyHNWR^bR+JM2Iv;!Z8 z_BS=|m#Lw_&5YvG%;v@e?hD$9g{m-5y9i5_&Nb5-#T#Y(y2aB@{n1|)hSh4~_OuIa zY-4l?J=w-+l#=bS({ihA3dRnG>L(Tt2=#w0ym3*W0 zbdHhil9z?t7Z}$DITtyAua406Q)wTchs-8 zj7MU!n#}D(k9IV2)QiiGjp3;0n-fsybm7RDIcBjo+c_qqSgO~Jv3VqktSd+<6YaBjg-QnidOff~h zD$54^TIk0sjpp*TP*R>zKcQDl+OhWK;M$iHxNH|w)+6(B^**js#67AAMnbfRwMsp9 zsnvVM)W5TC)9P2m)PGck)m$d^GwNRvyZpa$>-0WR>+%dQ0`qN(|FzOP`x&>jm#soO z?lT^4$Y{sc%Od|{E%)4kua`&ekh4?W-WH`dPc%xb;6jF5>p+foVfd5qjRB8$q3jmE zQRgWWv#ktkmP!*QX-el)bd^qL$reD)qhhvkG){*!Wl!h-H~AadY1(!)KcOnaw$s2- z9${R-UtyjV$o4i?_3|zZ6-_a&?yWAA{sPKX;UdS6`?y9aJRy7|wHrZ6c4mfy_Sdk} zOLM0h_ay`u3PZlB^diUjy-Y*a*{qn}n~wgQ%ASzt-_m*~w4N^c{M(McD(^mR=SF^4 zIvqPYUA`HYKH>b^!V&{zN9zgmGyW8lNBBf?X``9OgV`BO0?ES?>|ZTzx8_53J`2Zj`-lU5rKCVJk&FL#2s^kj+ALh36|!uO>O-Y{Ob?s`+DslQ^TZMY-dtPj-5 z(7#E^jjw9SdpmMZLKX6z^ofXcGe0(uA=h^NloV$tFQ)%}sPkLgym;;8$O&sqD*MFnOPjqd4UOcKWpLGpz=1ae9L&&h`MV(GGR+}s}mFE^_hT! ztXrKGxYkcLRJz&%Rq?77)s2DEioe;_V19SAE>Z_zf2pdT$=;&$?N(G6(M=AZ>3G|J-i5@Z1(ch?+W@RIC!bms9X&W2a z=Ggz0Oz9!ZPC&+|u2KSis$LEUBSSq(TZI+u~x!w!p@P~%&G^rFVR5)|a8&-;IW)w;VP*ctXp+H=mY+OFN!0e>3DGrP)83yzX{uX!w83 zs?xvzY!*v(!_GlryU{G-#=QEm`4OWDJ<91>$z`>Y)0%#x%oq{KR)3~K>-(c}^p%{m zbd6lwQ9oMGR=+VvUM}DMQ~TvXIW20)Y!X*Mxh#mvYZc(g|4_gVS@@>~?BGo4RKQG( zv%f=5*K&S&scKwPgB@~_ZAibwz%uC6V7qa#nWI_=`4MwlO$!;)yg;=OKhh|(rp2{T z!2HgZTSqKzTVgGgY<}U`;b;1Mlj{^f4a`~50-WFP|6TunpRTYCna$O#b-G}Oe8xN! zDlgrF>0Sb%QoozoiY2YFG#wb58lYCR8znv>(^)jB>yFBMGJ6Q(E^a) z5>7*I|4g4-67_-veZ1M2tZRHvFx_P50<(A%A)ZBZ6q0CKy4x8?l*rGRo?;NUFs zhYFO-?V_)CG}EzPE>1>x1=b&|TZ8idwSXN)*FSBc9TaeDtpaw4YF$8G`#a+8M|R)C zJ0PPiZo}-CLl`o9jTIOgrKY8or^bXa(%68f8M>*}J0n}IC2I7_8_x6IvGdM|t)A zW5^qM2I9th#xRi@aQn8$@^|oDf_$fVh8%A7$Je8F9l5gP_PwX=cMrc|J#FxAk>UR= zbm>|13Arq^^{n}g99sI)IrB0ZoTRhohflH?8Mt+$Z7y74)@N~2Z&*DMuD~42uPP>7 zp%*PBFVu3TAUk!Q^_E%SUQBH#+j?qdahyEC*Ewi? zU@mu`LUDSW!Ba6sq*`&f^{qMG!!gTxxJHlbY;}z^TFdp~2I~Uz0FrBUK60CTJ&&Px z19~+t%^|lckq2|^_vmQmUv-8OG9-F0iDh^sa$3J-cUWaWp2K@|IdW@M|4-hs8>QZ| z6F2L@{D#)=8tz5+;sD*Xk+<*asn-OwL++q8<9A&{BaIAdcxGEOhO0q@J1T?oS{^rc z(bw`KH=X~6Ce`D{yiFAlK3sjYX8f=zg{>+jkMIkhn(?E?g)Qf=Nh!G+KlLJppA6-C zy4(EuZmgE}x8+j( zN@2}j*2+Ap<%Q0T?ARHcP4YJEIH`bJcyt!a4~JcFOo@?vIJ%et$}ZFV;E z7Bh?L>gAi#Rc(J#FKjx?ed}<#waEC9Y@vIJ|44Bp{1 z-<76H=iY?{TfJmjW*{M7yO=$duSVWJCa)>j8n^jq1}Rvk4t z8tMgUp~+E`Kl%8+^@8rN@uk^G7Jqc@-qO>_mMP_g(z5~U9Xa|lr{z91e#FpcYT-6s zvs=h$$hyOqfp!IqG8~T{-ph1Ricgy+RK~5eyrzHsya4gt7C(bi!EBtF~LlAjt`Ii-^U030Q(8P8~TCmB0s!P z=F)7pYw!E0Ro0RBQS#f>KO=^l*Q*Skm-W6ApW&d&;K*BPL$?0oIND4NV{3-`DnD9) zxJ^}{mV8WUc71EG49)B+Ta|v(z}giEzR!a&KXv@TsXMQhx^9w_z|xh+X8{)e{!M zCfF~;2gp9a&If~FB#eiAD1fC<4Eum`clYELa5oCOQP_>~-4#N7*c!UQ5FqVCjDNTe z$gl_FdvbxaJ*4fK2@8P2_w0viAwKE@94tOU{t@zz4hyjtr}uV-QBVN8h4{D!jOFXX zj}H<#Da0p!KjQ^Z=asVj{PIU!e2_N?)vlEwB%8Xdj06WdX|jhQK(O26F)YeP@LD zA9Vhw0knmkun&$3@ns(%&zGYBn_upQgMi(y#=>NnCB*(97yG&R8Y5q$_%#N;M(F^C z4`e|Pz|etla7Ku4#=|Nh4i18mP%gx`-C(~E-w}S72N?ct0UQ?M&?uM)WkMV#&tb|q zG7L5dQAwG>N}8%_02B#vv@P_35kRJ+b6~j;$8uqv5XZ@IyfdJGe6JASQ`q+uastCA zNdF-VDEJ3#{TP7put{*2Pkr-b-r z2$1=gnSilh)(LT{58$Lan*WOauUU`>!(bDC95x-ue|jlwfZb3n#BVtA+X5&8TI|et z`u|Kmf9;MM{f@!k%YlU7PY7|Ag3peEi7*pLJ6i#V;S_%?c9sy;q*s$(P1^akfGz$l zND;C*WklULh07lUT;TdC6a=^*4ZGC?f+vLX2!js=|LFSp5thXI{NerN*SU=WN1`d>Dh1xsNA>;^J4B12;`G$uo1GBhSb zV~jS=2lN^rgp)#j!z-IK0BYHUf}4zjX)qsF!4}vD=<)~uWz#Ic7JrvtHbtjt5T&M@ zU?-s1^eCJWvKh+FaID#WA)5~Y^s*={i;P)CfKH30LbeRRD3}T8w!&zugF?3M3D{~w z*anBQv6qdF>}nx%u$!}2$hLX(f7_)(wi^j3wYPwHdz3ohWiBm{OYL*ZguDRd3x)~V z5kvfeXW6kQpwn>y6bacW3;FU4Jw4}gRwr7;V{q&SENHO46%@~UBg z;#I^4i~{0U&w{0Zk%8l20jv}9FMR-Ge?eyuHU^P42nPohzy{bWHi_QLJk=P%Ynop6nxzfz}R&&VG&T+brgQxK_Go-0NO$y!06D4Fh|Ji zkzbGedUS?)p#g9`tOpE$okHF)2ypHO%DSO~{=ea{ki(0Fys;ac5OM^bjo2^bP4k7k zxizd4@~@o%2S<(qjNF3Lw-g9@>sUA`zI~ zc?a=3Dgd23hrm+$|IQ77$9Lty0>FuJ-C!0R74q($FakCSdCxGQuzS$Er(DRtHGq5| z|9JGr9~AOloVa(NkP|3i0)^gZ!8q70=kkvI@1b-di8}Le3E|Ovop3^hwTt^2stG=Qe=Ja8$^rMgkcM z$WYJ+Rtfnu@u$i3bP-etInM$Lnzsn{3;9eI%z<@K4*TGQkn<^Qem)cc`JQbHTtB;8 z$mfQ@Ui!Z<4`u zo=0ynb`~!ca)|}#FWCV5gpZ;I50E(d;FuLNDkSqPr8Zf$Y7)%EAR-(5Oy_M*#L~j*(tI%78-YWD~jfYvV z6gI$aI1JT7u1<$s$b*qE8G;3T6hRqOzzP1Ks|8J<8w`T6kPqmtL3a(hYtUVT?kj$1 z4LxBPjE7mU6gI$aI1JT77Nxb6R6NbTfm<3B=1MG&wP%Y$Z>5vO~FcK!y|F0DgDS|SnfD=Nlv!DrdgF!GB z@?ilKLpkh+Q$oJ(ht|*&hQWB41xsNA?1sZoE#&%i$b~!@36tsn^#xD_Wl#Yp_&3um zXae0}5R8R>!(cqjf~BwlcEe$)7IITM7z_EZ0E(d;_QNS5|Lup?&=ZEic$fuCVFT=j z!%!_`SvurG9)qxKB$3Hb07Xy+6>vhxw=HM_-Cz)mg?v~5#ZV6W;gpb@{m>eE!Y~*Q zvtTKpyBXch6>wO{cf8O5Ix`60VTpZ*b^4uYFdtUI7GUXohsEO^mg6lf$6InC4@Sad zD1ai^0J{OhTdIY8HyzM@7f0S50TW>kEQd{i-FI2$-^K3M0E2LATj&EQZ$)`4%3Bw~ zI@k&O;HZ$>1T=uoFaSouG(dmbazK9@`rFXoh9m!<2s(=8ZG|lF0b^l4Y=VPuM#$~m zU?LR5ULki-yB!p|0|2`p%mN(!pbYj4xjT#g z-#v~92_Fie=|0Q@41S0cA7bRgokH#*O*4mZi;y36hDAc|Z2*0M!av5w#~T0#Kj!)q zocv@Il*2waA>^mn`IIs~Z3{g?-GqEPmdG?HfaQRZPbu_MJpA;ekQEj*01Q@8Sj8|H z2l;@L6-BTKcEdq9CFEzMe@-4AKFQCI3i-tlz_ESg{hw|^eu*PrlJ6`2-97nL6Cw9w zeE(#?$bk`nk#D#@=mo-W(*a}O;?#Gfe}~?oaX`U`Njr=)Jl~N=dcr9oE2&gvwUAZC zLLMCj%V8a$a}-C8VdK~|P=~=|7&*2N&IozD0rY?oFbx*LCfEljh5SAXhQS;_&chOU zVgO7796V7W@ucQ7M*a0vH4)cT0J}?uu z2*VJ-wZXN)wV4j%p-dQ-ABMqlI4TTRw;&%Ap%_jG!`&9f0t&p7V0b9Rvq~6VFN}h{ z!boThn>ni|s{B2=Z`5&VbE&i{Pj*c;sUwlj7!7c&0d^abx8W*b1RKp1Mx!Fw35Ny0T?3RFkAnHIP8dyarpY*{5JuB(uv8e$ zvVa;j?+oP4DicNvbXp>Bl@1ixYM(G#FAzo>FCcF-0MKbO2X+c0J0OBa_IM&F=Ae)> z3YNnOVYH>7cGRF9g|%-B#c)s<9jH-ahVs8^|WBOFfK>0*8r#%M(<)_^jRQ`D@gB~2SE&6N#d0hdgVc3 zK0z|D-UkqTs6t2Viu-K4Dzl7I6CNEy5Vs6A1r; zy+IaWe-P<|$Umrn{vWh~$bMm5Ljl(efr&65*1=vlBaFdWFaSs!OxobXa7q~0_JDk- z5XO))z|rgeUs3lTRb_n#aQx%o`=i9OOuB);YJyVKavU$sQIWB^CNl|v5=yC?thV&9R_|ZD27kW zr&BQ~<{39ge1>AP9UwkC6S?r941P4B4Hv|e1;otZsyvII zu;_BOE~vMkI(ExIr$<|P*PQa-$BMjYc@PMXz_ zU(<#GF|}!+X00DFu*jF`^KvQLQ8OZDc>$QPoZ`zl>lGxe$OBDRG@%nTSTQW7jx(>L zK%EOkpjllrdO+^VWH7#xaXt?+D;ZxILzaekdXP^*XP<(wSD7>D+jTCOo2V;#CYGkZ24#qaHxD758p$-xBVMt6< zGO|&MHZdD>P{;k>I4ow~9_rvxTBt0_Xw@*_w_Z$P4G93>=4J zpx!nbZL0t|+uG3s>TJ(MA^czw+iT)tS}bOPW-UyPB*TMx^oeO@yp@F3Q87EpLDQYY zcIJRH-C2hSsI_xgOk0YWT>`I|-5FwD&lb}$B4!`^`>3;zdHad+8G)%eK%mo&b}?_T zJya#;NIF>15hh0S(JZE$=5N-cU(7KF*v6W~yhR~?4m8IZJ5ea6Cl#D&ZvlwElMwS> zj+oOd^z>OVXNp1HII(ya_n#j)%unmY{EP+g!-VN)@aH};zZeqp%ZQk>rMMvG!(?#$ zt6XqAz?^|mG3Pjeb2Rxix%{5jd=voj1dS3SVt(Th^IHdc#C%MjkI5Zu0y)3qLkRQx zJamcq1A$Kjob4Yu9`57Y%{h}lmx&pn*a+i)iHP}YImX0%%68PE5H$RZobw!?r{3R+ z#9VN}4{ChQ{^wz^pfA|}qF>CHK`~<&|7YhvHcYKcwsieB0wnw%qg*_h~81EQBRpZ7{l$-^x8kr4e_I)b8C zQ2)wq(VEn_=v5TCYE<;=3|x(G6pLQNG4FZGd!A16q6rkph=@*hiC#;i>pDfRFA}|B zT=Yf?W@n2|=@-pm{!QfG+$=h^S2VXx^p-3HK;2t&Q6+jC&wtJ1Ag>FjQ24$M(fhN(A`8+`3&tNH_COHyc#zr; zCPZfvo5_ceI+KDP1|M>Z7UJPL(MMU(V>B+J;ZqbU@rgd&E6V$T&Zc>ph|Zz-v*V)W z%zG{(I(JBPUNNXOkGbO2Ti@y zS2C%R;*|+eUpg4~dC`Ozn71ey%v)599{zwb2c-z08_anz73{w_C|YGvgm&(K6)UP1 zkW@Vj1gpnImt=wCCCx~PF6DA9twOJ;KLur=;4xTIUyC$wGK2>B_UBt9bucocOIdtLztVJgVMK@%F{0%H*Ll0`0*hGP* zOw=JJy3vB9O&OrkCMIqg0L?;-g@}jpP>6CcH$=e@O+tMb#F%Jv3bK%oB2=Ir5p<)U zTh%-)x>=Bh92B4wRS2RTJs7~K=oX6%Z6&FdCarFe&`LsU0BwkY$*m)zI~+&{b9a=2MeJY^ zJ6Oby9t>bql*hB~%s?Ir!Gd?zq8Xj&!ytJ7SDx3}#^knc(OqnJ(R3G0chPhgO?T6D zHw)bDM-w{0_#R?=SjZkXW{I|Eff}zBp#t@Y;9`u1uQ!YCW$}AC-rJ91?th1fcBFyi z4kquT87~RCk4F1w#4j9lUji&-KLz%WiXNy1`v*Ef;RAyh6YWd^bvpA=gbLJyx}D5@ zgSu}FiykC?kQxUsaQ_c+28Vp86Ya`Co9N+Ocu)qC4zrlU#Cb8%BLkw*a#V?SCxcjb z4~X-UqDL*Lb2JZyVD3?x9c>1Sc+&yz|8W2Rf585@=rM{Oqv)}0xZpuCNIK?60AX|> zhBy)!!MJEF8R^J|3mz213qJw~qXRWD{u4(6BN!KbD;ep?h6^4P!wWwG2%`fr#F4-V z#zl`OBOTdr!GmIW;YR>rba4NV$JmJ@A$o#KcY;gR!}cV%;3Q*jyTJGVADeAvduX`DF?@-%=#`op`Y^)R?#WiYUT=sx zS{-S2h8&bb&fA=Mazvui>zpQCa#-GRPUri;-CAWD<-D7J z-Z+0&GMURDfWBPXmjjM_GUZP=Gt2%Y;U!< z**rVVPPeyPm%YQzuy^vs<#*Y;?LF3Q@3r^Y`)z^ju@Be>?M&;j-?tChAJ{_suzkcn zYC~)GI<8KYb+*(#ZJ&`Q*=T3mGCRjU8$Ghuk)oIK73ZH$9G&>t#PiYq{f-&xkRCZ1 z`szVPR&@G7$6UU?rps~lWzo-1I>s}jfB(dBw?^;zlVkFv(0rSe7TRc&ri8AUm~=8a eG%@Mc3DL=4NgB8$I^l|>6UraN_gs~f?))$GahM7K diff --git a/TextureCreator/lib/TexturePainter.py b/TextureCreator/lib/TexturePainter.py index a3ab758..3e79b48 100644 --- a/TextureCreator/lib/TexturePainter.py +++ b/TextureCreator/lib/TexturePainter.py @@ -14,6 +14,7 @@ writes the result out to an image file. ''' import cairo +import glob import itertools import math import os @@ -22,7 +23,8 @@ from . import FontFaceCreator from . import TGAWriter from ScriptReader import ScriptReader -OUTPUT_DIR = "output" +FONTS_DIR = "fonts" +OUTPUT_DIR = "output" SCRIPTS_DIR = "scripts" class GridConfig: @@ -149,9 +151,16 @@ class TexturePainter: self.drawChar(char) elif script.getCmd() == "loadFont": - fontPath = script.getRawArg() - if fontPath == "": + fontName = script.getRawArg() + fontPath = "" + if fontName == "": fontPath = defaultFont + else: + fontFilePaths = glob.glob(os.path.join(FONTS_DIR, fontName, "*.[o,t]tf")) \ + + glob.glob(os.path.join(FONTS_DIR, fontName, "*.[O,T]TF")) + if len(fontFilePaths) < 1: + raise Exception("No font file found for font \"" + fontName + "\".") + fontPath = fontFilePaths[0] self.loadFont(fontPath) elif script.getCmd() == "jumpToCell": diff --git a/TextureCreator/scripts/_special.script b/TextureCreator/scripts/_special.script index 1661101..8ca796a 100644 --- a/TextureCreator/scripts/_special.script +++ b/TextureCreator/scripts/_special.script @@ -1,6 +1,6 @@ jumpToCell 0 9 -loadFont fonts/DejaVu/DejaVu.ttf +loadFont DejaVu drawChars ▲◀▼▶○◔◑◕● drawChars ↑←↓→↺↻☐☑☒ @@ -10,7 +10,7 @@ drawChars ♪♫♠♣♥♦⚀⚁⚂⚃⚄⚅✔✘☺☹ jumpToCell 24 11 -loadFont fonts/FreeSerif/FreeSerif.ttf +loadFont FreeSerif drawChars ℹ❌⌖∡⌛⌚