diff --git a/fs_edit_general.lua b/fs_edit_general.lua index 28556e0..033ee92 100644 --- a/fs_edit_general.lua +++ b/fs_edit_general.lua @@ -1028,6 +1028,9 @@ yl_speak_up.input_fs_edit_option_related = function(player, formname, fields, if(fields.manage_variables) then -- remember which formspec we are comming from yl_speak_up.speak_to[pname][ "working_at" ] = formspec_input_to + if(data.variable) then + yl_speak_up.speak_to[pname].tmp_index_variable = data.variable - 1 + end yl_speak_up.show_fs(player, "manage_variables") return end diff --git a/fs_manage_variables.lua b/fs_manage_variables.lua index e49b99e..376dfbf 100644 --- a/fs_manage_variables.lua +++ b/fs_manage_variables.lua @@ -8,6 +8,7 @@ yl_speak_up.input_fs_manage_variables = function(player, formname, fields) -- leave this formspec if(fields and (fields.quit or fields.exit or fields.back)) then local last_fs = yl_speak_up.speak_to[pname][ "working_at" ] + yl_speak_up.speak_to[pname].tmp_index_variable = nil yl_speak_up.show_fs(player, last_fs) return -- add a new variable? @@ -63,6 +64,21 @@ yl_speak_up.input_fs_manage_variables = function(player, formname, fields) false) }) return + -- scroll through the variables with prev/next buttons + elseif(fields and (fields["prev"] or fields["next"])) then + local var_list = yl_speak_up.get_quest_variables(pname, true) + -- make names of own variables shorter + yl_speak_up.strip_pname_from_varlist(var_list, pname) + local index = yl_speak_up.speak_to[pname].tmp_index_variable + if(not(index)) then + yl_speak_up.speak_to[pname].tmp_index_variable = 1 + elseif(fields["prev"] and index > 1) then + yl_speak_up.speak_to[pname].tmp_index_variable = index - 1 + elseif(fields["next"] and index <= #var_list) then + yl_speak_up.speak_to[pname].tmp_index_variable = index + 1 + end + yl_speak_up.show_fs(player, "manage_variables", fields.stored_value_for_player) + return end -- which variable is currently selected? @@ -482,6 +498,16 @@ yl_speak_up.get_fs_manage_variables = function(player, param) "player.\nShow these values in a table.]".. debug_button end + if(yl_speak_up.speak_to[pname].tmp_index_variable > 1) then + additional_buttons = additional_buttons.. + "button[4.0,0.2;2.0,0.6;prev;< Prev]".. + "button[4.0,11.0;2.0,0.6;prev;< Prev]" + end + if(yl_speak_up.speak_to[pname].tmp_index_variable <= #var_list) then + additional_buttons = additional_buttons.. + "button[12.0,0.2;2.0,0.6;next;Next >]".. + "button[12.0,11.0;2.0,0.6;next;Next >]" + end return "size[18,12]".. "label[7.0,0.4;* Manage your variables *]".. "label[0.2,1.2;Note: Each variable will store a diffrent value for each player who "..