Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add minetest.override_item
  • Loading branch information
ShadowNinja committed Jan 14, 2014
1 parent 8966c16 commit 574ed6a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
18 changes: 18 additions & 0 deletions builtin/misc_register.lua
Expand Up @@ -315,6 +315,24 @@ minetest.register_item(":", {
})


function minetest.override_item(name, redefinition)
if redefinition.name ~= nil then
error("Attemt to redefine name of "..name.." to "..dump(redefinition.name), 2)
end
if redefinition.type ~= nil then
error("Attemt to redefine type of "..name.." to "..dump(redefinition.type), 2)
end
local item = minetest.registered_items[name]
if not item then
error("Attemt to override non-existent item "..name, 2)
end
for k, v in pairs(redefinition) do
rawset(item, k, v)
end
register_item_raw(item)
end


function minetest.run_callbacks(callbacks, mode, ...)
assert(type(callbacks) == "table")
local cb_len = #callbacks
Expand Down
4 changes: 4 additions & 0 deletions doc/lua_api.txt
Expand Up @@ -1189,6 +1189,10 @@ minetest.register_alias(name, convert_to)
minetest.register_craft(recipe)
minetest.register_ore(ore definition)
minetest.register_decoration(decoration definition)
minetest.override_item(name, redefinition)
^ Overrides fields of an item registered with register_node/tool/craftitem.
^ Note: Item must already be defined, (opt)depend on the mod defining it.
^ Example: minetest.override_item("default:mese", {light_source=LIGHT_MAX})

Global callback registration functions: (Call these only at load time)
minetest.register_globalstep(func(dtime))
Expand Down

0 comments on commit 574ed6a

Please sign in to comment.