From 352a0322f4eea43dce7f209def8c68bef372cab8 Mon Sep 17 00:00:00 2001 From: Sokomine Date: Tue, 19 Sep 2023 00:32:32 +0200 Subject: [PATCH] passing mode of how/where to add new quest steps differntly now --- fs_add_quest_steps.lua | 19 ++++++++++--------- fs_manage_quest_steps.lua | 13 ++++++++++++- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/fs_add_quest_steps.lua b/fs_add_quest_steps.lua index 7c36cf5..e7b193b 100644 --- a/fs_add_quest_steps.lua +++ b/fs_add_quest_steps.lua @@ -172,26 +172,26 @@ yl_speak_up.get_fs_add_quest_steps = function(player, param) current_step = yl_speak_up.speak_to[pname].quest_step this_step_data = step_data[current_step] end - local fields = nil - if(param and type(param) == "table" and param.fields and type(param.fields) == "table") then - fields = param.fields + local mode = "" + if(pname and yl_speak_up.speak_to[pname] and yl_speak_up.speak_to[pname].quest_step_mode) then + mode = yl_speak_up.speak_to[pname].quest_step_mode end local y_pos = 3.3 - if(fields and current_step and fields.insert_after_prev_step) then + if(current_step and mode == "insert_after_prev_step") then local prev_step = "-" if(this_step_data and this_step_data.one_step_required and #this_step_data.one_step_required > 0) then prev_step = #this_step_data.one_step_required[1] end table.insert(formspec, "label[0.2,3.3;between the previous step:]") table.insert(formspec, "label[1.0,3.7;") - table.insert(formspec, minetest.colorize("#9999FF", minetest.formspec_escape(prev_step))) + table.insert(formspec, minetest.colorize("#AAFFAA", minetest.formspec_escape(prev_step))) table.insert(formspec, "]") table.insert(formspec, "label[0.2,4.1;and the currently selected step:]") table.insert(formspec, "label[1.0,4.5;") table.insert(formspec, minetest.colorize("#FFFF00", minetest.formspec_escape(current_step))) table.insert(formspec, "]") y_pos = 5.3 - elseif(fields and current_step and fields.insert_before_next_step) then + elseif(current_step and mode == "insert_before_next_step") then local next_step = "-" if(current_step and required_for_steps[current_step] and #required_for_steps[current_step] > 0) then next_step = #required_for_steps[current_step][1] @@ -205,7 +205,7 @@ yl_speak_up.get_fs_add_quest_steps = function(player, param) table.insert(formspec, minetest.colorize("#AAFFAA", minetest.formspec_escape(next_step))) table.insert(formspec, "]") y_pos = 5.3 - elseif(fields and current_step and fields.add_to_one_needed) then + elseif(current_step and mode == "add_to_one_needed") then table.insert(formspec, "label[0.2,3.3;as a requirement to the currently selected step:]") table.insert(formspec, "label[1.0,3.7;") table.insert(formspec, minetest.colorize("#FFFF00", minetest.formspec_escape(current_step))) @@ -219,13 +219,13 @@ yl_speak_up.get_fs_add_quest_steps = function(player, param) step_data, required_for_steps) table.insert(formspec, "label[0.2,7.5;(Click on an entry to delete it from the list above.)]") y_pos = 8.3 - elseif(fields and current_step and fields.add_to_all_needed) then + elseif(current_step and mode == "add_to_all_needed") then table.insert(formspec, "label[0.2,3.3;as a requirement to the currently selected step:]") table.insert(formspec, "label[1.0,3.7;") table.insert(formspec, minetest.colorize("#FFFF00", minetest.formspec_escape(current_step))) table.insert(formspec, "]") table.insert(formspec, "label[0.2,4.1;so that ".. - minetest.colorize("#AAFFAA", "all").. + minetest.colorize("#9999FF", "all").. " of these requirements are fulfilled:]") yl_speak_up.quest_step_list_show_table(formspec, "0.2,4.3;11.0,3.0;delete_from_all_steps_required;", @@ -240,6 +240,7 @@ yl_speak_up.get_fs_add_quest_steps = function(player, param) for k, v in pairs(step_data) do table.insert(available_steps, k) end + table.sort(available_steps) table.insert(formspec, "label[0.2,") table.insert(formspec, tostring(y_pos)) table.insert(formspec, ";or select an existing quest step from the list below:]") diff --git a/fs_manage_quest_steps.lua b/fs_manage_quest_steps.lua index 024457d..7b1ee03 100644 --- a/fs_manage_quest_steps.lua +++ b/fs_manage_quest_steps.lua @@ -80,7 +80,18 @@ yl_speak_up.input_fs_manage_quest_steps = function(player, formname, fields) -- let that function sort out what to do; -- yl_speak_up.speak_to[pname].q_id and yl_speak_up.speak_to[pname].quest_step -- ought to be set to the current quest and step by now - yl_speak_up.show_fs(player, "add_quest_steps", {fields=fields}) + if(fields.add_to_one_needed) then + yl_speak_up.speak_to[pname].quest_step_mode = "add_to_one_needed" + elseif(fields.add_to_all_needed) then + yl_speak_up.speak_to[pname].quest_step_mode = "add_to_all_needed" + elseif(fields.insert_after_prev_step) then + yl_speak_up.speak_to[pname].quest_step_mode = "insert_after_prev_step" + elseif(fields.insert_before_next_step) then + yl_speak_up.speak_to[pname].quest_step_mode = "insert_before_next_step" + else + yl_speak_up.speak_to[pname].quest_step_mode = nil + end + yl_speak_up.show_fs(player, "add_quest_steps") return end local quest_step_list = yl_speak_up.get_sorted_quest_step_list(pname)