diff options
author | root <root@linuxworks.belug.de> | 2017-08-22 14:46:36 +0200 |
---|---|---|
committer | root <root@linuxworks.belug.de> | 2017-08-22 14:46:36 +0200 |
commit | 89c704fc3d5e9115caf5b4d6564b10797bb95beb (patch) | |
tree | be1d7071868d22a23671370f44bb056ae7b14e0b /filter-injector.lua | |
parent | 5ca864d2fc983fcb2d905b8111983dc6b1771ddd (diff) | |
parent | a5e1bfa0e824ab70877803d087c97440ff729cac (diff) |
Merge branch 'master' of https://github.com/minetest-mods/pipeworks
Diffstat (limited to 'filter-injector.lua')
-rw-r--r-- | filter-injector.lua | 15 |
1 files changed, 12 insertions, 3 deletions
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 |