missions/steps/givebook.lua
NatureFreshMilk 02cfd18b4d luacheck
2019-07-30 12:56:56 +02:00

67 lines
1.2 KiB
Lua

missions.register_step({
type = "givebook",
name = "Give a book",
privs = {missions_book=true},
create = function()
return {title="", message=""}
end,
edit_formspec = function(ctx)
local stepdata = ctx.step.data
local formspec = "size[8,8;]" ..
"label[0,0;Give a book]" ..
"field[0,1;8,1;title;Title;" .. stepdata.title .. "]" ..
"textarea[0,2;8,4;message;Message;" .. stepdata.message .. "]" ..
"button[0,7;8,1;save;Save]"
return formspec;
end,
update = function(ctx)
local fields = ctx.fields
local stepdata = ctx.step.data
if fields.title then
stepdata.title = fields.title
end
if fields.message then
stepdata.message = fields.message
end
ctx.show_mission()
end,
on_step_enter = function(ctx)
local player = ctx.player
local stepdata = ctx.step.data
local new_stack = ItemStack("default:book_written")
local data = {}
data.owner = "Mission"
data.title = stepdata.title
data.description = stepdata.title
data.text = stepdata.message
data.page = 1
data.page_max = 1
new_stack:get_meta():from_table({ fields = data })
local player_inv = player:get_inventory()
player_inv:add_item("main", new_stack)
ctx.on_success()
end
})