mirror of
https://github.com/Uberi/Minetest-WorldEdit.git
synced 2024-12-25 10:10:41 +01:00
Fix nodename normalization with translated descriptions
This commit is contained in:
parent
26b6682587
commit
adab528f8a
@ -37,6 +37,33 @@ function worldedit.player_notify(name, message)
|
|||||||
minetest.chat_send_player(name, "WorldEdit -!- " .. message, false)
|
minetest.chat_send_player(name, "WorldEdit -!- " .. message, false)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- https://github.com/minetest/minetest/blob/53dd7819277c53954d1298dfffa5287c306db8d0/src/util/string.cpp#L777
|
||||||
|
local function strip_translation_escapes(input)
|
||||||
|
local s = function(idx) return input:sub(idx, idx) end
|
||||||
|
local out = ""
|
||||||
|
local i = 1
|
||||||
|
while i <= #input do
|
||||||
|
if s(i) == "\027" then -- escape sequence
|
||||||
|
i = i + 1
|
||||||
|
if s(i) == "(" then -- enclosed
|
||||||
|
i = i + 1
|
||||||
|
while i <= #input and s(i) ~= ")" do
|
||||||
|
if s(i) == "\\" then
|
||||||
|
i = i + 2
|
||||||
|
else
|
||||||
|
i = i + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
out = out .. s(i)
|
||||||
|
end
|
||||||
|
i = i + 1
|
||||||
|
end
|
||||||
|
--print(("%q -> %q"):format(input, out))
|
||||||
|
return out
|
||||||
|
end
|
||||||
|
|
||||||
local function string_endswith(full, part)
|
local function string_endswith(full, part)
|
||||||
return full:find(part, 1, true) == #full - #part + 1
|
return full:find(part, 1, true) == #full - #part + 1
|
||||||
end
|
end
|
||||||
@ -57,7 +84,7 @@ worldedit.normalize_nodename = function(nodename)
|
|||||||
end
|
end
|
||||||
nodename = nodename:lower() -- lowercase both for case insensitive comparison
|
nodename = nodename:lower() -- lowercase both for case insensitive comparison
|
||||||
for key, value in pairs(minetest.registered_nodes) do
|
for key, value in pairs(minetest.registered_nodes) do
|
||||||
local desc = value.description:lower()
|
local desc = strip_translation_escapes(value.description):lower()
|
||||||
if desc == nodename then -- matches description
|
if desc == nodename then -- matches description
|
||||||
return key
|
return key
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user