aboutsummaryrefslogtreecommitdiff
path: root/builtin/client/register.lua
diff options
context:
space:
mode:
authorElias Fleckenstein <eliasfleckenstein@web.de>2020-06-23 17:43:47 +0200
committerElias Fleckenstein <eliasfleckenstein@web.de>2020-06-23 17:43:47 +0200
commita87805a9445f280ca71da322c4b32cf357744511 (patch)
tree0404bc58a6f556b0603283fdbd01121dc73d3cd9 /builtin/client/register.lua
parent68f9263a24a345435d2310ab559ce8a811ef0427 (diff)
downloaddragonfireclient-a87805a9445f280ca71da322c4b32cf357744511.tar.xz
test
Diffstat (limited to 'builtin/client/register.lua')
-rw-r--r--builtin/client/register.lua20
1 files changed, 20 insertions, 0 deletions
diff --git a/builtin/client/register.lua b/builtin/client/register.lua
index c1b4965c1..071220a43 100644
--- a/builtin/client/register.lua
+++ b/builtin/client/register.lua
@@ -40,6 +40,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
--