1
1
--
2
- -- Grow trees
2
+ -- Grow trees from saplings
3
3
--
4
4
5
+ -- 'Can grow' function
6
+
5
7
local random = math.random
6
8
7
9
local function can_grow (pos )
@@ -17,81 +19,58 @@ local function can_grow(pos)
17
19
return true
18
20
end
19
21
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
49
22
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
59
24
60
25
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 ,
63
29
chance = 50 ,
64
30
action = function (pos , node )
65
31
if not can_grow (pos ) then
66
32
return
67
33
end
68
34
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 )
75
64
end
76
65
end
77
66
})
78
67
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
87
68
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
+ --
93
72
94
- -- Appletree, jungletree function
73
+ -- Apple tree and jungle tree trunk and leaves function
95
74
96
75
local function add_trunk_and_leaves (data , a , pos , tree_cid , leaves_cid ,
97
76
height , size , iters , is_apple_tree )
@@ -150,7 +129,8 @@ local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid,
150
129
end
151
130
end
152
131
153
- -- Appletree
132
+
133
+ -- Apple tree
154
134
155
135
function default .grow_tree (pos , is_apple_tree , bad )
156
136
--[[
@@ -182,7 +162,8 @@ function default.grow_tree(pos, is_apple_tree, bad)
182
162
vm :update_map ()
183
163
end
184
164
185
- -- Jungletree
165
+
166
+ -- Jungle tree
186
167
187
168
function default .grow_jungle_tree (pos , bad )
188
169
--[[
@@ -233,7 +214,8 @@ function default.grow_jungle_tree(pos, bad)
233
214
vm :update_map ()
234
215
end
235
216
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
237
219
238
220
local function add_pine_needles (data , vi , c_air , c_ignore , c_snow , c_pine_needles )
239
221
local node_id = data [vi ]
@@ -373,14 +355,16 @@ function default.grow_pine_tree(pos)
373
355
vm :update_map ()
374
356
end
375
357
376
- -- New tree
358
+
359
+ -- New apple tree
377
360
378
361
function default .grow_new_apple_tree (pos )
379
362
local path = minetest .get_modpath (" default" ) .. " /schematics/apple_tree.mts"
380
363
minetest .place_schematic ({x = pos .x - 2 , y = pos .y - 1 , z = pos .z - 2 },
381
364
path , 0 , nil , false )
382
365
end
383
366
367
+
384
368
-- New jungle tree
385
369
386
370
function default .grow_new_jungle_tree (pos )
@@ -389,6 +373,7 @@ function default.grow_new_jungle_tree(pos)
389
373
path , 0 , nil , false )
390
374
end
391
375
376
+
392
377
-- New pine tree
393
378
394
379
function default .grow_new_pine_tree (pos )
@@ -397,6 +382,7 @@ function default.grow_new_pine_tree(pos)
397
382
path , 0 , nil , false )
398
383
end
399
384
385
+
400
386
-- New acacia tree
401
387
402
388
function default .grow_new_acacia_tree (pos )
0 commit comments