@@ -132,41 +132,49 @@ minetest.register_on_punchnode(on_punchnode)
132
132
--
133
133
134
134
minetest .register_abm ({
135
- nodenames = {" default:sapling" },
136
- interval = 10 ,
137
- chance = 50 ,
138
- action = function (pos , node )
139
- local is_soil = minetest .registered_nodes [minetest .get_node ({x = pos .x , y = pos .y - 1 , z = pos .z }).name ].groups .soil
140
- if is_soil == nil or is_soil == 0 then return end
141
- print (" A sapling grows into a tree at " .. minetest .pos_to_string (pos ))
142
- local vm = minetest .get_voxel_manip ()
143
- local minp , maxp = vm :read_from_map ({x = pos .x - 16 , y = pos .y , z = pos .z - 16 }, {x = pos .x + 16 , y = pos .y + 16 , z = pos .z + 16 })
144
- local a = VoxelArea :new {MinEdge = minp , MaxEdge = maxp }
145
- local data = vm :get_data ()
146
- default .grow_tree (data , a , pos , math.random (1 , 4 ) == 1 , math.random (1 ,100000 ))
147
- vm :set_data (data )
148
- vm :write_to_map (data )
149
- vm :update_map ()
150
- end
135
+ nodenames = {" default:sapling" },
136
+ interval = 10 ,
137
+ chance = 50 ,
138
+ action = function (pos , node )
139
+ local nu = minetest .get_node ({x = pos .x , y = pos .y - 1 , z = pos .z }).name
140
+ local is_soil = minetest .get_item_group (nu , " soil" )
141
+ if is_soil == 0 then
142
+ return
143
+ end
144
+
145
+ minetest .log (" action" , " A sapling grows into a tree at " .. minetest .pos_to_string (pos ))
146
+ local vm = minetest .get_voxel_manip ()
147
+ local minp , maxp = vm :read_from_map ({x = pos .x - 16 , y = pos .y , z = pos .z - 16 }, {x = pos .x + 16 , y = pos .y + 16 , z = pos .z + 16 })
148
+ local a = VoxelArea :new {MinEdge = minp , MaxEdge = maxp }
149
+ local data = vm :get_data ()
150
+ default .grow_tree (data , a , pos , math.random (1 , 4 ) == 1 , math.random (1 ,100000 ))
151
+ vm :set_data (data )
152
+ vm :write_to_map (data )
153
+ vm :update_map ()
154
+ end
151
155
})
152
156
153
157
minetest .register_abm ({
154
- nodenames = {" default:junglesapling" },
155
- interval = 10 ,
156
- chance = 50 ,
157
- action = function (pos , node )
158
- local is_soil = minetest .registered_nodes [minetest .get_node ({x = pos .x , y = pos .y - 1 , z = pos .z }).name ].groups .soil
159
- if is_soil == nil or is_soil == 0 then return end
160
- print (" A jungle sapling grows into a tree at " .. minetest .pos_to_string (pos ))
161
- local vm = minetest .get_voxel_manip ()
162
- local minp , maxp = vm :read_from_map ({x = pos .x - 16 , y = pos .y - 1 , z = pos .z - 16 }, {x = pos .x + 16 , y = pos .y + 16 , z = pos .z + 16 })
163
- local a = VoxelArea :new {MinEdge = minp , MaxEdge = maxp }
164
- local data = vm :get_data ()
165
- default .grow_jungletree (data , a , pos , math.random (1 ,100000 ))
166
- vm :set_data (data )
167
- vm :write_to_map (data )
168
- vm :update_map ()
169
- end
158
+ nodenames = {" default:junglesapling" },
159
+ interval = 10 ,
160
+ chance = 50 ,
161
+ action = function (pos , node )
162
+ local nu = minetest .get_node ({x = pos .x , y = pos .y - 1 , z = pos .z }).name
163
+ local is_soil = minetest .get_item_group (nu , " soil" )
164
+ if is_soil == 0 then
165
+ return
166
+ end
167
+
168
+ minetest .log (" action" , " A jungle sapling grows into a tree at " .. minetest .pos_to_string (pos ))
169
+ local vm = minetest .get_voxel_manip ()
170
+ local minp , maxp = vm :read_from_map ({x = pos .x - 16 , y = pos .y - 1 , z = pos .z - 16 }, {x = pos .x + 16 , y = pos .y + 16 , z = pos .z + 16 })
171
+ local a = VoxelArea :new {MinEdge = minp , MaxEdge = maxp }
172
+ local data = vm :get_data ()
173
+ default .grow_jungletree (data , a , pos , math.random (1 ,100000 ))
174
+ vm :set_data (data )
175
+ vm :write_to_map (data )
176
+ vm :update_map ()
177
+ end
170
178
})
171
179
172
180
--
0 commit comments