]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - builtin/client/register.lua
Merge branch 'master' of https://github.com/minetest/minetest
[dragonfireclient.git] / builtin / client / register.lua
index 61db4a30b7cd564d19cd98f3f19bcd8ebca001d7..637a22556cd0a293484bbeb37c03fdec6a221c30 100644 (file)
@@ -46,6 +46,26 @@ function core.run_callbacks(callbacks, mode, ...)
        return ret
 end
 
+function core.override_item(name, redefinition)
+       if redefinition.name ~= nil then
+               error("Attempt to redefine name of "..name.." to "..dump(redefinition.name), 2)
+       end
+       if redefinition.type ~= nil then
+               error("Attempt to redefine type of "..name.." to "..dump(redefinition.type), 2)
+       end
+       local itemdef = core.get_item_def(name)
+       if not itemdef then
+               error("Attempt to override non-existent item "..name, 2)
+       end
+       local nodedef = core.get_node_def(name)
+       table.combine(itemdef, nodedef)
+
+       for k, v in pairs(redefinition) do
+               rawset(itemdef, k, v)
+       end
+       core.register_item_raw(itemdef)
+end
+
 --
 -- Callback registration
 --
@@ -81,3 +101,13 @@ core.registered_on_item_use, core.register_on_item_use = make_registration()
 core.registered_on_modchannel_message, core.register_on_modchannel_message = make_registration()
 core.registered_on_modchannel_signal, core.register_on_modchannel_signal = make_registration()
 core.registered_on_inventory_open, core.register_on_inventory_open = make_registration()
+core.registered_on_recieve_physics_override, core.register_on_recieve_physics_override = make_registration()
+core.registered_on_play_sound, core.register_on_play_sound = make_registration()
+core.registered_on_spawn_particle, core.register_on_spawn_particle = make_registration()
+core.registered_on_object_properties_change, core.register_on_object_properties_change = make_registration()
+core.registered_on_object_hp_change, core.register_on_object_hp_change = make_registration()
+core.registered_on_object_add, core.register_on_object_add = make_registration()
+
+core.registered_nodes = {}
+core.registered_items = {}
+core.object_refs = {}