added edit button to colored dialog text

This commit is contained in:
Sokomine 2021-07-01 17:24:24 +02:00
parent 2071a45f3d
commit ff2ba081a9
2 changed files with 28 additions and 8 deletions

View File

@ -1410,7 +1410,8 @@ yl_speak_up.get_fs_edit_option_related = function(player, table_click_result,
data.on_failure, data.on_failure,
"1.2,5.8;18.0,2.0;d_text", "1.2,5.8;18.0,2.0;d_text",
", but with the following *modified* text", ", but with the following *modified* text",
":]") ":]",
"button_effect_on_failure_text_change")
end end
formspec = formspec.. formspec = formspec..
"label[0.2,3.3;If the *previous* effect failed,]".. "label[0.2,3.3;If the *previous* effect failed,]"..
@ -1651,15 +1652,17 @@ yl_speak_up.set_on_action_failure_dialog = function(pname, data, instruction)
dialog, dialog,
data, data,
sorted_dialog_list[ nr - 1], sorted_dialog_list[ nr - 1],
"1.2,10.2.0;18.0,1.8;d_text", "1.2,10.2;18.0,1.8;d_text",
"label[13.8,9.9;and show the following *modified* text:]", "label[13.8,9.9;and show the following *modified* text:]",
"") "",
"button_action_on_failure_text_change")
end end
return on_failure_dialog return on_failure_dialog
end end
yl_speak_up.show_colored_dialog_text = function(dialog, data, d_id, hypertext_pos, alternate_text, postfix) yl_speak_up.show_colored_dialog_text = function(dialog, data, d_id, hypertext_pos,
alternate_text, postfix, button_name)
if(not(data)) then if(not(data)) then
return "" return ""
end end
@ -1697,9 +1700,23 @@ yl_speak_up.show_colored_dialog_text = function(dialog, data, d_id, hypertext_po
-- pname -- pname
"<style color=#FF8800>$PLAYER_NAME$</style>") "<style color=#FF8800>$PLAYER_NAME$</style>")
local edit_button = ""
-- if there is the possibility that an alternate text may be displayed: allow to edit it
-- and calculate the position of the button from the hypertext_pos position and size
if(button_name and button_name ~= "") then
local parts = string.split(hypertext_pos, ";")
local start = string.split(parts[1], ",")
local size = string.split(parts[2], ",")
edit_button = "button_exit["..
tostring(tonumber(start[1]) + tonumber(size[1]) - 3.5)..","..
tostring(tonumber(start[2]) + tonumber(size[2]) - 0.9)..";"..
"3.0,0.7;"..button_name..";Edit this text]"
end
return add_info_alternate_text.. return add_info_alternate_text..
postfix.. postfix..
"hypertext["..hypertext_pos..";<global background=#"..color.."><normal>".. "hypertext["..hypertext_pos..";<global background=#"..color.."><normal>"..
minetest.formspec_escape(text or "?").. minetest.formspec_escape(text or "?")..
"\n</normal>]" "\n</normal>]"..
-- display the edit button *inside*/on top of the hypertext field
edit_button
end end

View File

@ -331,7 +331,8 @@ yl_speak_up.get_fs_edit_option_dialog = function(player, n_id, d_id, o_id, calle
action_data.a_on_failure, action_data.a_on_failure,
"1.2,0.7;19.6,2.5;d_text_next", "1.2,0.7;19.6,2.5;d_text_next",
"with the *modified* text", "with the *modified* text",
":]").. ":]",
"button_edit_action_failed_dialog")..
"container_end[]" "container_end[]"
else else
action_text = action_text.. action_text = action_text..
@ -388,7 +389,8 @@ yl_speak_up.get_fs_edit_option_dialog = function(player, n_id, d_id, o_id, calle
target_dialog, target_dialog,
"1.2,0.7;19.6,2.5;d_text", "1.2,0.7;19.6,2.5;d_text",
"label[13.5,0.4;with the following *modified* text:]", "label[13.5,0.4;with the following *modified* text:]",
"").. "",
"button_edit_action_success_dialog")..
"container_end[]" "container_end[]"
end end
action_text = action_text.."container_end[]" action_text = action_text.."container_end[]"
@ -416,7 +418,8 @@ yl_speak_up.get_fs_edit_option_dialog = function(player, n_id, d_id, o_id, calle
d_id, d_id,
"1.2,0.3;20.2,2.5;d_text", "1.2,0.3;20.2,2.5;d_text",
"", -- no modifications possible at this step "", -- no modifications possible at this step
"").. "",
"").. -- no edit button here as this text cannot be changed here
"tooltip[1.2,0.3;20.2,3.0;This is what the NPC says to the player.]".. "tooltip[1.2,0.3;20.2,3.0;This is what the NPC says to the player.]"..
"container_end[]".. "container_end[]"..