From cd64c0af68835e587c53677c45f32e4d7e0ca6ee Mon Sep 17 00:00:00 2001 From: Slava Zanko Date: Sun, 4 Feb 2024 20:33:03 +0100 Subject: [PATCH] Add tags support into Itemwise and Stackwise injectors. Signed-off-by: Slava Zanko --- filter-injector.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/filter-injector.lua b/filter-injector.lua index 22e8b86..49bfa51 100644 --- a/filter-injector.lua +++ b/filter-injector.lua @@ -62,6 +62,11 @@ local function set_filter_formspec(data, meta) exmatch_button.. pipeworks.fs_helpers.get_inv(6).. "listring[]" + if pipeworks.enable_item_tags then + formspec = formspec .. + "field[5.8,0.5;3,0.8;items_tag;" .. S("Items tag") .. ";${items_tag}]" .. + "button[9,0.3;1,1.1;set_items_tag;" .. S("Set") .. "]" + end end meta:set_string("formspec", formspec) end @@ -338,6 +343,9 @@ local function punch_filter(data, filtpos, filtnode, msg) end local pos = vector.add(frompos, vector.multiply(dir, 1.4)) local start_pos = vector.add(frompos, dir) + if pipeworks.enable_item_tags then + pipeworks.set_item_tag(item, filtmeta:get_string("items_tag")) + end pipeworks.tube_inject_item(pos, start_pos, dir, item, fakePlayer:get_player_name()) return true -- only fire one item, please @@ -477,6 +485,9 @@ for _, data in ipairs({ fs_helpers.on_receive_fields(pos, fields) local meta = minetest.get_meta(pos) meta:set_int("slotseq_index", 1) + if pipeworks.enable_item_tags and fields.items_tag and (fields.key_enter_field == "items_tag" or fields.set_items_tag) then + meta:set_string("items_tag", fields.items_tag) + end set_filter_formspec(data, meta) set_filter_infotext(data, meta) end