summaryrefslogtreecommitdiff
path: root/item_transport.lua
diff options
context:
space:
mode:
authorNovatux <nathanael.courant@laposte.net>2014-01-03 13:29:38 +0100
committerNovatux <nathanael.courant@laposte.net>2014-01-03 21:36:10 +0100
commitd33eb89dcb1888ee1c194161e5526db5399e1e53 (patch)
treeea0337b56bf4cd21f89c1bfaa48749fa3ae6fdab /item_transport.lua
parent9a9bd2f491ecb4b62ebc069ca61ad917da584ce9 (diff)
downloadpipeworks-d33eb89dcb1888ee1c194161e5526db5399e1e53.tar
pipeworks-d33eb89dcb1888ee1c194161e5526db5399e1e53.tar.gz
pipeworks-d33eb89dcb1888ee1c194161e5526db5399e1e53.tar.bz2
pipeworks-d33eb89dcb1888ee1c194161e5526db5399e1e53.tar.xz
pipeworks-d33eb89dcb1888ee1c194161e5526db5399e1e53.zip
Support for the mesecons mvps callback
Diffstat (limited to 'item_transport.lua')
-rw-r--r--item_transport.lua23
1 files changed, 23 insertions, 0 deletions
diff --git a/item_transport.lua b/item_transport.lua
index a3774ae..af5a817 100644
--- a/item_transport.lua
+++ b/item_transport.lua
@@ -467,3 +467,26 @@ minetest.register_entity("pipeworks:tubed_item", {
end
})
+if minetest.get_modpath("mesecons_mvps") ~= nil then
+ mesecon:register_mvps_unmov("pipeworks:tubed_item")
+ mesecon:register_on_mvps_move(function(moved_nodes)
+ local objects_to_move = {}
+ for _, n in ipairs(moved_nodes) do
+ local objects = minetest.get_objects_inside_radius(n.oldpos, 1)
+ for _, obj in ipairs(objects) do
+ local entity = obj:get_luaentity()
+ if entity and entity.name == "pipeworks:tubed_item" then
+ objects_to_move[#objects_to_move+1] = obj
+ end
+ end
+ end
+ if #objects_to_move > 0 then
+ local dir = vector.subtract(moved_nodes[1].pos, moved_nodes[1].oldpos)
+ for _, obj in ipairs(objects_to_move) do
+ local entity = obj:get_luaentity()
+ obj:setpos(vector.add(obj:getpos(), dir))
+ entity.start_pos = vector.add(entity.start_pos, dir)
+ end
+ end
+ end)
+end