maple/trees.lua

51 lines
1.1 KiB
Lua
Raw Permalink Normal View History

2018-04-29 13:14:13 -07:00
local random = math.random
-- I don't remember if snow function is needed.
-- local function is_snow_nearby(pos)
-- return minetest.find_node_near(pos, 1,
-- {"default:snow", "default:snowblock", "default:dirt_with_snow"})
-- end
2018-04-29 13:14:13 -07:00
-- Sapling ABM
function maple.grow_sapling(pos)
2020-08-14 20:48:17 -07:00
if not default.can_grow(pos) then
-- Can't grow yet, try later.
minetest.get_node_timer(pos):start(random(240, 600))
2020-08-14 20:48:17 -07:00
return
end
local node = minetest.get_node(pos)
if node.name == "maple:maple_sapling" then
minetest.log("action", "An maple sapling grows into a tree at "..
minetest.pos_to_string(pos))
minetest.remove_node(pos)
maple.grow_new_maple_tree(pos)
end
2018-04-29 13:14:13 -07:00
end
minetest.register_lbm({
2020-08-14 20:48:17 -07:00
name = "maple:convert_saplings_to_node_timer",
nodenames = {"maple:maple_sapling"},
action = function(pos)
minetest.get_node_timer(pos):start(random(1200, 2400))
2020-08-14 20:48:17 -07:00
end
2018-04-29 13:14:13 -07:00
})
--
-- Tree generation
--
-- New maple tree
function maple.grow_new_maple_tree(pos)
2020-08-23 19:53:57 -07:00
local path = maple.path .. "/schematics/maple_tree.mts"
2020-08-14 20:48:17 -07:00
minetest.place_schematic({x = pos.x - 3, y = pos.y, z = pos.z - 3},
path, "0", nil, false)
2018-04-29 13:14:13 -07:00
end