From 3a335e9de2e7874f0f6ba87bf0555a7be74c1d15 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 14 Apr 2014 19:01:29 +0100 Subject: [PATCH] A couple of fixes to item overriding This resolves several problems, including the one repeatedly reported in the mod's forum topic about "insane recipes". --- init.lua | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/init.lua b/init.lua index 70a66ff..303f0d8 100644 --- a/init.lua +++ b/init.lua @@ -36,26 +36,21 @@ function food.support(group,mod,item) return end - local mtype = "item" - - if minetest.registered_nodes[item] then - mtype = "node" - end - local data = minetest.registered_items[item] - if not data then print("[FOOD MOD WARNING] item '"..item.."' not found") return end - data.groups["food_"..group]=1 - - if mtype == "item" then - minetest.register_craftitem(":"..item,data) - else - minetest.register_node(":"..item,data) + -- Need to copy this table, not modify it in place, otherwise it can change + -- the groups for ALL craftitems that use the default groups. + g = {} + for k, v in pairs(data.groups) do + g[k] = v end + g["food_"..group] = 1 + minetest.override_item(item, {groups = g}) + food.supported[group] = true end