From 6248c00220156261b9943d0df24eb5d1543f0233 Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Fri, 5 Oct 2012 15:14:19 +0200 Subject: [PATCH] First commit --- changelog.txt | 9 ++ characters | 279 ++++++++++++++++++++++++++++++++++++ depends.txt | 1 + init.lua | 288 ++++++++++++++++++++++++++++++++++++++ textures/_0.png | Bin 0 -> 151 bytes textures/_1.png | Bin 0 -> 144 bytes textures/_2.png | Bin 0 -> 156 bytes textures/_3.png | Bin 0 -> 154 bytes textures/_4.png | Bin 0 -> 152 bytes textures/_5.png | Bin 0 -> 153 bytes textures/_6.png | Bin 0 -> 157 bytes textures/_7.png | Bin 0 -> 150 bytes textures/_8.png | Bin 0 -> 144 bytes textures/_9.png | Bin 0 -> 155 bytes textures/_a.png | Bin 0 -> 154 bytes textures/_a_.png | Bin 0 -> 152 bytes textures/_am.png | Bin 0 -> 156 bytes textures/_ap.png | Bin 0 -> 128 bytes textures/_as.png | Bin 0 -> 150 bytes textures/_at.png | Bin 0 -> 159 bytes textures/_b.png | Bin 0 -> 153 bytes textures/_b_.png | Bin 0 -> 148 bytes textures/_bl.png | Bin 0 -> 145 bytes textures/_br.png | Bin 0 -> 146 bytes textures/_c.png | Bin 0 -> 152 bytes textures/_c_.png | Bin 0 -> 148 bytes textures/_ca.png | Bin 0 -> 149 bytes textures/_cl.png | Bin 0 -> 151 bytes textures/_cm.png | Bin 0 -> 145 bytes textures/_cr.png | Bin 0 -> 151 bytes textures/_d.png | Bin 0 -> 154 bytes textures/_d_.png | Bin 0 -> 151 bytes textures/_dl.png | Bin 0 -> 160 bytes textures/_dt.png | Bin 0 -> 128 bytes textures/_dv.png | Bin 0 -> 152 bytes textures/_e.png | Bin 0 -> 150 bytes textures/_e_.png | Bin 0 -> 146 bytes textures/_eq.png | Bin 0 -> 139 bytes textures/_ex.png | Bin 0 -> 142 bytes textures/_f.png | Bin 0 -> 149 bytes textures/_f_.png | Bin 0 -> 149 bytes textures/_g.png | Bin 0 -> 160 bytes textures/_g_.png | Bin 0 -> 157 bytes textures/_gt.png | Bin 0 -> 147 bytes textures/_h.png | Bin 0 -> 152 bytes textures/_h_.png | Bin 0 -> 148 bytes textures/_hs.png | Bin 0 -> 144 bytes textures/_i.png | Bin 0 -> 139 bytes textures/_i_.png | Bin 0 -> 146 bytes textures/_j.png | Bin 0 -> 148 bytes textures/_j_.png | Bin 0 -> 157 bytes textures/_k.png | Bin 0 -> 154 bytes textures/_k_.png | Bin 0 -> 155 bytes textures/_l.png | Bin 0 -> 135 bytes textures/_l_.png | Bin 0 -> 148 bytes textures/_lt.png | Bin 0 -> 150 bytes textures/_m.png | Bin 0 -> 150 bytes textures/_m_.png | Bin 0 -> 157 bytes textures/_mn.png | Bin 0 -> 142 bytes textures/_n.png | Bin 0 -> 152 bytes textures/_n_.png | Bin 0 -> 155 bytes textures/_o.png | Bin 0 -> 146 bytes textures/_o_.png | Bin 0 -> 151 bytes textures/_p.png | Bin 0 -> 158 bytes textures/_p_.png | Bin 0 -> 153 bytes textures/_pr.png | Bin 0 -> 156 bytes textures/_ps.png | Bin 0 -> 152 bytes textures/_q.png | Bin 0 -> 160 bytes textures/_q_.png | Bin 0 -> 157 bytes textures/_qo.png | Bin 0 -> 140 bytes textures/_qu.png | Bin 0 -> 156 bytes textures/_r.png | Bin 0 -> 150 bytes textures/_r_.png | Bin 0 -> 150 bytes textures/_re.png | Bin 0 -> 158 bytes textures/_s.png | Bin 0 -> 156 bytes textures/_s_.png | Bin 0 -> 157 bytes textures/_sl.png | Bin 0 -> 143 bytes textures/_sm.png | Bin 0 -> 141 bytes textures/_sp.png | Bin 0 -> 128 bytes textures/_sr.png | Bin 0 -> 147 bytes textures/_t.png | Bin 0 -> 147 bytes textures/_t_.png | Bin 0 -> 143 bytes textures/_tl.png | Bin 0 -> 150 bytes textures/_u.png | Bin 0 -> 150 bytes textures/_u_.png | Bin 0 -> 150 bytes textures/_un.png | Bin 0 -> 142 bytes textures/_v.png | Bin 0 -> 150 bytes textures/_v_.png | Bin 0 -> 151 bytes textures/_vb.png | Bin 0 -> 135 bytes textures/_w.png | Bin 0 -> 142 bytes textures/_w_.png | Bin 0 -> 154 bytes textures/_x.png | Bin 0 -> 147 bytes textures/_x_.png | Bin 0 -> 149 bytes textures/_y.png | Bin 0 -> 158 bytes textures/_y_.png | Bin 0 -> 155 bytes textures/_z.png | Bin 0 -> 154 bytes textures/_z_.png | Bin 0 -> 151 bytes textures/signs_back.png | Bin 0 -> 277 bytes textures/signs_bottom.png | Bin 0 -> 132 bytes textures/signs_front.png | Bin 0 -> 263 bytes textures/signs_side.png | Bin 0 -> 134 bytes textures/signs_top.png | Bin 0 -> 132 bytes 102 files changed, 577 insertions(+) create mode 100644 changelog.txt create mode 100644 characters create mode 100644 depends.txt create mode 100644 init.lua create mode 100644 textures/_0.png create mode 100644 textures/_1.png create mode 100644 textures/_2.png create mode 100644 textures/_3.png create mode 100644 textures/_4.png create mode 100644 textures/_5.png create mode 100644 textures/_6.png create mode 100644 textures/_7.png create mode 100644 textures/_8.png create mode 100644 textures/_9.png create mode 100644 textures/_a.png create mode 100644 textures/_a_.png create mode 100644 textures/_am.png create mode 100644 textures/_ap.png create mode 100644 textures/_as.png create mode 100644 textures/_at.png create mode 100644 textures/_b.png create mode 100644 textures/_b_.png create mode 100644 textures/_bl.png create mode 100644 textures/_br.png create mode 100644 textures/_c.png create mode 100644 textures/_c_.png create mode 100644 textures/_ca.png create mode 100644 textures/_cl.png create mode 100644 textures/_cm.png create mode 100644 textures/_cr.png create mode 100644 textures/_d.png create mode 100644 textures/_d_.png create mode 100644 textures/_dl.png create mode 100644 textures/_dt.png create mode 100644 textures/_dv.png create mode 100644 textures/_e.png create mode 100644 textures/_e_.png create mode 100644 textures/_eq.png create mode 100644 textures/_ex.png create mode 100644 textures/_f.png create mode 100644 textures/_f_.png create mode 100644 textures/_g.png create mode 100644 textures/_g_.png create mode 100644 textures/_gt.png create mode 100644 textures/_h.png create mode 100644 textures/_h_.png create mode 100644 textures/_hs.png create mode 100644 textures/_i.png create mode 100644 textures/_i_.png create mode 100644 textures/_j.png create mode 100644 textures/_j_.png create mode 100644 textures/_k.png create mode 100644 textures/_k_.png create mode 100644 textures/_l.png create mode 100644 textures/_l_.png create mode 100644 textures/_lt.png create mode 100644 textures/_m.png create mode 100644 textures/_m_.png create mode 100644 textures/_mn.png create mode 100644 textures/_n.png create mode 100644 textures/_n_.png create mode 100644 textures/_o.png create mode 100644 textures/_o_.png create mode 100644 textures/_p.png create mode 100644 textures/_p_.png create mode 100644 textures/_pr.png create mode 100644 textures/_ps.png create mode 100644 textures/_q.png create mode 100644 textures/_q_.png create mode 100644 textures/_qo.png create mode 100644 textures/_qu.png create mode 100644 textures/_r.png create mode 100644 textures/_r_.png create mode 100644 textures/_re.png create mode 100644 textures/_s.png create mode 100644 textures/_s_.png create mode 100644 textures/_sl.png create mode 100644 textures/_sm.png create mode 100644 textures/_sp.png create mode 100644 textures/_sr.png create mode 100644 textures/_t.png create mode 100644 textures/_t_.png create mode 100644 textures/_tl.png create mode 100644 textures/_u.png create mode 100644 textures/_u_.png create mode 100644 textures/_un.png create mode 100644 textures/_v.png create mode 100644 textures/_v_.png create mode 100644 textures/_vb.png create mode 100644 textures/_w.png create mode 100644 textures/_w_.png create mode 100644 textures/_x.png create mode 100644 textures/_x_.png create mode 100644 textures/_y.png create mode 100644 textures/_y_.png create mode 100644 textures/_z.png create mode 100644 textures/_z_.png create mode 100644 textures/signs_back.png create mode 100644 textures/signs_bottom.png create mode 100644 textures/signs_front.png create mode 100644 textures/signs_side.png create mode 100644 textures/signs_top.png diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..fcd4872 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,9 @@ +This mod is modified by PilzAdam + +Changes: +- Remove shadows under signs +- New input system: - There is just one text line that automatically will be splitted up to the lines on the sign + - You can force a newline with " | " +- It overrides the default signs + +License of code: WTFPL diff --git a/characters b/characters new file mode 100644 index 0000000..a99fe57 --- /dev/null +++ b/characters @@ -0,0 +1,279 @@ +A +_a_ +4 +B +_b_ +4 +C +_c_ +3 +D +_d_ +4 +E +_e_ +3 +F +_f_ +3 +G +_g_ +4 +H +_h_ +4 +I +_i_ +3 +J +_j_ +4 +K +_k_ +4 +L +_l_ +3 +M +_m_ +5 +N +_n_ +4 +O +_o_ +4 +P +_p_ +4 +Q +_q_ +4 +R +_r_ +4 +S +_s_ +4 +T +_t_ +3 +U +_u_ +4 +V +_v_ +4 +W +_w_ +5 +X +_x_ +4 +Y +_y_ +4 +Z +_z_ +3 +a +_a +4 +b +_b +4 +c +_c +3 +d +_d +4 +e +_e +4 +f +_f +3 +g +_g +4 +h +_h +4 +i +_i +1 +j +_j +2 +k +_k +4 +l +_l +1 +m +_m +5 +n +_n +4 +o +_o +4 +p +_p +4 +q +_q +4 +r +_r +3 +s +_s +4 +t +_t +3 +u +_u +4 +v +_v +4 +w +_w +5 +x +_x +3 +y +_y +4 +z +_z +4 + +_sp +2 +0 +_0 +4 +1 +_1 +2 +2 +_2 +4 +3 +_3 +4 +4 +_4 +4 +5 +_5 +4 +6 +_6 +4 +7 +_7 +4 +8 +_8 +4 +9 +_9 +4 +( +_bl +2 +) +_br +2 +{ +_cl +3 +} +_cr +3 +[ +_sl +2 +] +_sr +2 +' +_ap +1 +! +_ex +1 +? +_qu +4 +@ +_at +5 +# +_hs +5 +$ +_dl +4 +% +_pr +5 +^ +_ca +3 +& +_am +5 +* +_as +3 +_ +_un +3 ++ +_ps +3 +- +_mn +3 += +_eq +3 +; +_sm +1 +, +_cm +2 +" +_qo +3 +/ +_dv +5 +~ +_tl +4 +< +_lt +3 +> +_gt +3 +\ +_re +5 +| +_vb +1 +. +_dt +1 diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/depends.txt @@ -0,0 +1 @@ +default diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..ae961ca --- /dev/null +++ b/init.lua @@ -0,0 +1,288 @@ +-- Font: 04.jp.org + +-- load characters map +local chars_file = io.open(minetest.get_modpath("signs").."/characters", "r") +local charmap = {} +local charwidth = {} +local max_chars = 16 +if not chars_file then + print("[signs] E: character map file not found") +else + while true do + local char = chars_file:read("*l") + if char == nil then + break + end + local img = chars_file:read("*l") + local width = chars_file:read("*n") + chars_file:read("*l") + charmap[char] = img + charwidth[img] = width + end +end + +--local metas = {"line1", "line2", "line3", "line4", "line5", "line6", "line7"} +local signs = { + {delta = {x = 0, y = 0, z = 0.399}, yaw = 0}, + {delta = {x = 0.399, y = 0, z = 0}, yaw = math.pi / -2}, + {delta = {x = 0, y = 0, z = -0.399}, yaw = math.pi}, + {delta = {x = -0.399, y = 0, z = 0}, yaw = math.pi / 2}, +} + +local signs_yard = { + {delta = {x = 0, y = 0, z = -0.05}, yaw = 0}, + {delta = {x = -0.05, y = 0, z = 0}, yaw = math.pi / -2}, + {delta = {x = 0, y = 0, z = 0.05}, yaw = math.pi}, + {delta = {x = 0.05, y = 0, z = 0}, yaw = math.pi / 2}, +} + +local sign_groups = {choppy=2, dig_immediate=2} + +local construct_sign = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", "field[text;;${text}]") + meta:set_string("infotext", "") +end + +local destruct_sign = function(pos) + local objects = minetest.env:get_objects_inside_radius(pos, 0.5) + for _, v in ipairs(objects) do + if v:get_entity_name() == "signs:text" then + v:remove() + end + end +end + +local update_sign = function(pos, fields) + local meta = minetest.env:get_meta(pos) + meta:set_string("infotext", "") + meta:set_string("text", fields.text) + local text = meta:get_string("text") + local objects = minetest.env:get_objects_inside_radius(pos, 0.5) + for _, v in ipairs(objects) do + if v:get_entity_name() == "signs:text" then + v:set_properties({textures={generate_texture(create_lines(text))}}) + return + end + end + + -- if there is no entity + local sign_info + if minetest.env:get_node(pos).name == "signs:sign_yard" then + sign_info = signs_yard[minetest.env:get_node(pos).param2 + 1] + elseif minetest.env:get_node(pos).name == "default:sign_wall" then + sign_info = signs[minetest.env:get_node(pos).param2 + 1] + end + if sign_info == nil then + return + end + local text = minetest.env:add_entity({x = pos.x + sign_info.delta.x, + y = pos.y + sign_info.delta.y, + z = pos.z + sign_info.delta.z}, "signs:text") + text:setyaw(sign_info.yaw) +end + +minetest.register_node(":default:sign_wall", { + description = "Sign", + inventory_image = "default_sign_wall.png", + wield_image = "default_sign_wall.png", + node_placement_prediction = "", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = {type = "fixed", fixed = {-0.45, -0.15, 0.4, 0.45, 0.45, 0.498}}, + selection_box = {type = "fixed", fixed = {-0.45, -0.15, 0.4, 0.45, 0.45, 0.498}}, + tiles = {"signs_top.png", "signs_bottom.png", "signs_side.png", "signs_side.png", "signs_back.png", "signs_front.png"}, + walkable = false, + groups = sign_groups, + + on_place = function(itemstack, placer, pointed_thing) + local above = pointed_thing.above + local under = pointed_thing.under + local dir = {x = under.x - above.x, + y = under.y - above.y, + z = under.z - above.z} + + local wdir = minetest.dir_to_wallmounted(dir) + + local placer_pos = placer:getpos() + if placer_pos then + dir = { + x = above.x - placer_pos.x, + y = above.y - placer_pos.y, + z = above.z - placer_pos.z + } + end + + local fdir = minetest.dir_to_facedir(dir) + + local sign_info + if wdir == 0 then + --how would you add sign to ceiling? + minetest.env:add_item(above, "default:sign_wall") + return ItemStack("") + elseif wdir == 1 then + minetest.env:add_node(above, {name = "signs:sign_yard", param2 = fdir}) + sign_info = signs_yard[fdir + 1] + else + minetest.env:add_node(above, {name = "default:sign_wall", param2 = fdir}) + sign_info = signs[fdir + 1] + end + + local text = minetest.env:add_entity({x = above.x + sign_info.delta.x, + y = above.y + sign_info.delta.y, + z = above.z + sign_info.delta.z}, "signs:text") + text:setyaw(sign_info.yaw) + + return ItemStack("") + end, + on_construct = function(pos) + construct_sign(pos) + end, + on_destruct = function(pos) + destruct_sign(pos) + end, + on_receive_fields = function(pos, formname, fields, sender) + update_sign(pos, fields) + end, +}) + +minetest.register_node("signs:sign_yard", { + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = {type = "fixed", fixed = { + {-0.45, -0.15, -0.049, 0.45, 0.45, 0.049}, + {-0.05, -0.5, -0.049, 0.05, -0.15, 0.049} + }}, + selection_box = {type = "fixed", fixed = {-0.45, -0.15, -0.049, 0.45, 0.45, 0.049}}, + tiles = {"signs_top.png", "signs_bottom.png", "signs_side.png", "signs_side.png", "signs_back.png", "signs_front.png"}, + walkable = false, + groups = {choppy=2, dig_immediate=2}, + drop = "default:sign_wall", + + on_construct = function(pos) + construct_sign(pos) + end, + on_destruct = function(pos) + destruct_sign(pos) + end, + on_receive_fields = function(pos, formname, fields, sender) + update_sign(pos, fields) + end, +}) + +minetest.register_entity("signs:text", { + collisionbox = { 0, 0, 0, 0, 0, 0 }, + visual = "upright_sprite", + textures = {}, + + on_activate = function(self) + local meta = minetest.env:get_meta(self.object:getpos()) + local text = meta:get_string("text") + self.object:set_properties({textures={generate_texture(create_lines(text))}}) + end +}) + +local sign_width = 110 +local sign_padding = 8 + +string_to_array = function(str) + local tab = {} + for i=1,string.len(str) do + table.insert(tab, string.sub(str, i,i)) + end + return tab +end + +string_to_word_array = function(str) + local tab = {} + local current = 1 + tab[1] = "" + for _,char in ipairs(string_to_array(str)) do + if char ~= " " then + tab[current] = tab[current]..char + else + current = current+1 + tab[current] = "" + end + end + return tab +end + +LINE_LENGTH = 16 +NUMBER_OF_LINES = 7 + +create_lines = function(text) + local line = "" + local line_num = 1 + local tab = {} + for _,word in ipairs(string_to_word_array(text)) do + if string.len(line)+string.len(word) < LINE_LENGTH and word ~= "|" then + if line ~= "" then + line = line.." "..word + else + line = word + end + else + table.insert(tab, line) + if word ~= "|" then + line = word + else + line = "" + end + line_num = line_num+1 + if line_num > NUMBER_OF_LINES then + return tab + end + end + end + table.insert(tab, line) + return tab +end + +generate_texture = function(lines) + local texture = "[combine:"..sign_width.."x"..sign_width + local ypos = 12 + for i = 1, #lines do + texture = texture..generate_line(lines[i], ypos) + ypos = ypos + 8 + end + return texture +end + +generate_line = function(s, ypos) + local i = 1 + local parsed = {} + local width = 0 + local chars = 0 + while chars < max_chars and i <= #s do + local file = nil + if charmap[s:sub(i, i)] ~= nil then + file = charmap[s:sub(i, i)] + i = i + 1 + elseif i < #s and charmap[s:sub(i, i + 1)] ~= nil then + file = charmap[s:sub(i, i + 1)] + i = i + 2 + else + print("[signs] W: unknown symbol in '"..s.."' at "..i.." (probably "..s:sub(i, i)..")") + i = i + 1 + end + if file ~= nil then + width = width + charwidth[file] + 1 + table.insert(parsed, file) + chars = chars + 1 + end + end + width = width - 1 + + local texture = "" + local xpos = math.floor((sign_width - 2 * sign_padding - width) / 2 + sign_padding) + for i = 1, #parsed do + texture = texture..":"..xpos..","..ypos.."="..parsed[i]..".png" + xpos = xpos + charwidth[parsed[i]] + 1 + end + return texture +end diff --git a/textures/_0.png b/textures/_0.png new file mode 100644 index 0000000000000000000000000000000000000000..11041659ad12ad51ecc07495893fe9f933971be8 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOrinY`TZ7FD2-il>WX2*>s0AOHW`Gcz+Eu4iLw p`yXJ|!Z{XE)7O>#4hOrinZ`0VMJ=F^tfz}(2*>r*V+$D>40sMG?D}8t i=X*DRhe`Cy9DDB7(yYv3mhpx_g$$mqelF{r5}E+FS0bwb literal 0 HcmV?d00001 diff --git a/textures/_2.png b/textures/_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0959c993a6bb489073d19f0eb4c85e8feae891ba GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOrinZZ`Aoi#uqO-~oc5RU7{XE)7O>#4hOrinZ@pphJHXHbx#+^5RU7qJsWu$40xI!{9pX? t!V2eCye&Eco4sBeX7#*a`zZRZpZQmr_}3I;>svrA44$rjF6*2UngBMrEgAp- literal 0 HcmV?d00001 diff --git a/textures/_4.png b/textures/_4.png new file mode 100644 index 0000000000000000000000000000000000000000..10aba56fcda3227c45c561add2a05921fec05402 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOriIkWJ?m)bxfRZkbk5RU7yXEq8lDDX5K=>Pq` sCwGb%-&C$uGBalC+&cPT{XE)7O>#4hOriIk&7;q9jmA&C|s(gyVW@_eM?z1D*zvU;j^+ sY4IKj3{hZXU+{@DJuvgHbFQek;Y$Ah=K0rG19dQXy85}Sb4q9e04}p9!vFvP literal 0 HcmV?d00001 diff --git a/textures/_6.png b/textures/_6.png new file mode 100644 index 0000000000000000000000000000000000000000..11337ee02bf2a06a6ebe2bfa46e2cb170c22b224 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOrixlm=`$(ukSEl(H65RU7yXEyRO81fuG@cEzf w=kD?#m#GXvL5?eoqK~Cb`!u=migm5M9Y>b@Q!Aa-;y_&tp00i_>zopr0H>fVw*UYD literal 0 HcmV?d00001 diff --git a/textures/_7.png b/textures/_7.png new file mode 100644 index 0000000000000000000000000000000000000000..6de8a3fadb076e88a5960783a8d1ffca8604893c GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOrixj3h_Z5U8U+0(@_gyVYb@r{BE1_Fl+4*#>Z pPTdi{oWW?(f6q5=zUB;1D_rb(*?)yid;(O?;OXk;vd$@?2>{)nC!qiU literal 0 HcmV?d00001 diff --git a/textures/_8.png b/textures/_8.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2035c6c4e1459ac76284fa4ad549e225d1db29 GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOrixm>~X)=xkoSx*XJ%$TT+hbV j_CLU^g>kwbP0l+XkKR0<}Y literal 0 HcmV?d00001 diff --git a/textures/_9.png b/textures/_9.png new file mode 100644 index 0000000000000000000000000000000000000000..4ea1e3dd80e76ecde7090e74eb52f47650704f6d GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOrixw`%%-d{i=4Nn)x5RU7ir*`rlFc3IkaPOb9 vcB{O_T!ui_g?F{zRj|%FoRIc!(I>{A42q8vUQNse>S6G7^>bP0l+XkKKjkd{ literal 0 HcmV?d00001 diff --git a/textures/_a.png b/textures/_a.png new file mode 100644 index 0000000000000000000000000000000000000000..711ba8ef2e32ab47860b6fe4e950a1f44eef4faf GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6QgQ~0OpMyXlbx#+^5RU7yU5;D~20YDYUi{zx tMo)W-aFL-~Y7m3xw9uzh{XE)7O>#4hK6gkF-|1fIU!1)zif>gyVYhkN^MenVFdn*R!#; q{SPo}VVs<>&kwIgI$D?fo->aB2Y-v)5S4_<9hCCLp}xthC>HF|L<>&kwIgI$E3ZD*71C7=+mr;B3<$MxidgoGdb42&#{3`-uY RF$795c)I$ztaD0e0swOn9Q^FdgVhl5>&k?UFBwR)hCvZsq<2*-8blN)&%6a)?*X#QJn p#;fmsDdhkF literal 0 HcmV?d00001 diff --git a/textures/_at.png b/textures/_at.png new file mode 100644 index 0000000000000000000000000000000000000000..92731dc1a99505c330c18667749f44efa52afdd1 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=wj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwIgI(BKdX0r$Ay7!i)5S4_<9cq-MotC;p2JTr{f`fu yu9C9ifC9gnR)g%+DJ@E!<RHo_%eJ)K|S7+LwU(7(8A5T-G@yGywpt4lP&! literal 0 HcmV?d00001 diff --git a/textures/_b.png b/textures/_b.png new file mode 100644 index 0000000000000000000000000000000000000000..9d5b20bf8c829f2918ee7c77a3eb21e5957d78dc GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6QgZ|P3qW6J9YMw5RAsp9JPjBR9P!MQ1Q2qVB sq;&3-J^{AS#|AG>@rG(;RQ{O8+mRvs)rHsM9Z&~@r>mdKI;Vst0JK;tCIA2c literal 0 HcmV?d00001 diff --git a/textures/_b_.png b/textures/_b_.png new file mode 100644 index 0000000000000000000000000000000000000000..f876e40070e85a1d0189c6fd07220462e4273099 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6gkHFs0liPtpik>cxAspAIo?6JrU?9+9koSLK n@Mmrj;lo<7H#9?T{{P5OFDU)`@!B>SpkfA3S3j3^P6|7|= literal 0 HcmV?d00001 diff --git a/textures/_bl.png b/textures/_bl.png new file mode 100644 index 0000000000000000000000000000000000000000..ccbe1ebfb88ade37334c5ca46d19c74471b5ed5e GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-a!3HGrH`~quQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOrix#iWj1~Y*|a-J@ZAsp9}fBgS%&kO`DV1_WW f$N@gTe~DWM4fU@Io& literal 0 HcmV?d00001 diff --git a/textures/_br.png b/textures/_br.png new file mode 100644 index 0000000000000000000000000000000000000000..7b43e157d7552194ba3dd8250f6d50d6f72213e4 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-a!3HGrH`~quQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOpkn?>ReK?|Ueyr+v}2*-8XQyY013^)!LbpNmC k^dySvQ0Gr~0fyR-jS_Pgg&ebxsLQ00oXC@Bjb+ literal 0 HcmV?d00001 diff --git a/textures/_c.png b/textures/_c.png new file mode 100644 index 0000000000000000000000000000000000000000..49199c9ed0546c74110c51288fdf7a7bc2150e41 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8Du!9;)Q9b=%7s;7%%2*-8b(;Imk3>a7p?UVjb r)#sg9@IG{%_%>GOs}DYYpL>CE+Ie1vnQSU;Kn)C@u6{1-oD!MFdgVhl8D$N3H06j2=)((bL5-gyVYX>4l6820RTLO8)=% n$!+g;U|r~V^+55j2X@@tro2DB|397sRLtP%>gTe~DWM4f#-Aw} literal 0 HcmV?d00001 diff --git a/textures/_ca.png b/textures/_ca.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ebcd7fd36225a5f1cfcbce5bec680aba5bb2ea GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl5>&K}C7-tB*h-B~KT}5RU7~KmPx>XJ%$TT(7~K l{wKYq(*Ohv6&OYM7+${M``%EIwH&CL!PC{xWt~$(69Cu6Cocd1 literal 0 HcmV?d00001 diff --git a/textures/_cl.png b/textures/_cl.png new file mode 100644 index 0000000000000000000000000000000000000000..d515ee8bb928168270ae26d2727c4f9de8fdb999 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl5?%l0#~PtS(SU#nZ(xgyXtx*G66j1)hcj|Lcz( q3=s{0#(I7!~_E)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPa2fGL}-(}N+CqN-NPZ!4!j_b*P{{OdU1_5Dakpv@& g1zG=`Z~m8Lc#^>N*JS^0W}r$2Pgg&ebxsLQ0PS!k00000 literal 0 HcmV?d00001 diff --git a/textures/_cr.png b/textures/_cr.png new file mode 100644 index 0000000000000000000000000000000000000000..c337cb5aeae6c8c344220fcc3b834eca33f791ee GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl5>&O{2!2F$O54;_2cT!g1a8)J9$g1C9e54*a*@ qEu5vszcR?N`=!&0Uk=vB@2d0##6B(NSvm)(p25@A&t;ucLK6V|5-3ps literal 0 HcmV?d00001 diff --git a/textures/_d.png b/textures/_d.png new file mode 100644 index 0000000000000000000000000000000000000000..1822281b638eddb98d0221def7aeb4c208a39693 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6QBip~sJ)eL=>Ygr+Asp9ZPdNfD;9zp>{rCUr t+erev98FRIH8w0g4c)I$ztaD0e0s!iPD)s;X literal 0 HcmV?d00001 diff --git a/textures/_d_.png b/textures/_d_.png new file mode 100644 index 0000000000000000000000000000000000000000..afbb37135606b0fb73eb6bf3460e6a399a2f050f GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6gkLkBS*$+S=6;Bt(5RU7qJsWu$7&w|&{QuwM qt)8lwsL&u{x^)EuU%PmbJh#{Z{-0A;UDpMwXYh3Ob6Mw<&;$S@`zMM3 literal 0 HcmV?d00001 diff --git a/textures/_dl.png b/textures/_dl.png new file mode 100644 index 0000000000000000000000000000000000000000..d2d1653ae1351f1885a050b226838c6e1afed1c3 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX9@I7!~_E)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPa2fGLZi^SPemOvq0PZ!4!j_bCkHu4@YU^r~B>;L~X zdY){|Mh;WCR_!U?F1+es-v-@^N2}J~disI+%w)yaXYTE|4b;fs>FVdQ&MBb@02os- AJOBUy literal 0 HcmV?d00001 diff --git a/textures/_dt.png b/textures/_dt.png new file mode 100644 index 0000000000000000000000000000000000000000..fd2268250e8da406ce5e73ee979f0fbed2070ea5 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!3HE-TH59VDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl5>2gzwt6FGWBhUQZXt5RU7~2?zN8F*7hqFfz1o R8-vVe@O1TaS?83{1OUJe9OwW5 literal 0 HcmV?d00001 diff --git a/textures/_dv.png b/textures/_dv.png new file mode 100644 index 0000000000000000000000000000000000000000..2c5c8ee7f6ed920ea96c603e24439a5902ba1175 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=wj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwIgI$E#Ff};#CQwM#)5S4_<9h6gjf@Ni9Lx%j{@Wkl qI(6cfuU?mSUNkFae#XWUe}GB)zX+?tNt{XE)7O>#4hK6QBahsk&^JIKWltB!5RU7~fByfsXXa|)`qOUk p|L_rkrk(({!~g&Pm)w}e$WT3B=DF{ZfJ;E-44$rjF6*2UngEE$E3W_m literal 0 HcmV?d00001 diff --git a/textures/_e_.png b/textures/_e_.png new file mode 100644 index 0000000000000000000000000000000000000000..839e92f30c73d62dfb0db105baac4a81d9315a46 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8D$mu24+oo=9zyr+v}2*>r_lN)&%7&w>}X8rho ly7VJMBFdgVhl5>&iAC%8irqjV2~QWt5RU7~fByfsXXY_5GB7w$ d*>mJ11H+^SuHTo7J3!hPJYD@<);T3K0RUwZBzOP- literal 0 HcmV?d00001 diff --git a/textures/_ex.png b/textures/_ex.png new file mode 100644 index 0000000000000000000000000000000000000000..4d1cb03c29ab3241e9fdd8dd7467c48a452f0434 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!3HE-TH59VDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl5?%TEP0%^PfN=X-^l&5RU7rM>p~^Fz_5!nDW2A htbG#$FWajB40?vF3~A@yKLaXb@O1TaS?83{1OVo>B|`uJ literal 0 HcmV?d00001 diff --git a/textures/_f.png b/textures/_f.png new file mode 100644 index 0000000000000000000000000000000000000000..da6d3c326967e96b49105a7c0c201765a39cc1f8 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8DuQH1xx*FdgVhl8D$muG|jlAS;yB~KT}5RU7mCl!Sl6nL07OnLl2 o{vA(J+YOelF&WY)%KK6o)Rj2cPuEXg4OGqG>FVdQ&MBb@0Ld;VZvX%Q literal 0 HcmV?d00001 diff --git a/textures/_g.png b/textures/_g.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4731ce9cdd01e99412e0a5c8ada7eedb0478f0 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c8!3HGtQ{P+wQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkNKc8UuPgf<4t7391)UU2exQ)9r;B3<$Mx7AM=k~hhGvsr|EIqV z3gFzGW2Bv@*6?dfXwK$?=Og|0_+OP{XE)7O>#4hK6guf(dU1xJ8FTAnVBAsp9ZdmOnK40sMby77Pi xoVYZ8;T8qQ5Qf_fs~$cTo5WFIwdQL*PlcB7&+4i#_kp??JYD@<);T3K0RVDdEX)7^ literal 0 HcmV?d00001 diff --git a/textures/_gt.png b/textures/_gt.png new file mode 100644 index 0000000000000000000000000000000000000000..8941846515c962db47dfbef108196b69bc69136f GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl5>&MJE63^lYGzf~SjP2*>s0l!SyI|NsB5cVlDY m;P(34UXZ|~VbpV?is68{%!@nT0qcNj89ZJ6T-G@yGywpn1Si}8 literal 0 HcmV?d00001 diff --git a/textures/_h.png b/textures/_h.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d17b48404590858b952ce48fd675bd216fa447 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6QqlVJ{jkZ7`RZkbk5RU7qCl@j@C{XE)7O>#4hK6guj1DUKh6M!6g^!WLpZM2p5DmIV8C&}VEX@h nzj8LCD6Wu|3pQ3|Jl<>&kwIgI(C#eBOhgNkAc4PZ!4!j_b)k{{OdUW@bKIpE7G= iW8*`6W~&80stlHbN)J}<|0xAj$l&Sf=d#Wzp$Py?C??MU literal 0 HcmV?d00001 diff --git a/textures/_i.png b/textures/_i.png new file mode 100644 index 0000000000000000000000000000000000000000..a2e3eccfc4ad2b50cc4dda9fb9c8dcb17d24152b GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!3HE-TH59VDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8Du(bRG0-6udH2~QWt5RU7t2N`*Ryh93U|Idjl ch-MgAgg#_t;Ad)m3KV7VboFyt=akR{03UTB761SM literal 0 HcmV?d00001 diff --git a/textures/_i_.png b/textures/_i_.png new file mode 100644 index 0000000000000000000000000000000000000000..1a21779e52b7ef97317ab202f7ee5be580174346 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8D$SEpOCr4T42@9E+g!f`!0B_ZL*c?RbH|NplK l{g<2}F@b@rT`-cLp>-C=KaJdrCxJ>CJYD@<);T3K0RUe_CglJC literal 0 HcmV?d00001 diff --git a/textures/_j.png b/textures/_j.png new file mode 100644 index 0000000000000000000000000000000000000000..22d353161e78c2268df35a2d5a9644db42ac86a5 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-e!3HFis^?4xQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkNKc8UuPgf<4t72!MsJ0xNkAb*PZ!4!j_b)k{{OdUW@bKI@21h* m$f$Pc2m|X3o)w$^^Dx+a=leN*!n5B%#SEUVelF{r5}E*przhnA literal 0 HcmV?d00001 diff --git a/textures/_j_.png b/textures/_j_.png new file mode 100644 index 0000000000000000000000000000000000000000..e39e34adcfb6849e8f3174e1bf22856c9fc8f06c GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6guf@dQ0X#q{XE)7O>#4hK6Q6Nk~CLuNoBbx#+^5RU7QFmN0?@Zg{I uaW~uj3l$hc4r|O)F*=(2H+|)%P-f{{XE)7O>#4hK6gAM2xi{`Y`F8lEnWAsp9Z&lqwsC@>s8@cDm# vUo%%$yOWnj$jXGPji+{8OMGtlM_%};fb#w3zm0o=dKf%i{an^LB{Ts5W6&-Y literal 0 HcmV?d00001 diff --git a/textures/_l.png b/textures/_l.png new file mode 100644 index 0000000000000000000000000000000000000000..5a15f0b243926a3a1f933eac3b71672d88d7649d GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!3HE-TH59VDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8DuN$C7MYagJHh^LEV2*>s0goK12=Z_pXaG=4B Zfk8Bbkz?tlt#5$x44$rjF6*2UngHIhBOm|( literal 0 HcmV?d00001 diff --git a/textures/_l_.png b/textures/_l_.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6c5e51ba1d4e02e299a03fedd897eee66cf5f2 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8D$kM~XL@i#yrMNb#U5RU7m$2ama7;rEfEdT#s nMs0~+Me&7gjn9kKU!*a7-_6SUhF$zIP%(q2tDnm{r-UW|FdgVhl5?%N`=`~i5DoO?CIhd!g1aAv>_jZ0#Ad(umA4z oy%*=PIB|sXU(oSco%gbyPi?0Bzopr0BzGHI{*Lx literal 0 HcmV?d00001 diff --git a/textures/_m.png b/textures/_m.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c06eefea34f5462a7d1abc58c180ab7d1e4a9e GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=wj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwIgPo5_>Y(f9I-roUr;B3<$Mxht|Nq-FTP36<>&kwIgPm7JxRTLqIZ#N;)5S4_FdgVhl5>&(R?42*>s0KmY&RGxHc2DlodS gv9awCQT9t^(9mILbTBUs2P$LmboFyt=akR{07g6?`v3p{ literal 0 HcmV?d00001 diff --git a/textures/_n.png b/textures/_n.png new file mode 100644 index 0000000000000000000000000000000000000000..dbcfe7e22bea33336ca0dc42ef8173a2693db9dd GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6QlhR9f?gv02RZkbk5RU7~fByfsXEsVmNl0ku q2D0Z1di_stSoP=pkp?yc76#omzMsM0TB3m(7(8A5T-G@yGywqoQ7qB` literal 0 HcmV?d00001 diff --git a/textures/_n_.png b/textures/_n_.png new file mode 100644 index 0000000000000000000000000000000000000000..03ea78898f2c0cd007a017224187f5959bcca551 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK80m4wx#3m literal 0 HcmV?d00001 diff --git a/textures/_o.png b/textures/_o.png new file mode 100644 index 0000000000000000000000000000000000000000..0a2c5bb2613b74c777e938267e320e8914f50335 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6Qlh*S&&6j{e@}4e^Asp9}|NQ@N&&<`p^{3t7 m|KTJ54y(?PxWKqej3INc)XU$Qm$w3yGI+ZBxvX{XE)7O>#4hK80m164jh#x>96;Bt(5RU7~KmPx>XJ%$TT+hbV p_CLU^g>iC1k^{2@6VHn@28M?1;&1i!T0j;uc)I$ztaD0e0su1qCe{D| literal 0 HcmV?d00001 diff --git a/textures/_p.png b/textures/_p.png new file mode 100644 index 0000000000000000000000000000000000000000..78b287628f7a5c19bbd4237c638c46ad774cbadb GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c8!3HGtQ{P+wQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkNKc8UuPgf<4t72!6WPi8HUfpTJzX3_IIgF5J904?@HC&f@qhmt xy`@vGdMjjvs4@Nu4AxGq`Vnz*uI>RZIhl6RpYLK)^MTqJJYD@<);T3K0RXsNElvOc literal 0 HcmV?d00001 diff --git a/textures/_p_.png b/textures/_p_.png new file mode 100644 index 0000000000000000000000000000000000000000..f0db495f755b790436543abfd1701d5416893d5d GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK80m5#KUiYrh^&C|s(gyVYbX+=H;1%U$_r=?uWH=qs%Pgg&ebxsLQ0AZdfz5oCK literal 0 HcmV?d00001 diff --git a/textures/_pr.png b/textures/_pr.png new file mode 100644 index 0000000000000000000000000000000000000000..75f2c8eb39b5f1d1baa7b218d7822d556a11982b GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=wj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwIgI$Dyzh7Q>BTz`w)5S4_<9clOMqUO3p5}so|7ZG5 un^oZ?#;{^hkeulpU&T(*XL6_ibhEo&5c~JDo#O>i6N9I#pUXO@geCy!{VOH_ literal 0 HcmV?d00001 diff --git a/textures/_ps.png b/textures/_ps.png new file mode 100644 index 0000000000000000000000000000000000000000..7c5a875379cb68b4f51c8420e5a0b8c8b3e45b94 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl5>&QGaa~lLb&n)zif>gyXvJ>4Sm|1`I6+Y=6I( rv@cYOPng=zzK!*8sQT(n|35QrXW;wQee3UWpaup{S3j3^P6Cm&8yFOj=?5^bcGnsc*oapcChpg`aH8Oa*`njxgN@xNAz{xH0 literal 0 HcmV?d00001 diff --git a/textures/_q_.png b/textures/_q_.png new file mode 100644 index 0000000000000000000000000000000000000000..ee0110d144f5f1ad1003a7795a1df6c358216986 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX9@I7!~_E)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPa2RpBo*)x~B_CO&mPZ!4!j_avsHu5qk2pm4Z{rkNP w*AKR!$c-tv3tv2CR-TrA|6y*5(}X3`u65FH&6b_u1nOe&boFyt=akR{0C6rX>;M1& literal 0 HcmV?d00001 diff --git a/textures/_qo.png b/textures/_qo.png new file mode 100644 index 0000000000000000000000000000000000000000..e753d481b70094ddae99ac51c1efeb0bc8824d44 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^%s|YFdgVhl5>&S?yWF4LP8Yq^FBx2*>s0goK12|NsB5XJcb) f`|rc!!N3rIh2`J74=F!^iWody{an^LB{Ts5f=DIz literal 0 HcmV?d00001 diff --git a/textures/_qu.png b/textures/_qu.png new file mode 100644 index 0000000000000000000000000000000000000000..fb156c201622fc1136abfc65eb9ac895e5acec86 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOpkqi_>z-F~2url*Tz2*>r%Q-*vD20YCUFaH1c vX?L4=D(y8((yA?Gi;v0J3e0D)@LtY+yG!_ItfP+|P!ofvtDnm{r-UW|9nLD} literal 0 HcmV?d00001 diff --git a/textures/_r.png b/textures/_r.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b0ac92b1e9ef024a0513a3d29a216bef2718cc GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8DunSFP}yJtWlWltB!5RU7~fByfsXEyr5FWMmd n9|+DLV40efl913)kifuD)WiS%?#!wxpmGLJS3j3^P6{XE)7O>#4hK80HH&%2-hV(LWltB!5RU7urx!9ZDDWKE(DT1u pFOAFDCzL(%YEH1@@#KA{S?7s~zrX4(F%_ts!PC{xWt~$(696z(D8v8& literal 0 HcmV?d00001 diff --git a/textures/_re.png b/textures/_re.png new file mode 100644 index 0000000000000000000000000000000000000000..42ed81ec49ab363f1f80a191e8975e765c78c948 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=wj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwIgIz>eRCv w%B%6@AqSz*A|tJa&}Y8hXWF$dRIwE>Caa6E_EzMm0JSlAy85}Sb4q9e08(EnYybcN literal 0 HcmV?d00001 diff --git a/textures/_s.png b/textures/_s.png new file mode 100644 index 0000000000000000000000000000000000000000..75d4f5f8e5fc7b8340eb50184e249464baaf5a90 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6QGvA?>Fejjprl*Tz2*-8b(+4>j40xCgC3pQl v^-f!{POj+IuIdRX*#Q~SCt}>zN_=I^{wu(^k7>#&pe6=SS3j3^P6{XE)7O>#4hK80HTQD!1^GZBEl(H65RU7@a$LR~R-rZZYDZU~1{?nD^49l)dzOM`J09ni6>FVdQ&MBb@0Kp+Hv;Y7A literal 0 HcmV?d00001 diff --git a/textures/_sl.png b/textures/_sl.png new file mode 100644 index 0000000000000000000000000000000000000000..3170edffd40b0414c629a739d4609fa1abca0d8b GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-a!3HGrH`~quQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOrirPNE#oK&EYjHioZ2*>s0l!SyI=NVZ41Ht(N gERPRL_86EltPo{mv^H3N4XBR6)78&qol`;+02}!xlmGw# literal 0 HcmV?d00001 diff --git a/textures/_sm.png b/textures/_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..f2922e11354bf8354253033f30a210023f488676 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!3HE-TH59VDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl5>&$$HM*);6G!l&6bh2*>s0AOHW`GXufldNzyh e&c?<@Mux_P?7uA|{Z)Xf7(8A5T-G@yGywpr>m%3z literal 0 HcmV?d00001 diff --git a/textures/_sp.png b/textures/_sp.png new file mode 100644 index 0000000000000000000000000000000000000000..3fde935c2192ca9494f87b1b44932276ab9c0934 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwIgPo6u^LE93J)jV;r;B3<$Mxg{AOLb%85rX}YgqwV N44$rjF6*2UngCw78^Qnp literal 0 HcmV?d00001 diff --git a/textures/_sr.png b/textures/_sr.png new file mode 100644 index 0000000000000000000000000000000000000000..7bcb3bcabd96f933bba577f9f2ac706d98cd2e02 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-a!3HGrH`~quQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOpktK5tm$3X@tc)B=-a9p=NwULoQfu~`^mH+j} mTu)DFbX?HXcRlG}G2;eaHbw@IFdgVhl8DuS;YR?dJCYCf~SjP2*-8blN$vY6nGdEOa9Nb mpBk4D=s306rh47lU)E0^h`uxWS$Y$wmci52&t;ucLK6Ubtte9f literal 0 HcmV?d00001 diff --git a/textures/_t_.png b/textures/_t_.png new file mode 100644 index 0000000000000000000000000000000000000000..18081ca30773ef3b6024650eb6a7dbb4b7350332 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8EhT13l!?JS^>jHioZ2*>s0l!SyI=NXv)|Nq|} i^j~s@!~}*sK8BhN91MH=gX4kf7(8A5T-G@yGywqXZY5U$ literal 0 HcmV?d00001 diff --git a/textures/_tl.png b/textures/_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..e1dc6185e34b1fd61de03cb799d86b15beb45542 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOpk3q$pp(<(qAWltB!5RU7~KmPx>XJ%$TTrbgk m=qHG+JcXIvhbM!{XE)7O>#4hK6Qvy7pwI><<6PZ!4!j_bKy8+jQRIGQi~uRrEG o-AzbMW2(zk-m+`|>KM*5@)rnv75vEd9H^YZ)78&qol`;+0Iqi?oB#j- literal 0 HcmV?d00001 diff --git a/textures/_u_.png b/textures/_u_.png new file mode 100644 index 0000000000000000000000000000000000000000..4e9dbfe6bd3d84b26d7922224dd06467566ea744 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK80we+rr4ctH>WltB!5RU7uXAJom6nGjAc>n*O pKIhE?C1p;Bsa#V0^&8*T$}aoM|9zeFy?a3A44$rjF6*2UngBe$DnkGO literal 0 HcmV?d00001 diff --git a/textures/_un.png b/textures/_un.png new file mode 100644 index 0000000000000000000000000000000000000000..db359158c6ff39ecfe4c1cdf5ec13c401320f973 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hOpkqkQ*fqbWckX-^l&5RU7~fByfsXEsVma$s&@ gm5`K>2;gC4VEe|xS`{#F2T&PmdKI;Vst0FH(s<^TWy literal 0 HcmV?d00001 diff --git a/textures/_v.png b/textures/_v.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d37ad5a60ad9d8df1bc08d01005568dd01da81 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6Qvx=ns{3$>oWltB!5RU7)CpU63C@>t@@an() qaaYG9IZK)MF0eggH>Z0Sv+k<^ndcT8Dh~jaGkCiCxvX{XE)7O>#4hK80wbIj83ud5@il>WX2*>r@GaES>40sM0O#EM8 qw#=!$LR4Z^$OVg6nW=i;>cto%C12FdgVhl5>2*domLyADuD#M8wwgyVX0LPEli^G6OGIMCq6 Zz#y8z$g%X&);B<>&kwIgPo6AzwfP^3{Xhg)5S4_<9hO+|Nrfo%|6I$F)p83 fpm{i;H&m5Dae>%-MHlgSpfUzeS3j3^P6<>&kwIgPqq}vnc#wH&963)5S4_<9cq#Mn(n&p5~7K|9z&f tl0D_*#BlY3%EvRs-@7N9F50$_dl8?&KRdbQK;sw~JYD@<);T3K0RRP7EBgQd literal 0 HcmV?d00001 diff --git a/textures/_x.png b/textures/_x.png new file mode 100644 index 0000000000000000000000000000000000000000..90a43934fa4e458d1072ae5e06b8f1b9e9f3dc86 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8Du*|fNSe;QCo!PCVtgyVYhpa1{unT>w%i~cyz k0OHJV>}2FUFqM&Ep`q}HtE-}HfNB{$UHx3vIVCg!0OZ*zmjD0& literal 0 HcmV?d00001 diff --git a/textures/_x_.png b/textures/_x_.png new file mode 100644 index 0000000000000000000000000000000000000000..8fb3408f89043c683e220766dab8439164ba7ff2 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK80wSkz8r#DbY$4ky}20RT1_P^V2 o9BOEIkSSnk)4a1YH0PdXZ`dyWR(`+DZlG!gPgg&ebxsLQ0N!dSiU0rr literal 0 HcmV?d00001 diff --git a/textures/_y.png b/textures/_y.png new file mode 100644 index 0000000000000000000000000000000000000000..774a89ddc5c3783e1960aef01314eaccdb4fc753 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c8!3HGtQ{P+wQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkNKc8UuPgf<4t72khOFARO+X=SPZ!4!j_bKSj$8}|Jk37;|EE{q wOwi`72ojoV8QQmD+1j=2A0~Y_>5N}^iS@k9+r{qe9zbmjp00i_>zopr0H9{XE)7O>#4hK80wRPjW35S6~8lEnWAsp9ZPi^F7P!KqLp!(bW unFDv8# literal 0 HcmV?d00001 diff --git a/textures/_z.png b/textures/_z.png new file mode 100644 index 0000000000000000000000000000000000000000..7ff4e6076581a620789f0068dbe53930dab4bb5b GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#4hK6Q3rEVb)D1u(bx#+^5RU7)r#JE*FkonLu>1YK tCNt(pkcJ>nZDgr*iPnpix7dEi#)UNreHXY{<3D#HK( literal 0 HcmV?d00001 diff --git a/textures/_z_.png b/textures/_z_.png new file mode 100644 index 0000000000000000000000000000000000000000..36798f16212b0230f03e71ddc2b9b0d0b245f964 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y_!3HE73d0rwDYhhUcNd2LAh=-f^2tCE&H|6f zVg?3oVGw3ym^DWND9B#o>FdgVhl8Dufwivs4ku7Z#nZ(xgyXvF>5YO63Oo%5&i`{x rUTC>;LBfQkK?kRwvXQ)V<0->o5#f*Dzh~+I)iZdy`njxgN@xNAS;Z?r literal 0 HcmV?d00001 diff --git a/textures/signs_back.png b/textures/signs_back.png new file mode 100644 index 0000000000000000000000000000000000000000..d3fa19a6c38f09f9924dd9fd1b542bdaeba28b0a GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMpdfpR zr>`sf9S$xoS@HI>8)JY%TRdGHLp07Oujw#ORbVwRoWK#WrX+RZ&+G4OQxg&%JbC0Q z7Bc05bHLshet<# z-@oL9gdZQiD!cHVJHTRJXKY|#u)(A2Q}Wcdh!sm!c+1a!&!2C(vm$bWEerei_?jk- zCW8s4#$_q99)HxEmeBg6v9a;tji<*=IxUX<|NlR^E9}^8Lj!{?`Zlht(rgRa7;Gjv V?VFvwS_|lY22WQ%mvv4FO#lHuZX^Hz literal 0 HcmV?d00001 diff --git a/textures/signs_bottom.png b/textures/signs_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..604a0fce99dde0aa648e9d9bd3081711f418a1d0 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMpdfpR zr>`sf9S$xoCH0@DR-XY1DSNs&hG?8m*6A`yQ(!ePoWLRR|NnpgXlb^EY{xDp$j&;* Z#o!pvDKJBc%@C-Z!PC{xWt~$(69A6sA-Vtn literal 0 HcmV?d00001 diff --git a/textures/signs_front.png b/textures/signs_front.png new file mode 100644 index 0000000000000000000000000000000000000000..e426bec9164ce2ab91cbffec64d64b8f9b74cbe8 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMpdfpR zr>`sf9S$xoRT0kU7+IjuGEW!B5RLQ6YdVZm6<7@nCvZfpDM@`e=eNF{;_2G|-)1&8 zI(mCbxiZIG{GLDm;u8sp9|pdOjS`<9i%(v_pg&7ylkJ?CJpyc}+t>e>0D*tD^?wEX zFWc9&p4#Nm^{F0c#N=-AcdN3$&vWWI@-EZF^?Q6xlXmEo2Zt9iJ__V{zlgb`lZS^# z=eVBzvfLwv|Nj4%58h&QucxtbVeLarts4d$rVI?OFI}&Dwj2lqx|qS!)z4*}Q$iB} Dmyu%A literal 0 HcmV?d00001 diff --git a/textures/signs_side.png b/textures/signs_side.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd809d4d3ae0dffc3d582e94e52178b05f161cd GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMpdfpR zr>`sf9S$xoc?&tMckMtSRZkbk5RLQ6YdVZm6B07wE4mmtLypaUD3p?7an+#2 agn_}VganMpdfpR zr>`sf9S$xoMeW;xTU3BT%APKcAsXkCb53tbQ(!ePoWLRR|NnpgXlb^EY{xDp$j&;* Z#i0C-b4pTdZWB;BgQu&X%Q~loCIF9#BRT*8 literal 0 HcmV?d00001