67 lines
1.2 KiB
Lua
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
|
|
|
|
})
|
|
|