forked from Sokomine/yl_speak_up
added show all quest steps button
This commit is contained in:
parent
c3d97233dd
commit
314c637aae
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user