From e4be0e516a569aff81a3ea96bb72984f5995eda0 Mon Sep 17 00:00:00 2001 From: Slava Zanko Date: Tue, 27 Feb 2024 21:03:32 +0100 Subject: [PATCH] Add tag levels (multitag) support. Signed-off-by: Slava Zanko --- tubes/tags.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tubes/tags.lua b/tubes/tags.lua index 5911552..3f91be6 100644 --- a/tubes/tags.lua +++ b/tubes/tags.lua @@ -12,6 +12,10 @@ local safe_tags = function(tags) return tags:sub(1, length_limit * 6) end +local function escape(s) + return (s:gsub('[%-%.%+%[%]%(%)%$%^%%%?%*]', '%%%1')) +end + local update_formspec = function(pos) local meta = minetest.get_meta(pos) local buttons_formspec = "" @@ -85,7 +89,7 @@ pipeworks.register_tube(tube_name, { if not is_empty then for tag in string.gmatch(tags, "[^,]+") do tag = pipeworks.safe_tag(tag) - if tag and tag == stack_tag then + if tag and (tag == stack_tag or stack_tag:find(("^%s%%."):format(escape(tag)))) then foundn = foundn + 1 found[foundn] = vect end