Skip to content

Commit

Permalink
Pine trees: Add small pine tree and mix into coniferous forests
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
paramat committed Mar 11, 2018
1 parent ac50b3e commit 160dc21
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 13 deletions.
30 changes: 21 additions & 9 deletions mods/default/mapgen.lua
Expand Up @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -1805,17 +1805,29 @@ 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,
persist = 0.66
},
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",
Expand Down Expand Up @@ -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,
Expand Down
Binary file added mods/default/schematics/small_pine_tree.mts
Binary file not shown.
Binary file not shown.
Binary file not shown.
20 changes: 16 additions & 4 deletions mods/default/trees.lua
Expand Up @@ -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
Expand All @@ -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
Expand Down

0 comments on commit 160dc21

Please sign in to comment.