})
+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
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))