diff options
Diffstat (limited to 'signs')
115 files changed, 611 insertions, 0 deletions
diff --git a/signs/LICENSE.txt b/signs/LICENSE.txt new file mode 100644 index 0000000..bc06764 --- /dev/null +++ b/signs/LICENSE.txt @@ -0,0 +1,13 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + +Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> + +Everyone is permitted to copy and distribute verbatim or modified +copies of this license document, and changing it is allowed as long +as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/signs/README.md b/signs/README.md new file mode 100644 index 0000000..586dbff --- /dev/null +++ b/signs/README.md @@ -0,0 +1,52 @@ +# Signs + +This mod provides various signs with text display. Text is locked if area is protected. + +**Dependancies**: display_lib, default + +**License**: WTFPL + +## Recipes + +**Blue Street Sign** + + B W S + S S S + - - - + +B = Blue Dye, W = White Dye, S = Steel Ingot + +**Green Street Sign** + + G W S + S S S + - - - + +G = Green Dye, W = White Dye, S = Steel Ingot + +**Poster** + + P P - + P P - + P P - + +P = Paper + +Poster displays only title, much more text can be read by right-clicking on it. + +**Wooden direction sigh** + + W W W + W W - + - - - + +W = Wooden Plank (group) + +**Black direction sign** + + B W S + S S - + - - - + +B = Black Dye, W = White Dye, S = Steel Ingot + diff --git a/signs/common.lua b/signs/common.lua new file mode 100644 index 0000000..0433223 --- /dev/null +++ b/signs/common.lua @@ -0,0 +1,217 @@ +local font = {} +signs.font_height = 10 + +-- Get png width, suposing png width is less than 256 (it is the case for all font textures) +local function get_png_width(filename) + local file=assert(io.open(filename,"rb")) + -- All font png are smaller than 256x256 --> read only last byte + file:seek("set",19) + local w = file:read(1) + file:close() + return w:byte() +end + +-- Computes line width for a given font height and text +function signs.get_line_width(text) + local char + local width = 0 + + for p=1,#text + do + char = text:sub(p,p):byte() + if font[char] then + width = width + font[char].width + end + end + + return width +end + +--- Builds texture part for a text line +-- @param text Text to be rendered +-- @param x Starting x position in texture +-- @param width Width of the texture (extra text is not rendered) +-- @param y Vertical position of the line in texture +-- @return Texture string +function signs.make_line_texture(text, x, width, y) + local char + + local texture = "" + + for p=1,#text + do + char = text:sub(p,p):byte() + if font[char] then + -- Add image only if it is visible (at least partly) + if x + font[char].width >= 0 and x <= width then + texture = texture..string.format(":%d,%d=%s", x, y, font[char].filename) + end + x = x + font[char].width + end + end + return texture +end + +local function split_lines(text, maxlines) + local splits = text:split("\n") + if maxlines then + local lines = {} + for num = 1,maxlines do + lines[num] = splits[num] + end + return lines + else + return splits + end +end + +function signs.on_display_update(pos, objref) + local meta = minetest.get_meta(pos) + local text = meta:get_string("display_text") + + local ndef = minetest.registered_nodes[minetest.get_node(pos).name] + if ndef and ndef.sign_model then + local model = signs.sign_models[ndef.sign_model] + local lines = split_lines(text, model.maxlines) + + local texturew = model.width/model.xscale + local textureh = model.height/model.yscale + + local texture = "" + + local y + if model.valing == "top" then + y = signs.font_height / 2 + else + y = (textureh - signs.font_height * #lines) / 2 + 1 + end + + for _, line in pairs(lines) do + texture = texture..signs.make_line_texture(line, + (texturew - signs.get_line_width(line)) / 2, + texturew, y) + y = y + signs.font_height + end + + local texture = string.format("[combine:%dx%d", texturew, textureh)..texture + if model.color then texture = texture.."^[colorize:"..model.color end + + objref:set_properties({ textures={texture}, visual_size = {x=model.width, y=model.height}}) + end +end + +function signs.set_formspec(pos) + local meta = minetest.get_meta(pos) + local ndef = minetest.registered_nodes[minetest.get_node(pos).name] + if ndef and ndef.sign_model then + local model = signs.sign_models[ndef.sign_model] + local formspec + + if model.maxlines == 1 then + formspec = "size[6,3]".. + "field[0.5,0.7;5.5,1;display_text;Displayed text;${display_text}]".. + "button_exit[2,2;2,1;ok;Write]" + else + local extralabel = "" + if model.maxlines then + extralabel = " (first "..model.maxlines.." lines only)" + end + + formspec = "size[6,4]".. + "textarea[0.5,0.7;5.5,2;display_text;Displayed text"..extralabel..";${display_text}]".. + "button_exit[2,3;2,1;ok;Write]" + end + + meta:set_string("formspec", formspec) + end +end + +function signs.on_receive_fields(pos, formname, fields, player) + if not minetest.is_protected(pos, player:get_player_name()) then + local meta = minetest.get_meta(pos) + if fields and fields.ok then + meta:set_string("display_text", fields.display_text) + meta:set_string("infotext", "\""..fields.display_text.."\"") + display_lib.update_entities(pos) + end + end +end + +-- On place callback for direction signs +-- (chooses which sign according to look direction) +function signs.on_place_direction(itemstack, placer, pointed_thing) + local above = pointed_thing.above + local under = pointed_thing.under + local wdir = minetest.dir_to_wallmounted( + {x = under.x - above.x, + y = under.y - above.y, + z = under.z - above.z}) + + local dir = placer:get_look_dir() + + if wdir == 0 or wdir == 1 then + wdir = minetest.dir_to_wallmounted({x=dir.x, y=0, z=dir.z}) + end + + local name = itemstack:get_name() + + -- Only for direction signs (ending with _right) + if name:sub(-string.len("_right")) == "_right" then + name = name:sub(1, -string.len("_right")) + + local test = {0, dir.z, -dir.z, -dir.x, dir.x} + if test[wdir] > 0 then + itemstack:set_name(name.."left") + end + itemstack = minetest.item_place(itemstack, placer, pointed_thing, wdir) + itemstack:set_name(name.."right") + + return itemstack + else + return minetest.item_place(itemstack, placer, pointed_thing, wdir) + end +end + +-- On_rotate (screwdriver) callback for direction signs +function signs.on_rotate_direction(pos, node, user, mode, new_param2) + if mode == screwdriver.ROTATE_AXIS then + local name + if node.name:sub(-string.len("_right")) == "_right" then + name = node.name:sub(1, -string.len("_right")).."left" + end + if node.name:sub(-string.len("_left")) == "_left" then + name = node.name:sub(1, -string.len("_left")).."right" + end + + if name then + minetest.swap_node(pos, {name = name, param1 = node.param1, param2 = node.param2}) + end + return false + else + return display_lib.on_rotate(pos, node, user, mode, new_param2) + end +end + +-- Populate fonts table +local w, filename +for charnum=32,126 do + filename = string.format("signs_%02x.png", charnum) + w = get_png_width(signs.path.."/textures/"..filename) + font[charnum] = {filename=filename, width=w} +end + +-- Generic callback for show_formspec displayed formspecs +minetest.register_on_player_receive_fields(function(player, formname, fields) + local found, mod, node_name, pos + found, _, mod, node_name, pos = formname:find("([%w_]+):([%w_]+)@(.+)") + + if found then + if mod ~= 'signs' then return end + + local ndef = minetest.registered_nodes[mod..":"..node_name] + + if ndef and ndef.on_receive_fields then + ndef.on_receive_fields(minetest.string_to_pos(pos), formname, fields, player) + end + end +end) diff --git a/signs/crafts.lua b/signs/crafts.lua new file mode 100644 index 0000000..16b873d --- /dev/null +++ b/signs/crafts.lua @@ -0,0 +1,45 @@ +minetest.register_craft({ + output = 'signs:blue_street', + recipe = { + {'dye:blue', 'dye:white', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'', '', ''}, + } +}) + +minetest.register_craft({ + output = 'signs:green_street', + recipe = { + {'dye:green', 'dye:white', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'', '', ''}, + } +}) + +minetest.register_craft({ + output = 'signs:wooden_right', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'group:wood', ''}, + {'', '', ''}, + } +}) + +minetest.register_craft({ + output = 'signs:black_right', + recipe = { + {'dye:black', 'dye:white', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', ''}, + {'', '', ''}, + } +}) + +minetest.register_craft({ + output = 'signs:poster', + recipe = { + {'default:paper', 'default:paper', ''}, + {'default:paper', 'default:paper', ''}, + {'default:paper', 'default:paper', ''}, + } +}) + diff --git a/signs/depends.txt b/signs/depends.txt new file mode 100644 index 0000000..c1feb90 --- /dev/null +++ b/signs/depends.txt @@ -0,0 +1,3 @@ +default +display_lib + diff --git a/signs/font.lua b/signs/font.lua new file mode 100644 index 0000000..2da6611 --- /dev/null +++ b/signs/font.lua @@ -0,0 +1,63 @@ + +local font = {} +signs.font_height = 10 + +-- Get png width, suposing png width is less than 256 (it is the case for all font textures) +local function get_png_width(filename) + local file=assert(io.open(filename,"rb")) + -- All font png are smaller than 256x256 --> read only last byte + file:seek("set",19) + local w = file:read(1) + file:close() + return w:byte() +end + +-- Computes line width for a given font height and text +function signs.get_line_width(text) + local char + local width = 0 + + for p=1,#text + do + char = text:sub(p,p):byte() + if font[char] then + width = width + font[char].width + end + end + + return width +end + +--- Builds texture part for a text line +-- @param text Text to be rendered +-- @param x Starting x position in texture +-- @param width Width of the texture (extra text is not rendered) +-- @param y Vertical position of the line in texture +-- @return Texture string +function signs.make_line_texture(text, x, width, y) + local char + + local texture = "" + + for p=1,#text + do + char = text:sub(p,p):byte() + if font[char] then + -- Add image only if it is visible (at least partly) + if x + font[char].width >= 0 and x <= width then + texture = texture..string.format(":%d,%d=%s", x, y, font[char].filename) + end + x = x + font[char].width + end + end + return texture +end + +-- Populate fonts table +local w, filename +for charnum=32,126 do + filename = string.format("signs_%02x.png", charnum) + w = get_png_width(signs.path.."/textures/"..filename) + font[charnum] = {filename=filename, width=w} +end + diff --git a/signs/init.lua b/signs/init.lua new file mode 100644 index 0000000..81d3a5b --- /dev/null +++ b/signs/init.lua @@ -0,0 +1,15 @@ +-- Signs mod by P.Y. Rollo +-- +-- License: WTFPL + +signs = {} +signs.path = minetest.get_modpath("signs") + +dofile(signs.path.."/common.lua") +dofile(signs.path.."/nodes.lua") +dofile(signs.path.."/crafts.lua") + + + + + diff --git a/signs/nodes.lua b/signs/nodes.lua new file mode 100644 index 0000000..77d8925 --- /dev/null +++ b/signs/nodes.lua @@ -0,0 +1,203 @@ +-- Poster specific formspec +local function on_rightclick_poster(pos, node, player) + local formspec + local meta = minetest.get_meta(pos) + if not minetest.is_protected(pos, player:get_player_name()) then + formspec = + "size[6.5,7.5]".. + "field[0.5,0.7;6,1;display_text;Title;"..minetest.formspec_escape(meta:get_string("display_text")).."]".. + "textarea[0.5,1.7;6,6;text;Text;"..minetest.formspec_escape(meta:get_string("text")).."]".. + "button_exit[2,7;2,1;ok;Write]" + minetest.show_formspec(player:get_player_name(), + "signs:poster@"..minetest.pos_to_string(pos), + formspec) + else + formspec = "size[8,9]".. + "size[6.5,7.5]".. + "label[0.5,0;"..minetest.formspec_escape(meta:get_string("display_text")).."]".. + "textarea[0.5,1;6,7;;"..minetest.formspec_escape(meta:get_string("text"))..";]".. + "bgcolor[#111]".. + "button_exit[2,7;2,1;ok;Close]" + minetest.show_formspec(player:get_player_name(), + "", + formspec) + end + +end + +-- Poster specific on_receive_fields callback +local function on_receive_fields_poster(pos, formname, fields, player) + local meta = minetest.get_meta(pos) + if not minetest.is_protected(pos, player:get_player_name()) then + if fields and fields.ok then + meta:set_string("display_text", fields.display_text) + meta:set_string("text", fields.text) + meta:set_string("infotext", "\""..fields.display_text + .."\"\n(right-click to read more text)") + display_lib.update_entities(pos) + end + end +end + +signs.sign_models = { + blue_street={ + depth=1/16, + width=14/16, + height=12/16, + color="#fff", + maxlines = 3, + xscale = 1/144, + yscale = 1/64, + fields = { + description="Blue street sign", + tiles={"signs_blue_street.png"}, + inventory_image="signs_blue_street_inventory.png", + }, + }, + green_street={ + depth=1/32, + width=1, + height=6/16, + color="#fff", + maxlines = 1, + xscale = 1/96, + yscale = 1/64, + fields = { + description="Green street sign", + tiles={"signs_green_street.png"}, + inventory_image="signs_green_street_inventory.png", + }, + }, + wooden_right={ + depth=1/16, + width=14/16, + height=7/16, + color="#000", + maxlines = 2, + xscale = 1/112, + yscale = 1/64, + fields = { + description="Wooden direction sign", + tiles={"signs_wooden_right.png"}, + inventory_image="signs_wooden_inventory.png", + on_place=signs.on_place_direction, + on_rotate=signs.on_rotate_direction, + + }, + }, + wooden_left={ + depth=1/16, + width=14/16, + height=7/16, + color="#000", + maxlines = 2, + xscale = 1/112, + yscale = 1/64, + fields = { + description="Wooden direction sign", + tiles={"signs_wooden_left.png"}, + inventory_image="signs_wooden_inventory.png", + groups={choppy=1,oddly_breakable_by_hand=1,not_in_creative_inventory=1}, + drop="signs:wooden_right", + on_place=signs.on_place_direction, + on_rotate=signs.on_rotate_direction, + }, + }, + black_right={ + depth=1/32, + width=1, + height=0.5, + color="#000", + maxlines = 1, + xscale = 1/96, + yscale = 1/64, + fields = { + description="Black direction sign", + tiles={"signs_black_right.png"}, + inventory_image="signs_black_inventory.png", + on_place=signs.on_place_direction, + on_rotate=signs.on_rotate_direction, + }, + }, + black_left={ + depth=1/32, + width=1, + height=0.5, + color="#000", + maxlines = 1, + xscale = 1/96, + yscale = 1/64, + fields = { + description="Black direction sign", + tiles={"signs_black_left.png"}, + inventory_image="signs_black_inventory.png", + groups={choppy=1,oddly_breakable_by_hand=1,not_in_creative_inventory=1}, + drop="signs:black_right", + on_place=signs.on_place_direction, + on_rotate=signs.on_rotate_direction, + }, + }, + poster={ + depth=1/32, + width=26/32, + height=30/32, + color="#000", + valing="top", + maxlines = 1, + xscale = 1/144, + yscale = 1/64, + fields = { + description="Poster", + tiles={"signs_poster.png"}, + inventory_image="signs_poster_inventory.png", + on_construct=display_lib.on_construct, + on_rightclick=on_rightclick_poster, + on_receive_fields=on_receive_fields_poster, + }, + }, +} + +display_lib.register_display_entity("signs:text") + +for model_name, model in pairs(signs.sign_models) +do + local fields = { + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "wallmounted", + drawtype = "nodebox", + node_box = { + type = "wallmounted", + wall_side = {-0.5, -model.height/2, -model.width/2, + -0.5 + model.depth, model.height/2, model.width/2}, + wall_bottom = {-model.width/2, -0.5, -model.height/2, + model.width/2, -0.5 + model.depth, model.height/2}, + wall_top = {-model.width/2, 0.5, -model.height/2, + model.width/2, 0.5 - model.depth, model.height/2}, + }, + groups = {choppy=1,oddly_breakable_by_hand=1}, + sign_model = model_name, + display_entities = { + ["signs:text"] = { + depth = model.depth-0.499, + on_display_update = signs.on_display_update }, + }, + on_place = display_lib.on_place, + on_construct = function(pos) + signs.set_formspec(pos) + display_lib.on_construct(pos) + end, + on_destruct = display_lib.on_destruct, + on_rotate = display_lib.on_rotate, + on_receive_fields = signs.on_receive_fields, + } + + for key, value in pairs(model.fields) do + fields[key] = value + end + + if not fields.wield_image then fields.wield_image = fields.inventory_image end + + minetest.register_node("signs:"..model_name, fields) +end + diff --git a/signs/textures/signs_20.png b/signs/textures/signs_20.png Binary files differnew file mode 100644 index 0000000..43df9d1 --- /dev/null +++ b/signs/textures/signs_20.png diff --git a/signs/textures/signs_21.png b/signs/textures/signs_21.png Binary files differnew file mode 100644 index 0000000..b927105 --- /dev/null +++ b/signs/textures/signs_21.png diff --git a/signs/textures/signs_22.png b/signs/textures/signs_22.png Binary files differnew file mode 100644 index 0000000..fae7109 --- /dev/null +++ b/signs/textures/signs_22.png diff --git a/signs/textures/signs_23.png b/signs/textures/signs_23.png Binary files differnew file mode 100644 index 0000000..0995756 --- /dev/null +++ b/signs/textures/signs_23.png diff --git a/signs/textures/signs_24.png b/signs/textures/signs_24.png Binary files differnew file mode 100644 index 0000000..18b37d9 --- /dev/null +++ b/signs/textures/signs_24.png diff --git a/signs/textures/signs_25.png b/signs/textures/signs_25.png Binary files differnew file mode 100644 index 0000000..83737d3 --- /dev/null +++ b/signs/textures/signs_25.png diff --git a/signs/textures/signs_26.png b/signs/textures/signs_26.png Binary files differnew file mode 100644 index 0000000..94357c4 --- /dev/null +++ b/signs/textures/signs_26.png diff --git a/signs/textures/signs_27.png b/signs/textures/signs_27.png Binary files differnew file mode 100644 index 0000000..cd4426c --- /dev/null +++ b/signs/textures/signs_27.png diff --git a/signs/textures/signs_28.png b/signs/textures/signs_28.png Binary files differnew file mode 100644 index 0000000..66fd16e --- /dev/null +++ b/signs/textures/signs_28.png diff --git a/signs/textures/signs_29.png b/signs/textures/signs_29.png Binary files differnew file mode 100644 index 0000000..324d1d2 --- /dev/null +++ b/signs/textures/signs_29.png diff --git a/signs/textures/signs_2a.png b/signs/textures/signs_2a.png Binary files differnew file mode 100644 index 0000000..27bafea --- /dev/null +++ b/signs/textures/signs_2a.png diff --git a/signs/textures/signs_2b.png b/signs/textures/signs_2b.png Binary files differnew file mode 100644 index 0000000..28a8c7f --- /dev/null +++ b/signs/textures/signs_2b.png diff --git a/signs/textures/signs_2c.png b/signs/textures/signs_2c.png Binary files differnew file mode 100644 index 0000000..16bf1e4 --- /dev/null +++ b/signs/textures/signs_2c.png diff --git a/signs/textures/signs_2d.png b/signs/textures/signs_2d.png Binary files differnew file mode 100644 index 0000000..b555ad6 --- /dev/null +++ b/signs/textures/signs_2d.png diff --git a/signs/textures/signs_2e.png b/signs/textures/signs_2e.png Binary files differnew file mode 100644 index 0000000..cdfa677 --- /dev/null +++ b/signs/textures/signs_2e.png diff --git a/signs/textures/signs_2f.png b/signs/textures/signs_2f.png Binary files differnew file mode 100644 index 0000000..e76fdf4 --- /dev/null +++ b/signs/textures/signs_2f.png diff --git a/signs/textures/signs_30.png b/signs/textures/signs_30.png Binary files differnew file mode 100644 index 0000000..5a57af3 --- /dev/null +++ b/signs/textures/signs_30.png diff --git a/signs/textures/signs_31.png b/signs/textures/signs_31.png Binary files differnew file mode 100644 index 0000000..3b8ebf0 --- /dev/null +++ b/signs/textures/signs_31.png diff --git a/signs/textures/signs_32.png b/signs/textures/signs_32.png Binary files differnew file mode 100644 index 0000000..9a869a8 --- /dev/null +++ b/signs/textures/signs_32.png diff --git a/signs/textures/signs_33.png b/signs/textures/signs_33.png Binary files differnew file mode 100644 index 0000000..0bbaf59 --- /dev/null +++ b/signs/textures/signs_33.png diff --git a/signs/textures/signs_34.png b/signs/textures/signs_34.png Binary files differnew file mode 100644 index 0000000..f6dfe63 --- /dev/null +++ b/signs/textures/signs_34.png diff --git a/signs/textures/signs_35.png b/signs/textures/signs_35.png Binary files differnew file mode 100644 index 0000000..71a9883 --- /dev/null +++ b/signs/textures/signs_35.png diff --git a/signs/textures/signs_36.png b/signs/textures/signs_36.png Binary files differnew file mode 100644 index 0000000..6553bed --- /dev/null +++ b/signs/textures/signs_36.png diff --git a/signs/textures/signs_37.png b/signs/textures/signs_37.png Binary files differnew file mode 100644 index 0000000..53b9541 --- /dev/null +++ b/signs/textures/signs_37.png diff --git a/signs/textures/signs_38.png b/signs/textures/signs_38.png Binary files differnew file mode 100644 index 0000000..0933814 --- /dev/null +++ b/signs/textures/signs_38.png diff --git a/signs/textures/signs_39.png b/signs/textures/signs_39.png Binary files differnew file mode 100644 index 0000000..94dae88 --- /dev/null +++ b/signs/textures/signs_39.png diff --git a/signs/textures/signs_3a.png b/signs/textures/signs_3a.png Binary files differnew file mode 100644 index 0000000..09b4793 --- /dev/null +++ b/signs/textures/signs_3a.png diff --git a/signs/textures/signs_3b.png b/signs/textures/signs_3b.png Binary files differnew file mode 100644 index 0000000..8f9076b --- /dev/null +++ b/signs/textures/signs_3b.png diff --git a/signs/textures/signs_3c.png b/signs/textures/signs_3c.png Binary files differnew file mode 100644 index 0000000..a5313c9 --- /dev/null +++ b/signs/textures/signs_3c.png diff --git a/signs/textures/signs_3d.png b/signs/textures/signs_3d.png Binary files differnew file mode 100644 index 0000000..153c272 --- /dev/null +++ b/signs/textures/signs_3d.png diff --git a/signs/textures/signs_3e.png b/signs/textures/signs_3e.png Binary files differnew file mode 100644 index 0000000..ced7868 --- /dev/null +++ b/signs/textures/signs_3e.png diff --git a/signs/textures/signs_3f.png b/signs/textures/signs_3f.png Binary files differnew file mode 100644 index 0000000..3dfc73b --- /dev/null +++ b/signs/textures/signs_3f.png diff --git a/signs/textures/signs_40.png b/signs/textures/signs_40.png Binary files differnew file mode 100644 index 0000000..65dc19f --- /dev/null +++ b/signs/textures/signs_40.png diff --git a/signs/textures/signs_41.png b/signs/textures/signs_41.png Binary files differnew file mode 100644 index 0000000..0d74cdb --- /dev/null +++ b/signs/textures/signs_41.png diff --git a/signs/textures/signs_42.png b/signs/textures/signs_42.png Binary files differnew file mode 100644 index 0000000..7432e5f --- /dev/null +++ b/signs/textures/signs_42.png diff --git a/signs/textures/signs_43.png b/signs/textures/signs_43.png Binary files differnew file mode 100644 index 0000000..5a2e165 --- /dev/null +++ b/signs/textures/signs_43.png diff --git a/signs/textures/signs_44.png b/signs/textures/signs_44.png Binary files differnew file mode 100644 index 0000000..f2c4d07 --- /dev/null +++ b/signs/textures/signs_44.png diff --git a/signs/textures/signs_45.png b/signs/textures/signs_45.png Binary files differnew file mode 100644 index 0000000..de77e41 --- /dev/null +++ b/signs/textures/signs_45.png diff --git a/signs/textures/signs_46.png b/signs/textures/signs_46.png Binary files differnew file mode 100644 index 0000000..a19af77 --- /dev/null +++ b/signs/textures/signs_46.png diff --git a/signs/textures/signs_47.png b/signs/textures/signs_47.png Binary files differnew file mode 100644 index 0000000..30c6818 --- /dev/null +++ b/signs/textures/signs_47.png diff --git a/signs/textures/signs_48.png b/signs/textures/signs_48.png Binary files differnew file mode 100644 index 0000000..e49cee4 --- /dev/null +++ b/signs/textures/signs_48.png diff --git a/signs/textures/signs_49.png b/signs/textures/signs_49.png Binary files differnew file mode 100644 index 0000000..534500b --- /dev/null +++ b/signs/textures/signs_49.png diff --git a/signs/textures/signs_4a.png b/signs/textures/signs_4a.png Binary files differnew file mode 100644 index 0000000..5575e6d --- /dev/null +++ b/signs/textures/signs_4a.png diff --git a/signs/textures/signs_4b.png b/signs/textures/signs_4b.png Binary files differnew file mode 100644 index 0000000..0afb35d --- /dev/null +++ b/signs/textures/signs_4b.png diff --git a/signs/textures/signs_4c.png b/signs/textures/signs_4c.png Binary files differnew file mode 100644 index 0000000..99af40d --- /dev/null +++ b/signs/textures/signs_4c.png diff --git a/signs/textures/signs_4d.png b/signs/textures/signs_4d.png Binary files differnew file mode 100644 index 0000000..14648ed --- /dev/null +++ b/signs/textures/signs_4d.png diff --git a/signs/textures/signs_4e.png b/signs/textures/signs_4e.png Binary files differnew file mode 100644 index 0000000..57abfbb --- /dev/null +++ b/signs/textures/signs_4e.png diff --git a/signs/textures/signs_4f.png b/signs/textures/signs_4f.png Binary files differnew file mode 100644 index 0000000..06e0c8d --- /dev/null +++ b/signs/textures/signs_4f.png diff --git a/signs/textures/signs_50.png b/signs/textures/signs_50.png Binary files differnew file mode 100644 index 0000000..fba27a0 --- /dev/null +++ b/signs/textures/signs_50.png diff --git a/signs/textures/signs_51.png b/signs/textures/signs_51.png Binary files differnew file mode 100644 index 0000000..081e272 --- /dev/null +++ b/signs/textures/signs_51.png diff --git a/signs/textures/signs_52.png b/signs/textures/signs_52.png Binary files differnew file mode 100644 index 0000000..12fe421 --- /dev/null +++ b/signs/textures/signs_52.png diff --git a/signs/textures/signs_53.png b/signs/textures/signs_53.png Binary files differnew file mode 100644 index 0000000..7e1bbe0 --- /dev/null +++ b/signs/textures/signs_53.png diff --git a/signs/textures/signs_54.png b/signs/textures/signs_54.png Binary files differnew file mode 100644 index 0000000..f50a8b8 --- /dev/null +++ b/signs/textures/signs_54.png diff --git a/signs/textures/signs_55.png b/signs/textures/signs_55.png Binary files differnew file mode 100644 index 0000000..4682223 --- /dev/null +++ b/signs/textures/signs_55.png diff --git a/signs/textures/signs_56.png b/signs/textures/signs_56.png Binary files differnew file mode 100644 index 0000000..c8a55c4 --- /dev/null +++ b/signs/textures/signs_56.png diff --git a/signs/textures/signs_57.png b/signs/textures/signs_57.png Binary files differnew file mode 100644 index 0000000..419191c --- /dev/null +++ b/signs/textures/signs_57.png diff --git a/signs/textures/signs_58.png b/signs/textures/signs_58.png Binary files differnew file mode 100644 index 0000000..1175a0e --- /dev/null +++ b/signs/textures/signs_58.png diff --git a/signs/textures/signs_59.png b/signs/textures/signs_59.png Binary files differnew file mode 100644 index 0000000..9a52397 --- /dev/null +++ b/signs/textures/signs_59.png diff --git a/signs/textures/signs_5a.png b/signs/textures/signs_5a.png Binary files differnew file mode 100644 index 0000000..64c1c4f --- /dev/null +++ b/signs/textures/signs_5a.png diff --git a/signs/textures/signs_5b.png b/signs/textures/signs_5b.png Binary files differnew file mode 100644 index 0000000..c360403 --- /dev/null +++ b/signs/textures/signs_5b.png diff --git a/signs/textures/signs_5c.png b/signs/textures/signs_5c.png Binary files differnew file mode 100644 index 0000000..08cf8b6 --- /dev/null +++ b/signs/textures/signs_5c.png diff --git a/signs/textures/signs_5d.png b/signs/textures/signs_5d.png Binary files differnew file mode 100644 index 0000000..2309ee8 --- /dev/null +++ b/signs/textures/signs_5d.png diff --git a/signs/textures/signs_5e.png b/signs/textures/signs_5e.png Binary files differnew file mode 100644 index 0000000..60a1dbd --- /dev/null +++ b/signs/textures/signs_5e.png diff --git a/signs/textures/signs_5f.png b/signs/textures/signs_5f.png Binary files differnew file mode 100644 index 0000000..e7a4d90 --- /dev/null +++ b/signs/textures/signs_5f.png diff --git a/signs/textures/signs_60.png b/signs/textures/signs_60.png Binary files differnew file mode 100644 index 0000000..cd2b1ef --- /dev/null +++ b/signs/textures/signs_60.png diff --git a/signs/textures/signs_61.png b/signs/textures/signs_61.png Binary files differnew file mode 100644 index 0000000..874433d --- /dev/null +++ b/signs/textures/signs_61.png diff --git a/signs/textures/signs_62.png b/signs/textures/signs_62.png Binary files differnew file mode 100644 index 0000000..f29b709 --- /dev/null +++ b/signs/textures/signs_62.png diff --git a/signs/textures/signs_63.png b/signs/textures/signs_63.png Binary files differnew file mode 100644 index 0000000..6d46292 --- /dev/null +++ b/signs/textures/signs_63.png diff --git a/signs/textures/signs_64.png b/signs/textures/signs_64.png Binary files differnew file mode 100644 index 0000000..30e4497 --- /dev/null +++ b/signs/textures/signs_64.png diff --git a/signs/textures/signs_65.png b/signs/textures/signs_65.png Binary files differnew file mode 100644 index 0000000..8644032 --- /dev/null +++ b/signs/textures/signs_65.png diff --git a/signs/textures/signs_66.png b/signs/textures/signs_66.png Binary files differnew file mode 100644 index 0000000..5d4f4b9 --- /dev/null +++ b/signs/textures/signs_66.png diff --git a/signs/textures/signs_67.png b/signs/textures/signs_67.png Binary files differnew file mode 100644 index 0000000..990e8e3 --- /dev/null +++ b/signs/textures/signs_67.png diff --git a/signs/textures/signs_68.png b/signs/textures/signs_68.png Binary files differnew file mode 100644 index 0000000..6b936aa --- /dev/null +++ b/signs/textures/signs_68.png diff --git a/signs/textures/signs_69.png b/signs/textures/signs_69.png Binary files differnew file mode 100644 index 0000000..3251e2e --- /dev/null +++ b/signs/textures/signs_69.png diff --git a/signs/textures/signs_6a.png b/signs/textures/signs_6a.png Binary files differnew file mode 100644 index 0000000..1e0082c --- /dev/null +++ b/signs/textures/signs_6a.png diff --git a/signs/textures/signs_6b.png b/signs/textures/signs_6b.png Binary files differnew file mode 100644 index 0000000..788c3df --- /dev/null +++ b/signs/textures/signs_6b.png diff --git a/signs/textures/signs_6c.png b/signs/textures/signs_6c.png Binary files differnew file mode 100644 index 0000000..534500b --- /dev/null +++ b/signs/textures/signs_6c.png diff --git a/signs/textures/signs_6d.png b/signs/textures/signs_6d.png Binary files differnew file mode 100644 index 0000000..fca6d31 --- /dev/null +++ b/signs/textures/signs_6d.png diff --git a/signs/textures/signs_6e.png b/signs/textures/signs_6e.png Binary files differnew file mode 100644 index 0000000..10930a1 --- /dev/null +++ b/signs/textures/signs_6e.png diff --git a/signs/textures/signs_6f.png b/signs/textures/signs_6f.png Binary files differnew file mode 100644 index 0000000..f4aef64 --- /dev/null +++ b/signs/textures/signs_6f.png diff --git a/signs/textures/signs_70.png b/signs/textures/signs_70.png Binary files differnew file mode 100644 index 0000000..dac5f79 --- /dev/null +++ b/signs/textures/signs_70.png diff --git a/signs/textures/signs_71.png b/signs/textures/signs_71.png Binary files differnew file mode 100644 index 0000000..cc31972 --- /dev/null +++ b/signs/textures/signs_71.png diff --git a/signs/textures/signs_72.png b/signs/textures/signs_72.png Binary files differnew file mode 100644 index 0000000..d8dbcee --- /dev/null +++ b/signs/textures/signs_72.png diff --git a/signs/textures/signs_73.png b/signs/textures/signs_73.png Binary files differnew file mode 100644 index 0000000..60911df --- /dev/null +++ b/signs/textures/signs_73.png diff --git a/signs/textures/signs_74.png b/signs/textures/signs_74.png Binary files differnew file mode 100644 index 0000000..079e2f1 --- /dev/null +++ b/signs/textures/signs_74.png diff --git a/signs/textures/signs_75.png b/signs/textures/signs_75.png Binary files differnew file mode 100644 index 0000000..c86aaad --- /dev/null +++ b/signs/textures/signs_75.png diff --git a/signs/textures/signs_76.png b/signs/textures/signs_76.png Binary files differnew file mode 100644 index 0000000..5101584 --- /dev/null +++ b/signs/textures/signs_76.png diff --git a/signs/textures/signs_77.png b/signs/textures/signs_77.png Binary files differnew file mode 100644 index 0000000..d2bdb98 --- /dev/null +++ b/signs/textures/signs_77.png diff --git a/signs/textures/signs_78.png b/signs/textures/signs_78.png Binary files differnew file mode 100644 index 0000000..20927d9 --- /dev/null +++ b/signs/textures/signs_78.png diff --git a/signs/textures/signs_79.png b/signs/textures/signs_79.png Binary files differnew file mode 100644 index 0000000..15a76a7 --- /dev/null +++ b/signs/textures/signs_79.png diff --git a/signs/textures/signs_7a.png b/signs/textures/signs_7a.png Binary files differnew file mode 100644 index 0000000..43a1f05 --- /dev/null +++ b/signs/textures/signs_7a.png diff --git a/signs/textures/signs_7b.png b/signs/textures/signs_7b.png Binary files differnew file mode 100644 index 0000000..08c27a1 --- /dev/null +++ b/signs/textures/signs_7b.png diff --git a/signs/textures/signs_7c.png b/signs/textures/signs_7c.png Binary files differnew file mode 100644 index 0000000..db5bdb3 --- /dev/null +++ b/signs/textures/signs_7c.png diff --git a/signs/textures/signs_7d.png b/signs/textures/signs_7d.png Binary files differnew file mode 100644 index 0000000..52a64af --- /dev/null +++ b/signs/textures/signs_7d.png diff --git a/signs/textures/signs_7e.png b/signs/textures/signs_7e.png Binary files differnew file mode 100644 index 0000000..8a9a865 --- /dev/null +++ b/signs/textures/signs_7e.png diff --git a/signs/textures/signs_black_inventory.png b/signs/textures/signs_black_inventory.png Binary files differnew file mode 100644 index 0000000..4b10ee3 --- /dev/null +++ b/signs/textures/signs_black_inventory.png diff --git a/signs/textures/signs_black_left.png b/signs/textures/signs_black_left.png Binary files differnew file mode 100644 index 0000000..8837dcb --- /dev/null +++ b/signs/textures/signs_black_left.png diff --git a/signs/textures/signs_black_right.png b/signs/textures/signs_black_right.png Binary files differnew file mode 100644 index 0000000..0951da0 --- /dev/null +++ b/signs/textures/signs_black_right.png diff --git a/signs/textures/signs_blue_street.png b/signs/textures/signs_blue_street.png Binary files differnew file mode 100644 index 0000000..540a390 --- /dev/null +++ b/signs/textures/signs_blue_street.png diff --git a/signs/textures/signs_blue_street_inventory.png b/signs/textures/signs_blue_street_inventory.png Binary files differnew file mode 100644 index 0000000..a702669 --- /dev/null +++ b/signs/textures/signs_blue_street_inventory.png diff --git a/signs/textures/signs_green_street.png b/signs/textures/signs_green_street.png Binary files differnew file mode 100644 index 0000000..b5c653d --- /dev/null +++ b/signs/textures/signs_green_street.png diff --git a/signs/textures/signs_green_street_inventory.png b/signs/textures/signs_green_street_inventory.png Binary files differnew file mode 100644 index 0000000..6c2a52c --- /dev/null +++ b/signs/textures/signs_green_street_inventory.png diff --git a/signs/textures/signs_poster.png b/signs/textures/signs_poster.png Binary files differnew file mode 100644 index 0000000..92a3144 --- /dev/null +++ b/signs/textures/signs_poster.png diff --git a/signs/textures/signs_poster_inventory.png b/signs/textures/signs_poster_inventory.png Binary files differnew file mode 100644 index 0000000..e73a85b --- /dev/null +++ b/signs/textures/signs_poster_inventory.png diff --git a/signs/textures/signs_wooden_inventory.png b/signs/textures/signs_wooden_inventory.png Binary files differnew file mode 100644 index 0000000..e93ebe2 --- /dev/null +++ b/signs/textures/signs_wooden_inventory.png diff --git a/signs/textures/signs_wooden_left.png b/signs/textures/signs_wooden_left.png Binary files differnew file mode 100644 index 0000000..a3b6600 --- /dev/null +++ b/signs/textures/signs_wooden_left.png diff --git a/signs/textures/signs_wooden_right.png b/signs/textures/signs_wooden_right.png Binary files differnew file mode 100644 index 0000000..8d62376 --- /dev/null +++ b/signs/textures/signs_wooden_right.png |