--
minetest.register_abm({
- nodenames = {"default:sapling"},
- interval = 10,
- chance = 50,
- action = function(pos, node)
- local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
- if is_soil == nil or is_soil == 0 then return end
- print("A sapling grows into a tree at "..minetest.pos_to_string(pos))
- local vm = minetest.get_voxel_manip()
- local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16})
- local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
- local data = vm:get_data()
- default.grow_tree(data, a, pos, math.random(1, 4) == 1, math.random(1,100000))
- vm:set_data(data)
- vm:write_to_map(data)
- vm:update_map()
- end
+ nodenames = {"default:sapling"},
+ interval = 10,
+ chance = 50,
+ action = function(pos, node)
+ local nu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
+ local is_soil = minetest.get_item_group(nu, "soil")
+ if is_soil == 0 then
+ return
+ end
+
+ minetest.log("action", "A sapling grows into a tree at "..minetest.pos_to_string(pos))
+ local vm = minetest.get_voxel_manip()
+ local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16})
+ local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
+ local data = vm:get_data()
+ default.grow_tree(data, a, pos, math.random(1, 4) == 1, math.random(1,100000))
+ vm:set_data(data)
+ vm:write_to_map(data)
+ vm:update_map()
+ end
})
minetest.register_abm({
- nodenames = {"default:junglesapling"},
- interval = 10,
- chance = 50,
- action = function(pos, node)
- local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
- if is_soil == nil or is_soil == 0 then return end
- print("A jungle sapling grows into a tree at "..minetest.pos_to_string(pos))
- local vm = minetest.get_voxel_manip()
- local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y-1, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16})
- local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
- local data = vm:get_data()
- default.grow_jungletree(data, a, pos, math.random(1,100000))
- vm:set_data(data)
- vm:write_to_map(data)
- vm:update_map()
- end
+ nodenames = {"default:junglesapling"},
+ interval = 10,
+ chance = 50,
+ action = function(pos, node)
+ local nu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
+ local is_soil = minetest.get_item_group(nu, "soil")
+ if is_soil == 0 then
+ return
+ end
+
+ minetest.log("action", "A jungle sapling grows into a tree at "..minetest.pos_to_string(pos))
+ local vm = minetest.get_voxel_manip()
+ local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y-1, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16})
+ local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
+ local data = vm:get_data()
+ default.grow_jungletree(data, a, pos, math.random(1,100000))
+ vm:set_data(data)
+ vm:write_to_map(data)
+ vm:update_map()
+ end
})
--