From a0d596bab9ad7f1001e2e2bdf8aa36d5f4e432ef Mon Sep 17 00:00:00 2001 From: Pierre-Yves Rollo Date: Mon, 16 Jul 2018 10:26:26 +0200 Subject: [PATCH] Creation for boards mod --- README.md | 13 +- boards/LICENSE.txt | 166 +++++++++++++++++++++++++ boards/LICENSE_FONT.txt | 4 + boards/copyright.txt | 2 + boards/depends.txt | 2 + boards/font_tinycurs.lua | 27 ++++ boards/init.lua | 139 +++++++++++++++++++++ boards/intllib.lua | 45 +++++++ boards/locale/fr.po | 40 ++++++ boards/locale/template.pot | 34 +++++ boards/textures/board_black_front.png | Bin 0 -> 563 bytes boards/textures/board_green_front.png | Bin 0 -> 485 bytes boards/textures/font_tinycurs_0000.png | Bin 0 -> 248 bytes boards/textures/font_tinycurs_0020.png | Bin 0 -> 230 bytes boards/textures/font_tinycurs_0021.png | Bin 0 -> 305 bytes boards/textures/font_tinycurs_0022.png | Bin 0 -> 289 bytes boards/textures/font_tinycurs_0023.png | Bin 0 -> 304 bytes boards/textures/font_tinycurs_0024.png | Bin 0 -> 338 bytes boards/textures/font_tinycurs_0025.png | Bin 0 -> 303 bytes boards/textures/font_tinycurs_0026.png | Bin 0 -> 325 bytes boards/textures/font_tinycurs_0027.png | Bin 0 -> 291 bytes boards/textures/font_tinycurs_0028.png | Bin 0 -> 299 bytes boards/textures/font_tinycurs_0029.png | Bin 0 -> 298 bytes boards/textures/font_tinycurs_002a.png | Bin 0 -> 292 bytes boards/textures/font_tinycurs_002b.png | Bin 0 -> 298 bytes boards/textures/font_tinycurs_002c.png | Bin 0 -> 287 bytes boards/textures/font_tinycurs_002d.png | Bin 0 -> 286 bytes boards/textures/font_tinycurs_002e.png | Bin 0 -> 282 bytes boards/textures/font_tinycurs_002f.png | Bin 0 -> 305 bytes boards/textures/font_tinycurs_0030.png | Bin 0 -> 311 bytes boards/textures/font_tinycurs_0031.png | Bin 0 -> 309 bytes boards/textures/font_tinycurs_0032.png | Bin 0 -> 320 bytes boards/textures/font_tinycurs_0033.png | Bin 0 -> 314 bytes boards/textures/font_tinycurs_0034.png | Bin 0 -> 315 bytes boards/textures/font_tinycurs_0035.png | Bin 0 -> 322 bytes boards/textures/font_tinycurs_0036.png | Bin 0 -> 315 bytes boards/textures/font_tinycurs_0037.png | Bin 0 -> 311 bytes boards/textures/font_tinycurs_0038.png | Bin 0 -> 316 bytes boards/textures/font_tinycurs_0039.png | Bin 0 -> 320 bytes boards/textures/font_tinycurs_003a.png | Bin 0 -> 294 bytes boards/textures/font_tinycurs_003b.png | Bin 0 -> 296 bytes boards/textures/font_tinycurs_003c.png | Bin 0 -> 286 bytes boards/textures/font_tinycurs_003d.png | Bin 0 -> 292 bytes boards/textures/font_tinycurs_003e.png | Bin 0 -> 287 bytes boards/textures/font_tinycurs_003f.png | Bin 0 -> 309 bytes boards/textures/font_tinycurs_0040.png | Bin 0 -> 335 bytes boards/textures/font_tinycurs_0041.png | Bin 0 -> 314 bytes boards/textures/font_tinycurs_0042.png | Bin 0 -> 308 bytes boards/textures/font_tinycurs_0043.png | Bin 0 -> 312 bytes boards/textures/font_tinycurs_0044.png | Bin 0 -> 313 bytes boards/textures/font_tinycurs_0045.png | Bin 0 -> 303 bytes boards/textures/font_tinycurs_0046.png | Bin 0 -> 308 bytes boards/textures/font_tinycurs_0047.png | Bin 0 -> 168 bytes boards/textures/font_tinycurs_0048.png | Bin 0 -> 324 bytes boards/textures/font_tinycurs_0049.png | Bin 0 -> 308 bytes boards/textures/font_tinycurs_004a.png | Bin 0 -> 182 bytes boards/textures/font_tinycurs_004b.png | Bin 0 -> 305 bytes boards/textures/font_tinycurs_004c.png | Bin 0 -> 306 bytes boards/textures/font_tinycurs_004d.png | Bin 0 -> 318 bytes boards/textures/font_tinycurs_004e.png | Bin 0 -> 314 bytes boards/textures/font_tinycurs_004f.png | Bin 0 -> 311 bytes boards/textures/font_tinycurs_0050.png | Bin 0 -> 311 bytes boards/textures/font_tinycurs_0051.png | Bin 0 -> 313 bytes boards/textures/font_tinycurs_0052.png | Bin 0 -> 318 bytes boards/textures/font_tinycurs_0053.png | Bin 0 -> 315 bytes boards/textures/font_tinycurs_0054.png | Bin 0 -> 307 bytes boards/textures/font_tinycurs_0055.png | Bin 0 -> 311 bytes boards/textures/font_tinycurs_0056.png | Bin 0 -> 309 bytes boards/textures/font_tinycurs_0057.png | Bin 0 -> 315 bytes boards/textures/font_tinycurs_0058.png | Bin 0 -> 310 bytes boards/textures/font_tinycurs_0059.png | Bin 0 -> 329 bytes boards/textures/font_tinycurs_005a.png | Bin 0 -> 327 bytes boards/textures/font_tinycurs_005b.png | Bin 0 -> 315 bytes boards/textures/font_tinycurs_005c.png | Bin 0 -> 297 bytes boards/textures/font_tinycurs_005d.png | Bin 0 -> 316 bytes boards/textures/font_tinycurs_005e.png | Bin 0 -> 296 bytes boards/textures/font_tinycurs_005f.png | Bin 0 -> 286 bytes boards/textures/font_tinycurs_0060.png | Bin 0 -> 298 bytes boards/textures/font_tinycurs_0061.png | Bin 0 -> 296 bytes boards/textures/font_tinycurs_0062.png | Bin 0 -> 304 bytes boards/textures/font_tinycurs_0063.png | Bin 0 -> 299 bytes boards/textures/font_tinycurs_0064.png | Bin 0 -> 306 bytes boards/textures/font_tinycurs_0065.png | Bin 0 -> 301 bytes boards/textures/font_tinycurs_0066.png | Bin 0 -> 307 bytes boards/textures/font_tinycurs_0067.png | Bin 0 -> 304 bytes boards/textures/font_tinycurs_0068.png | Bin 0 -> 300 bytes boards/textures/font_tinycurs_0069.png | Bin 0 -> 290 bytes boards/textures/font_tinycurs_006a.png | Bin 0 -> 300 bytes boards/textures/font_tinycurs_006b.png | Bin 0 -> 305 bytes boards/textures/font_tinycurs_006c.png | Bin 0 -> 299 bytes boards/textures/font_tinycurs_006d.png | Bin 0 -> 305 bytes boards/textures/font_tinycurs_006e.png | Bin 0 -> 308 bytes boards/textures/font_tinycurs_006f.png | Bin 0 -> 295 bytes boards/textures/font_tinycurs_0070.png | Bin 0 -> 313 bytes boards/textures/font_tinycurs_0071.png | Bin 0 -> 307 bytes boards/textures/font_tinycurs_0072.png | Bin 0 -> 306 bytes boards/textures/font_tinycurs_0073.png | Bin 0 -> 302 bytes boards/textures/font_tinycurs_0074.png | Bin 0 -> 299 bytes boards/textures/font_tinycurs_0075.png | Bin 0 -> 296 bytes boards/textures/font_tinycurs_0076.png | Bin 0 -> 296 bytes boards/textures/font_tinycurs_0077.png | Bin 0 -> 308 bytes boards/textures/font_tinycurs_0078.png | Bin 0 -> 300 bytes boards/textures/font_tinycurs_0079.png | Bin 0 -> 308 bytes boards/textures/font_tinycurs_007a.png | Bin 0 -> 304 bytes boards/textures/font_tinycurs_007b.png | Bin 0 -> 312 bytes boards/textures/font_tinycurs_007c.png | Bin 0 -> 304 bytes boards/textures/font_tinycurs_007d.png | Bin 0 -> 314 bytes boards/textures/font_tinycurs_007e.png | Bin 0 -> 291 bytes boards/textures/font_tinycurs_2018.png | Bin 0 -> 288 bytes boards/textures/font_tinycurs_2019.png | Bin 0 -> 288 bytes boards/textures/font_tinycurs_201c.png | Bin 0 -> 294 bytes boards/textures/font_tinycurs_201d.png | Bin 0 -> 295 bytes boards/tools/updatepo.sh | 25 ++++ 113 files changed, 495 insertions(+), 2 deletions(-) create mode 100644 boards/LICENSE.txt create mode 100644 boards/LICENSE_FONT.txt create mode 100644 boards/copyright.txt create mode 100644 boards/depends.txt create mode 100644 boards/font_tinycurs.lua create mode 100644 boards/init.lua create mode 100644 boards/intllib.lua create mode 100644 boards/locale/fr.po create mode 100644 boards/locale/template.pot create mode 100644 boards/textures/board_black_front.png create mode 100644 boards/textures/board_green_front.png create mode 100644 boards/textures/font_tinycurs_0000.png create mode 100644 boards/textures/font_tinycurs_0020.png create mode 100644 boards/textures/font_tinycurs_0021.png create mode 100644 boards/textures/font_tinycurs_0022.png create mode 100644 boards/textures/font_tinycurs_0023.png create mode 100644 boards/textures/font_tinycurs_0024.png create mode 100644 boards/textures/font_tinycurs_0025.png create mode 100644 boards/textures/font_tinycurs_0026.png create mode 100644 boards/textures/font_tinycurs_0027.png create mode 100644 boards/textures/font_tinycurs_0028.png create mode 100644 boards/textures/font_tinycurs_0029.png create mode 100644 boards/textures/font_tinycurs_002a.png create mode 100644 boards/textures/font_tinycurs_002b.png create mode 100644 boards/textures/font_tinycurs_002c.png create mode 100644 boards/textures/font_tinycurs_002d.png create mode 100644 boards/textures/font_tinycurs_002e.png create mode 100644 boards/textures/font_tinycurs_002f.png create mode 100644 boards/textures/font_tinycurs_0030.png create mode 100644 boards/textures/font_tinycurs_0031.png create mode 100644 boards/textures/font_tinycurs_0032.png create mode 100644 boards/textures/font_tinycurs_0033.png create mode 100644 boards/textures/font_tinycurs_0034.png create mode 100644 boards/textures/font_tinycurs_0035.png create mode 100644 boards/textures/font_tinycurs_0036.png create mode 100644 boards/textures/font_tinycurs_0037.png create mode 100644 boards/textures/font_tinycurs_0038.png create mode 100644 boards/textures/font_tinycurs_0039.png create mode 100644 boards/textures/font_tinycurs_003a.png create mode 100644 boards/textures/font_tinycurs_003b.png create mode 100644 boards/textures/font_tinycurs_003c.png create mode 100644 boards/textures/font_tinycurs_003d.png create mode 100644 boards/textures/font_tinycurs_003e.png create mode 100644 boards/textures/font_tinycurs_003f.png create mode 100644 boards/textures/font_tinycurs_0040.png create mode 100644 boards/textures/font_tinycurs_0041.png create mode 100644 boards/textures/font_tinycurs_0042.png create mode 100644 boards/textures/font_tinycurs_0043.png create mode 100644 boards/textures/font_tinycurs_0044.png create mode 100644 boards/textures/font_tinycurs_0045.png create mode 100644 boards/textures/font_tinycurs_0046.png create mode 100644 boards/textures/font_tinycurs_0047.png create mode 100644 boards/textures/font_tinycurs_0048.png create mode 100644 boards/textures/font_tinycurs_0049.png create mode 100644 boards/textures/font_tinycurs_004a.png create mode 100644 boards/textures/font_tinycurs_004b.png create mode 100644 boards/textures/font_tinycurs_004c.png create mode 100644 boards/textures/font_tinycurs_004d.png create mode 100644 boards/textures/font_tinycurs_004e.png create mode 100644 boards/textures/font_tinycurs_004f.png create mode 100644 boards/textures/font_tinycurs_0050.png create mode 100644 boards/textures/font_tinycurs_0051.png create mode 100644 boards/textures/font_tinycurs_0052.png create mode 100644 boards/textures/font_tinycurs_0053.png create mode 100644 boards/textures/font_tinycurs_0054.png create mode 100644 boards/textures/font_tinycurs_0055.png create mode 100644 boards/textures/font_tinycurs_0056.png create mode 100644 boards/textures/font_tinycurs_0057.png create mode 100644 boards/textures/font_tinycurs_0058.png create mode 100644 boards/textures/font_tinycurs_0059.png create mode 100644 boards/textures/font_tinycurs_005a.png create mode 100644 boards/textures/font_tinycurs_005b.png create mode 100644 boards/textures/font_tinycurs_005c.png create mode 100644 boards/textures/font_tinycurs_005d.png create mode 100644 boards/textures/font_tinycurs_005e.png create mode 100644 boards/textures/font_tinycurs_005f.png create mode 100644 boards/textures/font_tinycurs_0060.png create mode 100644 boards/textures/font_tinycurs_0061.png create mode 100644 boards/textures/font_tinycurs_0062.png create mode 100644 boards/textures/font_tinycurs_0063.png create mode 100644 boards/textures/font_tinycurs_0064.png create mode 100644 boards/textures/font_tinycurs_0065.png create mode 100644 boards/textures/font_tinycurs_0066.png create mode 100644 boards/textures/font_tinycurs_0067.png create mode 100644 boards/textures/font_tinycurs_0068.png create mode 100644 boards/textures/font_tinycurs_0069.png create mode 100644 boards/textures/font_tinycurs_006a.png create mode 100644 boards/textures/font_tinycurs_006b.png create mode 100644 boards/textures/font_tinycurs_006c.png create mode 100644 boards/textures/font_tinycurs_006d.png create mode 100644 boards/textures/font_tinycurs_006e.png create mode 100644 boards/textures/font_tinycurs_006f.png create mode 100644 boards/textures/font_tinycurs_0070.png create mode 100644 boards/textures/font_tinycurs_0071.png create mode 100644 boards/textures/font_tinycurs_0072.png create mode 100644 boards/textures/font_tinycurs_0073.png create mode 100644 boards/textures/font_tinycurs_0074.png create mode 100644 boards/textures/font_tinycurs_0075.png create mode 100644 boards/textures/font_tinycurs_0076.png create mode 100644 boards/textures/font_tinycurs_0077.png create mode 100644 boards/textures/font_tinycurs_0078.png create mode 100644 boards/textures/font_tinycurs_0079.png create mode 100644 boards/textures/font_tinycurs_007a.png create mode 100644 boards/textures/font_tinycurs_007b.png create mode 100644 boards/textures/font_tinycurs_007c.png create mode 100644 boards/textures/font_tinycurs_007d.png create mode 100644 boards/textures/font_tinycurs_007e.png create mode 100644 boards/textures/font_tinycurs_2018.png create mode 100644 boards/textures/font_tinycurs_2019.png create mode 100644 boards/textures/font_tinycurs_201c.png create mode 100644 boards/textures/font_tinycurs_201d.png create mode 100755 boards/tools/updatepo.sh diff --git a/README.md b/README.md index 9ec6ef8..13abfca 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,14 @@ -# Display Modpack +# Display Modpack +Version 1.1.1 This modpack provides mods with dynamic display. Mods are : - **display_api**: A library for adding display entities to nodes; - **font_api**: A library for displaying fonts on entities; -- **ontime_clocks**: A mod providing clocks which display the ingame time; - **signs_api**: A library for the easy creation of signs; + +- **boards**: A mod providing school boards; +- **ontime_clocks**: A mod providing clocks which display the ingame time; - **signs**: A mod providing signs and direction signs displaying text; - **signs_road**: A mod providing road signs displaying text; - **steles**: A mod providing stone steles with text; @@ -16,6 +19,12 @@ For more information, see the [forum topic](https://forum.minetest.net/viewtopic ## Changelog +### 2018-07-16 (Version 1.1.1) + +- Boards mod added. + +- Bug fix in default font chosing when multiple font registered. + ### 2018-07-13 (Version 1.1.0) - Font API rework introducing Font class. diff --git a/boards/LICENSE.txt b/boards/LICENSE.txt new file mode 100644 index 0000000..341c30b --- /dev/null +++ b/boards/LICENSE.txt @@ -0,0 +1,166 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. + diff --git a/boards/LICENSE_FONT.txt b/boards/LICENSE_FONT.txt new file mode 100644 index 0000000..29d0f9b --- /dev/null +++ b/boards/LICENSE_FONT.txt @@ -0,0 +1,4 @@ +The FontStruction “Tiny Cursive” +(https://fontstruct.com/fontstructions/show/63155) by “cyfry77” is licensed +under a Creative Commons Attribution Share Alike license +(http://creativecommons.org/licenses/by-sa/3.0/). diff --git a/boards/copyright.txt b/boards/copyright.txt new file mode 100644 index 0000000..ad83a10 --- /dev/null +++ b/boards/copyright.txt @@ -0,0 +1,2 @@ +Code by Pierre-Yves Rollo (pyrollo) +Font by (cyfry77) diff --git a/boards/depends.txt b/boards/depends.txt new file mode 100644 index 0000000..8c807e3 --- /dev/null +++ b/boards/depends.txt @@ -0,0 +1,2 @@ +default +signs_api diff --git a/boards/font_tinycurs.lua b/boards/font_tinycurs.lua new file mode 100644 index 0000000..a9a323a --- /dev/null +++ b/boards/font_tinycurs.lua @@ -0,0 +1,27 @@ +--[[ + Tinycurs font for Font API + + Original font Tiny Cursive + by cyfry77 + G and J textures by Pierre-Yves Rollo (pyrollo) + released under CC-BY-SA license + + https://fontstruct.com/fontstructions/show/63155/tiny_cursive + + Derivative texture are under CC-BY-SA license + Code is under LGPL v3 license +--]] + +font_api.register_font('tinycurs', + { + default = false, -- Don't register this font as a possible default font + margintop = -2, + marginbottom = -2, + linespacing = -4, + height = 19, + widths = { + [0]=9, [32]=9, [33]=6, [34]=7, [35]=10, [36]=14, [37]=14, [38]=12, [39]=3, [40]=6, [41]=6, [42]=9, [43]=8, [44]=3, [45]=7, [46]=3, [47]=9, [48]=9, [49]=7, [50]=10, [51]=9, [52]=9, [53]=10, [54]=10, [55]=9, [56]=10, [57]=8, [58]=5, [59]=5, [60]=8, [61]=8, [62]=8, [63]=8, [64]=12, [65]=9, [66]=7, [67]=9, [68]=10, [69]=8, [70]=8, [71]=8, [72]=10, [73]=7, [74]=8, [75]=9, [76]=9, [77]=12, [78]=10, [79]=9, [80]=9, [81]=9, [82]=11, [83]=11, [84]=8, [85]=11, [86]=11, [87]=12, [88]=12, [89]=11, [90]=11, [91]=8, [92]=5, [93]=8, [94]=8, [95]=8, [96]=5, [97]=6, [98]=6, [99]=6, [100]=7, [101]=6, [102]=5, [103]=6, [104]=6, [105]=4, [106]=5, [107]=7, [108]=5, [109]=9, [110]=8, [111]=6, [112]=9, [113]=8, [114]=7, [115]=7, [116]=6, [117]=8, [118]=8, [119]=11, [120]=10, [121]=8, [122]=8, [123]=8, [124]=6, [125]=9, [126]=10, [8216]=4, [8217]=4, [8220]=6, [8221]=6 + }, + } +); + diff --git a/boards/init.lua b/boards/init.lua new file mode 100644 index 0000000..4126a6c --- /dev/null +++ b/boards/init.lua @@ -0,0 +1,139 @@ +--[[ + boards mod for Minetest. Black boards with text on it. + (c) Pierre-Yves Rollo + + This file is part of boards. + + boards is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + boards is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with boards. If not, see . +--]] + +boards = {} +boards.name = minetest.get_current_modname() +boards.path = minetest.get_modpath(boards.name) + +-- Load support for intllib. +local S, NS = dofile(boards.path.."/intllib.lua") +boards.intllib = S +local F = function(...) return minetest.formspec_escape(S(...)) end + +-- Load font +dofile(boards.path.."/font_tinycurs.lua") + +local function set_formspec(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[6,4]"..default.gui_bg..default.gui_bg_img..default.gui_slots.. + "textarea[0.5,0.7;5.5,3;display_text;"..F("Text")..";${display_text}]".. + "button_exit[3,3.5;2,1;ok;"..F("Write").."]".. + "button_exit[1,3.5;2,1;wipe;"..F("Wipe").."]") +end + +-- On boards, everyone is allowed to write and wipe +local function on_receive_fields(pos, formname, fields, player) + if fields then + if fields.ok or fields.key_enter then + signs_api.set_display_text(pos, fields.display_text, fields.font) + end + if fields.wipe then + signs_api.set_display_text(pos, "", fields.font) + end + end +end + +models = { + black_board = { + depth = 1/16, width = 1, height = 1, + entity_fields = { + top = -1/32, + size = { x = 1, y = 15/16 }, + maxlines = 5, + color = "#fff", + font_name = "tinycurs", + valign = "top", + }, + node_fields = { + description = S("Black board"), + tiles = { "default_wood.png", "default_wood.png", + "default_wood.png", "default_wood.png", + "default_wood.png", "board_black_front.png" }, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5}, + {-0.5, -7/16, 6/16, 0.5, -0.5, 7/16} + }, + }, + on_construct = function(pos) + set_formspec(pos) + display_api.on_construct(pos) + end, + on_receive_fields = on_receive_fields, + }, + }, + green_board = { + depth = 1/16, width = 1, height = 1, + entity_fields = { + top = -1/32, + size = { x = 1, y = 15/16 }, + maxlines = 5, + color = "#fff", + font_name = "tinycurs", + valign = "top", + }, + node_fields = { + description = S("Green board"), + tiles = { "default_wood.png", "default_wood.png", + "default_wood.png", "default_wood.png", + "default_wood.png", "board_green_front.png" }, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5}, + {-0.5, -7/16, 6/16, 0.5, -0.5, 7/16} + }, + }, + on_construct = function(pos) + set_formspec(pos) + display_api.on_construct(pos) + end, + on_receive_fields = on_receive_fields, + }, + }, +} + +-- Node registration +for name, model in pairs(models) +do + signs_api.register_sign("boards", name, model) +end + +-- Recipes +minetest.register_craft( + { + output = "boards:black_board", + recipe = { + {"group:wood", "group:stone", "dye:black"}, + } + }) + +minetest.register_craft( + { + output = "boards:green_board", + recipe = { + {"group:wood", "group:stone", "dye:dark_green"}, + } + }) + diff --git a/boards/intllib.lua b/boards/intllib.lua new file mode 100644 index 0000000..6669d72 --- /dev/null +++ b/boards/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/boards/locale/fr.po b/boards/locale/fr.po new file mode 100644 index 0000000..1b081be --- /dev/null +++ b/boards/locale/fr.po @@ -0,0 +1,40 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-16 10:00+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: init.lua +msgid "Text" +msgstr "Texte" + +#: init.lua +msgid "Write" +msgstr "Ecrire" + +#: init.lua +msgid "Wipe" +msgstr "Effacer" + +#: init.lua +msgid "Black board" +msgstr "Tableau noir" + +#: init.lua +msgid "Green board" +msgstr "Tableau vert" + + diff --git a/boards/locale/template.pot b/boards/locale/template.pot new file mode 100644 index 0000000..8db98b8 --- /dev/null +++ b/boards/locale/template.pot @@ -0,0 +1,34 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-16 10:00+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: init.lua +msgid "Text" +msgstr "" + +#: init.lua +msgid "Write" +msgstr "" + +#: init.lua +msgid "Wipe" +msgstr "" + +#: init.lua +msgid "Black board" +msgstr "" diff --git a/boards/textures/board_black_front.png b/boards/textures/board_black_front.png new file mode 100644 index 0000000000000000000000000000000000000000..bddf4b6c1a29e3b624bb251e12b209c91ca7e067 GIT binary patch literal 563 zcmV-30?hr1P)WFU8GbZ8()Nlj2>E@cM*00EatL_t(I%T<#*jukNw zMbE8rzhMJJB;8giS9-cnTgqxDX1#!MuqFB?mQ>mi`_BC ztxIGqNYYYflm7DZfq??#E#O*YmKwBL59Mj>W35faBZh>RP1W-fdY?~2&I3%L#U zR)K|A8DN;RSVl<37`L?7RBvAx+W5N+G+3Z5ZJnsr|K$_t_M71_?#a<;bd9%x+lHmXTOK0LI9LahrY_MdH|xXwH+!xZg|Fyg3js zzJEC{@i?pb@$)y`?6HKg literal 0 HcmV?d00001 diff --git a/boards/textures/board_green_front.png b/boards/textures/board_green_front.png new file mode 100644 index 0000000000000000000000000000000000000000..57e613fead4092f023a697b1d1bf80eede2265a3 GIT binary patch literal 485 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPdJ3p71aIIda5Ku@qGbEzKIX^cyHLnE7WngeFN=+&uIHXWsl`D!yvwTHoho@ss)#x*UogRVb{lIVUwah4;g19m!pb-DjlKEz=%-`>p=&-12_;id}b( Z$S=P1Aneg5->sm~_H^}gS?83{1OTSf$T|Q3 literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0000.png b/boards/textures/font_tinycurs_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..5e3252362bb1b6b37ef89098733c85b3d1515fc5 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^oIoth!2%>-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`nUcKS zT^Rni_n+AhFVdQ&MBb@0G}5(9smFU literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0021.png b/boards/textures/font_tinycurs_0021.png new file mode 100644 index 0000000000000000000000000000000000000000..23412706efe5e9ae08b9123f6ad5f86e0edb07d0 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp{0x7sn8e>&XcR`2QLINlyTRLu!W`6c4vJ3)ZFnmn>ks zV?)FK#IZ0z|cb1z+BhBFvQ5f%Fx2f&{EsL z$jZRrdBRpN6b-rgDVb@NxHU|(<^2YBCeVhQ#H7?52E~i{w?%_9Bc!2%?|$=tsRq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp`cp ntHiBgnl0})u(N&s{y;~lv2tE%%i4pB z^E4P3@>Kc18oa8?1ZgO7jVMV;EJ?LWE=mPb3`Pcq7PDy85}Sb4q9e0G!!S Ag8%>k literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0024.png b/boards/textures/font_tinycurs_0024.png new file mode 100644 index 0000000000000000000000000000000000000000..21faedccbf9965dd60121a3eb0be697bb34959f7 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^d_XMB!2%??IKRjPDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}xS~&49P{`fW#W6(V{M88u`4|*9oHqXdpT6sg+k>d<78L>V7LCDE zx;AYqzus}k@a>CZ%>F@-RaH-KHtMvk^t?T1!c+Gr%%9vh9q;?;E4*=*%*UQ8KcM{# zswJ)wB`Jv|saDBFsX&Us$iUD-*T7uYz%azfz{=3V%Ft5Vz{twL;CaGUFBA>A`6-!c nmAExbv*rB;)W8n1Atx~@HHSfEA*=o@pb&$ntDnm{r-UW|j@V?! literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0025.png b/boards/textures/font_tinycurs_0025.png new file mode 100644 index 0000000000000000000000000000000000000000..d13b1367053572f432b20704bccfcc0230babb35 GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^d_XMB!2%??IKRjPDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}xS~&49P)Nno#W6(Vd~$*U)1TvK|M#o?mEZ1H63o^p!g&4P@mvMD zl@B=>T;qk_{VE6m8pNPl;u=wsl30>zm0Xkxq!^403@vmG%ykV6LyQcp3@xk-Ewv4d ztPBjECv5dX(U6;;l9^VCTf;P4-fv(>0&U1iOiImRP`$<^&jS=<@O1TaS?83{1OPs0 BPwM~x literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0026.png b/boards/textures/font_tinycurs_0026.png new file mode 100644 index 0000000000000000000000000000000000000000..0217d0805cbca6c64504c6806701a4a18b6a03cd GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eW!2%@t{-`JcDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}xS~&49P{_*D#W6(Ua&m$K)1UMo{jm~`NgR)-97q)Llm3@1ek|!q z{Tr+Qk1zD9F_)k YDK&>d&7a$E8&HVB)78&qol`;+0EO6FnE(I) literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0027.png b/boards/textures/font_tinycurs_0027.png new file mode 100644 index 0000000000000000000000000000000000000000..3358a85012c729f6e43bce37e0668149a1e5b34b GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^%s?#6!2%@zf3IH;q*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp_cF7sn8e>&XcY?EfVtW=LqT{FnSUd65jm`Dx4yyKT&c zfNE4rTq8h>?Mnp@o&9rM7{Qm4U(YgsomE8glbf oGSez?YnW!s`wi?cpba^RNvSyu>J~h83P2$SPgg&ebxsLQ0O9mWm;e9( literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0028.png b/boards/textures/font_tinycurs_0028.png new file mode 100644 index 0000000000000000000000000000000000000000..4867acaf860df49cef07d907902de3bdf3802b4a GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp_QB7sn8e>&XcRnEoXj%q-AyoS1khlP@oINAIyyOZgZW z&L3uDZ>(LC2vnzm0Xkxq!^403@vmG%ykV6LyQcp3@xk-Ewv4dtPBjE xCv5dX(U6;;l9^VCTf;P4-fv(B0&U1iOiImR&{(lKc_UDW!PC{xWt~$(69BTAP%r=h literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0029.png b/boards/textures/font_tinycurs_0029.png new file mode 100644 index 0000000000000000000000000000000000000000..6233ad6eac30cdb5fab13f25e337cd63e3070e13 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp}Zg7sn8e>&XcR82)c8m^s0<>>>lzq_7#Ua@T38ucY8x0?85lfI w*y@F%AvZrIGp!Q0hH19E-@xtz+K`i&l$yh!d4Ef=I#7tg)78&qol`;+0Q%feg#Z8m literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_002a.png b/boards/textures/font_tinycurs_002a.png new file mode 100644 index 0000000000000000000000000000000000000000..95ecb143ba3c152ae43c629a1dd4686309f227e1 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^oIoth!2%>-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp{y_7sn8Z%gG4}yno!E|7)MTBh=6#v^Rx;;m%+7pLYw^ z1OpYRmbgZgq$HN4S|t~y0x1R~149d419M#i!w@3_D?GR*}FF?hQAxvXdAqwXFs$lTHUje4 zOFVsD*&nepiUk?8*xT{2?K+h zB`ed`njde0N>xi-BT7;dOH!?pi&B9UgOP!ug|30Qu7P2Qk%5(=g_WVDwtkGE literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_002c.png b/boards/textures/font_tinycurs_002c.png new file mode 100644 index 0000000000000000000000000000000000000000..7457341090d63417fb1fdd022c03fd1f202f7d2a GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^%s?#6!2%@zf3IH;q*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp_!N7sn8e>&XcVSbv;900b^uiWu})F)}eH3V#R6tCqM% zl%yn|d10yQ~gXalby-+md=BH$)RpQn# j&6f8Y*ik?mauSnLa~O2i-&?){D8%6D>gTe~DWM4f;?zu0 literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_002d.png b/boards/textures/font_tinycurs_002d.png new file mode 100644 index 0000000000000000000000000000000000000000..f0edd03e1f0ab9aeb3bb74a6534520bc25367285 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bc!2%?|$=tsRq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp|mI7sn8Z%gG4~L=#ee^dFI%#K3Uq8Y7cdbl82Mv}%cK zL`h0wNvc(HQ7VvPFfuT-&^0jEH82b@GO#kVurjpNHZZa>FnFG@)eA*KZhlH;S|x4` j(`#?9$=Kp_TCS3j3^P6 literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_002e.png b/boards/textures/font_tinycurs_002e.png new file mode 100644 index 0000000000000000000000000000000000000000..6425d1f8148a0b0bf133964c3fcb32cc7f4e0d1f GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^%s?#6!2%@zf3IH;q*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp}ol7sn8e>&XcVSbzA>Dq_$NV`O+5ZW02NQY~?fC`m~y zNwrEYN(E93Mh1o!x(4RD28JO<23Cd^R)&_^21Zr}2G0|=dZB2@%}>cptHiBgnl0}) fuzP?u-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp{0x7sn8Z%gG4}4F8M`fIx6zTf?gV6)ZDOTxw~Pgg&ebxsLQ0P6lv A`2YX_ literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0030.png b/boards/textures/font_tinycurs_0030.png new file mode 100644 index 0000000000000000000000000000000000000000..0c522865e2bc9352447931251a2b10a720d6ce1a GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^oIoth!2%>-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9|%YT?AcKp`DZ7sn8Z%gG4}Yz9s*|7+OnV3?A2Xx&eHE$(hDHKi?r z>jjrRwBPlhzKxNE!R|dbld?qBOQ1g064!{5l*E!$tK_0oAjM#0U}&LhV6JOm7-D2# zWoTh#XsK;rWMyFRJYlOBiiX_$l+3hB+#06Y@_qw57HC6GVp3`jgTe0mzn=qz7(8A5 KT-G@yGywn_y;URt literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0031.png b/boards/textures/font_tinycurs_0031.png new file mode 100644 index 0000000000000000000000000000000000000000..3da16d14bd87fa0dab21eaa73476373f099b35d3 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bc!2%?|$=tsRq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppcfQi(`ny<>UkfzCY;+K;ZOD;dBCrf@YdRTX&jX-O(P8 zZ-zoI>ozekgnVJ=s5a}I57ebv;u=wsl30>zm0Xkxq!^403@vmG%ykV6LyQcp3@xmT z473f5tPBkPlz*>6(U6;;l9^VCTSKpw|1q#rfi~nMCZ*;u7@oOtx)3PD;OXk;vd$@? F2>`#4Q-S~h literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0032.png b/boards/textures/font_tinycurs_0032.png new file mode 100644 index 0000000000000000000000000000000000000000..6e647a58624cd4535548020e58bae5582250d0c8 GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs|E3y@@f6p{+0SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4T z;_2(k{)nAXL`dYxQI0}W6uag8WRNi0dVN-jzTQVd20h8DU8 z=DG%kAw~vPh89*v2HFNjRt5%t%D-2kXvob^$xN%nt)W-T{}@mMJIIEd#H7?52BXl6 SvrYqr7(8A5T-G@yGywqGj#t-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppd?&i(`ny<>UkfHUp=Z|21rOFf^q(OintK|E|8|UA@h! z4Kt3mTuw?kEV*&#oO=umUc%h}cPgoc1GTD_xJHzuB$lLFB^RXvDF!10LknF4b6o?& z5F-OCLklY-18oB%D+7Z+<=?ANH00)|WTsW(*3hfve+=wipba^RNvSyu#!A;##R7#G NJYD@<);T3K0RZi>SR?=d literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0034.png b/boards/textures/font_tinycurs_0034.png new file mode 100644 index 0000000000000000000000000000000000000000..15f4462a32e80577196c2ba7308807e130a23697 GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^oIoth!2%>-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppb#5i(`ny<>Ukf-aqL-`t=SpXnm3IbV>YoT=PIjnuhYS zN**2_pC2(t8{9?ZdcQC;2(zm0Xkxq!^403@vmG%ykV6 zLyQcp3@xmT473f5tPBkPlz*>6(U6;;l9^VCTSKpw|1q$Gfi~nMCZ*;unC#hP{|_j{ N;OXk;vd$@?2>_0xSH1uM literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0035.png b/boards/textures/font_tinycurs_0035.png new file mode 100644 index 0000000000000000000000000000000000000000..b37d0859045e6dcb9f818d267b3bb11f960fb0dc GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs|E3y@@f6p{+0SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4T z;_2(k{)nAXL`dYxQIFKTf Q89*ThPgg&ebxsLQ08G79d;kCd literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0036.png b/boards/textures/font_tinycurs_0036.png new file mode 100644 index 0000000000000000000000000000000000000000..51d11a27914238267db81ff20f1085ef495d6384 GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs|E3y@@f6p{+0SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4T z;_2(k{)nAXL`dYxQI1KksG)>QyaqjVMV;EJ?LWE=mPb3`Pcq7P(^b literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0037.png b/boards/textures/font_tinycurs_0037.png new file mode 100644 index 0000000000000000000000000000000000000000..d46de6c63cf97116e661667698000ef4f3c730d0 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^oIoth!2%>-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppcHIi(`ny<>UkfHUpzS?vEEY{y)NPaLBUf#j%B)i)S8c zxtp6|mKfOTtX#{;u;V!gt5V~IRG>c964!{5l*E!$tK_0oAjM#0U}&LhV6JOm7-D2# zWoTh#WT0(eWMyFRr~G>riiX_$l+3hB+!}hd{EvYh3$!68F)1~N!CZBB9?%yI44$rj JF6*2UngBxVRjB{~ literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0038.png b/boards/textures/font_tinycurs_0038.png new file mode 100644 index 0000000000000000000000000000000000000000..43126d1f8cb8d26f095067b223de1a54be022dfb GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs|E3y@@f6p{+0SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4T z;_2(k{)nAXL`dYxQI>WWRlxuN literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0039.png b/boards/textures/font_tinycurs_0039.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ad51ea705d90da30b5b9e08d3ee0431fc6586d GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6f*U6aSV~Ty!X^b-U9|a%m=%_-JkiA<+R%az55<2^QHMu zd@6q!C8<`)MX5lF!N|bS zLf61t*T68u$iT|b!pg`%+rY@mz~E2$_bL<(x%nxXX_dG&^lJGZ1G^e%Lr!8+Y7T?t TA!cW1pb&$ntDnm{r-UW|?qyo$ literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_003a.png b/boards/textures/font_tinycurs_003a.png new file mode 100644 index 0000000000000000000000000000000000000000..f0ae56f57d4c137cfe40f9d9dd7c08d6f43554c3 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTx!2%>dz2tuZq*&4&eH|GXHuiJ>Nd!qMBzpw; zGB8xBF)%c=FfjZA3N--Ll^QTGyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGx) z>Fdh=h@DYHNaV>;mN=l0w5N+>2*>s01O?td=|9dN00NgSUW={-2{JI~TxMZ>u>ETa zP?>6pYeY#(Vo9o1a#1RfVlXl=w9qv$*EKKFVdQ&MBb@0H4QB*8l(j literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_003b.png b/boards/textures/font_tinycurs_003b.png new file mode 100644 index 0000000000000000000000000000000000000000..08c8b44730515dd7df6f563c47d04499fd6c7c2b GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTx!2%>dz2tuZq*&4&eH|GXHuiJ>Nd!qMBzpw; zGB8xBF)%c=FfjZA3N--Ll^QTGyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGx) z>Fdh=h@DYHNaV>;mN=l0tfz}(2*>s01O?td=|9dN00NgSUOZd>8%l(*GCY)H{hxfY zzYVBRwZt`|BqgyV)hf9t6-Y4{85mmV8kp-E7={=bSQ%Pa85w9B7+Dz@{3-ulg`y!h qKP5A*61Rq4E&pR+*8y$FNlZ%3VX)TWRmuknF?hQAxvXdAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6cYAyaSV~ToSdM*`e(W1bftxjtPIV{96wZjh1h}8swJ)w zB`Jv|saDBFsX&Us$iUD-*T7uYz%azfz{=3V%E&<5z{twL;7|GYDijU5`6-!cmAEzZ iYWW`ny9sDRPGVAO4uj36%dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6q59GaSV~ToSd+LF(D-(;Ya_W!y%3FbsCHe+kP-HPv5_> z6R1eF#5JNMC9x#cD!C{XNHG{07+UBWnCluCh8P)G8CqBw8E6|ASs57oDgR!Dq9Hdw pB{QuOw}xIV|6^d60d2@hOiImRusxdB9t9L)@O1TaS?83{1OQT8OPl}z literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_003e.png b/boards/textures/font_tinycurs_003e.png new file mode 100644 index 0000000000000000000000000000000000000000..0cee6d5b51ce649d7b0fbba34f9393149ff65cf6 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6cX`taSV~ToSdM*_hcptHiCL jSIhqx*ik?mauSnLa~SMm(yu)L3Nd)P`njxgN@xNAm=#Do literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_003f.png b/boards/textures/font_tinycurs_003f.png new file mode 100644 index 0000000000000000000000000000000000000000..928a174d03ee873276e53e994f935eb841f61211 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6w>l^aSV~ToSdM*A|WXO1pkybK8&&WJD<_DiF14A|IVjI zf(vKsh=#B;nto&egAlbDp6!{G4xR@ZHy5QC?ypUXO@geCyPpI~_a literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0041.png b/boards/textures/font_tinycurs_0041.png new file mode 100644 index 0000000000000000000000000000000000000000..d6505e1b4bcbfcf9916e9ab561f157049d6b17b3 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^oIoth!2%>-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppd?&i(`ny<>Z6~nh7ZhK=7mgh?`KuWuF;RGdIlqCO@|| zTr|d1d6MwI#a1nK3=D;nIGGm)zgZ8|s#@Y2QIe8al4_M)lnSI6j0_AdbPddP4Gcq! z46F<-tc(n_4UDV|4E~gVuR_s~o1c=IR*73fua^HYuzP_v_9Bc!2%?|$=tsRq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppd4gi(`ny<>Z6~MnBGfke|t{K68U+s)NSA{#D=Yje3_& z7t}lLk$ZhH6GMtU_wQ2-vmO97sg}4#l%yny_8vfkF(Pu6{1- HoD!M-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppdSoi(`ny<>Z6~%sk(GhLpYrcjC>nC}Q!>*kack(+@;?UDzz(t@Cow5Chr#8|cE3X)TRmO< KT-G@yGywqVYE=LL literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0045.png b/boards/textures/font_tinycurs_0045.png new file mode 100644 index 0000000000000000000000000000000000000000..7ed78723589dc322b0250e872a1c2a1b919bfd50 GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6jJeYaSV~ToSd*g^2hlP@>9DNF3zmj`rwh#!q;gofrmY; z=PzVp2y^26J#(e=9iV#E64!{5l*E!$tK_0oAjM#0U}&LhV6JOm7-D2#WoTh#WT0(e zWMyFRr~G>riiX_$l+3hB+!}hd{EvYh3A7<6F)1~N!FBeAx)7icgQu&X%Q~loCIA6S BQqKSY literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0046.png b/boards/textures/font_tinycurs_0046.png new file mode 100644 index 0000000000000000000000000000000000000000..a48a33e4fa1edb0aaffacca26738a99bbb390f33 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6w>r`aSV~ToSd*g@5lKAK+uukbd%@*!aM&XOcNd&EjnQ+ zbgf~kH$MZz|NUIQI2XOT0@S2h;u=wsl30>zm0Xkxq!^403@vmG%ykV6LyQcp3@xmT z473f5tPBkPlz*>6(U6;;l9^VCTSKpw|1q#jfi~nMCZ*;uxH0Y2e+Lv|@O1TaS?83{ F1ONf}R%QSI literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0047.png b/boards/textures/font_tinycurs_0047.png new file mode 100644 index 0000000000000000000000000000000000000000..17fe5aa70224609b4f36aa28eeff6ee19a60b428 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6jPG7y9>kr_Wm>bfjrIvkH}&M z25w;xW@MN(M*^g>#M9T6{SiCAkd>j>xl$vbkfo=KV~E7%t-XeP3UO_QmvAUQh^kM zk%6Iwu7SC(fnkV|ft8_!m63tAfsvJg!JqQ)RVW&A^HVa@DsgM*)$%_Eb~(_7oW!Km W90rf4j7%?qLJXd+elF{r5}E)4UR$gH literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0049.png b/boards/textures/font_tinycurs_0049.png new file mode 100644 index 0000000000000000000000000000000000000000..660d34e89b4415ae50405c9a11104ca9709b6a38 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bc!2%?|$=tsRq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppd4gi(`ny<>Z6~j6cqQke_+@z=!#bjhvyJ!f|tTPOvHT zI2!)6UnZ5s%&=h!_uq^0&n^Kqsg}4#l%yn{6f&If+TBISihY*o^9dLJXd+elF{r G5}E)ah*Yxx literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_004a.png b/boards/textures/font_tinycurs_004a.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4eb48338adb3a94004f460e134a2710e78fa1d GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6jPG7y9>kr_Wm>bfjrIvkH}&M z25w;xW@MN(M*^g>#M9T6{SiCAkQLKPIT010kh`agV~E7%r4uaq8XS0-Z9D$gS8ANt z6ggpmf^W)ccabwz(f@>h?=-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppcrUi(`ny<>Z6~mOsvakoP*wDlmgFQlR@n{hKtwOKoaD zdlia?-29Zxv`X9>dbRwIft?AoAtx~@HHX2wh9fu_D8%6D>gTe~DWM4f D-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppd$!i(`ny<>Z6~!avS`kPqhA&LEsuED;czX!_KC*Q@^l z>VMKD6c`we@$>x93fA8Z)S_DA8c~vxSdwa$T$Bo=7>o=IEp!dcbqx$dj0~&{Ev$?T zv<-}`3=IC1f3HH(kei>9nO2EgL$8+qF`x!^kPSJBNvSyuK96#aeEUO_QmvAUQh^kMk%6Iwu7SC( zfnkV|ft8_!m63tAfsvJg!JqQ)RVW&A^HVa@DsgM*)$%_Eb~Dh1oW!Km90uR1+27KD OLJXd+elF{r5}E)`bXl+f literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_004e.png b/boards/textures/font_tinycurs_004e.png new file mode 100644 index 0000000000000000000000000000000000000000..177fdf30fe6efaf614da032963c4b296f7646640 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs|E3y@@f6p{+0SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4T z;_2(k{)nAXL`dYxQI<9jVMV;EJ?LWE=mPb3`Pcq7Pzopr07}-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppcHIi(`ny<>Z6~nh7ZhK=7mgSUa~vrkYQ$&kY~v%WiAj z+;)h$-TEaa&%kiw7#q8O>8wdWeX1p{5hW>!C8<`)MX5lF!N|bSLf61t*T68u$iT|b z!pg`%+rY@mz~E2$_bL<(x%nxXX_dG&^lJGZ13MOILr!8+Y7T>cb?S64pb&$ntDnm{ Hr-UW|SD933 literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0050.png b/boards/textures/font_tinycurs_0050.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac9be88c7b0c284ea1b237a4a8b5af182c30806 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^oIoth!2%>-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppcHIi(`ny<>Z6~nh7ZhK=7mgkh9>gem#a%!$kAf_OniU zFadlia?-29Zxv`X9>dbRwIfgKC9Atx~@HHRVKTkfp=Kp_TCS3j3^ HP6-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppc%Yi(`ny<>Z6~nh7nJ{s&eRFtVI&&}`K^&~mryKhOU_ z)4%TKt%9dgkCd?eWngFt;r^p|v!?;5Q?2OC7#SE^=o*;o8W@Hc z8CV%wSQ!~;8yHy`82l;!UWK9|H$NpatrE9}UM>G)Kn?658*&npQgavr8?#nv0)-en MUHx3vIVCg!0G>Hlxc~qF literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0052.png b/boards/textures/font_tinycurs_0052.png new file mode 100644 index 0000000000000000000000000000000000000000..ab5c241313d5fcb9f49aca75138bd85c7d7a80ee GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^+(0bM!2%@TDA-2>DVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}6a+DDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}6a+D(J8c~vxSdwa$T$Bo=7>o=IEp!dcbqx$d zj0~&{Ev$?Tv<-}`3=IC1f3HH(kei>9nO2EgL$8+qF|dPyHsmBGrRFdM=ck+o`JTbk L)z4*}Q$iB}DKS(m literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0054.png b/boards/textures/font_tinycurs_0054.png new file mode 100644 index 0000000000000000000000000000000000000000..e9a155dffd2ef91420d5a5f2fbee6d2567bfbade GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6w>f?aSV~ToSd*g@5lKAK+uukbd%@*!aM&XOcNd&Ez~|D zaA5uXItGT*>Ky;{xSKkGdQ?kXBT7;dOH!?pi&B9UgOP!ug|30Qu7P2Qk%5(=g_V(k zwt literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0055.png b/boards/textures/font_tinycurs_0055.png new file mode 100644 index 0000000000000000000000000000000000000000..bd74959d41fec4595206298a8f91fbc57ac7783f GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^+(0bM!2%@TDA-2>DVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}6a+Dzm0Xkxq!^403@vmG%ykV6LyQcp z3@xmT473f5tPBkPlz*>6(U6;;l9^VCTSKpw|1q#*fi~nMCZ*;ugtoEg0e#27;OXk; Jvd$@?2>>DrQwab7 literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0056.png b/boards/textures/font_tinycurs_0056.png new file mode 100644 index 0000000000000000000000000000000000000000..4446da3b2194d1ba1a45f8f7e4f34938b78f7cb3 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^+(0bM!2%@TDA-2>DVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}6a+DY^8S2c`7;HmOSQx`q9i4;B-JXpC>2OC7#SE^=o*;o8W@Hc8CV%w zSQ!~;8yHy`82l;!UWK9|H$NpatrE9}UM>G)V5b6Y$Vp5}&0z?W=dhl8MyQR!zT*t3|rFpe;1z@5&`N}Epd$~Nl7e8wMs5Z1yT$~28I^82Ijg3 zh9O1PsvQH#I2!M%l{bI!9W{w5|dJM7{W6+`DK7Y N44$rjF6*2UngG?ESNH$` literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0058.png b/boards/textures/font_tinycurs_0058.png new file mode 100644 index 0000000000000000000000000000000000000000..84640b9ddc64b40e3c35965f236030028dfd8111 GIT binary patch literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eW!2%@t{-`JcDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}6a+DDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}6a+D5u;2zw)k+?9ILg%<7cb{E*E+Fs$3z zbdt1$p)9L-YC^(~{%2JxS0h+I{^n2oQ6G~1fq~)j8nG{j!_4;sO;Rm!jVMV;EJ?LW zE=mPb3`Pcq7PDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}6a+D?)F zK#IZ0z|cb1z+BhBFvQ5f%Fx2f$Uxh`$jZRrPx<#M6b-rgDVb@NxHa@@`5yy29%w^O ZVp3`jLzLK#;)OsV22WQ%mvv4FO#rrcTeJWG literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_005b.png b/boards/textures/font_tinycurs_005b.png new file mode 100644 index 0000000000000000000000000000000000000000..7e6a3f2f516dbd318d49745bd5007952580baabb GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6f*F1aSV~ToSf3o@Sg_+dUy&x$RA5cI>7Z$d4_}*2ls-R z4$CC}bFN4@@m?8rVTLdz2tuZq*&4&eH|GXHuiJ>Nd!qMBzpw; zGB8xBF)%c=FfjZA3N--Ll^QTGyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGx) z>Fdh=h@DYHNaV>;mN=l0oTrOp2*>s01P7-7i9Bj85@l+WvKC!&3Kd>CO^AWvR2s7Y z=Sg07pi0#e*NBpo#FA92_)kDK&>7=Kt+$Q-DGYp00i_>zopr05d{OOaK4? literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_005d.png b/boards/textures/font_tinycurs_005d.png new file mode 100644 index 0000000000000000000000000000000000000000..e3064d9daacc9c3c83712ed5b8f0b9cb107a6c0e GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6f*R5aSV~ToSf3o@Sg_+dU!M**fRrxFtZ=S#g>yIGB zip=;Z-_IqM5;=>JLC%*=@agG_Fra4D64!{5l*E!$tK_0oAjM#0U}&LhV6JOm7-D2# zWoTh#WT0(eWMyFRr~G>riiX_$l+3hB+!}hd{Eq=Ou!C&KNlZ%3VTkRx^Na~7#Ng@b K=d#Wzp$P!rI8WgK literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_005e.png b/boards/textures/font_tinycurs_005e.png new file mode 100644 index 0000000000000000000000000000000000000000..55055f980fd2b999158961e09981d33c272eee3a GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6q5CHaSV~ToSe|m@SjKHf&Hor^&zJJB_%dwOHX8AICq`x z7jJFuf1pCu64!{5l*E!$tK_0oAjM#0U}&LhV6JOm7-D2#WoTh#WT0(eWMyFRr~G>r tiiX_$l+3hB+!}hd{EvZM2ect4F)1~NAx`k>_8mYW22WQ%mvv4FO#l+3P8k3I literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_005f.png b/boards/textures/font_tinycurs_005f.png new file mode 100644 index 0000000000000000000000000000000000000000..367468a3cec8fb44638e728f7db37c5d2f3723de GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6cYAyaSV~ToSYzG*D&#+Jy*XU14G$5MyB7ds^$QtRZCnW zN>UO_QmvAUQh^kMk%6Iwu7SC(fnkV|ft8_!m63tAfsvJg!JqQ)RVW&A^HVa@DsgM* i)$%_Eb`#KsoW!Km9ESL`OYM3dz2tuZq*&4&eH|GXHuiJ>Nd!qMBzpw; zGB8xBF)%c=FfjZA3N--Ll^QTGyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGx) z>Fdh=h@DYHNaV>;mN=l0yr+v}2*>s0goK12=MR9vkpm2m9cFkuus literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0061.png b/boards/textures/font_tinycurs_0061.png new file mode 100644 index 0000000000000000000000000000000000000000..b545504e9be83dcc35af61ab70a03fe294c0b953 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppdMmi(?4K_2h&F@;}ahkU!Wm+2@4Uj18}Uo_9!PVBosU z_OF&r tiiX_$l+3hB+!}hd{EvZM2ect4F)1~NA#wTUS*<`J22WQ%mvv4FO#tZ2QQ80i literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0062.png b/boards/textures/font_tinycurs_0062.png new file mode 100644 index 0000000000000000000000000000000000000000..daf3e81cbfb9f94c344771f36f4b1727b761976d GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppdGki(?4K_2h&FOh5RO4IT=lCnU5KNlZ-rm;55}kjXFm zRgPB}87`J_FqZfw?Ez^hag8WRNi0dVN-jzTQVd20h8DU8=DG%kAw~vPh89*v2HFNj zRt5%t%D-2kXvob^$xN%nt)W-T{}|YnKpS!rlTvdSlI(V!wg(C^c)I$ztaD0e0swSN BQX2pO literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0063.png b/boards/textures/font_tinycurs_0063.png new file mode 100644 index 0000000000000000000000000000000000000000..dee911ef9cc09579d3b33fb3e6afdd428a013404 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppb&6i(?4K_2h&F@;}ahkU!`$fg_NOO)ceXk4I6@l~OK- z>)ToXTfW)%5U5tQ#5JNMC9x#cD!C{XNHG{07+UBWnCluCh8P)G8CqBw8E6|ASs57o xDgR!Dq9HdwB{QuOw}xIV|6^bW0&U1iOiImRNcP_9Bc!2%?|$=tsRq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppd$!i(`ny<>Z6~j6cpF0D=~+wqvO+n#l<+mzY&KU$koc z;aAUOV-PCiU=B4k1lqx%TH+c}l9E`GYL#4+3Zxi}3=A!F4a{{73`2|ztPCxzj1065 zjI0a{{*-^OLeY?$pOTqYiCaUjmj5xZJApRjBqpWiFr-|+nFk6T22WQ%mvv4FO#r*S BQIh}w literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0065.png b/boards/textures/font_tinycurs_0065.png new file mode 100644 index 0000000000000000000000000000000000000000..002357ff632fb41be37d79b91d6c8f734fa7b9cb GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppcTMi(?4K_2h&F@;}ahkU!`$f#<)VPs^hJJUl%Gg>G5a ztPD8?oIeHI+MR)_RZCnWN>UO_QmvAUQh^kMk%6Iwu7SC(fnkV|ft8_!m63tAfsvJg z!JqQ)RVW&A^HVa@DsgM*)$%_Eb|TP*oW!Km9EQ{d_u}RNg%~_t{an^LB{Ts5BvDY? literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0066.png b/boards/textures/font_tinycurs_0066.png new file mode 100644 index 0000000000000000000000000000000000000000..23eeae9933a3a693fc76a3f903021509d56b8ecc GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTx!2%>dz2tuZq*&4&eH|GXHuiJ>Nd!qMBzpw; zGB8xBF)%c=FfjZA3N--Ll^QTGyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGx) z>Fdh=h@DYHNaV>;mN=l0hNp{T2*>s01O@3o?rDG06M(?U!)W2EKmDO1TFkv!vo)@0QIPrxJHzuB$lLFB^RXvDF!10LknF4b6o?&5F-OCLklY-18oB% zD+7Z+<=?ANH00)|WTsW(*3hfve+=wUpba^RNvSyuX_nXdfj(tm@O1TaS?83{1OPs8 BQRM&t literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0067.png b/boards/textures/font_tinycurs_0067.png new file mode 100644 index 0000000000000000000000000000000000000000..c557d04d94293196a2b5547f81494146edb4ed10 GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppdGki(?4K_2h&F@;}ahkU!Wm+2@4U42ghHh1ZQ8e~%k5 zI73fid64!{5l*E!$tK_0oAjM#0U}&LhV6JOm7-D2#WoTh#WT0(e zWMyFRr~G>riiX_$l+3hB+!}hd{EvZM3A7<6F)1~NA>HqS{RW^AgQu&X%Q~loCID{z BQ`GD?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppc@ci(?4K_2h&FTtE6-PqwUKXg$mkdZc5`V|zK<|B@?s z7&yMMv08I1@&hVXEpd$~Nl7e8wMs5Z1yT$~28I^82Ijg3h9O1PsvQH#I2!M%l{bIg+Lo}5|dJM7&7kVD=7kn7(8A5T-G@yGywpgIZs;v literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0069.png b/boards/textures/font_tinycurs_0069.png new file mode 100644 index 0000000000000000000000000000000000000000..db6433d0355856672d1be3c8d10fc3b09b6b89a9 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&G0U~9!Q?7vo(j9#r85lP9bN@+X1@aY=J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGx) z>Fdh=h@DYHNaV>;mN=l0xTlL_2*>s0gau4L`g_l}g#NQ{OIpOpQ2LDJA6G`c7*L67 ziEBhjN@7W>RdP`(kYX@0FtpG$FxNFO3^6jWGPJNVGSD_KvNACEQ~tdQMMG|WN@iLm lZVkO!{>Q-X0@{$1n3S5skhwBLXgg4d!PC{xWt~$(696L(OD_Nb literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_006a.png b/boards/textures/font_tinycurs_006a.png new file mode 100644 index 0000000000000000000000000000000000000000..96da601cc35bdf12454387b4be3d7078e660a43c GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTx!2%>dz2tuZq*&4&eH|GXHuiJ>Nd!qMBzpw; zGB8xBF)%c=FfjZA3N--Ll^QTGyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGx) z>Fdh=h@DYHNaV>;mN=l0qNj^v2*>s0gauYV`lF|CM*gyAWP@zWZHt2K(q1> za{Y2P|2q|^Shd78q9i4;B-JXpC>2OC7#SE^=o*;o8W@Hc8CV%wSQ!~;8yHy`82l;! vUWK9|H$NpatrE9}UM>G)U>5>y$Vp5}&0)wgNOa}}3Nd)P`njxgN@xNAJ1tM& literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_006b.png b/boards/textures/font_tinycurs_006b.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e2be7ed7f6bd074060644f5f7841c2e0308040 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bc!2%?|$=tsRq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppcrUi(`ny<>Z6~RzLcu9&TCHA?P_xF!E*n431eclXQfA zMD7}8F*DSh=VCZ5y!#zchiZvyL`h0wNvc(HQ7VvPFfuT-&^0jEH82b@GO#kVure~x zHZZa>F!)pcy$VG`ZhlH;S|x4`y;}aqz|I8Pkdv5{n!}Loo>n{?D8%6D>gTe~DWM4f D-V9O- literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_006c.png b/boards/textures/font_tinycurs_006c.png new file mode 100644 index 0000000000000000000000000000000000000000..8cfd016daa8c991556816654c61f2a04584047b1 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTx!2%>dz2tuZq*&4&eH|GXHuiJ>Nd!qMBzpw; zGB8xBF)%c=FfjZA3N--Ll^QTGyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGx) z>Fdh=h@DYHNaV>;mN=l0f~SjP2*>s0gasUb+!GBHRc35hb$ICmduHat^(~207#QN1 z*_eG^uCoBDRV{IiC`m~yNwrEYN(E93Mh1o!x(4RD28JO<23Cd^Rz?Qe21Zr}27k)G uSD|Rg%}>cptHiCLSIhqx*nvPBauSnLa~N`NGCc!X%HZkh=d#Wzp$P!&7*4SO literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_006d.png b/boards/textures/font_tinycurs_006d.png new file mode 100644 index 0000000000000000000000000000000000000000..95ead880b150b40b082910831d6ac3149709c98f GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^oIoth!2%>-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppcrUi(`ny<>Um3qzCqg>)F`a{@-BvXKVljhJVr%j;s@$ z?CQ?IU>MB#>zk^HD^Q1OiEBhjN@7W>RdP`(kYX@0FtpG$FxNFO3^6jWGPJNVGSD_K zvNACEQ~tdQMMG|WN@iLmZVkO!{>Q-11lo|3n3S5skh_lc+B%>RgQu&X%Q~loCIE+3 BQLq32 literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_006e.png b/boards/textures/font_tinycurs_006e.png new file mode 100644 index 0000000000000000000000000000000000000000..22d177a70d52576ce82ec325f014879b33ff226e GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6w>r`aSV~TeD{}=D#5G_9#EhJD?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppcBGi(?4K_2h&F@;}ahkU!Wm*~jCPhm0GK?G+XVRdKfe z{gpAYKy|7mt`Q|Ei6yC4$wjF^iowXh&_dV1T-U%b#K^$P(89{dK-<8`%D~`H`S&Um s4Y~O#nQ4`{HS}uv9|JoMXhTk7QfdxEz61C6CZG_5r>mdKI;Vst0E&T400000 literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0070.png b/boards/textures/font_tinycurs_0070.png new file mode 100644 index 0000000000000000000000000000000000000000..05b3e5be0290f5ff1b921570766020684bcbc4c9 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^oIoth!2%>-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppc%Yi(`ny<>Um3GY{;UnGe^u{eQt^AjT}bOiZoqKTpq( zv%mUvT9ybd7v@;4#KW+>nCGvsrtnFiPSq0Eh?11Vl2ohYqEsNoU}Ruup=)5SYhV~+ zWME}zVP#~XZD3?&VDP8>dlia?-29Zxv`X9>dbRwIft?GqAtx~@HHV?#Ec32%pb&$n LtDnm{r-UW|^+#1X literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0071.png b/boards/textures/font_tinycurs_0071.png new file mode 100644 index 0000000000000000000000000000000000000000..05d4010af1d782018d3475260609906f7c3862bd GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6w>f?aSV~ToSY!x^T7UaeTZIDN`h1PnIjDgzuDj6;VJ%? zY|4CBuZV%+#sco&*%kXQ0`;htxJHzuB$lLFB^RXvDF!10LknF4b6o?&5F-OCLklY- z18oB%D+7Z+<=?ANH00)|WTsW(*3hfve+=wUpba^RNvSyug}Yd~9s-3JJYD@<);T3K F0RV~YQy%~T literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0072.png b/boards/textures/font_tinycurs_0072.png new file mode 100644 index 0000000000000000000000000000000000000000..b36ac4da2c4f407276cc97ed8511b266c5f97b67 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bc!2%?|$=tsRq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppd$!i(`ny<>Ukji32AN0Ko_OPTr?~(i4EdDfCRsy5II< zV!R9tP2X6VW|>*80%}n$ag8WRNi0dVN-jzTQVd20h8DU8=DG%kAw~vPh89*v2HFNj zRt5%t%D-2kXvob^$xN%nt)W-T{}|YvKpS!rlTvdSij;Y8M+1czJYD@<);T3K0RYxp BQw#tA literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0073.png b/boards/textures/font_tinycurs_0073.png new file mode 100644 index 0000000000000000000000000000000000000000..6e247b4f1e2a6fc713e7e95765a545b59bce8e12 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bc!2%?|$=tsRq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppdesi(`ny<>Z6~)<4c40D_h?j?;ejFXD;(SZ|^nF!eGM z1H+G*oWC7CdM^Q$tCqM%l%yn_(ssIf+TBISj=iT(8dpg%~_t{an^LB{Ts5!#-57 literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0074.png b/boards/textures/font_tinycurs_0074.png new file mode 100644 index 0000000000000000000000000000000000000000..20224c9e19aa6602c5deb5d8f8bf34837bfd6337 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppb&6i(?4K_2h&FLO=QsrZ`Ri*}sNkHs6eS|5rT9__czO z!I_oo*Sc<*CZJl?64!{5l*E!$tK_0oAjM#0U}&LhV6JOm7-D2#WoTh#WT0(eWMyFR xr~G>riiX_$l+3hB+!}hd{EvYh2(%$5F)1~Nq2yFvT^>+~!PC{xWt~$(69BYLQZfJl literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0075.png b/boards/textures/font_tinycurs_0075.png new file mode 100644 index 0000000000000000000000000000000000000000..8e1c3e2ea53015b4eb0aef5368e962da329b1d7b GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6q5CHaSV~ToSY!x^T56-MMh>?Mnp@o%^fwqB>m4U&Z^6ynB s8glbfGSez?Yv|STKL&Ok(1x7Eq|_XS(!H5}KY&6Ep00i_>zopr0EFO6f&c&j literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0076.png b/boards/textures/font_tinycurs_0076.png new file mode 100644 index 0000000000000000000000000000000000000000..84465fb68ce56276426a9b07ba4cc647e5bd696e GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6q5CHaSV~ToSYzG^T6KdY>V$J`!1`t{~i+EmL*IK6301y z#r|CB1XQS6;u=wsl30>zm0Xkxq!^403@vmG%ykV6LyQcp3@xmT473f5tPBkPlz*>6 s(U6;;l9^VCTSKpw|1q%ZfHveLCZ*;ul&K`hgDhq6boFyt=akR{0C8hW%m4rY literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0077.png b/boards/textures/font_tinycurs_0077.png new file mode 100644 index 0000000000000000000000000000000000000000..0428693970205709ae4ce2b481f8b6e7727823d0 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^+(0bM!2%@TDA-2>DVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&U|7|wYy{-7 zmw5WRvOi*H6cG}6a+D;us=vIXOY1?14Sk&-sl&!09Zge7K&CO>Ko%2XnG%4LONPsW}Yg!Rh)}fIoP5rSs}v^7XEy6Alav zvzqumy)B!o2vn?E;u=wsl30>zm0Xkxq!^403@vmG%ykV6LyQcp3@xmT473f5tPBkP ylz*>6(U6;;l9^VCTSKpw|1qEjc90D@iAkwB3>AlO7`Xz47(8A5T-G@yGywo(_)vfV literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_0079.png b/boards/textures/font_tinycurs_0079.png new file mode 100644 index 0000000000000000000000000000000000000000..6b1da681baa6f6e5e7cb92ad4a7a6c4ab619d68b GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6w>r`aSV~ToSY!x^T56-MM;4_`Hwq?fzhAz1eZzaE}^Yw zd0L9xHp%ibbeQq}nrfNg2Gpcl;u=wsl30>zm0Xkxq!^403@vmG%ykV6LyQcp3@xmT z473f5tPBkPlz*>6(U6;;l9^VCTSKpw|1q#jfi~nMCZ*;uRBpM?bQvhb;OXk;vd$@? F2>`(QPyYY_ literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_007a.png b/boards/textures/font_tinycurs_007a.png new file mode 100644 index 0000000000000000000000000000000000000000..db7af09b041b2e9311ebbc59b57dfbdb8f5b86be GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^96&70!2%@N#akkP6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6jJqcaSV~ToSYyL^T1wBTdAqwXFs$lTHUje4 zOFVsD*&nepiU^53Im!|T6w>u{aSV~ToSe|m_@C#$riiX_$l+3hB+!}hd{EvZM3$!68F)1~Np*ref@_(QZgQu&X J%Q~loCIH~$P|^SZ literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_007c.png b/boards/textures/font_tinycurs_007c.png new file mode 100644 index 0000000000000000000000000000000000000000..37aa7bb50975aea8f30320106d5de186d3adb91d GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppdGki(?4K_2h(xhW|W3;KSp=(AvC&W4@7^jFrcQ&+{!( zMVJ^4_OS@Q{3W*-q@lz$q9i4;B-JXpC>2OC7#SE^=o*;o8W@Hc8CV%wSQ!~;8yHy` z82l;!UWK9|H$NpatrE9}UM>G)U{?Zd$Vp5}&0(lHvh`aGP>8|P)z4*}Q$iB}y7N#H literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_007d.png b/boards/textures/font_tinycurs_007d.png new file mode 100644 index 0000000000000000000000000000000000000000..b0e4b742de45983cb6875109e78aecaa0e3b64de GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^oIoth!2%>-Tz#Jgq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9}O$x)U#ppd?&i(`ny<>Z8hhW|YOB{wjvP!ML8W4PYoDjL@tk@L5I zWz&X8jaeO~EPVWzc^DXU;<=gR3-0OxwW^l5MwFx^mZVxG7o`Fz1|tJQ3taXnGQUh1r%cN MboFyt=akR{06ZX6g#Z8m literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_007e.png b/boards/textures/font_tinycurs_007e.png new file mode 100644 index 0000000000000000000000000000000000000000..86b611236d80b74e1ad04dee9092bb28c1aaf998 GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^Ahs|E3y@@f6p{+0SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+uenMVO6iP5s=4T z;_2(k{)nAXL`dYxQIF!)pcy$VG`ZhlH; nS|x4`y;}aqzzzf2kdv5{n!`}1wR?I2P>8|P)z4*}Q$iB}bel=g literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_2018.png b/boards/textures/font_tinycurs_2018.png new file mode 100644 index 0000000000000000000000000000000000000000..d7535fd2f17f1e98b6db037e07829bb83276c8e2 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&G0U~9!Q?7vo(j9#r85lP9bN@+X1@aY=J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGx) z>Fdh=h@DYHNObZclM_H8VNVyw5RU7~2?tpID~bp=S!ysaC~s$CTsb>a3n;Bx;u=ws zl30>zm0Xkxq!^403@vmG%ykV6LyQcp3@xmT47Cl6tPBjI82+3?(U6;;l9^VCTZ4A2 kOA$~5C&-4J#H7?5hDQxE3@^9-0SYpBy85}Sb4q9e0BRdYi~s-t literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_2019.png b/boards/textures/font_tinycurs_2019.png new file mode 100644 index 0000000000000000000000000000000000000000..0cdf90da111df0749dc912a0a30e39eb5598ba6d GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&G0U~9!Q?7vo(j9#r85lP9bN@+X1@aY=J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGx) z>Fdh=h@DYHNObZclM_H8VNVyw5RU7~2?tpIOa4=y(ag@ku$_tNU$6hZ-9Ty864!{5 zl*E!$tK_0oAjM#0U}&LhV6JOm7-D2#WoTh#WT2_sn7EqAE)78&qol`;+0LiyW%m4rY literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_201c.png b/boards/textures/font_tinycurs_201c.png new file mode 100644 index 0000000000000000000000000000000000000000..71d3a16b83a016e05b42877680f7261afd53f8d1 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9{|@*$HGKp{y_7sn8e>&XcRc>g&YGBYzP_Z&QM!axRSrZzJ}(h7^Y zKt-x0t`Q|Ei6yC4$wjF^iowXh&_dV1T-U%b#K^$P(89{dP}{)B%D^Cs;m%tDnm{r-UW|t+z_J literal 0 HcmV?d00001 diff --git a/boards/textures/font_tinycurs_201d.png b/boards/textures/font_tinycurs_201d.png new file mode 100644 index 0000000000000000000000000000000000000000..f23939593eb7cb90531686c5524c9d61b503483f GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol`!2%>D?`?Svq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9fnimzvJsHS zUgGKN%KnI*QA9{|@*$HGKp`nl7sn8e>&XcRSS2L?9ggGyf&U9DEEpK_!>>lzq_7#Ua@T38twY8x0?85l${{5glBAvZrI rGp!Q02JKjvBA^CNkPSJBNvSyuj~eDW?kp?@3Nm=Q`njxgN@xNANG?lf literal 0 HcmV?d00001 diff --git a/boards/tools/updatepo.sh b/boards/tools/updatepo.sh new file mode 100755 index 0000000..feb2504 --- /dev/null +++ b/boards/tools/updatepo.sh @@ -0,0 +1,25 @@ +#! /bin/bash + +# To create a new translation: +# msginit --locale=ll_CC -o locale/ll_CC.po -i locale/template.pot + +cd "$(dirname "${BASH_SOURCE[0]}")/.."; + +# Extract translatable strings. +xgettext --from-code=UTF-8 \ + --language=Lua \ + --sort-by-file \ + --keyword=S \ + --keyword=NS:1,2 \ + --keyword=N_ \ + --keyword=F \ + --add-comments='Translators:' \ + --add-location=file \ + -o locale/template.pot \ + $(find . -name '*.lua') + +# Update translations. +find locale -name '*.po' | while read -r file; do + echo $file + msgmerge --update $file locale/template.pot; +done