From 5d0795a1a7e6358ed7ba8f2671a35d40950829af Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Sun, 17 Nov 2013 11:46:41 +0100 Subject: [PATCH] Fix indentation, use log() instead of print() and use get_item_group() in tree growing ABM --- mods/default/functions.lua | 72 +++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/mods/default/functions.lua b/mods/default/functions.lua index 8a173ef2..4f5f85d4 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -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 }) --