Fix restore of banner desc after anvil rename
This commit is contained in:
parent
a7f0d8c82c
commit
2c0eee27fc
3 changed files with 31 additions and 2 deletions
|
@ -129,8 +129,16 @@ local function update_anvil_slots(meta)
|
|||
-- Don't rename if names are identical
|
||||
if new_name ~= old_name then
|
||||
-- Rename item
|
||||
meta:set_string("description", new_name)
|
||||
-- Double-save the name internally, too
|
||||
if new_name == "" and name_item:get_definition()._mcl_generate_description then
|
||||
-- _mcl_generate_description(itemstack): If defined, set custom item description of itemstack.
|
||||
-- This function should be defined for items with an advanced description.
|
||||
-- See mcl_banners for an example.
|
||||
name_item:get_definition()._mcl_generate_description(name_item)
|
||||
else
|
||||
-- Set description
|
||||
meta:set_string("description", new_name)
|
||||
end
|
||||
-- Save the raw name internally, too
|
||||
meta:set_string("name", new_name)
|
||||
new_output = name_item
|
||||
elseif just_rename then
|
||||
|
|
|
@ -302,6 +302,19 @@ for colorid, colortab in pairs(mcl_banners.colors) do
|
|||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
_mcl_generate_description = function(itemstack)
|
||||
local meta = itemstack:get_meta()
|
||||
local layers_raw = meta:get_string("layers")
|
||||
if not layers_raw then
|
||||
return nil
|
||||
end
|
||||
local layers = minetest.deserialize(layers_raw)
|
||||
local desc = itemstack:get_definition().description
|
||||
local newdesc = mcl_banners.make_advanced_banner_description(desc, layers)
|
||||
meta:set_string("description", newdesc)
|
||||
return newdesc
|
||||
end,
|
||||
})
|
||||
|
||||
if minetest.get_modpath("mcl_core") and minetest.get_modpath("mcl_wool") then
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue