Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions API.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@ Used by `wrench.register_node`.
-- * If `metas.text` is defined: node description` + " with text "<TEXT>""
-- * If `metas.channel` is defined: node description` + " with channel "<CHANNEL>""
-- * Otherwise: node description + " with configuration"

short_description = "",
short_description = function(pos, meta, node, player),
-- The optional short description used for the picked up node.
-- Must be either a string or a function that returns a string.

drop = true,
drop = "",
Expand Down
19 changes: 16 additions & 3 deletions functions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,15 @@ local function get_description(def, pos, meta, node, player)
end
end

local function save_data(stack, data, desc)
local function get_short_description(def, pos, meta, node, player)
if type(def.short_description) == "string" then
return def.short_description
elseif type(def.short_description) == "function" then
return def.short_description(pos, meta, node, player)
end
end

local function save_data(stack, data, desc, short_desc)
local meta = stack:get_meta()
data = minetest.serialize(data)
if compress_data then
Expand All @@ -68,6 +76,9 @@ local function save_data(stack, data, desc)
end
meta:set_string("data", data)
meta:set_string("description", desc)
if short_desc then
meta:set_string("short_description", short_desc)
end
return stack
end

Expand Down Expand Up @@ -159,7 +170,7 @@ function wrench.pickup_node(pos, player)
list[i] = ""
else
if wrench.blacklisted_items[stack:get_name()] then
local desc = stack:get_description()
local desc = stack:get_short_description()
return false, errors.bad_item(desc)
end
local sdata = get_data(stack, true)
Expand Down Expand Up @@ -192,7 +203,9 @@ function wrench.pickup_node(pos, player)
drop_node.name = def.drop
end
local stack = ItemStack(drop_node.name)
save_data(stack, data, get_description(def, pos, meta, drop_node, player))
local desc = get_description(def, pos, meta, drop_node, player)
local short_desc = get_short_description(def, pos, meta, drop_node, player)
save_data(stack, data, desc, short_desc)
if #stack:to_string() > 65000 then
return false, errors.metadata
end
Expand Down