]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - builtin/game/register.lua
Improve LBMManager::applyLBMs() code
[dragonfireclient.git] / builtin / game / register.lua
index bed269dbb60cbd99cf21c34721d8d153c340abb4..0be107c3633344a378736964522dcf730a213fb1 100644 (file)
@@ -1,5 +1,7 @@
 -- Minetest: builtin/misc_register.lua
 
+local S = core.get_translator("__builtin")
+
 --
 -- Make raw registration functions inaccessible to anyone except this file
 --
@@ -256,6 +258,18 @@ function core.register_tool(name, tooldef)
        end
        -- END Legacy stuff
 
+       -- This isn't just legacy, but more of a convenience feature
+       local toolcaps = tooldef.tool_capabilities
+       if toolcaps and toolcaps.punch_attack_uses == nil then
+               for _, cap in pairs(toolcaps.groupcaps or {}) do
+                       local level = (cap.maxlevel or 0) - 1
+                       if (cap.uses or 0) ~= 0 and level >= 0 then
+                               toolcaps.punch_attack_uses = cap.uses * (3 ^ level)
+                               break
+                       end
+               end
+       end
+
        core.register_item(name, tooldef)
 end
 
@@ -308,20 +322,13 @@ for name in pairs(forbidden_item_names) do
        register_alias_raw(name, "")
 end
 
-
--- Deprecated:
--- Aliases for core.register_alias (how ironic...)
---core.alias_node = core.register_alias
---core.alias_tool = core.register_alias
---core.alias_craftitem = core.register_alias
-
 --
 -- Built-in node definitions. Also defined in C.
 --
 
 core.register_item(":unknown", {
        type = "none",
-       description = "Unknown Item",
+       description = S("Unknown Item"),
        inventory_image = "unknown_item.png",
        on_place = core.item_place,
        on_secondary_use = core.item_secondary_use,
@@ -331,7 +338,7 @@ core.register_item(":unknown", {
 })
 
 core.register_node(":air", {
-       description = "Air",
+       description = S("Air"),
        inventory_image = "air.png",
        wield_image = "air.png",
        drawtype = "airlike",
@@ -348,7 +355,7 @@ core.register_node(":air", {
 })
 
 core.register_node(":ignore", {
-       description = "Ignore",
+       description = S("Ignore"),
        inventory_image = "ignore.png",
        wield_image = "ignore.png",
        drawtype = "airlike",
@@ -361,11 +368,12 @@ core.register_node(":ignore", {
        air_equivalent = true,
        drop = "",
        groups = {not_in_creative_inventory=1},
+       node_placement_prediction = "",
        on_place = function(itemstack, placer, pointed_thing)
                core.chat_send_player(
                                placer:get_player_name(),
                                core.colorize("#FF0000",
-                               "You can't place 'ignore' nodes!"))
+                               S("You can't place 'ignore' nodes!")))
                return ""
        end,
 })
@@ -395,8 +403,14 @@ function core.override_item(name, redefinition)
        register_item_raw(item)
 end
 
-
-core.callback_origins = {}
+do
+       local default = {mod = "??", name = "??"}
+       core.callback_origins = setmetatable({}, {
+               __index = function()
+                       return default
+               end
+       })
+end
 
 function core.run_callbacks(callbacks, mode, ...)
        assert(type(callbacks) == "table")
@@ -411,9 +425,7 @@ function core.run_callbacks(callbacks, mode, ...)
        local ret = nil
        for i = 1, cb_len do
                local origin = core.callback_origins[callbacks[i]]
-               if origin then
-                       core.set_last_run_mod(origin.mod)
-               end
+               core.set_last_run_mod(origin.mod)
                local cb_ret = callbacks[i](...)
 
                if mode == 0 and i == 1 then
@@ -572,6 +584,7 @@ core.unregister_biome = make_wrap_deregistration(core.register_biome,
                core.clear_registered_biomes, core.registered_biomes)
 
 core.registered_on_chat_messages, core.register_on_chat_message = make_registration()
+core.registered_on_chatcommands, core.register_on_chatcommand = make_registration()
 core.registered_globalsteps, core.register_globalstep = make_registration()
 core.registered_playerevents, core.register_playerevent = make_registration()
 core.registered_on_mods_loaded, core.register_on_mods_loaded = make_registration()
@@ -595,11 +608,13 @@ core.registered_on_item_eats, core.register_on_item_eat = make_registration()
 core.registered_on_punchplayers, core.register_on_punchplayer = make_registration()
 core.registered_on_priv_grant, core.register_on_priv_grant = make_registration()
 core.registered_on_priv_revoke, core.register_on_priv_revoke = make_registration()
+core.registered_on_authplayers, core.register_on_authplayer = make_registration()
 core.registered_can_bypass_userlimit, core.register_can_bypass_userlimit = make_registration()
 core.registered_on_modchannel_message, core.register_on_modchannel_message = make_registration()
-core.registered_on_auth_fail, core.register_on_auth_fail = make_registration()
 core.registered_on_player_inventory_actions, core.register_on_player_inventory_action = make_registration()
 core.registered_allow_player_inventory_actions, core.register_allow_player_inventory_action = make_registration()
+core.registered_on_rightclickplayers, core.register_on_rightclickplayer = make_registration()
+core.registered_on_liquid_transformed, core.register_on_liquid_transformed = make_registration()
 
 --
 -- Compatibility for on_mapgen_init()