Fix "Ignoring CONTENT_IGNORE redefinition" warning (#4393)
authoryou <ovvv@web.de>
Sun, 18 Feb 2018 09:40:14 +0000 (10:40 +0100)
committerSmallJoker <mk939@ymail.com>
Sun, 3 Jun 2018 15:32:00 +0000 (17:32 +0200)
minetest.override_item still passes to core

builtin/game/register.lua

index ec6f28097c8543698e8d9bceb20def960c1f0ea2..25af24eb7d4a7cf7a5625ccbb6a44d65c4379e0f 100644 (file)
@@ -116,6 +116,8 @@ function core.register_item(name, itemdef)
        end
        itemdef.name = name
 
+       local is_overriding = core.registered_items[name]
+
        -- Apply defaults and add to registered_* table
        if itemdef.type == "node" then
                -- Use the nodebox as selection box if it's not set manually
@@ -177,7 +179,13 @@ function core.register_item(name, itemdef)
        --core.log("Registering item: " .. itemdef.name)
        core.registered_items[itemdef.name] = itemdef
        core.registered_aliases[itemdef.name] = nil
-       register_item_raw(itemdef)
+
+       -- Used to allow builtin to register ignore to registered_items
+       if name ~= "ignore" then
+               register_item_raw(itemdef)
+       elseif is_overriding then
+               core.log("warning", "Attempted redefinition of \"ignore\"")
+       end
 end
 
 function core.unregister_item(name)