diff --git a/api.lua b/api.lua index b069225..99590df 100644 --- a/api.lua +++ b/api.lua @@ -6,7 +6,7 @@ local use_cmi = minetest.global_exists("cmi") mobs = { mod = "redo", - version = "20200109", + version = "20200112", intllib = S, invis = minetest.global_exists("invisibility") and invisibility or {} } @@ -1338,17 +1338,22 @@ function mob_class:replace(pos) -- print ("replace node = ".. minetest.get_node(pos).name, pos.y) - local oldnode = {name = what} - local newnode = {name = with} - local on_replace_return - if self.on_replace then - on_replace_return = self:on_replace(pos, oldnode, newnode) + + local oldnode = what + local newnode = with + + -- convert any group: replacements to actual node name + if oldnode:find("group:") then + oldnode = minetest.get_node(pos).name + end + + if self:on_replace(pos, oldnode, newnode) == false then + return + end end - if on_replace_return ~= false then - minetest.set_node(pos, {name = with}) - end + minetest.set_node(pos, {name = with}) end end