File tree 2 files changed +22
-0
lines changed
2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -315,6 +315,24 @@ minetest.register_item(":", {
315
315
})
316
316
317
317
318
+ function minetest .override_item (name , redefinition )
319
+ if redefinition .name ~= nil then
320
+ error (" Attemt to redefine name of " .. name .. " to " .. dump (redefinition .name ), 2 )
321
+ end
322
+ if redefinition .type ~= nil then
323
+ error (" Attemt to redefine type of " .. name .. " to " .. dump (redefinition .type ), 2 )
324
+ end
325
+ local item = minetest .registered_items [name ]
326
+ if not item then
327
+ error (" Attemt to override non-existent item " .. name , 2 )
328
+ end
329
+ for k , v in pairs (redefinition ) do
330
+ rawset (item , k , v )
331
+ end
332
+ register_item_raw (item )
333
+ end
334
+
335
+
318
336
function minetest .run_callbacks (callbacks , mode , ...)
319
337
assert (type (callbacks ) == " table" )
320
338
local cb_len = # callbacks
Original file line number Diff line number Diff line change @@ -1189,6 +1189,10 @@ minetest.register_alias(name, convert_to)
1189
1189
minetest.register_craft(recipe)
1190
1190
minetest.register_ore(ore definition)
1191
1191
minetest.register_decoration(decoration definition)
1192
+ minetest.override_item(name, redefinition)
1193
+ ^ Overrides fields of an item registered with register_node/tool/craftitem.
1194
+ ^ Note: Item must already be defined, (opt)depend on the mod defining it.
1195
+ ^ Example: minetest.override_item("default:mese", {light_source=LIGHT_MAX})
1192
1196
1193
1197
Global callback registration functions: (Call these only at load time)
1194
1198
minetest.register_globalstep(func(dtime))
You can’t perform that action at this time.
0 commit comments