From c5b74230e5588561eddbf029ed1261c1a3e7c91c Mon Sep 17 00:00:00 2001 From: TenPlus1 Date: Sun, 12 Jan 2020 09:42:28 +0000 Subject: [PATCH] on_replace returns node names, even when groups used --- api.lua | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) 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