Fix indentation, use log() instead of print() and use get_item_group() in tree growin...
authorPilzAdam <pilzadam@minetest.net>
Sun, 17 Nov 2013 10:46:41 +0000 (11:46 +0100)
committerPilzAdam <pilzadam@minetest.net>
Sun, 17 Nov 2013 10:46:41 +0000 (11:46 +0100)
mods/default/functions.lua

index 8a173ef2dae2d206a9916c9c7288e8c9fa81d6f7..4f5f85d48c135aa92637c92f078bb012c7fe1b69 100644 (file)
@@ -132,41 +132,49 @@ minetest.register_on_punchnode(on_punchnode)
 --
 
 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
 })
 
 --