diff --git a/mods/default/chests.lua b/mods/default/chests.lua index b303ed22..585b5f7c 100644 --- a/mods/default/chests.lua +++ b/mods/default/chests.lua @@ -222,16 +222,7 @@ function default.chest.register_chest(prefixed_name, d) end end - def.on_metadata_inventory_move = function(pos, from_list, from_index, - to_list, to_index, count, player) - default.log_action(player, pos, "moves stuff in chest") - end - def.on_metadata_inventory_put = function(pos, listname, index, stack, player) - default.log_action(player, pos, "moves " .. stack:get_name() .. " to chest") - end - def.on_metadata_inventory_take = function(pos, listname, index, stack, player) - default.log_action(player, pos, "takes " .. stack:get_name() .. " from chest") - end + default.set_inventory_action_loggers(def, "chest") local def_opened = table.copy(def) local def_closed = table.copy(def) diff --git a/mods/default/functions.lua b/mods/default/functions.lua index a4a377a9..4ff00421 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -765,3 +765,16 @@ function default.log_action(player, pos, message) " " .. message .. " at " .. minetest.pos_to_string(pos)) end end + +function default.set_inventory_action_loggers(def, name) + def.on_metadata_inventory_move = function(pos, from_list, from_index, + to_list, to_index, count, player) + default.log_action(player, pos, "moves stuff in " .. name) + end + def.on_metadata_inventory_put = function(pos, listname, index, stack, player) + default.log_action(player, pos, "moves " .. stack:get_name() .. " to " .. name) + end + def.on_metadata_inventory_take = function(pos, listname, index, stack, player) + default.log_action(player, pos, "takes " .. stack:get_name() .. " from " .. name) + end +end diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 6d74171e..eaa21d35 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -2525,7 +2525,7 @@ local function update_bookshelf(pos) end end -minetest.register_node("default:bookshelf", { +local default_bookshelf_def = { description = S("Bookshelf"), tiles = {"default_wood.png", "default_wood.png", "default_wood.png", "default_wood.png", "default_bookshelf.png", "default_bookshelf.png"}, @@ -2550,18 +2550,6 @@ minetest.register_node("default:bookshelf", { end return 0 end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - default.log_action(player, pos, "moves stuff in bookshelf") - update_bookshelf(pos) - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - default.log_action(player, pos, "puts stuff to bookshelf") - update_bookshelf(pos) - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - default.log_action(player, pos, "takes stuff from bookshelf") - update_bookshelf(pos) - end, on_blast = function(pos) local drops = {} default.get_inventory_drops(pos, "books", drops) @@ -2569,7 +2557,9 @@ minetest.register_node("default:bookshelf", { minetest.remove_node(pos) return drops end, -}) +} +default.set_inventory_action_loggers(default_bookshelf_def, "bookshelf") +minetest.register_node("default:bookshelf", default_bookshelf_def) local function register_sign(material, desc, def) minetest.register_node("default:sign_wall_" .. material, { diff --git a/mods/vessels/init.lua b/mods/vessels/init.lua index eb66dddd..4bd0fb4d 100644 --- a/mods/vessels/init.lua +++ b/mods/vessels/init.lua @@ -49,7 +49,7 @@ local function update_vessels_shelf(pos) end end -minetest.register_node("vessels:shelf", { +local vessels_shelf_def = { description = S("Vessels Shelf"), tiles = {"default_wood.png", "default_wood.png", "default_wood.png", "default_wood.png", "vessels_shelf.png", "vessels_shelf.png"}, @@ -74,18 +74,6 @@ minetest.register_node("vessels:shelf", { end return 0 end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - default.log_action(player, pos, "moves stuff in vessels shelf") - update_vessels_shelf(pos) - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - default.log_action(player, pos, "moves stuff to vessels shelf") - update_vessels_shelf(pos) - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - default.log_action(player, pos, "takes stuff from vessels shelf") - update_vessels_shelf(pos) - end, on_blast = function(pos) local drops = {} default.get_inventory_drops(pos, "vessels", drops) @@ -93,7 +81,9 @@ minetest.register_node("vessels:shelf", { minetest.remove_node(pos) return drops end, -}) +} +default.set_inventory_action_loggers(vessels_shelf_def, "vessels shelf") +minetest.register_node("vessels:shelf", vessels_shelf_def) minetest.register_craft({ output = "vessels:shelf",