mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-23 02:51:06 +01:00
Overwrite item tooltip of written books
This commit is contained in:
parent
729f4821c0
commit
79576e37ea
1 changed files with 30 additions and 4 deletions
|
@ -105,7 +105,6 @@ minetest.register_on_player_receive_fields(function ( player, formname, fields )
|
||||||
meta:set_string("text", fields.text)
|
meta:set_string("text", fields.text)
|
||||||
player:set_wielded_item(stack)
|
player:set_wielded_item(stack)
|
||||||
|
|
||||||
local text = get_text(stack)
|
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
local formspec = "size[8,9]"..
|
local formspec = "size[8,9]"..
|
||||||
"background[-0.5,-0.5;9,10;mcl_books_book_bg.png]"..
|
"background[-0.5,-0.5;9,10;mcl_books_book_bg.png]"..
|
||||||
|
@ -130,6 +129,10 @@ minetest.register_on_player_receive_fields(function ( player, formname, fields )
|
||||||
meta:set_string("title", fields.title)
|
meta:set_string("title", fields.title)
|
||||||
meta:set_string("author", name)
|
meta:set_string("author", name)
|
||||||
meta:set_string("text", text)
|
meta:set_string("text", text)
|
||||||
|
meta:set_string("description", string.format("“%s”",fields.title) .. "\n" .. string.format("by %s", name))
|
||||||
|
|
||||||
|
-- The book copy counter. 0 = original, 1 = copy of original, 2 = copy of copy of original, …
|
||||||
|
meta:set_int("generation", 0)
|
||||||
|
|
||||||
player:set_wielded_item(newbook)
|
player:set_wielded_item(newbook)
|
||||||
else
|
else
|
||||||
|
@ -137,7 +140,6 @@ minetest.register_on_player_receive_fields(function ( player, formname, fields )
|
||||||
end
|
end
|
||||||
elseif ((formname == "mcl_books:signing") and fields and fields.cancel) then
|
elseif ((formname == "mcl_books:signing") and fields and fields.cancel) then
|
||||||
local book = player:get_wielded_item()
|
local book = player:get_wielded_item()
|
||||||
local name = player:get_player_name()
|
|
||||||
if book:get_name() == "mcl_books:writable_book" then
|
if book:get_name() == "mcl_books:writable_book" then
|
||||||
write(book, player, { type = "nothing" })
|
write(book, player, { type = "nothing" })
|
||||||
end
|
end
|
||||||
|
@ -194,11 +196,35 @@ minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv
|
||||||
local copymeta = original:get_metadata()
|
local copymeta = original:get_metadata()
|
||||||
itemstack:set_metadata(copymeta)
|
itemstack:set_metadata(copymeta)
|
||||||
else
|
else
|
||||||
|
-- Copy metadata
|
||||||
local ometa = original:get_meta()
|
local ometa = original:get_meta()
|
||||||
local imeta = itemstack:get_meta()
|
local imeta = itemstack:get_meta()
|
||||||
imeta:set_string("title", ometa:get_string("title"))
|
local title = ometa:get_string("title")
|
||||||
imeta:set_string("author", ometa:get_string("author"))
|
local author = ometa:get_string("author")
|
||||||
|
imeta:set_string("title", title)
|
||||||
|
imeta:set_string("author", author)
|
||||||
imeta:set_string("text", text)
|
imeta:set_string("text", text)
|
||||||
|
|
||||||
|
-- Increase book generation and update description
|
||||||
|
local generation = ometa:get_int("generation")
|
||||||
|
|
||||||
|
local desc
|
||||||
|
if generation == 0 then
|
||||||
|
desc = string.format("Copy of “%s”", title)
|
||||||
|
elseif generation == 1 then
|
||||||
|
desc = string.format("Copy of Copy of “%s”", title)
|
||||||
|
else
|
||||||
|
desc = "Tattered Book"
|
||||||
|
end
|
||||||
|
desc = desc .. "\n" .. string.format("by %s", author)
|
||||||
|
|
||||||
|
generation = generation + 1
|
||||||
|
if generation < 1 then
|
||||||
|
generation = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
imeta:set_string("description", desc)
|
||||||
|
imeta:set_int("generation", generation)
|
||||||
end
|
end
|
||||||
-- put the book with metadata back in the craft grid
|
-- put the book with metadata back in the craft grid
|
||||||
craft_inv:set_stack("craft", index, original)
|
craft_inv:set_stack("craft", index, original)
|
||||||
|
|
Loading…
Reference in a new issue