|
@@ -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 |
|
|
}) |
|
|
|
|
|
-- |
|
|