From 7ffb1e5dad4bb5160986b4828f87c32b7fa64b9b Mon Sep 17 00:00:00 2001 From: luk3yx Date: Tue, 25 Jan 2022 08:12:23 +1300 Subject: [PATCH] Rename dropdowns when applying the index_event hack --- monkey_patching.lua | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/monkey_patching.lua b/monkey_patching.lua index 550dbd0..f7f9ca4 100644 --- a/monkey_patching.lua +++ b/monkey_patching.lua @@ -41,12 +41,17 @@ local dropdown_hack_enabled = {} minetest.after(0, minetest.register_on_player_receive_fields, function(player, _, fields) if dropdown_hack_enabled[player:get_player_name()] then - for k, v in pairs(fields) do - local i = v:match("^\27%(fs51@idx_([0-9]+)%)") - if i then - fields[k] = i + local to_update = {} + for field, raw_value in pairs(fields) do + if field:sub(1, 6) == "\1fs51\1" then + to_update[field] = raw_value:match("^\27%(fs51@idx_([0-9]+)%)") end end + + for field, value in pairs(to_update) do + fields[field] = nil + fields[field:sub(7)] = value + end end end) @@ -75,6 +80,7 @@ local function backport_for(name, formspec) dropdown_hack_enabled[name] = true modified = true + node.name = "\1fs51\1" .. node.name for i, item in ipairs(node.item) do node.item[i] = "\27(fs51@idx_" .. i .. ")" .. item end