added show all quest steps button

This commit is contained in:
Sokomine 2023-09-24 23:28:34 +02:00
parent c3d97233dd
commit 314c637aae

View File

@ -190,6 +190,7 @@ yl_speak_up.input_fs_manage_quest_steps = function(player, formname, fields)
-- was a quest step selected from the start/end/unconnected lists?
local list = {}
local field_name = ""
local row_offset = 0
if( fields.select_from_start_steps and fields.select_from_start_steps ~= "") then
-- selected a start quest step
list = yl_speak_up.quest_step_get_start_end_unconnected_lists(step_data).start_steps
@ -211,6 +212,13 @@ yl_speak_up.input_fs_manage_quest_steps = function(player, formname, fields)
elseif(res.current_step and fields.next_steps_show) then
list = yl_speak_up.quest_step_required_for(step_data, res.current_step)
field_name = "next_steps_show"
elseif(fields.add_from_available) then
-- selected a quest step from the list of available steps offered
list = yl_speak_up.speak_to[pname].available_quest_steps or {}
field_name = "add_from_available"
-- this table has a header
row_offset = 1
-- show prev logical step
elseif(fields.show_prev_step) then
if( #step_data[res.current_step].one_step_required > 0) then
@ -228,9 +236,9 @@ yl_speak_up.input_fs_manage_quest_steps = function(player, formname, fields)
if(list and field_name) then
local selected = minetest.explode_table_event(fields[field_name])
-- these tables don't use header
if(selected and selected.row and selected.row > 0 and selected.row <= #list) then
show_step = list[selected.row]
-- if a table uses a header, row_offset will be 1; else 0
if(selected and selected.row and selected.row > row_offset and selected.row <= #list + row_offset) then
show_step = list[selected.row - row_offset]
end
end
-- actually show the selected quest step
@ -238,6 +246,12 @@ yl_speak_up.input_fs_manage_quest_steps = function(player, formname, fields)
yl_speak_up.speak_to[pname].quest_step = show_step
yl_speak_up.show_fs(player, "manage_quest_steps", show_step)
return
-- show the entire list
elseif(fields.show_step_list) then
yl_speak_up.speak_to[res.pname].tmp_index_general = -1
yl_speak_up.speak_to[pname].quest_step = nil
yl_speak_up.show_fs(player, "manage_quest_steps", nil)
return
end
@ -362,7 +376,8 @@ yl_speak_up.get_fs_manage_quest_steps = function(player, param)
"label[0.2,2.0;"..em("Required previous").."]"..
"label[0.2,2.4;quest step(s):]"..
"style[insert_before_next_step,insert_after_prev_step,"..
"add_to_one_needed,add_to_all_needed;bgcolor=blue;textcolor=yellow]")
"add_to_one_needed,add_to_all_needed;bgcolor=blue;textcolor=yellow]"..
"button[0.1,0.1;5.6,0.8;show_step_list;Show all quest steps]")
yl_speak_up.get_fs_show_list_in_box(formspec,
em("One of").." these quest steps:", "one_step_required",
step_data[selected].one_step_required,