From 31f7314591fcd967c1a9a9c7113c3bb09fdc33a7 Mon Sep 17 00:00:00 2001 From: luk3yx Date: Mon, 22 Jan 2024 21:55:53 +1300 Subject: [PATCH] Fix autorun checkbox state tracking --- console.lua | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/console.lua b/console.lua index 571ef17..91fd444 100644 --- a/console.lua +++ b/console.lua @@ -97,7 +97,13 @@ function snippets.update_console(name) minetest.formspec_escape(snippet .. ', owner: ' .. owner) .. ';' .. code .. ']' if selected_snippet then - formspec = formspec .. 'checkbox[12.7,5.05;autorun;Autorun;'..tostring(def and (def.autorun or false))..']' + local autorun + if form.context.autorun == nil then + autorun = def and def.autorun or false + else + autorun = form.context.autorun + end + formspec = formspec .. 'checkbox[12.7,5.05;autorun;Autorun;' .. tostring(autorun) .. ']' end form:set_formspec(formspec) @@ -194,6 +200,7 @@ local function saveform_callback(saveform, fields) owner = name, code = form.context.code, persistent = true, + autorun = form.context.autorun }) form.context.selected_snippet = filename @@ -231,6 +238,7 @@ function callback(form, fields) if form.context.selected_snippet == selected then return end form.context.selected_snippet = selected form.context.text = nil + form.context.autorun = nil local def = snippets.registered_snippets[selected] form.context.code = def and def.code or '' snippets.update_console(name) @@ -256,7 +264,7 @@ function callback(form, fields) saveform:add_callback(saveform_callback) saveform:show() elseif fields.autorun and form.context.selected_snippet then - form.context.autorun = fields.autorun == "true" + form.context.autorun = minetest.is_yes(fields.autorun) elseif fields.quit then form.text = nil end