Compare commits
7 Commits
oob_fix
...
87d65439a1
Author | SHA1 | Date | |
---|---|---|---|
87d65439a1 | |||
4309b3575a | |||
bb13ba6d7c | |||
3d5ba32fa0 | |||
0847176bdb | |||
4fb53b67e8 | |||
e5f73438ce |
55
api.lua
@ -470,8 +470,8 @@ local math_max = math.max
|
||||
local function fill_line(x, y, w, c, font_size, colorbgw)
|
||||
c = c or "0"
|
||||
local tex = { }
|
||||
for xx = 0, math.max(0, w), colorbgw do
|
||||
table.insert(tex, (":%d,%d=signs_lib_color_"..font_size.."px_%s.png"):format(x + xx, y, c))
|
||||
for xx = x, w, colorbgw do
|
||||
table.insert(tex, (":%d,%d=signs_lib_color_"..font_size.."px_%s.png"):format(xx, y, c))
|
||||
end
|
||||
return table.concat(tex)
|
||||
end
|
||||
@ -583,8 +583,8 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
|
||||
end
|
||||
end
|
||||
if w then
|
||||
width = width + w + 1
|
||||
if width >= (line_width - cwidth_tab[" "]) then
|
||||
width = width + w
|
||||
if width > line_width then
|
||||
width = 0
|
||||
else
|
||||
maxw = math_max(width, maxw)
|
||||
@ -607,6 +607,7 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
|
||||
off = ch_offs,
|
||||
tex = tex,
|
||||
col = ("%X"):format(cur_color),
|
||||
w = w,
|
||||
})
|
||||
end
|
||||
ch_offs = ch_offs + w
|
||||
@ -615,8 +616,8 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
|
||||
else
|
||||
local w = cwidth_tab[c]
|
||||
if w then
|
||||
width = width + w + 1
|
||||
if width >= (line_width - cwidth_tab[" "]) then
|
||||
width = width + w
|
||||
if width > line_width then
|
||||
width = 0
|
||||
else
|
||||
maxw = math_max(width, maxw)
|
||||
@ -626,6 +627,7 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
|
||||
off = ch_offs,
|
||||
tex = char_tex(font_name, c),
|
||||
col = ("%X"):format(cur_color),
|
||||
w = w,
|
||||
})
|
||||
end
|
||||
ch_offs = ch_offs + w
|
||||
@ -633,7 +635,7 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
|
||||
end
|
||||
i = i + 1
|
||||
end
|
||||
width = width + cwidth_tab[" "] + 1
|
||||
width = width + cwidth_tab[" "]
|
||||
maxw = math_max(width, maxw)
|
||||
table.insert(words, { chars=chars, w=ch_offs })
|
||||
end
|
||||
@ -642,7 +644,8 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
|
||||
|
||||
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 ypos = (line_height + def.line_spacing)* lineno + def.y_offset
|
||||
@ -651,31 +654,33 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
|
||||
|
||||
for word_i, word in ipairs(words) do
|
||||
local xoffs = (xpos - start_xpos)
|
||||
if (xoffs > 0) and ((xoffs + word.w) > maxw) then
|
||||
table.insert(texture, fill_line(xpos, ypos, maxw, "n", font_size, colorbgw))
|
||||
if (xoffs > 0) and ((xoffs + word.w) > end_xpos) then
|
||||
table.insert(texture, fill_line(xpos, ypos, end_xpos, "n", font_size, colorbgw))
|
||||
xpos = start_xpos
|
||||
ypos = ypos + line_height + def.line_spacing
|
||||
lineno = lineno + 1
|
||||
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
|
||||
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
|
||||
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
|
||||
table.insert(texture, (":%d,%d=%s"):format(xpos + ch.off, ypos, ch.tex))
|
||||
end
|
||||
table.insert(
|
||||
texture,
|
||||
(":%d,%d="):format(xpos + word.w, ypos) .. char_tex(font_name, " ")
|
||||
)
|
||||
xpos = xpos + word.w + cwidth_tab[" "]
|
||||
if xpos >= (line_width + cwidth_tab[" "]) then break end
|
||||
xpos = xpos + word.w
|
||||
if xpos < end_xpos then
|
||||
table.insert(texture, (":%d,%d="):format(xpos, ypos) .. char_tex(font_name, " "))
|
||||
xpos = xpos + cwidth_tab[" "]
|
||||
end
|
||||
end
|
||||
|
||||
table.insert(texture, fill_line(xpos, ypos, maxw, "n", font_size, colorbgw))
|
||||
table.insert(texture, fill_line(start_xpos, ypos + line_height, maxw, "n", font_size, colorbgw))
|
||||
table.insert(texture, fill_line(xpos, ypos, end_xpos, "n", font_size, colorbgw))
|
||||
|
||||
return table.concat(texture), lineno
|
||||
end
|
||||
@ -813,6 +818,9 @@ function signs_lib.update_sign(pos, fields)
|
||||
local ownstr = ""
|
||||
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("infotext", ownstr..make_infotext(text).." ")
|
||||
|
||||
@ -938,7 +946,13 @@ function signs_lib.after_place_node(pos, placer, itemstack, pointed_thing, locke
|
||||
local controls = placer:get_player_control()
|
||||
|
||||
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", "")
|
||||
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]
|
||||
|
||||
@ -1002,6 +1016,7 @@ end
|
||||
|
||||
function signs_lib.register_sign(name, raw_def)
|
||||
local def = table.copy(raw_def)
|
||||
def.is_ground_content = false
|
||||
|
||||
if raw_def.entity_info == "standard" then
|
||||
def.entity_info = {
|
||||
|
@ -231,6 +231,7 @@ signs_lib.unicode_install({38,"26"})
|
||||
dofile(signs_lib.path.."/nonascii-de.lua")
|
||||
dofile(signs_lib.path.."/nonascii-fr.lua")
|
||||
dofile(signs_lib.path.."/nonascii-pl.lua")
|
||||
dofile(signs_lib.path.."/nonascii-ua.lua")
|
||||
|
||||
local nmdc = {
|
||||
[36] = "$",
|
||||
|
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"})
|
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 @@
|
||||
ґ
|
||||
і
|
||||
ї
|
||||
є
|
||||
Ґ
|
||||
І
|
||||
Ї
|
||||
Є
|