Compare commits
	
		
			12 Commits
		
	
	
		
			ed3a679bca
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					1d98c6a5cc | ||
| 
						 | 
					87d65439a1 | ||
| 
						 | 
					4309b3575a | ||
| 
						 | 
					bb13ba6d7c | ||
| 
						 | 
					3d5ba32fa0 | ||
| 
						 | 
					0847176bdb | ||
| 
						 | 
					4fb53b67e8 | ||
| 
						 | 
					e5f73438ce | ||
| 
						 | 
					e387808065 | ||
| 
						 | 
					1c881d6f22 | ||
| 
						 | 
					cd6bf1eabe | ||
| 
						 | 
					1dd01e3bc6 | 
							
								
								
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					util/blender export-ignore
 | 
				
			||||||
							
								
								
									
										72
									
								
								api.lua
									
									
									
									
									
								
							
							
						
						@@ -1,6 +1,7 @@
 | 
				
			|||||||
-- signs_lib api, backported from street_signs
 | 
					-- signs_lib api, backported from street_signs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local S = signs_lib.S
 | 
					local S = signs_lib.S
 | 
				
			||||||
 | 
					local FS = function(...) return minetest.formspec_escape(S(...)) end
 | 
				
			||||||
local has_default_mod = minetest.get_modpath("default")
 | 
					local has_default_mod = minetest.get_modpath("default")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local function log(level, messagefmt, ...)
 | 
					local function log(level, messagefmt, ...)
 | 
				
			||||||
@@ -165,12 +166,14 @@ local ctexcache_wide = {}
 | 
				
			|||||||
-- entity handling
 | 
					-- entity handling
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_entity("signs_lib:text", {
 | 
					minetest.register_entity("signs_lib:text", {
 | 
				
			||||||
 | 
						initial_properties = {
 | 
				
			||||||
		collisionbox = { 0, 0, 0, 0, 0, 0 },
 | 
							collisionbox = { 0, 0, 0, 0, 0, 0 },
 | 
				
			||||||
		visual = "mesh",
 | 
							visual = "mesh",
 | 
				
			||||||
		mesh = "signs_lib_standard_sign_entity_wall.obj",
 | 
							mesh = "signs_lib_standard_sign_entity_wall.obj",
 | 
				
			||||||
		textures = {},
 | 
							textures = {},
 | 
				
			||||||
		static_save = true,
 | 
							static_save = true,
 | 
				
			||||||
		backface_culling = false,
 | 
							backface_culling = false,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	on_activate = function(self)
 | 
						on_activate = function(self)
 | 
				
			||||||
		local node = minetest.get_node(self.object:get_pos())
 | 
							local node = minetest.get_node(self.object:get_pos())
 | 
				
			||||||
		if minetest.get_item_group(node.name, "sign") == 0 then
 | 
							if minetest.get_item_group(node.name, "sign") == 0 then
 | 
				
			||||||
@@ -467,8 +470,8 @@ local math_max = math.max
 | 
				
			|||||||
local function fill_line(x, y, w, c, font_size, colorbgw)
 | 
					local function fill_line(x, y, w, c, font_size, colorbgw)
 | 
				
			||||||
	c = c or "0"
 | 
						c = c or "0"
 | 
				
			||||||
	local tex = { }
 | 
						local tex = { }
 | 
				
			||||||
	for xx = 0, math.max(0, w), colorbgw do
 | 
						for xx = x, w, colorbgw do
 | 
				
			||||||
		table.insert(tex, (":%d,%d=signs_lib_color_"..font_size.."px_%s.png"):format(x + xx, y, c))
 | 
							table.insert(tex, (":%d,%d=signs_lib_color_"..font_size.."px_%s.png"):format(xx, y, c))
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	return table.concat(tex)
 | 
						return table.concat(tex)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -580,8 +583,8 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
 | 
				
			|||||||
					end
 | 
										end
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
				if w then
 | 
									if w then
 | 
				
			||||||
					width = width + w + 1
 | 
										width = width + w
 | 
				
			||||||
					if width >= (line_width - cwidth_tab[" "]) then
 | 
										if width > line_width then
 | 
				
			||||||
						width = 0
 | 
											width = 0
 | 
				
			||||||
					else
 | 
										else
 | 
				
			||||||
						maxw = math_max(width, maxw)
 | 
											maxw = math_max(width, maxw)
 | 
				
			||||||
@@ -604,6 +607,7 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
 | 
				
			|||||||
							off = ch_offs,
 | 
												off = ch_offs,
 | 
				
			||||||
							tex = tex,
 | 
												tex = tex,
 | 
				
			||||||
							col = ("%X"):format(cur_color),
 | 
												col = ("%X"):format(cur_color),
 | 
				
			||||||
 | 
												w = w,
 | 
				
			||||||
						})
 | 
											})
 | 
				
			||||||
					end
 | 
										end
 | 
				
			||||||
					ch_offs = ch_offs + w
 | 
										ch_offs = ch_offs + w
 | 
				
			||||||
@@ -612,8 +616,8 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
 | 
				
			|||||||
			else
 | 
								else
 | 
				
			||||||
				local w = cwidth_tab[c]
 | 
									local w = cwidth_tab[c]
 | 
				
			||||||
				if w then
 | 
									if w then
 | 
				
			||||||
					width = width + w + 1
 | 
										width = width + w
 | 
				
			||||||
					if width >= (line_width - cwidth_tab[" "]) then
 | 
										if width > line_width then
 | 
				
			||||||
						width = 0
 | 
											width = 0
 | 
				
			||||||
					else
 | 
										else
 | 
				
			||||||
						maxw = math_max(width, maxw)
 | 
											maxw = math_max(width, maxw)
 | 
				
			||||||
@@ -623,6 +627,7 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
 | 
				
			|||||||
							off = ch_offs,
 | 
												off = ch_offs,
 | 
				
			||||||
							tex = char_tex(font_name, c),
 | 
												tex = char_tex(font_name, c),
 | 
				
			||||||
							col = ("%X"):format(cur_color),
 | 
												col = ("%X"):format(cur_color),
 | 
				
			||||||
 | 
												w = w,
 | 
				
			||||||
						})
 | 
											})
 | 
				
			||||||
					end
 | 
										end
 | 
				
			||||||
					ch_offs = ch_offs + w
 | 
										ch_offs = ch_offs + w
 | 
				
			||||||
