-- Renew mod for Minetest -- Copyright © 2020 Alex Yst -- This program is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- This software is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- You should have received a copy of the GNU Lesser General Public -- License along with this program. If not, see -- . local nodenames = { "default:marram_grass_1", "default:marram_grass_2", "default:marram_grass_3" } minetest.register_abm({ label = "Marram Grass Propagation", nodenames = nodenames, neighbors = {"default:sand"}, interval = 1800, chance = 900, catch_up = true, action = function(pos) local candidates = minetest.find_nodes_in_area_under_air({ x = pos.x - 1, y = pos.y - 1, z = pos.z - 1, }, { x = pos.x + 1, y = pos.y + 1, z = pos.z + 1, }, "default:sand") if #candidates > 0 then minetest.set_node(math.random(#candidates), {name = nodenames[math.random(3)]}) end end, })