aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluk3yx <luk3yx@users.noreply.github.com>2023-12-04 08:22:43 +1300
committerluk3yx <luk3yx@users.noreply.github.com>2023-12-04 08:22:43 +1300
commit7b87099f2ce90dd662e7e2c888e7cf6836b7e2cc (patch)
treea76034dc49472c0ed6d643d7725a4a7b5d51dbd3
parent2c00acf2307a4b43c65bf8acc7116638f6a554a1 (diff)
downloaddisplay_modpack_no_craft-7b87099f2ce90dd662e7e2c888e7cf6836b7e2cc.tar.gz
display_modpack_no_craft-7b87099f2ce90dd662e7e2c888e7cf6836b7e2cc.zip
Bugfix
-rw-r--r--font_api/fontform.lua16
-rw-r--r--signs_api/init.lua5
2 files changed, 13 insertions, 8 deletions
diff --git a/font_api/fontform.lua b/font_api/fontform.lua
index d019fba..28b70d5 100644
--- a/font_api/fontform.lua
+++ b/font_api/fontform.lua
@@ -54,15 +54,15 @@ local function show_node_formspec(playername, pos)
fs = fs:gsub("context", nodemeta)
-- Change all ${} to their corresponding metadata values
- local s, e
- repeat
- s, e = fs:find('%${.*}')
- if s and e then
- fs = fs:sub(1, s-1)..
- minetest.formspec_escape(meta:get_string(fs:sub(s+2,e-1)))..
- fs:sub(e+1)
+ fs = fs:gsub("(.)${(.*)}", function(prefix, key)
+ -- Don't alter escaped keys
+ if prefix == "\\" then
+ return prefix .. "${" .. key .. "}"
end
- until s == nil
+
+ -- Get the node meta value
+ return prefix .. minetest.formspec_escape(meta:get_string(key))
+ end)
local context = get_context(playername)
context.node_pos = pos
diff --git a/signs_api/init.lua b/signs_api/init.lua
index fd2db03..e5defc3 100644
--- a/signs_api/init.lua
+++ b/signs_api/init.lua
@@ -28,6 +28,11 @@ local FS = function(...) return minetest.formspec_escape(S(...)) end
function signs_api.set_display_text(pos, text, font)
local meta = minetest.get_meta(pos)
+ -- Horrible workaround to prevent the engine from trying to resolve
+ -- metadata keys
+ if text:sub(1, 2) == "${" and text:sub(-1) == "}" then
+ text = text .. " "
+ end
meta:set_string("display_text", text)
if text and text ~= "" then
meta:set_string("infotext", "\""..text.."\"")