Default/trees: Combine sapling ABMs into one ABM

This commit is contained in:
paramat 2015-08-07 20:24:12 +01:00
parent 47c7b0b187
commit 6194f9ffea
1 changed files with 51 additions and 65 deletions

View File

@ -1,7 +1,9 @@
-- --
-- Grow trees -- Grow trees from saplings
-- --
-- 'Can grow' function
local random = math.random local random = math.random
local function can_grow(pos) local function can_grow(pos)
@ -17,10 +19,12 @@ local function can_grow(pos)
return true return true
end end
-- Sapling ABMs
-- Sapling ABM
minetest.register_abm({ minetest.register_abm({
nodenames = {"default:sapling"}, nodenames = {"default:sapling", "default:junglesapling",
"default:pine_sapling", "default:acacia_sapling"},
interval = 10, interval = 10,
chance = 50, chance = 50,
action = function(pos, node) action = function(pos, node)
@ -28,70 +32,45 @@ minetest.register_abm({
return return
end end
local mapgen = minetest.get_mapgen_params().mgname
if node.name == "default:sapling" then
minetest.log("action", "A sapling grows into a tree at ".. minetest.log("action", "A sapling grows into a tree at "..
minetest.pos_to_string(pos)) minetest.pos_to_string(pos))
if minetest.get_mapgen_params().mgname == "v6" then if mapgen == "v6" then
default.grow_tree(pos, random(1, 4) == 1) default.grow_tree(pos, random(1, 4) == 1)
else else
default.grow_new_apple_tree(pos) default.grow_new_apple_tree(pos)
end end
end elseif node.name == "default:junglesapling" then
})
minetest.register_abm({
nodenames = {"default:junglesapling"},
interval = 11,
chance = 50,
action = function(pos, node)
if not can_grow(pos) then
return
end
minetest.log("action", "A jungle sapling grows into a tree at ".. minetest.log("action", "A jungle sapling grows into a tree at "..
minetest.pos_to_string(pos)) minetest.pos_to_string(pos))
if minetest.get_mapgen_params().mgname == "v6" then if mapgen == "v6" then
default.grow_jungle_tree(pos) default.grow_jungle_tree(pos)
else else
default.grow_new_jungle_tree(pos) default.grow_new_jungle_tree(pos)
end end
end elseif node.name == "default:pine_sapling" then
})
minetest.register_abm({
nodenames = {"default:pine_sapling"},
interval = 12,
chance = 50,
action = function(pos, node)
if not can_grow(pos) then
return
end
minetest.log("action", "A pine sapling grows into a tree at ".. minetest.log("action", "A pine sapling grows into a tree at "..
minetest.pos_to_string(pos)) minetest.pos_to_string(pos))
if minetest.get_mapgen_params().mgname == "v6" then if mapgen == "v6" then
default.grow_pine_tree(pos) default.grow_pine_tree(pos)
else else
default.grow_new_pine_tree(pos) default.grow_new_pine_tree(pos)
end end
end elseif node.name == "default:acacia_sapling" then
})
minetest.register_abm({
nodenames = {"default:acacia_sapling"},
interval = 13,
chance = 50,
action = function(pos, node)
if not can_grow(pos) then
return
end
minetest.log("action", "An acacia sapling grows into a tree at ".. minetest.log("action", "An acacia sapling grows into a tree at "..
minetest.pos_to_string(pos)) minetest.pos_to_string(pos))
default.grow_new_acacia_tree(pos) default.grow_new_acacia_tree(pos)
end end
end
}) })
-- Appletree, jungletree function
--
-- Tree generation
--
-- Apple tree and jungle tree trunk and leaves function
local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid, local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid,
height, size, iters, is_apple_tree) height, size, iters, is_apple_tree)
@ -150,7 +129,8 @@ local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid,
end end
end end
-- Appletree
-- Apple tree
function default.grow_tree(pos, is_apple_tree, bad) function default.grow_tree(pos, is_apple_tree, bad)
--[[ --[[
@ -182,7 +162,8 @@ function default.grow_tree(pos, is_apple_tree, bad)
vm:update_map() vm:update_map()
end end
-- Jungletree
-- Jungle tree
function default.grow_jungle_tree(pos, bad) function default.grow_jungle_tree(pos, bad)
--[[ --[[
@ -233,7 +214,8 @@ function default.grow_jungle_tree(pos, bad)
vm:update_map() vm:update_map()
end end
-- Pinetree from mg mapgen mod, design by sfan5, pointy top added by paramat
-- Pine tree from mg mapgen mod, design by sfan5, pointy top added by paramat
local function add_pine_needles(data, vi, c_air, c_ignore, c_snow, c_pine_needles) local function add_pine_needles(data, vi, c_air, c_ignore, c_snow, c_pine_needles)
local node_id = data[vi] local node_id = data[vi]
@ -373,7 +355,8 @@ function default.grow_pine_tree(pos)
vm:update_map() vm:update_map()
end end
-- New tree
-- New apple tree
function default.grow_new_apple_tree(pos) function default.grow_new_apple_tree(pos)
local path = minetest.get_modpath("default") .. "/schematics/apple_tree.mts" local path = minetest.get_modpath("default") .. "/schematics/apple_tree.mts"
@ -381,6 +364,7 @@ function default.grow_new_apple_tree(pos)
path, 0, nil, false) path, 0, nil, false)
end end
-- New jungle tree -- New jungle tree
function default.grow_new_jungle_tree(pos) function default.grow_new_jungle_tree(pos)
@ -389,6 +373,7 @@ function default.grow_new_jungle_tree(pos)
path, 0, nil, false) path, 0, nil, false)
end end
-- New pine tree -- New pine tree
function default.grow_new_pine_tree(pos) function default.grow_new_pine_tree(pos)
@ -397,6 +382,7 @@ function default.grow_new_pine_tree(pos)
path, 0, nil, false) path, 0, nil, false)
end end
-- New acacia tree -- New acacia tree
function default.grow_new_acacia_tree(pos) function default.grow_new_acacia_tree(pos)