forked from Sokomine/yl_speak_up
89 lines
3.5 KiB
Lua
89 lines
3.5 KiB
Lua
-- helper functions for yl_speak_up.input_fs_manage_quests(..)
|
|
-- returns the index of the new quest
|
|
yl_speak_up.input_fs_manage_quests_add_new_entry = function(pname, entry_name)
|
|
local res = yl_speak_up.add_quest(pname, entry_name,
|
|
"Name of your quest",
|
|
"Enter a longer description here for describing the quest "..
|
|
"to players who search for one.",
|
|
"Enter a short description here describing what the quest is about.",
|
|
"Room for comments/notes")
|
|
-- TODO: might make sense to show the error message somewhere
|
|
if(res ~= "OK") then
|
|
return -1
|
|
end
|
|
local quest_list = yl_speak_up.get_sorted_quest_list(pname)
|
|
return table.indexof(quest_list, entry_name)
|
|
end
|
|
|
|
-- helper functions for yl_speak_up.input_fs_manage_quests(..)
|
|
-- returns a text describing if deleting the quest worked
|
|
yl_speak_up.input_fs_manage_quests_del_old_entry = function(pname, entry_name)
|
|
return "NOT IMPLEMENTED YET"
|
|
-- delete (empty) variable
|
|
-- return yl_speak_up.del_quest_variable(pname, entry_name, nil)
|
|
end
|
|
|
|
-- helper functions for yl_speak_up.input_fs_manage_quests(..)
|
|
-- implements all the functions that are specific to managing quests and not part of
|
|
-- general item management
|
|
yl_speak_up.input_fs_manage_quests_check_fields = function(player, formname, fields, quest_name, list_of_entries)
|
|
local pname = player:get_player_name()
|
|
if(not(quest_name)) then
|
|
quest_name = ""
|
|
end
|
|
if(fields and fields.show_variable) then
|
|
yl_speak_up.show_fs(player, "manage_variables", quest_name)
|
|
return
|
|
end
|
|
-- this function didn't have anything to do
|
|
return "NOTHING FOUND"
|
|
end
|
|
|
|
|
|
-- makes use of yl_speak_up.input_fs_manage_general and is thus pretty short
|
|
yl_speak_up.input_fs_manage_quests = function(player, formname, fields)
|
|
local pname = player:get_player_name()
|
|
local quest_list = yl_speak_up.get_sorted_quest_list(pname)
|
|
local res = yl_speak_up.input_fs_manage_general(player, formname, fields,
|
|
-- what_is_the_list_about, min_length, max_length, function_add_new_entry,
|
|
"quest", 2, 80,
|
|
yl_speak_up.input_fs_manage_quests_add_new_entry,
|
|
quest_list,
|
|
yl_speak_up.input_fs_manage_quests_del_old_entry,
|
|
yl_speak_up.input_fs_manage_quests_check_fields)
|
|
return true
|
|
end
|
|
|
|
|
|
yl_speak_up.get_fs_manage_quests = function(player, param)
|
|
local pname = player:get_player_name()
|
|
local quest_list = yl_speak_up.get_sorted_quest_list(pname)
|
|
local formspec = {}
|
|
if(param and param ~= "") then
|
|
local index = table.indexof(quest_list, param)
|
|
yl_speak_up.speak_to[pname].tmp_index_general = index + 1
|
|
end
|
|
table.insert(formspec, "size[18,12]"..
|
|
"label[0.2,1.2;A quest is a linear sequence of quest steps. Quests can "..
|
|
"depend on and influence other quests.\n"..
|
|
"Progress for each player is stored in a variable. The name of "..
|
|
"that variable cannot be changed after creation.]")
|
|
local selected = yl_speak_up.get_fs_manage_general(player, param,
|
|
formspec, quest_list,
|
|
"Create quest",
|
|
"Create a new varialbe with the name\n"..
|
|
"you entered in the field to the left.",
|
|
"quest",
|
|
"Enter the name of the new quest you want to create.\n"..
|
|
"You can't change this name afterwards. But you *can*\n"..
|
|
"add and change a human readable description later on.",
|
|
"If you click here, the selected quest will be deleted.\n"..
|
|
"This will only be possible if it's not used anywhere.")
|
|
if(selected and selected ~= "") then
|
|
local k = selected
|
|
-- index 1 is "Add variable:"
|
|
table.insert(formspec, "button[12,2.15;4.5,0.6;show_variable;Show and edit this variable]")
|
|
end
|
|
return table.concat(formspec, "")
|
|
end
|