Skip to content

Commit 6194f9f

Browse files
committedAug 9, 2015
Default/trees: Combine sapling ABMs into one ABM
1 parent 47c7b0b commit 6194f9f

File tree

1 file changed

+51
-65
lines changed

1 file changed

+51
-65
lines changed
 

‎mods/default/trees.lua

+51-65
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
--
2-
-- Grow trees
2+
-- Grow trees from saplings
33
--
44

5+
-- 'Can grow' function
6+
57
local random = math.random
68

79
local function can_grow(pos)
@@ -17,81 +19,58 @@ local function can_grow(pos)
1719
return true
1820
end
1921

20-
-- Sapling ABMs
21-
22-
minetest.register_abm({
23-
nodenames = {"default:sapling"},
24-
interval = 10,
25-
chance = 50,
26-
action = function(pos, node)
27-
if not can_grow(pos) then
28-
return
29-
end
30-
31-
minetest.log("action", "A sapling grows into a tree at "..
32-
minetest.pos_to_string(pos))
33-
if minetest.get_mapgen_params().mgname == "v6" then
34-
default.grow_tree(pos, random(1, 4) == 1)
35-
else
36-
default.grow_new_apple_tree(pos)
37-
end
38-
end
39-
})
40-
41-
minetest.register_abm({
42-
nodenames = {"default:junglesapling"},
43-
interval = 11,
44-
chance = 50,
45-
action = function(pos, node)
46-
if not can_grow(pos) then
47-
return
48-
end
4922

50-
minetest.log("action", "A jungle sapling grows into a tree at "..
51-
minetest.pos_to_string(pos))
52-
if minetest.get_mapgen_params().mgname == "v6" then
53-
default.grow_jungle_tree(pos)
54-
else
55-
default.grow_new_jungle_tree(pos)
56-
end
57-
end
58-
})
23+
-- Sapling ABM
5924

6025
minetest.register_abm({
61-
nodenames = {"default:pine_sapling"},
62-
interval = 12,
26+
nodenames = {"default:sapling", "default:junglesapling",
27+
"default:pine_sapling", "default:acacia_sapling"},
28+
interval = 10,
6329
chance = 50,
6430
action = function(pos, node)
6531
if not can_grow(pos) then
6632
return
6733
end
6834

69-
minetest.log("action", "A pine sapling grows into a tree at "..
70-
minetest.pos_to_string(pos))
71-
if minetest.get_mapgen_params().mgname == "v6" then
72-
default.grow_pine_tree(pos)
73-
else
74-
default.grow_new_pine_tree(pos)
35+
local mapgen = minetest.get_mapgen_params().mgname
36+
if node.name == "default:sapling" then
37+
minetest.log("action", "A sapling grows into a tree at "..
38+
minetest.pos_to_string(pos))
39+
if mapgen == "v6" then
40+
default.grow_tree(pos, random(1, 4) == 1)
41+
else
42+
default.grow_new_apple_tree(pos)
43+
end
44+
elseif node.name == "default:junglesapling" then
45+
minetest.log("action", "A jungle sapling grows into a tree at "..
46+
minetest.pos_to_string(pos))
47+
if mapgen == "v6" then
48+
default.grow_jungle_tree(pos)
49+
else
50+
default.grow_new_jungle_tree(pos)
51+
end
52+
elseif node.name == "default:pine_sapling" then
53+
minetest.log("action", "A pine sapling grows into a tree at "..
54+
minetest.pos_to_string(pos))
55+
if mapgen == "v6" then
56+
default.grow_pine_tree(pos)
57+
else
58+
default.grow_new_pine_tree(pos)
59+
end
60+
elseif node.name == "default:acacia_sapling" then
61+
minetest.log("action", "An acacia sapling grows into a tree at "..
62+
minetest.pos_to_string(pos))
63+
default.grow_new_acacia_tree(pos)
7564
end
7665
end
7766
})
7867

79-
minetest.register_abm({
80-
nodenames = {"default:acacia_sapling"},
81-
interval = 13,
82-
chance = 50,
83-
action = function(pos, node)
84-
if not can_grow(pos) then
85-
return
86-
end
8768

88-
minetest.log("action", "An acacia sapling grows into a tree at "..
89-
minetest.pos_to_string(pos))
90-
default.grow_new_acacia_tree(pos)
91-
end
92-
})
69+
--
70+
-- Tree generation
71+
--
9372

94-
-- Appletree, jungletree function
73+
-- Apple tree and jungle tree trunk and leaves function
9574

9675
local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid,
9776
height, size, iters, is_apple_tree)
@@ -150,7 +129,8 @@ local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid,
150129
end
151130
end
152131

153-
-- Appletree
132+
133+
-- Apple tree
154134

155135
function default.grow_tree(pos, is_apple_tree, bad)
156136
--[[
@@ -182,7 +162,8 @@ function default.grow_tree(pos, is_apple_tree, bad)
182162
vm:update_map()
183163
end
184164

185-
-- Jungletree
165+
166+
-- Jungle tree
186167

187168
function default.grow_jungle_tree(pos, bad)
188169
--[[
@@ -233,7 +214,8 @@ function default.grow_jungle_tree(pos, bad)
233214
vm:update_map()
234215
end
235216

236-
-- Pinetree from mg mapgen mod, design by sfan5, pointy top added by paramat
217+
218+
-- Pine tree from mg mapgen mod, design by sfan5, pointy top added by paramat
237219

238220
local function add_pine_needles(data, vi, c_air, c_ignore, c_snow, c_pine_needles)
239221
local node_id = data[vi]
@@ -373,14 +355,16 @@ function default.grow_pine_tree(pos)
373355
vm:update_map()
374356
end
375357

376-
-- New tree
358+
359+
-- New apple tree
377360

378361
function default.grow_new_apple_tree(pos)
379362
local path = minetest.get_modpath("default") .. "/schematics/apple_tree.mts"
380363
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
381364
path, 0, nil, false)
382365
end
383366

367+
384368
-- New jungle tree
385369

386370
function default.grow_new_jungle_tree(pos)
@@ -389,6 +373,7 @@ function default.grow_new_jungle_tree(pos)
389373
path, 0, nil, false)
390374
end
391375

376+
392377
-- New pine tree
393378

394379
function default.grow_new_pine_tree(pos)
@@ -397,6 +382,7 @@ function default.grow_new_pine_tree(pos)
397382
path, 0, nil, false)
398383
end
399384

385+
400386
-- New acacia tree
401387

402388
function default.grow_new_acacia_tree(pos)

0 commit comments

Comments
 (0)
Please sign in to comment.