Skip to content

Commit

Permalink
Add support for number type settings
Browse files Browse the repository at this point in the history
Fix reset issue
  • Loading branch information
Athozus committed Apr 20, 2024
1 parent 19be2d4 commit 9a52c1c
Showing 1 changed file with 35 additions and 2 deletions.
37 changes: 35 additions & 2 deletions ui/settings.lua
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,35 @@ function mail.show_settings(name)
dataset_str .. [[;]] .. dataset_selected_id .. [[;true]
]]
end

elseif data.type == "number" then
y = y + 1
formspec = formspec .. [[
field[]] .. x+0.275 .. "," .. y .. ";3,0.5;" .. setting .. ";" .. data.label .. [[;]] ..
tostring(field_default) .. [[]
]]
if data.tooltip then
formspec = formspec .. "tooltip[" .. setting .. ";" .. data.tooltip .. "]"
end
if data.dataset then
local formatted_dataset = table.copy(data.dataset)
if data.format then
for i, d in ipairs(formatted_dataset) do
formatted_dataset[i] = data.format(d)
end
end
local dataset_str = table.concat(formatted_dataset, ",")
local dataset_selected_id = 1
for i, d in ipairs(data.dataset) do
if d == field_default then
dataset_selected_id = i
break
end
end
formspec = formspec .. [[
dropdown[]] .. x+3 .. "," .. y-0.45 .. ";3,0.5;" .. "dataset_" .. setting .. ";" ..
dataset_str .. [[;]] .. dataset_selected_id .. [[;true]
]]
end
elseif data.type == "index" then
y = y + 0.2
local formatted_dataset = table.copy(data.dataset)
Expand Down Expand Up @@ -174,8 +202,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
elseif data.type == "string" then
if data.dataset and fields["dataset_" .. setting] then
mail.selected_idxs[setting][playername] = data.dataset[tonumber(fields["dataset_" .. setting])]
mail.show_settings(playername)
end
elseif data.type == "number" then
if data.dataset and fields["dataset_" .. setting] then
mail.selected_idxs[setting][playername] = data.dataset[tonumber(fields["dataset_" .. setting])]
mail.show_settings(playername)
end
mail.show_settings(playername)
elseif data.type == "index" then
mail.selected_idxs[setting][playername] = tonumber(fields[setting])
elseif data.type == "list" then
Expand Down

0 comments on commit 9a52c1c

Please sign in to comment.