Biomes: Add pine bush to taiga and snowy grassland
authorTumeniNodes <tumeninodes@gmail.com>
Fri, 13 Jul 2018 00:17:07 +0000 (20:17 -0400)
committerParamat <paramat@users.noreply.github.com>
Fri, 13 Jul 2018 00:17:07 +0000 (01:17 +0100)
Replaces 'bush' in snowy grassland.

game_api.txt
mods/default/README.txt
mods/default/crafting.lua
mods/default/mapgen.lua
mods/default/nodes.lua
mods/default/schematics/pine_bush.mts [new file with mode: 0644]
mods/default/textures/default_pine_bush_sapling.png [new file with mode: 0644]
mods/default/textures/default_pine_bush_stem.png [new file with mode: 0644]
mods/default/trees.lua

index 90594e8fdf376c611aa94e0a9964435ffc694b76..97ee3caa2e739721b2ff6b15bbfaaa260e041d50 100644 (file)
@@ -918,6 +918,9 @@ Trees
 
  * `default.grow_acacia_bush(pos)`
   * Grows an acaia bush at pos
+  
+ * `default.grow_pine_bush(pos)`
+  * Grows a pine bush at pos
 
 Carts
 -----
index 87e0d31c16332c38dc7f9352cfdb6fb1123159f4..e3efdd204232734ddbc36d549a4ae33fa37eb2a5 100644 (file)
@@ -79,11 +79,13 @@ paramat (CC BY-SA 3.0):
   default_acacia_leaves_simple.png
   default_acacia_sapling.png
   default_acacia_bush_sapling.png
+  default_pine_bush_sapling.png
   default_acacia_tree.png
   default_acacia_tree_top.png
   default_acacia_wood.png
   default_acacia_bush_stem.png
   default_bush_stem.png
+  default_pine_bush_stem.png
   default_junglewood.png
   default_jungletree_top.png
   default_sandstone_brick.png
index c0f2252f566f1b25e7ebac02363cae483fdfbb53..b8651c0cbe66e5eda1f3c45058871ac37de09df8 100644 (file)
@@ -49,6 +49,13 @@ minetest.register_craft({
        }
 })
 
+minetest.register_craft({
+       output = "default:pine_wood",
+       recipe = {
+               {"default:pine_bush_stem"},
+       }
+})
+
 minetest.register_craft({
        output = 'default:stick 4',
        recipe = {
@@ -953,6 +960,12 @@ minetest.register_craft({
        burntime = 4,
 })
 
+minetest.register_craft({
+       type = "fuel",
+       recipe = "default:pine_bush_sapling",
+       burntime = 2,
+})
+
 minetest.register_craft({
        type = "fuel",
        recipe = "default:aspen_sapling",
@@ -1058,6 +1071,12 @@ minetest.register_craft({
        burntime = 8,
 })
 
+minetest.register_craft({
+       type = "fuel",
+       recipe = "default:pine_bush_stem",
+       burntime = 6,
+})
+
 minetest.register_craft({
        type = "fuel",
        recipe = "default:junglegrass",
index fdbe4a83a7e763c4e348438331c9f00c66221c53..f0da5d5a05d89fc34cadee07ced1b652ba0b1fe0 100644 (file)
@@ -1946,7 +1946,7 @@ function default.register_decorations()
        minetest.register_decoration({
                name = "default:bush",
                deco_type = "schematic",
-               place_on = {"default:dirt_with_grass", "default:dirt_with_snow"},
+               place_on = {"default:dirt_with_grass"},
                sidelen = 16,
                noise_params = {
                        offset = -0.004,
@@ -1956,7 +1956,7 @@ function default.register_decorations()
                        octaves = 3,
                        persist = 0.7,
                },
-               biomes = {"snowy_grassland", "grassland", "deciduous_forest",
+               biomes = {"grassland", "deciduous_forest",
                        "floatland_grassland"},
                y_max = 31000,
                y_min = 1,
@@ -1986,6 +1986,28 @@ function default.register_decorations()
                flags = "place_center_x, place_center_z",
        })
 
+       -- Pine bush
+
+       minetest.register_decoration({
+               name = "default:pine_bush",
+               deco_type = "schematic",
+               place_on = {"default:dirt_with_snow"},
+               sidelen = 16,
+               noise_params = {
+                       offset = -0.004,
+                       scale = 0.01,
+                       spread = {x = 100, y = 100, z = 100},
+                       seed = 137,
+                       octaves = 3,
+                       persist = 0.7,
+               },
+               biomes = {"taiga", "snowy_grassland"},
+               y_max = 31000,
+               y_min = 4,
+               schematic = minetest.get_modpath("default") .. "/schematics/pine_bush.mts",
+               flags = "place_center_x, place_center_z",
+       })
+
        -- Grasses
 
        register_grass_decoration(-0.03,  0.09,  5)
index 13a4c0bf54fe1e36f034b930af145d693dbb19b9..4f427f430bd8f0723ace260574b451a9b4b853db 100644 (file)
@@ -162,6 +162,9 @@ default:bush_sapling
 default:acacia_bush_stem
 default:acacia_bush_leaves
 default:acacia_bush_sapling
+default:pine_bush_stem
+default:pine_bush_needles
+default:pine_bush_sapling
 
 default:sand_with_kelp
 
@@ -1681,6 +1684,77 @@ minetest.register_node("default:acacia_bush_sapling", {
        end,
 })
 
+minetest.register_node("default:pine_bush_stem", {
+       description = "Pine Bush Stem",
+       drawtype = "plantlike",
+       visual_scale = 1.41,
+       tiles = {"default_pine_bush_stem.png"},
+       inventory_image = "default_pine_bush_stem.png",
+       wield_image = "default_pine_bush_stem.png",
+       paramtype = "light",
+       sunlight_propagates = true,
+       groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
+       sounds = default.node_sound_wood_defaults(),
+       selection_box = {
+               type = "fixed",
+               fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.5, 7 / 16},
+       },
+})
+
+minetest.register_node("default:pine_bush_needles", {
+       description = "Pine Bush Needles",
+       drawtype = "allfaces_optional",
+       waving = 1,
+       tiles = {"default_pine_needles.png"},
+       paramtype = "light",
+       groups = {snappy = 3, flammable = 2, leaves = 1},
+       drop = {
+               max_items = 1,
+               items = {
+                       {items = {"default:pine_bush_sapling"}, rarity = 5},
+                       {items = {"default:pine_bush_needles"}}
+               }
+       },
+       sounds = default.node_sound_leaves_defaults(),
+
+       after_place_node = default.after_place_leaves,
+})
+
+minetest.register_node("default:pine_bush_sapling", {
+       description = "Pine Bush Sapling",
+       drawtype = "plantlike",
+       tiles = {"default_pine_bush_sapling.png"},
+       inventory_image = "default_pine_bush_sapling.png",
+       wield_image = "default_pine_bush_sapling.png",
+       paramtype = "light",
+       sunlight_propagates = true,
+       walkable = false,
+       on_timer = default.grow_sapling,
+       selection_box = {
+               type = "fixed",
+               fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16}
+       },
+       groups = {snappy = 2, dig_immediate = 3, flammable = 2,
+               attached_node = 1, sapling = 1},
+       sounds = default.node_sound_leaves_defaults(),
+
+       on_construct = function(pos)
+               minetest.get_node_timer(pos):start(math.random(300, 1500))
+       end,
+
+       on_place = function(itemstack, placer, pointed_thing)
+               itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
+                       "default:pine_bush_sapling",
+                       -- minp, maxp to be checked, relative to sapling pos
+                       {x = -1, y = 0, z = -1},
+                       {x = 1, y = 1, z = 1},
+                       -- maximum interval of interior volume check
+                       2)
+
+               return itemstack
+       end,
+})
+
 minetest.register_node("default:sand_with_kelp", {
        description = "Kelp",
        drawtype = "plantlike_rooted",
@@ -2532,3 +2606,9 @@ default.register_leafdecay({
        leaves = {"default:acacia_bush_leaves"},
        radius = 1,
 })
+
+default.register_leafdecay({
+       trunks = {"default:pine_bush_stem"},
+       leaves = {"default:pine_bush_needles"},
+       radius = 1,
+})
diff --git a/mods/default/schematics/pine_bush.mts b/mods/default/schematics/pine_bush.mts
new file mode 100644 (file)
index 0000000..fbc6e17
Binary files /dev/null and b/mods/default/schematics/pine_bush.mts differ
diff --git a/mods/default/textures/default_pine_bush_sapling.png b/mods/default/textures/default_pine_bush_sapling.png
new file mode 100644 (file)
index 0000000..fadeff8
Binary files /dev/null and b/mods/default/textures/default_pine_bush_sapling.png differ
diff --git a/mods/default/textures/default_pine_bush_stem.png b/mods/default/textures/default_pine_bush_stem.png
new file mode 100644 (file)
index 0000000..e239f81
Binary files /dev/null and b/mods/default/textures/default_pine_bush_stem.png differ
index 7f5556b29dbfa5938f1a0f6a4b6f7ee0e14a4b19..a46ac5acd61e16cb1613396711f4e27fb368d8d6 100644 (file)
@@ -85,6 +85,10 @@ function default.grow_sapling(pos)
                minetest.log("action", "An acacia bush sapling grows into a bush at "..
                        minetest.pos_to_string(pos))
                default.grow_acacia_bush(pos)
+       elseif node.name == "default:pine_bush_sapling" then
+               minetest.log("action", "A pine bush sapling grows into a bush at "..
+                       minetest.pos_to_string(pos))
+               default.grow_pine_bush(pos)
        elseif node.name == "default:emergent_jungle_sapling" then
                minetest.log("action", "An emergent jungle sapling grows into a tree at "..
                        minetest.pos_to_string(pos))
@@ -483,6 +487,16 @@ function default.grow_acacia_bush(pos)
 end
 
 
+-- Pine bush
+
+function default.grow_pine_bush(pos)
+       local path = minetest.get_modpath("default") ..
+               "/schematics/pine_bush.mts"
+       minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1},
+               path, "0", nil, false)
+end
+
+
 --
 -- Sapling 'on place' function to check protection of node and resulting tree volume
 --