Moss growth ABM: Add inner and outer cobble stairs, simplify code
authorHybridDog <ovvv@web.de>
Sat, 6 Apr 2019 20:35:48 +0000 (22:35 +0200)
committerParamat <paramat@users.noreply.github.com>
Sat, 6 Apr 2019 20:35:48 +0000 (21:35 +0100)
mods/default/functions.lua

index 1165c89ca5bf7ece5c2661b816a8a3f2ba1a4abc..e1e3e186652741345287b691f5c93cdb0850fdc1 100644 (file)
@@ -541,23 +541,26 @@ minetest.register_abm({
 -- Moss growth on cobble near water
 --
 
+local moss_correspondences = {
+       ["default:cobble"] = "default:mossycobble",
+       ["stairs:slab_cobble"] = "stairs:slab_mossycobble",
+       ["stairs:stair_cobble"] = "stairs:stair_mossycobble",
+       ["stairs:stair_inner_cobble"] = "stairs:stair_inner_mossycobble",
+       ["stairs:stair_outer_cobble"] = "stairs:stair_outer_mossycobble",
+       ["walls:cobble"] = "walls:mossycobble",
+}
 minetest.register_abm({
        label = "Moss growth",
-       nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble", "walls:cobble"},
+       nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble",
+               "stairs:stair_inner_cobble", "stairs:stair_outer_cobble",
+               "walls:cobble"},
        neighbors = {"group:water"},
        interval = 16,
        chance = 200,
        catch_up = false,
        action = function(pos, node)
-               if node.name == "default:cobble" then
-                       minetest.set_node(pos, {name = "default:mossycobble"})
-               elseif node.name == "stairs:slab_cobble" then
-                       minetest.set_node(pos, {name = "stairs:slab_mossycobble", param2 = node.param2})
-               elseif node.name == "stairs:stair_cobble" then
-                       minetest.set_node(pos, {name = "stairs:stair_mossycobble", param2 = node.param2})
-               elseif node.name == "walls:cobble" then
-                       minetest.set_node(pos, {name = "walls:mossycobble", param2 = node.param2})
-               end
+               node.name = moss_correspondences[node.name]
+               minetest.set_node(pos, node)
        end
 })