From a5e1bfa0e824ab70877803d087c97440ff729cac Mon Sep 17 00:00:00 2001 From: DS Date: Mon, 21 Aug 2017 00:05:08 +0200 Subject: give more possibilities to mods (#194) * add owner to tubed items * allow custom inventories --- filter-injector.lua | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'filter-injector.lua') diff --git a/filter-injector.lua b/filter-injector.lua index 45b27c4..1f6a90a 100644 --- a/filter-injector.lua +++ b/filter-injector.lua @@ -156,7 +156,7 @@ local function grabAndFire(data,slotseq_mode,exmatch_mode,filtmeta,frominv,fromi end local pos = vector.add(frompos, vector.multiply(dir, 1.4)) local start_pos = vector.add(frompos, dir) - local item1 = pipeworks.tube_inject_item(pos, start_pos, dir, item) + local item1 = pipeworks.tube_inject_item(pos, start_pos, dir, item, fakePlayer:get_player_name()) return true-- only fire one item, please end end @@ -317,8 +317,17 @@ local function punch_filter(data, filtpos, filtnode, msg) exact_match = filtmeta:get_int("exmatch_mode") end - local frommeta = minetest.get_meta(frompos) - local frominv = frommeta:get_inventory() + local frominv + if fromtube.return_input_invref then + local pos = vector.add(filtpos, vector.multiply(dir, -1)) + frominv = fromtube.return_input_invref(pos, fromnode, dir, owner) + if not frominv then + return + end + else + local frommeta = minetest.get_meta(frompos) + frominv = frommeta:get_inventory() + end if fromtube.before_filter then fromtube.before_filter(frompos) end for _, frominvname in ipairs(type(fromtube.input_inventory) == "table" and fromtube.input_inventory or {fromtube.input_inventory}) do local done = false -- cgit v1.2.3