]> git.lizzy.rs Git - minetest.git/blobdiff - builtin/misc_register.lua
Add a callback: minetest.register_on_craft(itemstack, player,
[minetest.git] / builtin / misc_register.lua
index 77c594de2c9e8a217be01e18572cee3184f220b8..aa8399f1631770845fc18316b04df05a7905e25f 100644 (file)
@@ -103,6 +103,10 @@ function minetest.register_item(name, itemdef)
 
        -- Apply defaults and add to registered_* table
        if itemdef.type == "node" then
+               -- Use the nodebox as selection box if it's not set manually
+               if itemdef.drawtype == "nodebox" and not itemdef.selection_box then
+                       itemdef.selection_box = itemdef.node_box
+               end
                setmetatable(itemdef, {__index = minetest.nodedef_default})
                minetest.registered_nodes[itemdef.name] = itemdef
        elseif itemdef.type == "craft" then
@@ -219,6 +223,27 @@ function minetest.register_alias(name, convert_to)
        end
 end
 
+local register_biome_raw = minetest.register_biome
+minetest.registered_biomes = {}
+function minetest.register_biome(biome)
+       minetest.registered_biomes[biome.name] = biome
+       register_biome_raw(biome)
+end
+
+function minetest.on_craft(itemstack, player, old_craft_list, craft_inv)
+       for _, func in ipairs(minetest.registered_on_crafts) do
+               itemstack = func(itemstack, player, old_craft_list, craft_inv) or itemstack
+       end
+       return itemstack
+end
+
+function minetest.craft_predict(itemstack, player, old_craft_list, craft_inv)
+       for _, func in ipairs(minetest.registered_craft_predicts) do
+               itemstack = func(itemstack, player, old_craft_list, craft_inv) or itemstack
+       end
+       return itemstack
+end
+
 -- Alias the forbidden item names to "" so they can't be
 -- created via itemstrings (e.g. /give)
 local name
@@ -249,8 +274,8 @@ minetest.register_item(":unknown", {
 
 minetest.register_node(":air", {
        description = "Air (you hacker you!)",
-       inventory_image = "unknown_block.png",
-       wield_image = "unknown_block.png",
+       inventory_image = "unknown_node.png",
+       wield_image = "unknown_node.png",
        drawtype = "airlike",
        paramtype = "light",
        sunlight_propagates = true,
@@ -265,8 +290,8 @@ minetest.register_node(":air", {
 
 minetest.register_node(":ignore", {
        description = "Ignore (you hacker you!)",
-       inventory_image = "unknown_block.png",
-       wield_image = "unknown_block.png",
+       inventory_image = "unknown_node.png",
+       wield_image = "unknown_node.png",
        drawtype = "airlike",
        paramtype = "none",
        sunlight_propagates = false,
@@ -303,6 +328,8 @@ end
 
 minetest.registered_on_chat_messages, minetest.register_on_chat_message = make_registration()
 minetest.registered_globalsteps, minetest.register_globalstep = make_registration()
+minetest.registered_on_mapgen_inits, minetest.register_on_mapgen_init = make_registration()
+minetest.registered_on_shutdown, minetest.register_on_shutdown = make_registration()
 minetest.registered_on_punchnodes, minetest.register_on_punchnode = make_registration()
 minetest.registered_on_placenodes, minetest.register_on_placenode = make_registration()
 minetest.registered_on_dignodes, minetest.register_on_dignode = make_registration()
@@ -313,4 +340,7 @@ minetest.registered_on_respawnplayers, minetest.register_on_respawnplayer = make
 minetest.registered_on_joinplayers, minetest.register_on_joinplayer = make_registration()
 minetest.registered_on_leaveplayers, minetest.register_on_leaveplayer = make_registration()
 minetest.registered_on_player_receive_fields, minetest.register_on_player_receive_fields = make_registration_reverse()
+minetest.registered_on_cheats, minetest.register_on_cheat = make_registration()
+minetest.registered_on_crafts, minetest.register_on_craft = make_registration()
+minetest.registered_craft_predicts, minetest.register_craft_predict = make_registration()