Pine trees: Add small pine tree and mix into coniferous forests

Use noises to create a varying mix in coniferous forest biomes:
Areas of large pines only, areas of small pines only, mixed areas.
While also having areas of high and low tree densities.
Saplings grow into large or small pines with equal chance.
This commit is contained in:
paramat 2018-03-04 19:47:06 +00:00 committed by paramat
parent ac50b3e3ce
commit 160dc21bc1
5 changed files with 37 additions and 13 deletions

@ -1758,7 +1758,7 @@ function default.register_decorations()
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:dirt_with_rainforest_litter", "default:dirt"},
sidelen = 16,
sidelen = 80,
fill_ratio = 0.1,
biomes = {"rainforest", "rainforest_swamp"},
y_max = 31000,
@ -1771,7 +1771,7 @@ function default.register_decorations()
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:dirt_with_rainforest_litter", "default:dirt"},
sidelen = 16,
sidelen = 80,
fill_ratio = 0.005,
biomes = {"rainforest", "rainforest_swamp"},
y_max = 31000,
@ -1781,15 +1781,15 @@ function default.register_decorations()
rotation = "random",
})
-- Taiga and temperate coniferous forest pine tree and log
-- Taiga and temperate coniferous forest pine tree, small pine tree and log
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
sidelen = 16,
noise_params = {
offset = 0.036,
scale = 0.022,
offset = 0.010,
scale = 0.048,
spread = {x = 250, y = 250, z = 250},
seed = 2,
octaves = 3,
@ -1805,10 +1805,10 @@ function default.register_decorations()
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
sidelen = 80,
sidelen = 16,
noise_params = {
offset = 0.0018,
scale = 0.0011,
offset = 0.010,
scale = -0.048,
spread = {x = 250, y = 250, z = 250},
seed = 2,
octaves = 3,
@ -1816,6 +1816,18 @@ function default.register_decorations()
},
biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
y_max = 31000,
y_min = 2,
schematic = minetest.get_modpath("default") .. "/schematics/small_pine_tree.mts",
flags = "place_center_x, place_center_z",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
sidelen = 80,
fill_ratio = 0.0018,
biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("default") .. "/schematics/pine_log.mts",
flags = "place_center_x",
@ -2039,7 +2051,7 @@ function default.register_decorations()
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_rainforest_litter"},
sidelen = 16,
sidelen = 80,
fill_ratio = 0.1,
biomes = {"rainforest"},
y_max = 31000,

Binary file not shown.

@ -411,8 +411,14 @@ end
-- New pine tree
function default.grow_new_pine_tree(pos)
local path = minetest.get_modpath("default") ..
"/schematics/pine_tree_from_sapling.mts"
local path
if math.random() > 0.5 then
path = minetest.get_modpath("default") ..
"/schematics/pine_tree_from_sapling.mts"
else
path = minetest.get_modpath("default") ..
"/schematics/small_pine_tree_from_sapling.mts"
end
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
path, "0", nil, false)
end
@ -421,8 +427,14 @@ end
-- New snowy pine tree
function default.grow_new_snowy_pine_tree(pos)
local path = minetest.get_modpath("default") ..
"/schematics/snowy_pine_tree_from_sapling.mts"
local path
if math.random() > 0.5 then
path = minetest.get_modpath("default") ..
"/schematics/snowy_pine_tree_from_sapling.mts"
else
path = minetest.get_modpath("default") ..
"/schematics/snowy_small_pine_tree_from_sapling.mts"
end
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
path, "random", nil, false)
end