forked from mtcontrib/moretrees
Added feature to check for air surrounding a tree's target spawn location, so
that trees won't grow on top of stuff line rails, other plants, etc. Also helps keep them from growing half-way into a wall.
This commit is contained in:
parent
c679cf94b7
commit
f05480d78d
10
init.lua
10
init.lua
@ -75,7 +75,9 @@ spawn_on_surfaces(
|
|||||||
15, -- but no higher than 15m
|
15, -- but no higher than 15m
|
||||||
{"default:water_source"}, -- Jungle trees must be near water
|
{"default:water_source"}, -- Jungle trees must be near water
|
||||||
JT_WATER_RADIUS, -- within this radius of it (default 25)
|
JT_WATER_RADIUS, -- within this radius of it (default 25)
|
||||||
JT_WATER_COUNT -- with this many water nodes in the area
|
JT_WATER_COUNT, -- with this many water nodes in the area
|
||||||
|
1, -- air size area of 1 (+/- 1 node in X and Z directions)
|
||||||
|
9 -- there must be 9 air nodes in the area
|
||||||
)
|
)
|
||||||
|
|
||||||
spawn_on_surfaces(
|
spawn_on_surfaces(
|
||||||
@ -93,7 +95,9 @@ spawn_on_surfaces(
|
|||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
CONIFERS_ALTITUDE,
|
CONIFERS_ALTITUDE,
|
||||||
nil
|
nil,
|
||||||
|
1,
|
||||||
|
9
|
||||||
)
|
)
|
||||||
|
|
||||||
-- growing functions
|
-- growing functions
|
||||||
@ -209,7 +213,6 @@ function grow_jungletree(pos, noise)
|
|||||||
|
|
||||||
minetest.env:remove_node(pos)
|
minetest.env:remove_node(pos)
|
||||||
local leaves = minetest.env:find_nodes_in_area({x = pos.x-1, y = pos.y, z = pos.z-1}, {x = pos.x+1, y = pos.y+10, z = pos.z+1}, "default:leaves")
|
local leaves = minetest.env:find_nodes_in_area({x = pos.x-1, y = pos.y, z = pos.z-1}, {x = pos.x+1, y = pos.y+10, z = pos.z+1}, "default:leaves")
|
||||||
|
|
||||||
for leaf in ipairs(leaves) do
|
for leaf in ipairs(leaves) do
|
||||||
minetest.env:remove_node(leaves[leaf])
|
minetest.env:remove_node(leaves[leaf])
|
||||||
end
|
end
|
||||||
@ -232,7 +235,6 @@ function grow_conifer(pos, noise)
|
|||||||
|
|
||||||
minetest.env:remove_node(pos)
|
minetest.env:remove_node(pos)
|
||||||
local leaves = minetest.env:find_nodes_in_area({x = pos.x, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+5, z = pos.z}, "default:leaves")
|
local leaves = minetest.env:find_nodes_in_area({x = pos.x, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+5, z = pos.z}, "default:leaves")
|
||||||
|
|
||||||
for leaf in ipairs(leaves) do
|
for leaf in ipairs(leaves) do
|
||||||
minetest.env:remove_node(leaves[leaf])
|
minetest.env:remove_node(leaves[leaf])
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user