@@ -630,7 +635,7 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
 | 
				
			|||||||
			end
 | 
								end
 | 
				
			||||||
			i = i + 1
 | 
								i = i + 1
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		width = width + cwidth_tab[" "] + 1
 | 
							width = width + cwidth_tab[" "]
 | 
				
			||||||
		maxw = math_max(width, maxw)
 | 
							maxw = math_max(width, maxw)
 | 
				
			||||||
		table.insert(words, { chars=chars, w=ch_offs })
 | 
							table.insert(words, { chars=chars, w=ch_offs })
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
@@ -639,7 +644,8 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	local texture = { }
 | 
						local texture = { }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local start_xpos = math.floor((line_width - maxw) / 2) + def.x_offset
 | 
						local start_xpos = math.max(0, math.floor((line_width - maxw) / 2)) + def.x_offset
 | 
				
			||||||
 | 
						local end_xpos = math.min(start_xpos + maxw, line_width)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local xpos = start_xpos
 | 
						local xpos = start_xpos
 | 
				
			||||||
	local ypos = (line_height + def.line_spacing)* lineno + def.y_offset
 | 
						local ypos = (line_height + def.line_spacing)* lineno + def.y_offset
 | 
				
			||||||
@@ -648,31 +654,33 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	for word_i, word in ipairs(words) do
 | 
						for word_i, word in ipairs(words) do
 | 
				
			||||||
		local xoffs = (xpos - start_xpos)
 | 
							local xoffs = (xpos - start_xpos)
 | 
				
			||||||
		if (xoffs > 0) and ((xoffs + word.w) > maxw) then
 | 
							if (xoffs > 0) and ((xoffs + word.w) > end_xpos) then
 | 
				
			||||||
			table.insert(texture, fill_line(xpos, ypos, maxw, "n", font_size, colorbgw))
 | 
								table.insert(texture, fill_line(xpos, ypos, end_xpos, "n", font_size, colorbgw))
 | 
				
			||||||
			xpos = start_xpos
 | 
								xpos = start_xpos
 | 
				
			||||||
			ypos = ypos + line_height + def.line_spacing
 | 
								ypos = ypos + line_height + def.line_spacing
 | 
				
			||||||
			lineno = lineno + 1
 | 
								lineno = lineno + 1
 | 
				
			||||||
			if lineno >= def.number_of_lines then break end
 | 
								if lineno >= def.number_of_lines then break end
 | 
				
			||||||
			table.insert(texture, fill_line(xpos, ypos, maxw, cur_color, font_size, colorbgw))
 | 
								table.insert(texture, fill_line(xpos, ypos, end_xpos, cur_color, font_size, colorbgw))
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		for ch_i, ch in ipairs(word.chars) do
 | 
							for ch_i, ch in ipairs(word.chars) do
 | 
				
			||||||
 | 
								if xpos + ch.off + ch.w > end_xpos then
 | 
				
			||||||
 | 
									table.insert(texture, fill_line(xpos + ch.off, ypos, end_xpos, "n", font_size, colorbgw))
 | 
				
			||||||
 | 
									break
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
			if ch.col ~= cur_color then
 | 
								if ch.col ~= cur_color then
 | 
				
			||||||
				cur_color = ch.col
 | 
									cur_color = ch.col
 | 
				
			||||||
				table.insert(texture, fill_line(xpos + ch.off, ypos, maxw, cur_color, font_size, colorbgw))
 | 
									table.insert(texture, fill_line(xpos + ch.off, ypos, end_xpos, cur_color, font_size, colorbgw))
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
			table.insert(texture, (":%d,%d=%s"):format(xpos + ch.off, ypos, ch.tex))
 | 
								table.insert(texture, (":%d,%d=%s"):format(xpos + ch.off, ypos, ch.tex))
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		table.insert(
 | 
							xpos = xpos + word.w
 | 
				
			||||||
			texture,
 | 
							if xpos < end_xpos then
 | 
				
			||||||
			(":%d,%d="):format(xpos + word.w, ypos) .. char_tex(font_name, " ")
 | 
								table.insert(texture, (":%d,%d="):format(xpos, ypos) .. char_tex(font_name, " "))
 | 
				
			||||||
		)
 | 
								xpos = xpos + cwidth_tab[" "]
 | 
				
			||||||
		xpos = xpos + word.w + cwidth_tab[" "]
 | 
							end
 | 
				
			||||||
		if xpos >= (line_width + cwidth_tab[" "]) then break end
 | 
					 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	table.insert(texture, fill_line(xpos, ypos, maxw, "n", font_size, colorbgw))
 | 
						table.insert(texture, fill_line(xpos, ypos, end_xpos, "n", font_size, colorbgw))
 | 
				
			||||||
	table.insert(texture, fill_line(start_xpos, ypos + line_height, maxw, "n", font_size, colorbgw))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return table.concat(texture), lineno
 | 
						return table.concat(texture), lineno
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -810,6 +818,9 @@ function signs_lib.update_sign(pos, fields)
 | 
				
			|||||||
	local ownstr = ""
 | 
						local ownstr = ""
 | 
				
			||||||
	if owner ~= "" then ownstr = S("Locked sign, owned by @1\n", owner) end
 | 
						if owner ~= "" then ownstr = S("Locked sign, owned by @1\n", owner) end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- Fix pasting from Windows: CR instead of LF
 | 
				
			||||||
 | 
						text = string.gsub(text, "\r\n?", "\n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	meta:set_string("text", text)
 | 
						meta:set_string("text", text)
 | 
				
			||||||
	meta:set_string("infotext", ownstr..make_infotext(text).." ")
 | 
						meta:set_string("infotext", ownstr..make_infotext(text).." ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -935,7 +946,13 @@ function signs_lib.after_place_node(pos, placer, itemstack, pointed_thing, locke
 | 
				
			|||||||
	local controls = placer:get_player_control()
 | 
						local controls = placer:get_player_control()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local signname = itemstack:get_name()
 | 
						local signname = itemstack:get_name()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- in case player has sign nodes they shouldn't, remove extensions for normal sign
 | 
				
			||||||
	local no_wall_name = string.gsub(signname, "_wall", "")
 | 
						local no_wall_name = string.gsub(signname, "_wall", "")
 | 
				
			||||||
 | 
						no_wall_name = string.gsub(no_wall_name, "_yard", "")
 | 
				
			||||||
 | 
						no_wall_name = string.gsub(no_wall_name, "_hanging", "")
 | 
				
			||||||
 | 
						no_wall_name = string.gsub(no_wall_name, "_onpole_horiz", "")
 | 
				
			||||||
 | 
						no_wall_name = string.gsub(no_wall_name, "_onpole", "")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local def = minetest.registered_items[signname]
 | 
						local def = minetest.registered_items[signname]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -999,6 +1016,7 @@ end
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function signs_lib.register_sign(name, raw_def)
 | 
					function signs_lib.register_sign(name, raw_def)
 | 
				
			||||||
	local def = table.copy(raw_def)
 | 
						local def = table.copy(raw_def)
 | 
				
			||||||
 | 
						def.is_ground_content = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if raw_def.entity_info == "standard" then
 | 
						if raw_def.entity_info == "standard" then
 | 
				
			||||||
		def.entity_info = {
 | 
							def.entity_info = {
 | 
				
			||||||
@@ -1278,7 +1296,7 @@ minetest.register_lbm({
 | 
				
			|||||||
minetest.register_chatcommand("regen_signs", {
 | 
					minetest.register_chatcommand("regen_signs", {
 | 
				
			||||||
	params = "",
 | 
						params = "",
 | 
				
			||||||
	privs = {server = true},
 | 
						privs = {server = true},
 | 
				
			||||||
	description = "Skims through all currently-loaded sign-bearing mapblocks, clears away any entities within each sign's node space, and regenerates their text entities, if any.",
 | 
						description = S("Skims through all currently-loaded sign-bearing mapblocks, clears away any entities within each sign's node space, and regenerates their text entities, if any."),
 | 
				
			||||||
	func = function(player_name, params)
 | 
						func = function(player_name, params)
 | 
				
			||||||
		local allsigns = {}
 | 
							local allsigns = {}
 | 
				
			||||||
		local totalsigns = 0
 | 
							local totalsigns = 0
 | 
				
			||||||
@@ -1297,13 +1315,13 @@ minetest.register_chatcommand("regen_signs", {
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
		if signs_lib.totalblocks < 0 then signs_lib.totalblocks = 0 end
 | 
							if signs_lib.totalblocks < 0 then signs_lib.totalblocks = 0 end
 | 
				
			||||||
		if totalsigns == 0 then
 | 
							if totalsigns == 0 then
 | 
				
			||||||
			minetest.chat_send_player(player_name, "There are no signs in the currently-loaded terrain.")
 | 
								minetest.chat_send_player(player_name, S("There are no signs in the currently-loaded terrain."))
 | 
				
			||||||
			signs_lib.block_list = {}
 | 
								signs_lib.block_list = {}
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		minetest.chat_send_player(player_name, "Found a total of "..totalsigns.." sign nodes across "..signs_lib.totalblocks.." blocks.")
 | 
							minetest.chat_send_player(player_name, S("Found a total of @1 sign nodes across @2 blocks.", totalsigns, signs_lib.totalblocks))
 | 
				
			||||||
		minetest.chat_send_player(player_name, "Regenerating sign entities...")
 | 
							minetest.chat_send_player(player_name, S("Regenerating sign entities ..."))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for _, b in pairs(allsigns) do
 | 
							for _, b in pairs(allsigns) do
 | 
				
			||||||
			for _, pos in ipairs(b) do
 | 
								for _, pos in ipairs(b) do
 | 
				
			||||||
@@ -1315,7 +1333,7 @@ minetest.register_chatcommand("regen_signs", {
 | 
				
			|||||||
				end
 | 
									end
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
		minetest.chat_send_player(player_name, "Finished.")
 | 
							minetest.chat_send_player(player_name, S("Finished."))
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1343,14 +1361,14 @@ function get_sign_formspec(pos, nodename)
 | 
				
			|||||||
		"image[0.1,2.4;7,1;signs_lib_sign_color_palette.png]",
 | 
							"image[0.1,2.4;7,1;signs_lib_sign_color_palette.png]",
 | 
				
			||||||
		"textarea[0.15,-0.2;6.3,2.8;text;;" .. minetest.formspec_escape(txt) .. "]",
 | 
							"textarea[0.15,-0.2;6.3,2.8;text;;" .. minetest.formspec_escape(txt) .. "]",
 | 
				
			||||||
		"button_exit[3.7,3.4;2,1;ok;" .. S("Write") .. "]",
 | 
							"button_exit[3.7,3.4;2,1;ok;" .. S("Write") .. "]",
 | 
				
			||||||
		"label[0.3,3.4;Unicode font]",
 | 
							"label[0.3,3.4;"..FS("Unicode font").."]",
 | 
				
			||||||
		"image_button[0.6,3.7;1,0.6;signs_lib_switch_" .. state .. ".png;uni_"
 | 
							"image_button[0.6,3.7;1,0.6;signs_lib_switch_" .. state .. ".png;uni_"
 | 
				
			||||||
			.. state .. ";;;false;signs_lib_switch_interm.png]",
 | 
								.. state .. ";;;false;signs_lib_switch_interm.png]",
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if minetest.registered_nodes[nodename].allow_widefont then
 | 
						if minetest.registered_nodes[nodename].allow_widefont then
 | 
				
			||||||
		state = meta:get_int("widefont") == 1 and "on" or "off"
 | 
							state = meta:get_int("widefont") == 1 and "on" or "off"
 | 
				
			||||||
		formspec[#formspec+1] = "label[2.1,3.4;Wide font]"
 | 
							formspec[#formspec+1] = "label[2.1,3.4;"..FS("Wide font").."]"
 | 
				
			||||||
		formspec[#formspec+1] = "image_button[2.3,3.7;1,0.6;signs_lib_switch_" .. state .. ".png;wide_"
 | 
							formspec[#formspec+1] = "image_button[2.3,3.7;1,0.6;signs_lib_switch_" .. state .. ".png;wide_"
 | 
				
			||||||
				.. state .. ";;;false;signs_lib_switch_interm.png]"
 | 
									.. state .. ";;;false;signs_lib_switch_interm.png]"
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -231,6 +231,7 @@ signs_lib.unicode_install({38,"26"})
 | 
				
			|||||||
dofile(signs_lib.path.."/nonascii-de.lua")
 | 
					dofile(signs_lib.path.."/nonascii-de.lua")
 | 
				
			||||||
dofile(signs_lib.path.."/nonascii-fr.lua")
 | 
					dofile(signs_lib.path.."/nonascii-fr.lua")
 | 
				
			||||||
dofile(signs_lib.path.."/nonascii-pl.lua")
 | 
					dofile(signs_lib.path.."/nonascii-pl.lua")
 | 
				
			||||||
 | 
					dofile(signs_lib.path.."/nonascii-ua.lua")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local nmdc = {
 | 
					local nmdc = {
 | 
				
			||||||
	[36] = "$",
 | 
						[36] = "$",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,27 +1,12 @@
 | 
				
			|||||||
# textdomain: signs_lib
 | 
					# textdomain: signs_lib
 | 
				
			||||||
Locked sign, owned by @1@n=gesperrter Schild, gehört @1@n
 | 
					Locked sign, owned by @1@n=Abgeschlossenes Schild, gehört @1@n
 | 
				
			||||||
Write=schreiben
 | 
					Skims through all currently-loaded sign-bearing mapblocks, clears away any entities within each sign's node space, and regenerates their text entities, if any.=Iteriert durch alle derzeit geladenen Kartenblöcke, die Schilder enthalten, löscht alle Entities innerhalb des Node-Raums eines jeden Schildes und erzeugt ihre Text-Entities, falls vorhanden, neu.
 | 
				
			||||||
@1 wrote "@2" to sign at @3=
 | 
					There are no signs in the currently-loaded terrain.=Im derzeit geladenen Gelände befinden sich keine Schilder.
 | 
				
			||||||
@1 flipped the wide-font switch to "@2" at @3=
 | 
					Found a total of @1 sign nodes across @2 blocks.=Insgesamt wurden @1 Schild-Nodes über @2 Kartenblöcke gefunden.
 | 
				
			||||||
@1 flipped the unicode-font switch to "@2" at @3=
 | 
					Regenerating sign entities ...=Schild-Entities werden neu erzeugt ...
 | 
				
			||||||
 | 
					Finished.=Fertig.
 | 
				
			||||||
 | 
					Write=Schreiben
 | 
				
			||||||
##### not used anymore #####
 | 
					Unicode font=Unicode-Schrift
 | 
				
			||||||
 | 
					Wide font=Weite Schrift
 | 
				
			||||||
locked =gesperrt 
 | 
					Wooden Wall Sign=Holzwandschild
 | 
				
			||||||
@1 wrote "@2" to @3sign at @4=@1 schrieb "@2" auf das @3Schild bei @4
 | 
					Steel Wall Sign=Stahlwandschild
 | 
				
			||||||
Sign=Schild
 | 
					 | 
				
			||||||
Can edit all locked signs=Kann alle gesperrte Schilder bearbeiten
 | 
					 | 
				
			||||||
Locked Sign=gesperrter Schild
 | 
					 | 
				
			||||||
green=grün
 | 
					 | 
				
			||||||
yellow=gelb
 | 
					 | 
				
			||||||
red=rot
 | 
					 | 
				
			||||||
white_red=weißrot
 | 
					 | 
				
			||||||
white_black=schwarzweiß
 | 
					 | 
				
			||||||
orange=orange
 | 
					 | 
				
			||||||
blue=blau
 | 
					 | 
				
			||||||
brown=braun
 | 
					 | 
				
			||||||
Sign (@1, metal)=Schild (@1, Metall)
 | 
					 | 
				
			||||||
Attempt to register unknown node as fence=Versuch ein unbekanntes Element als Zaun zu registrieren
 | 
					 | 
				
			||||||
Registered @1 and @2=Registrierte @1 und @2
 | 
					 | 
				
			||||||
[MOD] signs loaded=[MOD] Schilder-Mod geladen
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,25 +1,12 @@
 | 
				
			|||||||
# textdomain: signs_lib
 | 
					# textdomain: signs_lib
 | 
				
			||||||
Locked sign, owned by @1@n=
 | 
					Locked sign, owned by @1@n=Cartel bloqueado, propiedad de @1
 | 
				
			||||||
Write=
 | 
					Skims through all currently-loaded sign-bearing mapblocks, clears away any entities within each sign's node space, and regenerates their text entities, if any.=Examina todos los bloques de mapas que contienen letreros cargados actualmente, elimina cualquier entidad dentro del espacio de nodo de cada cartel y regenera sus entidades de texto, si las hay.
 | 
				
			||||||
@1 wrote "@2" to sign at @3=
 | 
					There are no signs in the currently-loaded terrain.=No hay carteles en el terreno actual cargado.
 | 
				
			||||||
@1 flipped the wide-font switch to "@2" at @3=
 | 
					Found a total of @1 sign nodes across @2 blocks.=Se han encontrado un total de @1 cartel(es) a traves de @2 bloque(s).
 | 
				
			||||||
@1 flipped the unicode-font switch to "@2" at @3=
 | 
					Regenerating sign entities ...=Regenerando entidades de los carteles...
 | 
				
			||||||
 | 
					Finished.=Terminado
 | 
				
			||||||
 | 
					Write=Escribir
 | 
				
			||||||
##### not used anymore #####
 | 
					Unicode font=Fuente unicode
 | 
				
			||||||
 | 
					Wide font=Fuente ancha
 | 
				
			||||||
locked =bloqueada 
 | 
					Wooden Wall Sign=Cartel de Madera
 | 
				
			||||||
@1 wrote "@2" to @3sign at @4=@1 escribio "@2" en el cartel @3en @4
 | 
					Steel Wall Sign=Cartel de Acero
 | 
				
			||||||
Sign=Letrero
 | 
					 | 
				
			||||||
Locked Sign=Letrero bloqueada
 | 
					 | 
				
			||||||
green=verde
 | 
					 | 
				
			||||||
yellow=amarillo
 | 
					 | 
				
			||||||
red=rojo
 | 
					 | 
				
			||||||
white_red=rojo y blanco
 | 
					 | 
				
			||||||
white_black=negro y blanco
 | 
					 | 
				
			||||||
orange=naranja
 | 
					 | 
				
			||||||
blue=azul
 | 
					 | 
				
			||||||
brown=marrón
 | 
					 | 
				
			||||||
Sign (@1, metal)=Letrero (@1, metal)
 | 
					 | 
				
			||||||
Registered @1 and @2=Registrado @1 y @2
 | 
					 | 
				
			||||||
[MOD] signs loaded=[MOD] signs cargados
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,27 +1,12 @@
 | 
				
			|||||||
# textdomain: signs_lib
 | 
					# textdomain: signs_lib
 | 
				
			||||||
Locked sign, owned by @1@n=Panneau verrouillé, appartient à @1@n
 | 
					Locked sign, owned by @1@n=Panneau verrouillé, appartient à @1@n
 | 
				
			||||||
 | 
					Skims through all currently-loaded sign-bearing mapblocks, clears away any entities within each sign's node space, and regenerates their text entities, if any.=
 | 
				
			||||||
 | 
					There are no signs in the currently-loaded terrain.=
 | 
				
			||||||
 | 
					Found a total of @1 sign nodes across @2 blocks.=
 | 
				
			||||||
 | 
					Regenerating sign entities ...=
 | 
				
			||||||
 | 
					Finished.=
 | 
				
			||||||
Write=
 | 
					Write=
 | 
				
			||||||
@1 wrote "@2" to sign at @3=
 | 
					Unicode font=
 | 
				
			||||||
@1 flipped the wide-font switch to "@2" at @3=
 | 
					Wide font=
 | 
				
			||||||
@1 flipped the unicode-font switch to "@2" at @3=
 | 
					Wooden Wall Sign=
 | 
				
			||||||
 | 
					Steel Wall Sign=
 | 
				
			||||||
 | 
					 | 
				
			||||||
##### not used anymore #####
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
locked =verrouillé 
 | 
					 | 
				
			||||||
@1 wrote "@2" to @3sign at @4=@1 a écrit "@2" sur le panneau @3en @4
 | 
					 | 
				
			||||||
Sign=Panneau
 | 
					 | 
				
			||||||
Can edit all locked signs=Peut modifier les panneaux verrouillés
 | 
					 | 
				
			||||||
Locked Sign=Panneau (verrouillé)
 | 
					 | 
				
			||||||
green=vert
 | 
					 | 
				
			||||||
yellow=jaune
 | 
					 | 
				
			||||||
red=rouge
 | 
					 | 
				
			||||||
white_red=rouge et blanc
 | 
					 | 
				
			||||||
white_black=noir et blanc
 | 
					 | 
				
			||||||
orange=orange
 | 
					 | 
				
			||||||
blue=bleu
 | 
					 | 
				
			||||||
brown=marron
 | 
					 | 
				
			||||||
Sign (@1, metal)=Panneau (@1, métal)
 | 
					 | 
				
			||||||
Attempt to register unknown node as fence=Tentative d'enregistrer un nœud inconnu comme barrière
 | 
					 | 
				
			||||||
Registered @1 and @2=Enregistrement de @1 et @
 | 
					 | 
				
			||||||
[MOD] signs loaded=[MOD] signs chargé
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,27 +1,12 @@
 | 
				
			|||||||
# textdomain: signs_lib
 | 
					# textdomain: signs_lib
 | 
				
			||||||
Locked sign, owned by @1@n=Papan tanda berkunci, milik @1@n
 | 
					Locked sign, owned by @1@n=Papan tanda berkunci, milik @1@n
 | 
				
			||||||
 | 
					Skims through all currently-loaded sign-bearing mapblocks, clears away any entities within each sign's node space, and regenerates their text entities, if any.=
 | 
				
			||||||
 | 
					There are no signs in the currently-loaded terrain.=
 | 
				
			||||||
 | 
					Found a total of @1 sign nodes across @2 blocks.=
 | 
				
			||||||
 | 
					Regenerating sign entities ...=
 | 
				
			||||||
 | 
					Finished.=
 | 
				
			||||||
Write=
 | 
					Write=
 | 
				
			||||||
@1 wrote "@2" to sign at @3=
 | 
					Unicode font=
 | 
				
			||||||
@1 flipped the wide-font switch to "@2" at @3=
 | 
					Wide font=
 | 
				
			||||||
@1 flipped the unicode-font switch to "@2" at @3=
 | 
					Wooden Wall Sign=
 | 
				
			||||||
 | 
					Steel Wall Sign=
 | 
				
			||||||
 | 
					 | 
				
			||||||
##### not used anymore #####
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
locked =berkunci 
 | 
					 | 
				
			||||||
@1 wrote "@2" to @3sign at @4=@1 menulis "@2" atas papan tanda @3dekat @4
 | 
					 | 
				
			||||||
Sign=Papan Tanda
 | 
					 | 
				
			||||||
Can edit all locked signs=Boleh sunting semua papan tanda berkunci
 | 
					 | 
				
			||||||
Locked Sign=Papan Tanda Berkunci
 | 
					 | 
				
			||||||
green=hijau
 | 
					 | 
				
			||||||
yellow=kuning
 | 
					 | 
				
			||||||
red=merah
 | 
					 | 
				
			||||||
white_red=putih_merah
 | 
					 | 
				
			||||||
white_black=putih_hitam
 | 
					 | 
				
			||||||
orange=jingga
 | 
					 | 
				
			||||||
blue=biru
 | 
					 | 
				
			||||||
brown=perang
 | 
					 | 
				
			||||||
Sign (@1, metal)=Papan Tanda (@1, logam)
 | 
					 | 
				
			||||||
Attempt to register unknown node as fence=Cuba untuk mendaftar nod tidak diketahui sebagai pagar
 | 
					 | 
				
			||||||
Registered @1 and @2=Telah daftar @1 dan @2
 | 
					 | 
				
			||||||
[MOD] signs loaded=[MODS] signs telah dimuatkan
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,27 +1,12 @@
 | 
				
			|||||||
# textdomain: signs_lib
 | 
					# textdomain: signs_lib
 | 
				
			||||||
Locked sign, owned by @1@n=защищенная табличка, пренадлежит @1@n
 | 
					Locked sign, owned by @1@n=защищенная табличка, пренадлежит @1@n
 | 
				
			||||||
 | 
					Skims through all currently-loaded sign-bearing mapblocks, clears away any entities within each sign's node space, and regenerates their text entities, if any.=
 | 
				
			||||||
 | 
					There are no signs in the currently-loaded terrain.=
 | 
				
			||||||
 | 
					Found a total of @1 sign nodes across @2 blocks.=
 | 
				
			||||||
 | 
					Regenerating sign entities ...=
 | 
				
			||||||
 | 
					Finished.=
 | 
				
			||||||
Write=записать
 | 
					Write=записать
 | 
				
			||||||
@1 wrote "@2" to sign at @3=
 | 
					Unicode font=
 | 
				
			||||||
@1 flipped the wide-font switch to "@2" at @3=
 | 
					Wide font=
 | 
				
			||||||
@1 flipped the unicode-font switch to "@2" at @3=
 | 
					Wooden Wall Sign=
 | 
				
			||||||
 | 
					Steel Wall Sign=
 | 
				
			||||||
 | 
					 | 
				
			||||||
##### not used anymore #####
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
locked =защищенный 
 | 
					 | 
				
			||||||
@1 wrote "@2" to @3sign at @4=@1 записал "@2" в @3sign на @4
 | 
					 | 
				
			||||||
Sign=табличка
 | 
					 | 
				
			||||||
Can edit all locked signs=Может редактировать все защищенные таблички
 | 
					 | 
				
			||||||
Locked Sign=защищенная табличка
 | 
					 | 
				
			||||||
green=зеленая
 | 
					 | 
				
			||||||
yellow=желтая
 | 
					 | 
				
			||||||
red=красная
 | 
					 | 
				
			||||||
white_red=краснобелая
 | 
					 | 
				
			||||||
white_black=чернобелая
 | 
					 | 
				
			||||||
orange=оранжевая
 | 
					 | 
				
			||||||
blue=синея
 | 
					 | 
				
			||||||
brown=коричневая
 | 
					 | 
				
			||||||
Sign (@1, metal)=Табличка (@1, металл)
 | 
					 | 
				
			||||||
Attempt to register unknown node as fence=Попытка зарегистрировать неизвестный узел как забор
 | 
					 | 
				
			||||||
Registered @1 and @2=Зарегистрировано @1 для @2
 | 
					 | 
				
			||||||
[MOD] signs loaded=[MOD] мод табличек загружен
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								locale/signs_lib.uk.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					# textdomain: signs_lib
 | 
				
			||||||
 | 
					Signs Lib=Таблички Lib
 | 
				
			||||||
 | 
					Adds signs with readable text.=Додає таблички з читабельним текстом.
 | 
				
			||||||
 | 
					Locked sign, owned by @1@n=Захищена табличка (власник @1@n)
 | 
				
			||||||
 | 
					Skims through all currently-loaded sign-bearing mapblocks, clears away any entities within each sign's node space, and regenerates their text entities, if any.=Перевіряє всі завантажені блоки з табличками, очищає їхній простір від об'єктів і відновлює текст, якщо потрібно.
 | 
				
			||||||
 | 
					There are no signs in the currently-loaded terrain.=Не знайдено табличок на поточній провантаженій території.
 | 
				
			||||||
 | 
					Found a total of @1 sign nodes across @2 blocks.=Загалом знайдено @1 табличок в @2 блоках.
 | 
				
			||||||
 | 
					Regenerating sign entities ...=Регенерація сутностей табличок...
 | 
				
			||||||
 | 
					Finished.=Завершено.
 | 
				
			||||||
 | 
					Write=Записати
 | 
				
			||||||
 | 
					Unicode font=Юнікод
 | 
				
			||||||
 | 
					Wide font=Широкий
 | 
				
			||||||
 | 
					Wooden Wall Sign=Дерев'яна табличка
 | 
				
			||||||
 | 
					Steel Wall Sign=Сталева табличка
 | 
				
			||||||
@@ -1,6 +1,12 @@
 | 
				
			|||||||
# textdomain: signs_lib
 | 
					# textdomain: signs_lib
 | 
				
			||||||
Locked sign, owned by @1@n=
 | 
					Locked sign, owned by @1@n=
 | 
				
			||||||
 | 
					Skims through all currently-loaded sign-bearing mapblocks, clears away any entities within each sign's node space, and regenerates their text entities, if any.=
 | 
				
			||||||
 | 
					There are no signs in the currently-loaded terrain.=
 | 
				
			||||||
 | 
					Found a total of @1 sign nodes across @2 blocks.=
 | 
				
			||||||
 | 
					Regenerating sign entities ...=
 | 
				
			||||||
 | 
					Finished.=
 | 
				
			||||||
Write=
 | 
					Write=
 | 
				
			||||||
@1 wrote "@2" to sign at @3=
 | 
					Unicode font=
 | 
				
			||||||
@1 flipped the wide-font switch to "@2" at @3=
 | 
					Wide font=
 | 
				
			||||||
@1 flipped the unicode-font switch to "@2" at @3=
 | 
					Wooden Wall Sign=
 | 
				
			||||||
 | 
					Steel Wall Sign=
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								nonascii-ua.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					signs_lib.unicode_install({208,132,"0404"})
 | 
				
			||||||
 | 
					signs_lib.unicode_install({208,134,"0406"})
 | 
				
			||||||
 | 
					signs_lib.unicode_install({208,135,"0407"})
 | 
				
			||||||
 | 
					signs_lib.unicode_install({209,148,"0454"})
 | 
				
			||||||
 | 
					signs_lib.unicode_install({209,150,"0456"})
 | 
				
			||||||
 | 
					signs_lib.unicode_install({209,151,"0457"})
 | 
				
			||||||
 | 
					signs_lib.unicode_install({210,144,"0490"})
 | 
				
			||||||
 | 
					signs_lib.unicode_install({210,145,"0491"})
 | 
				
			||||||
@@ -1,8 +1,10 @@
 | 
				
			|||||||
-- Definitions for standard minetest_game wooden and steel wall signs
 | 
					-- Definitions for standard minetest_game wooden and steel wall signs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local S = signs_lib.S
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if minetest.get_modpath("default") then
 | 
					if minetest.get_modpath("default") then
 | 
				
			||||||
	signs_lib.register_sign("default:sign_wall_wood", {
 | 
						signs_lib.register_sign("default:sign_wall_wood", {
 | 
				
			||||||
		description = "Wooden wall sign",
 | 
							description = S("Wooden Wall Sign"),
 | 
				
			||||||
		inventory_image = "signs_lib_sign_wall_wooden_inv.png",
 | 
							inventory_image = "signs_lib_sign_wall_wooden_inv.png",
 | 
				
			||||||
		tiles = {
 | 
							tiles = {
 | 
				
			||||||
			"signs_lib_sign_wall_wooden.png",
 | 
								"signs_lib_sign_wall_wooden.png",
 | 
				
			||||||
@@ -20,7 +22,7 @@ if minetest.get_modpath("default") then
 | 
				
			|||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	signs_lib.register_sign("default:sign_wall_steel", {
 | 
						signs_lib.register_sign("default:sign_wall_steel", {
 | 
				
			||||||
		description = "Steel wall sign",
 | 
							description = S("Steel Wall Sign"),
 | 
				
			||||||
		inventory_image = "signs_lib_sign_wall_steel_inv.png",
 | 
							inventory_image = "signs_lib_sign_wall_steel_inv.png",
 | 
				
			||||||
		tiles = {
 | 
							tiles = {
 | 
				
			||||||
			"signs_lib_sign_wall_steel.png",
 | 
								"signs_lib_sign_wall_steel.png",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_16px_0404.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 129 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_16px_0406.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 86 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_16px_0407.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 98 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_16px_0454.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 135 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_16px_0456.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 94 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_16px_0457.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 91 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_16px_0490.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 102 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_16px_0491.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 103 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_32px_0404.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 192 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_32px_0406.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 100 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_32px_0407.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 110 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_32px_0454.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 171 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_32px_0456.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 99 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_32px_0457.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 107 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_32px_0490.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 110 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/signs_lib_font_32px_0491.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 111 B  | 
							
								
								
									
										8
									
								
								util/nonascii-ua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					ґ
 | 
				
			||||||
 | 
					і
 | 
				
			||||||
 | 
					ї
 | 
				
			||||||
 | 
					є
 | 
				
			||||||
 | 
					Ґ
 | 
				
			||||||
 | 
					І
 | 
				
			||||||
 | 
					Ї
 | 
				
			||||||
 | 
					Є
 | 
				
			||||||