Skip to content

Commit 5d0795a

Browse files
committedNov 17, 2013
Fix indentation, use log() instead of print() and use get_item_group() in tree growing ABM
1 parent 4c0c7ae commit 5d0795a

File tree

1 file changed

+40
-32
lines changed

1 file changed

+40
-32
lines changed
 

‎mods/default/functions.lua

+40-32
Original file line numberDiff line numberDiff line change
@@ -132,41 +132,49 @@ minetest.register_on_punchnode(on_punchnode)
132132
--
133133

134134
minetest.register_abm({
135-
nodenames = {"default:sapling"},
136-
interval = 10,
137-
chance = 50,
138-
action = function(pos, node)
139-
local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
140-
if is_soil == nil or is_soil == 0 then return end
141-
print("A sapling grows into a tree at "..minetest.pos_to_string(pos))
142-
local vm = minetest.get_voxel_manip()
143-
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})
144-
local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
145-
local data = vm:get_data()
146-
default.grow_tree(data, a, pos, math.random(1, 4) == 1, math.random(1,100000))
147-
vm:set_data(data)
148-
vm:write_to_map(data)
149-
vm:update_map()
150-
end
135+
nodenames = {"default:sapling"},
136+
interval = 10,
137+
chance = 50,
138+
action = function(pos, node)
139+
local nu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
140+
local is_soil = minetest.get_item_group(nu, "soil")
141+
if is_soil == 0 then
142+
return
143+
end
144+
145+
minetest.log("action", "A sapling grows into a tree at "..minetest.pos_to_string(pos))
146+
local vm = minetest.get_voxel_manip()
147+
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})
148+
local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
149+
local data = vm:get_data()
150+
default.grow_tree(data, a, pos, math.random(1, 4) == 1, math.random(1,100000))
151+
vm:set_data(data)
152+
vm:write_to_map(data)
153+
vm:update_map()
154+
end
151155
})
152156

153157
minetest.register_abm({
154-
nodenames = {"default:junglesapling"},
155-
interval = 10,
156-
chance = 50,
157-
action = function(pos, node)
158-
local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
159-
if is_soil == nil or is_soil == 0 then return end
160-
print("A jungle sapling grows into a tree at "..minetest.pos_to_string(pos))
161-
local vm = minetest.get_voxel_manip()
162-
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})
163-
local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
164-
local data = vm:get_data()
165-
default.grow_jungletree(data, a, pos, math.random(1,100000))
166-
vm:set_data(data)
167-
vm:write_to_map(data)
168-
vm:update_map()
169-
end
158+
nodenames = {"default:junglesapling"},
159+
interval = 10,
160+
chance = 50,
161+
action = function(pos, node)
162+
local nu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
163+
local is_soil = minetest.get_item_group(nu, "soil")
164+
if is_soil == 0 then
165+
return
166+
end
167+
168+
minetest.log("action", "A jungle sapling grows into a tree at "..minetest.pos_to_string(pos))
169+
local vm = minetest.get_voxel_manip()
170+
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})
171+
local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
172+
local data = vm:get_data()
173+
default.grow_jungletree(data, a, pos, math.random(1,100000))
174+
vm:set_data(data)
175+
vm:write_to_map(data)
176+
vm:update_map()
177+
end
170178
})
171179

172180
--

0 commit comments

Comments
 (0)
Please sign in to comment.