mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-16 18:01:40 +00:00
Clarify documentation on node/item callbacks (#16385)
This commit is contained in:
parent
a5197a6719
commit
2a96b31ffc
2 changed files with 39 additions and 36 deletions
|
@ -353,7 +353,7 @@ function core.item_place(itemstack, placer, pointed_thing, param2)
|
||||||
return itemstack, nil
|
return itemstack, nil
|
||||||
end
|
end
|
||||||
|
|
||||||
function core.item_secondary_use(itemstack, placer)
|
function core.item_secondary_use(itemstack, user)
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -390,7 +390,7 @@ function core.item_pickup(itemstack, picker, pointed_thing, ...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Pickup item.
|
-- Pick up item
|
||||||
local inv = picker and picker:get_inventory()
|
local inv = picker and picker:get_inventory()
|
||||||
if inv then
|
if inv then
|
||||||
return inv:add_item("main", itemstack)
|
return inv:add_item("main", itemstack)
|
||||||
|
@ -639,6 +639,7 @@ core.nodedef_default = {
|
||||||
on_drop = redef_wrapper(core, 'item_drop'), -- core.item_drop
|
on_drop = redef_wrapper(core, 'item_drop'), -- core.item_drop
|
||||||
on_pickup = redef_wrapper(core, 'item_pickup'), -- core.item_pickup
|
on_pickup = redef_wrapper(core, 'item_pickup'), -- core.item_pickup
|
||||||
on_use = nil,
|
on_use = nil,
|
||||||
|
after_use = nil,
|
||||||
can_dig = nil,
|
can_dig = nil,
|
||||||
|
|
||||||
on_punch = redef_wrapper(core, 'node_punch'), -- core.node_punch
|
on_punch = redef_wrapper(core, 'node_punch'), -- core.node_punch
|
||||||
|
|
|
@ -6148,34 +6148,34 @@ Call these functions only at load time!
|
||||||
* Called every server step, usually interval of 0.1s.
|
* Called every server step, usually interval of 0.1s.
|
||||||
* `dtime` is the time since last execution in seconds.
|
* `dtime` is the time since last execution in seconds.
|
||||||
* `core.register_on_mods_loaded(function())`
|
* `core.register_on_mods_loaded(function())`
|
||||||
* Called after mods have finished loading and before the media is cached or the
|
* Called after all mods have finished loading and before the media is cached
|
||||||
aliases handled.
|
or aliases are handled.
|
||||||
* `core.register_on_shutdown(function())`
|
* `core.register_on_shutdown(function())`
|
||||||
* Called before server shutdown
|
* Called during server shutdown before players are kicked.
|
||||||
* Players that were kicked by the shutdown procedure are still fully accessible
|
|
||||||
in `core.get_connected_players()`.
|
|
||||||
* **Warning**: If the server terminates abnormally (i.e. crashes), the
|
* **Warning**: If the server terminates abnormally (i.e. crashes), the
|
||||||
registered callbacks **will likely not be run**. Data should be saved at
|
registered callbacks will likely **not run**. Data should be saved at
|
||||||
semi-frequent intervals as well as on server shutdown.
|
semi-frequent intervals as well as on server shutdown.
|
||||||
* `core.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing))`
|
* `core.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing))`
|
||||||
* Called when a node has been placed
|
* Called after a node has been placed.
|
||||||
* If return `true` no item is taken from `itemstack`
|
* If `true` is returned no item is taken from `itemstack`
|
||||||
* `placer` may be any valid ObjectRef or nil.
|
* `placer` may be any valid ObjectRef or nil.
|
||||||
* **Not recommended**; use `on_construct` or `after_place_node` in node
|
* **Not recommended**; use `on_construct` or `after_place_node` in node
|
||||||
definition whenever possible.
|
definition whenever possible.
|
||||||
* `core.register_on_dignode(function(pos, oldnode, digger))`
|
* `core.register_on_dignode(function(pos, oldnode, digger))`
|
||||||
* Called when a node has been dug.
|
* Called after a node has been dug.
|
||||||
* **Not recommended**; Use `on_destruct` or `after_dig_node` in node
|
* **Not recommended**; Use `on_destruct` or `after_dig_node` in node
|
||||||
definition whenever possible.
|
definition whenever possible.
|
||||||
* `core.register_on_punchnode(function(pos, node, puncher, pointed_thing))`
|
* `core.register_on_punchnode(function(pos, node, puncher, pointed_thing))`
|
||||||
* Called when a node is punched
|
* Called when a node is punched
|
||||||
* `core.register_on_generated(function(minp, maxp, blockseed))`
|
* `core.register_on_generated(function(minp, maxp, blockseed))`
|
||||||
* Called after generating a piece of world between `minp` and `maxp`.
|
* Called after a piece of world between `minp` and `maxp` has been
|
||||||
|
generated and written into the map.
|
||||||
* **Avoid using this** whenever possible. As with other callbacks this blocks
|
* **Avoid using this** whenever possible. As with other callbacks this blocks
|
||||||
the main thread and introduces noticeable latency.
|
the main thread and is prone to introduce noticeable latency/lag.
|
||||||
Consider [Mapgen environment](#mapgen-environment) for an alternative.
|
Consider [Mapgen environment](#mapgen-environment) as an alternative.
|
||||||
* `core.register_on_newplayer(function(ObjectRef))`
|
* `core.register_on_newplayer(function(player))`
|
||||||
* Called when a new player enters the world for the first time
|
* Called when a new player enters the world for the first time
|
||||||
|
* `player`: ObjectRef
|
||||||
* `core.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage))`
|
* `core.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage))`
|
||||||
* Called when a player is punched
|
* Called when a player is punched
|
||||||
* Note: This callback is invoked even if the punched player is dead.
|
* Note: This callback is invoked even if the punched player is dead.
|
||||||
|
@ -7116,8 +7116,12 @@ Defaults for the `on_place` and `on_drop` item definition functions
|
||||||
* `core.item_pickup(itemstack, picker, pointed_thing, time_from_last_punch, ...)`
|
* `core.item_pickup(itemstack, picker, pointed_thing, time_from_last_punch, ...)`
|
||||||
* Runs callbacks registered by `core.register_on_item_pickup` and adds
|
* Runs callbacks registered by `core.register_on_item_pickup` and adds
|
||||||
the item to the picker's `"main"` inventory list.
|
the item to the picker's `"main"` inventory list.
|
||||||
* Parameters are the same as in `on_pickup`.
|
* Parameters and return value are the same as `on_pickup`.
|
||||||
* Returns the leftover itemstack.
|
* **Note**: is not called when wielded item overrides `on_pickup`
|
||||||
|
* `core.item_secondary_use(itemstack, user)`
|
||||||
|
* Global secondary use callback. Does nothing.
|
||||||
|
* Parameters and return value are the same as `on_secondary_use`.
|
||||||
|
* **Note**: is not called when wielded item overrides `on_secondary_use`
|
||||||
* `core.item_drop(itemstack, dropper, pos)`
|
* `core.item_drop(itemstack, dropper, pos)`
|
||||||
* Converts `itemstack` to an in-world Lua entity.
|
* Converts `itemstack` to an in-world Lua entity.
|
||||||
* `itemstack` (`ItemStack`) is modified (cleared) on success.
|
* `itemstack` (`ItemStack`) is modified (cleared) on success.
|
||||||
|
@ -7140,7 +7144,7 @@ Defaults for the `on_punch` and `on_dig` node definition callbacks
|
||||||
* Calls functions registered by `core.register_on_punchnode()`
|
* Calls functions registered by `core.register_on_punchnode()`
|
||||||
* `core.node_dig(pos, node, digger)`
|
* `core.node_dig(pos, node, digger)`
|
||||||
* Checks if node can be dug, puts item into inventory, removes node
|
* Checks if node can be dug, puts item into inventory, removes node
|
||||||
* Calls functions registered by `core.registered_on_dignodes()`
|
* Calls functions registered by `core.register_on_dignode()`
|
||||||
|
|
||||||
Sounds
|
Sounds
|
||||||
------
|
------
|
||||||
|
@ -9988,15 +9992,15 @@ Used by `core.register_node`, `core.register_craftitem`, and
|
||||||
-- When item is eaten with `core.do_item_eat`
|
-- When item is eaten with `core.do_item_eat`
|
||||||
|
|
||||||
punch_use = <SimpleSoundSpec>,
|
punch_use = <SimpleSoundSpec>,
|
||||||
-- When item is used with the 'punch/mine' key pointing at a node or entity
|
-- When item is used with the 'punch/dig' key pointing at a node or entity
|
||||||
|
|
||||||
punch_use_air = <SimpleSoundSpec>,
|
punch_use_air = <SimpleSoundSpec>,
|
||||||
-- When item is used with the 'punch/mine' key pointing at nothing (air)
|
-- When item is used with the 'punch/dig' key pointing at nothing (air)
|
||||||
},
|
},
|
||||||
|
|
||||||
on_place = function(itemstack, placer, pointed_thing),
|
on_place = function(itemstack, placer, pointed_thing),
|
||||||
-- When the 'place' key was pressed with the item in hand
|
-- Called when the 'place' key was pressed with the item in hand
|
||||||
-- and a node was pointed at.
|
-- and pointing at a node.
|
||||||
-- Shall place item and return the leftover itemstack
|
-- Shall place item and return the leftover itemstack
|
||||||
-- or nil to not modify the inventory.
|
-- or nil to not modify the inventory.
|
||||||
-- The placer may be any ObjectRef or nil.
|
-- The placer may be any ObjectRef or nil.
|
||||||
|
@ -10007,7 +10011,7 @@ Used by `core.register_node`, `core.register_craftitem`, and
|
||||||
-- Function must return either nil if inventory shall not be modified,
|
-- Function must return either nil if inventory shall not be modified,
|
||||||
-- or an itemstack to replace the original itemstack.
|
-- or an itemstack to replace the original itemstack.
|
||||||
-- The user may be any ObjectRef or nil.
|
-- The user may be any ObjectRef or nil.
|
||||||
-- default: nil
|
-- default: core.item_secondary_use
|
||||||
|
|
||||||
on_drop = function(itemstack, dropper, pos),
|
on_drop = function(itemstack, dropper, pos),
|
||||||
-- Shall drop item and return the leftover itemstack.
|
-- Shall drop item and return the leftover itemstack.
|
||||||
|
@ -10025,28 +10029,26 @@ Used by `core.register_node`, `core.register_craftitem`, and
|
||||||
-- luaentity) as `type="object"` `pointed_thing`.
|
-- luaentity) as `type="object"` `pointed_thing`.
|
||||||
-- * `time_from_last_punch, ...` (optional): Other parameters from
|
-- * `time_from_last_punch, ...` (optional): Other parameters from
|
||||||
-- `luaentity:on_punch`.
|
-- `luaentity:on_punch`.
|
||||||
-- default: `core.item_pickup`
|
-- default: core.item_pickup
|
||||||
|
|
||||||
on_use = function(itemstack, user, pointed_thing),
|
on_use = function(itemstack, user, pointed_thing),
|
||||||
-- default: nil
|
-- Called when user presses the 'punch/dig' key with the item in hand.
|
||||||
-- When user pressed the 'punch/mine' key with the item in hand.
|
|
||||||
-- Function must return either nil if inventory shall not be modified,
|
-- Function must return either nil if inventory shall not be modified,
|
||||||
-- or an itemstack to replace the original itemstack.
|
-- or an itemstack to replace the original itemstack.
|
||||||
-- e.g. itemstack:take_item(); return itemstack
|
-- e.g. itemstack:take_item(); return itemstack
|
||||||
-- Otherwise, the function is free to do what it wants.
|
|
||||||
-- The user may be any ObjectRef or nil.
|
-- The user may be any ObjectRef or nil.
|
||||||
-- The default functions handle regular use cases.
|
-- Note that defining this callback will prevent normal punching/digging
|
||||||
|
-- behavior on the client, as the interaction is instead "forwarded" to the
|
||||||
|
-- server.
|
||||||
|
-- default: nil
|
||||||
|
|
||||||
after_use = function(itemstack, user, node, digparams),
|
after_use = function(itemstack, user, node, digparams),
|
||||||
-- default: nil
|
-- Called after a tool is used to dig a node and will replace the default
|
||||||
-- If defined, should return an itemstack and will be called instead of
|
-- tool wear-out handling.
|
||||||
-- wearing out the item (if tool). If returns nil, does nothing.
|
-- Shall return the leftover itemstack or nil to not
|
||||||
-- If after_use doesn't exist, it is the same as:
|
-- modify the dropped item.
|
||||||
-- function(itemstack, user, node, digparams)
|
|
||||||
-- itemstack:add_wear(digparams.wear)
|
|
||||||
-- return itemstack
|
|
||||||
-- end
|
|
||||||
-- The user may be any ObjectRef or nil.
|
-- The user may be any ObjectRef or nil.
|
||||||
|
-- default: nil
|
||||||
|
|
||||||
_custom_field = whatever,
|
_custom_field = whatever,
|
||||||
-- Add your own custom fields. By convention, all custom field names
|
-- Add your own custom fields. By convention, all custom field names
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue