diff --git a/fs/fs_manage_variables.lua b/fs/fs_manage_variables.lua index 794ba90..dd2a591 100644 --- a/fs/fs_manage_variables.lua +++ b/fs/fs_manage_variables.lua @@ -53,6 +53,33 @@ yl_speak_up.fun_input_fs_manage_variables_check_fields = function(player, formna false) }) return + -- set default value + elseif(fields and fields.set_default_value and fields.default_value) then + -- store the new default value + if(fields.default_value == "") then + fields.default_value = nil + end + local k_long = var_name_with_prefix + local old_val = yl_speak_up.get_variable_metadata(k_long, "default_value", true) + yl_speak_up.set_variable_metadata(k_long, nil, "default_value", nil, fields.default_value) + local new_val = yl_speak_up.get_variable_metadata(k_long, "default_value", true) + yl_speak_up.show_fs(player, "msg", { + input_to = "yl_speak_up:manage_variables", + formspec = "size[10,3.5]".. + "label[0.2,0.0;The "..minetest.colorize("#FFFF00", "default value").. + " for variable\n\t".. + minetest.colorize("#FFFF00", + minetest.formspec_escape(tostring(var_name))).. + "\nhas been changed from\n\t".. + minetest.colorize("#FFFF00", + minetest.formspec_escape(old_val or "")).. + "\nto the NEW value\n\t".. + minetest.colorize("#FFFF00", + minetest.formspec_escape(new_val or "")).."]".. + "button[1.5,3.0;2,0.9;back_from_msg;Back]" + }) + return + -- enable, disable and list variables in debug mode elseif(fields and fields.enable_debug_mode and var_name) then yl_speak_up.set_variable_metadata(var_name, pname, "debug", pname, true) @@ -448,9 +475,23 @@ yl_speak_up.get_fs_manage_variables = function(player, param) "values into this variable.")) local var_type = (yl_speak_up.get_variable_metadata(k_long, "var_type") or "String/text or numerical value, depending on how you use it") - table.insert(formspec, "label[0.2,5.05;Type of variable: ") + -- get the default value as-is (will usually be nil) + local var_default_val = (yl_speak_up.get_variable_metadata(k_long, "default_value", true) + or "") + table.insert(formspec, "label[0.2,4.95;Type of variable: ") table.insert(formspec, minetest.colorize("#FFFF00", var_type)) -- show variable type table.insert(formspec, ".]") + table.insert(formspec, + "label[0.2,5.55;Default value (when not set):]".. + "field[4.9,5.25;4.0,0.6;default_value;;".. + minetest.formspec_escape(var_default_val).."]".. + "button[9.0,5.25;4.5,0.6;set_default_value;Set default value]".. + "tooltip[default_value;By default, variables start unset with value \'nil\'. ".. + "\nIf you set this to a diffrent value, the variable will have this ".. + "\nvalue instead whenever it is unset.".. + "\nNote: Internally it is still stored as \'nil\'.]".. + "tooltip[set_default_value;Store a new default value. Use empty input to set ".. + "back to the default \'nil\'.]") if(var_type == "quest") then table.insert(formspec, "button[4.2,4.75;4.5,0.6;show_quest;Show and edit this quest]") end