@@ -10,25 +10,31 @@ sorcery.register.trees.foreach('sorcery:treesetup', {}, function(id, t) -- generates sap and hooks handlers appropriately if t.node then - local def = minetest.registered_nodes[t.node] - local nextfn = def.on_place - minetest.override_item(t.node, { on_place = function(stack, who, pointed, ...) - if nextfn then nextfn(stack, who, pointed, ...) end - if who ~= nil and pointed.type == 'node' then - -- local pos = pointed.above - -- local _, counts = minetest.find_nodes_in_area( - -- vector.offset(pos, -1,-1,-1), - -- vector.offset(pos, 1, 1, 1), - -- t.leaves or 'group:leaves', false) - -- if counts[next(counts)] > 0 then - local n = minetest.get_node(pointed.above) - n.param1 = 1 - minetest.swap_node(pointed.above, n) - -- end + local nodes = t.node + if type(nodes) == 'string' then nodes = {nodes} end + for _, node in pairs(nodes) do + local def = minetest.registered_nodes[node] + if def then + local nextfn = def.on_place + minetest.override_item(node, { on_place = function(stack, who, pointed, ...) + if nextfn then nextfn(stack, who, pointed, ...) end + if who ~= nil and pointed.type == 'node' then + -- local pos = pointed.above + -- local _, counts = minetest.find_nodes_in_area( + -- vector.offset(pos, -1,-1,-1), + -- vector.offset(pos, 1, 1, 1), + -- t.leaves or 'group:leaves', false) + -- if counts[next(counts)] > 0 then + local n = minetest.get_node(pointed.above) + n.param1 = 1 + minetest.swap_node(pointed.above, n) + -- end + end + end }) end - end }) + end end if t.sap == false then return end if not t.sapliq then @@ -59,9 +65,9 @@ name = sorcery.lib.node.force(what).name end for tn, def in pairs(sorcery.data.trees) do - if def.node == name then + if L.tbl.strmatch(def.node, name) then return { tree = tn; def = def; pos = pos;