mirror of
https://github.com/minetest/minetest_game.git
synced 2024-12-22 14:12:26 +01:00
default.set_inventory_action_loggers
: Hook (instead of replace) callbacks
This commit is contained in:
parent
996fea7cd0
commit
16b6bdde0a
@ -1142,8 +1142,9 @@ the log.
|
|||||||
|
|
||||||
`default.set_inventory_action_loggers(def, name)`
|
`default.set_inventory_action_loggers(def, name)`
|
||||||
|
|
||||||
* sets the callbacks `on_metadata_inventory_move`,
|
* hooks the callbacks `on_metadata_inventory_move`,
|
||||||
`on_metadata_inventory_put` and `on_metadata_inventory_take`
|
`on_metadata_inventory_put` and `on_metadata_inventory_take`
|
||||||
that log corresponding actions
|
that log corresponding actions
|
||||||
|
* after logging the action, the original callback (if any) is called
|
||||||
* `def` See [Node definition]
|
* `def` See [Node definition]
|
||||||
* `name` Description of the node in the log message
|
* `name` Description of the node in the log message
|
||||||
|
@ -744,16 +744,23 @@ function default.log_player_action(player, ...)
|
|||||||
minetest.log("action", msg)
|
minetest.log("action", msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local nop = function() end
|
||||||
function default.set_inventory_action_loggers(def, name)
|
function default.set_inventory_action_loggers(def, name)
|
||||||
|
local on_move = def.on_metadata_inventory_move or nop
|
||||||
def.on_metadata_inventory_move = function(pos, from_list, from_index,
|
def.on_metadata_inventory_move = function(pos, from_list, from_index,
|
||||||
to_list, to_index, count, player)
|
to_list, to_index, count, player)
|
||||||
default.log_player_action(player, "moves stuff in", name, "at", pos)
|
default.log_player_action(player, "moves stuff in", name, "at", pos)
|
||||||
|
return on_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||||
end
|
end
|
||||||
|
local on_put = def.on_metadata_inventory_put or nop
|
||||||
def.on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
def.on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||||
default.log_player_action(player, "moves", stack:get_name(), "to", name, "at", pos)
|
default.log_player_action(player, "moves", stack:get_name(), "to", name, "at", pos)
|
||||||
|
return on_put(pos, listname, index, stack, player)
|
||||||
end
|
end
|
||||||
|
local on_take = def.on_metadata_inventory_take or nop
|
||||||
def.on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
def.on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||||
default.log_player_action(player, "takes", stack:get_name(), "from", name, "at", pos)
|
default.log_player_action(player, "takes", stack:get_name(), "from", name, "at", pos)
|
||||||
|
return on_take(pos, listname, index, stack, player)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user