|
59 | 59 |
|
60 | 60 | -- Sapling ABM
|
61 | 61 |
|
62 |
| -minetest.register_abm({ |
63 |
| - nodenames = {"default:sapling", "default:junglesapling", |
64 |
| - "default:pine_sapling", "default:acacia_sapling", |
65 |
| - "default:aspen_sapling"}, |
66 |
| - interval = 10, |
67 |
| - chance = 50, |
68 |
| - action = function(pos, node) |
69 |
| - if not default.can_grow(pos) then |
70 |
| - return |
71 |
| - end |
| 62 | +function default.grow_sapling(pos) |
| 63 | + if not default.can_grow(pos) then |
| 64 | + -- try a bit later again |
| 65 | + minetest.get_node_timer(pos):start(math.random(240, 600)) |
| 66 | + return |
| 67 | + end |
72 | 68 |
|
73 |
| - local mapgen = minetest.get_mapgen_params().mgname |
74 |
| - if node.name == "default:sapling" then |
75 |
| - minetest.log("action", "A sapling grows into a tree at ".. |
76 |
| - minetest.pos_to_string(pos)) |
77 |
| - if mapgen == "v6" then |
78 |
| - default.grow_tree(pos, random(1, 4) == 1) |
79 |
| - else |
80 |
| - default.grow_new_apple_tree(pos) |
81 |
| - end |
82 |
| - elseif node.name == "default:junglesapling" then |
83 |
| - minetest.log("action", "A jungle sapling grows into a tree at ".. |
84 |
| - minetest.pos_to_string(pos)) |
85 |
| - if mapgen == "v6" then |
86 |
| - default.grow_jungle_tree(pos) |
87 |
| - else |
88 |
| - default.grow_new_jungle_tree(pos) |
89 |
| - end |
90 |
| - elseif node.name == "default:pine_sapling" then |
91 |
| - minetest.log("action", "A pine sapling grows into a tree at ".. |
92 |
| - minetest.pos_to_string(pos)) |
93 |
| - local snow = is_snow_nearby(pos) |
94 |
| - if mapgen == "v6" then |
95 |
| - default.grow_pine_tree(pos, snow) |
96 |
| - elseif snow then |
97 |
| - default.grow_new_snowy_pine_tree(pos) |
98 |
| - else |
99 |
| - default.grow_new_pine_tree(pos) |
100 |
| - end |
101 |
| - elseif node.name == "default:acacia_sapling" then |
102 |
| - minetest.log("action", "An acacia sapling grows into a tree at ".. |
103 |
| - minetest.pos_to_string(pos)) |
104 |
| - default.grow_new_acacia_tree(pos) |
105 |
| - elseif node.name == "default:aspen_sapling" then |
106 |
| - minetest.log("action", "An aspen sapling grows into a tree at ".. |
107 |
| - minetest.pos_to_string(pos)) |
108 |
| - default.grow_new_aspen_tree(pos) |
| 69 | + local mapgen = minetest.get_mapgen_params().mgname |
| 70 | + local node = minetest.get_node(pos) |
| 71 | + if node.name == "default:sapling" then |
| 72 | + minetest.log("action", "A sapling grows into a tree at ".. |
| 73 | + minetest.pos_to_string(pos)) |
| 74 | + if mapgen == "v6" then |
| 75 | + default.grow_tree(pos, random(1, 4) == 1) |
| 76 | + else |
| 77 | + default.grow_new_apple_tree(pos) |
| 78 | + end |
| 79 | + elseif node.name == "default:junglesapling" then |
| 80 | + minetest.log("action", "A jungle sapling grows into a tree at ".. |
| 81 | + minetest.pos_to_string(pos)) |
| 82 | + if mapgen == "v6" then |
| 83 | + default.grow_jungle_tree(pos) |
| 84 | + else |
| 85 | + default.grow_new_jungle_tree(pos) |
109 | 86 | end
|
| 87 | + elseif node.name == "default:pine_sapling" then |
| 88 | + minetest.log("action", "A pine sapling grows into a tree at ".. |
| 89 | + minetest.pos_to_string(pos)) |
| 90 | + local snow = is_snow_nearby(pos) |
| 91 | + if mapgen == "v6" then |
| 92 | + default.grow_pine_tree(pos, snow) |
| 93 | + elseif snow then |
| 94 | + default.grow_new_snowy_pine_tree(pos) |
| 95 | + else |
| 96 | + default.grow_new_pine_tree(pos) |
| 97 | + end |
| 98 | + elseif node.name == "default:acacia_sapling" then |
| 99 | + minetest.log("action", "An acacia sapling grows into a tree at ".. |
| 100 | + minetest.pos_to_string(pos)) |
| 101 | + default.grow_new_acacia_tree(pos) |
| 102 | + elseif node.name == "default:aspen_sapling" then |
| 103 | + minetest.log("action", "An aspen sapling grows into a tree at ".. |
| 104 | + minetest.pos_to_string(pos)) |
| 105 | + default.grow_new_aspen_tree(pos) |
110 | 106 | end
|
111 |
| -}) |
| 107 | +end |
112 | 108 |
|
| 109 | +minetest.register_lbm({ |
| 110 | + name = "default:convert_saplings_to_node_timer", |
| 111 | + nodenames = {"default:sapling", "default:junglesapling", |
| 112 | + "default:pine_sapling", "default:acacia_sapling", |
| 113 | + "default:aspen_sapling"}, |
| 114 | + action = function(pos) |
| 115 | + minetest.get_node_timer(pos):start(math.random(1200, 2400)) |
| 116 | + end |
| 117 | +}) |
113 | 118 |
|
114 | 119 | --
|
115 | 120 | -- Tree generation
|
|
0 commit comments