Pine trees: Add small pine tree and mix into coniferous forests
authorparamat <paramat@users.noreply.github.com>
Sun, 4 Mar 2018 19:47:06 +0000 (19:47 +0000)
committerparamat <mat.gregory@virginmedia.com>
Sun, 11 Mar 2018 00:18:13 +0000 (00:18 +0000)
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.

mods/default/mapgen.lua
mods/default/schematics/small_pine_tree.mts [new file with mode: 0644]
mods/default/schematics/small_pine_tree_from_sapling.mts [new file with mode: 0644]
mods/default/schematics/snowy_small_pine_tree_from_sapling.mts [new file with mode: 0644]
mods/default/trees.lua

index 5810bb6dead4ffd36843bf18f4f078a3372f6570..f236f7b22d0fed324fe6b055cef30118da619263 100644 (file)
@@ -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,
diff --git a/mods/default/schematics/small_pine_tree.mts b/mods/default/schematics/small_pine_tree.mts
new file mode 100644 (file)
index 0000000..1b27a84
Binary files /dev/null and b/mods/default/schematics/small_pine_tree.mts differ
diff --git a/mods/default/schematics/small_pine_tree_from_sapling.mts b/mods/default/schematics/small_pine_tree_from_sapling.mts
new file mode 100644 (file)
index 0000000..dc438a9
Binary files /dev/null and b/mods/default/schematics/small_pine_tree_from_sapling.mts differ
diff --git a/mods/default/schematics/snowy_small_pine_tree_from_sapling.mts b/mods/default/schematics/snowy_small_pine_tree_from_sapling.mts
new file mode 100644 (file)
index 0000000..76fe345
Binary files /dev/null and b/mods/default/schematics/snowy_small_pine_tree_from_sapling.mts differ
index c4403096c53b8921ffd8494622d2cbed639c0a89..7f5556b29dbfa5938f1a0f6a4b6f7ee0e14a4b19 100644 (file)
@@ -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