added numeric value accessor to number field

This commit is contained in:
Mikayla Fischler 2024-10-14 01:19:56 -04:00
parent 4bd64e71bf
commit 30f37c0ef9
3 changed files with 11 additions and 5 deletions

View File

@ -247,5 +247,11 @@ return function (args)
---@class NumberField:graphics_element ---@class NumberField:graphics_element
local NumberField, id = e.complete(true) local NumberField, id = e.complete(true)
-- get the numeric value of this field
---@return number
function NumberField.get_numeric()
return tonumber(e.value) or 0
end
return NumberField, id return NumberField, id
end end

View File

@ -144,7 +144,7 @@ local function new_view(root)
TextBox{parent=u_div,x=14,y=8,text="mB/t",width=4,fg_bg=label_fg_bg} TextBox{parent=u_div,x=14,y=8,text="mB/t",width=4,fg_bg=label_fg_bg}
local burn_cmd = NumberField{parent=u_div,x=5,y=8,width=8,default=0.01,min=0.01,max_frac_digits=2,max_chars=8,allow_decimal=true,align_right=true,fg_bg=style.field,dis_fg_bg=style.field_disable} local burn_cmd = NumberField{parent=u_div,x=5,y=8,width=8,default=0.01,min=0.01,max_frac_digits=2,max_chars=8,allow_decimal=true,align_right=true,fg_bg=style.field,dis_fg_bg=style.field_disable}
local set_burn = function () unit.set_burn(burn_cmd.get_value()) end local set_burn = function () unit.set_burn(burn_cmd.get_numeric()) end
local set_burn_btn = PushButton{parent=u_div,x=19,y=8,text="SET",min_width=5,fg_bg=cpair(colors.green,colors.black),active_fg_bg=cpair(colors.white,colors.black),dis_fg_bg=style.btn_disable,callback=set_burn} local set_burn_btn = PushButton{parent=u_div,x=19,y=8,text="SET",min_width=5,fg_bg=cpair(colors.green,colors.black),active_fg_bg=cpair(colors.white,colors.black),dis_fg_bg=style.btn_disable,callback=set_burn}
-- enable/disable controls based on group assignment (start button is separate) -- enable/disable controls based on group assignment (start button is separate)

View File

@ -97,7 +97,7 @@ local function new_view(root)
--#region unit settings/status --#region unit settings/status
local rate_limits = {} local rate_limits = {} ---@type NumberField[]
for i = 1, db.facility.num_units do for i = 1, db.facility.num_units do
local u_pane = panes[i] local u_pane = panes[i]
@ -207,10 +207,10 @@ local function new_view(root)
local function _start_auto() local function _start_auto()
local limits = {} local limits = {}
for i = 1, #rate_limits do limits[i] = rate_limits[i].get_value() end for i = 1, #rate_limits do limits[i] = rate_limits[i].get_numeric() end
process.process_start(mode.get_value(), b_target.get_value(), db.energy_convert_to_fe(c_target.get_value()), process.process_start(mode.get_value(), b_target.get_numeric(), db.energy_convert_to_fe(c_target.get_numeric()),
db.energy_convert_to_fe(g_target.get_value()), limits) db.energy_convert_to_fe(g_target.get_numeric()), limits)
end end
local start = HazardButton{parent=c_div,x=2,y=9,text="START",accent=colors.lightBlue,callback=_start_auto,timeout=3,fg_bg=hzd_fg_bg,dis_colors=dis_colors} local start = HazardButton{parent=c_div,x=2,y=9,text="START",accent=colors.lightBlue,callback=_start_auto,timeout=3,fg_bg=hzd_fg_bg,dis_colors=dis_colors}