#544 #545 updates to graphics indicator elements

This commit is contained in:
Mikayla 2024-09-25 01:01:38 +00:00
parent 2becaeccd7
commit 851d481b76
15 changed files with 105 additions and 134 deletions

View File

@ -20,11 +20,11 @@ local flasher = require("graphics.flasher")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new alarm indicator light -- Create a new alarm indicator light element.
---@nodiscard ---@nodiscard
---@param args alarm_indicator_light ---@param args alarm_indicator_light
---@return graphics_element element, element_id id ---@return AlarmLight element, element_id id
local function alarm_indicator_light(args) return function (args)
element.assert(type(args.label) == "string", "label is a required field") element.assert(type(args.label) == "string", "label is a required field")
element.assert(type(args.c1) == "number", "c1 is a required field") element.assert(type(args.c1) == "number", "c1 is a required field")
element.assert(type(args.c2) == "number", "c2 is a required field") element.assert(type(args.c2) == "number", "c2 is a required field")
@ -49,7 +49,7 @@ local function alarm_indicator_light(args)
local c3 = colors.toBlit(args.c3) local c3 = colors.toBlit(args.c3)
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = 1 e.value = 1
@ -113,10 +113,8 @@ local function alarm_indicator_light(args)
e.w_write(args.label) e.w_write(args.label)
end end
-- initial draw ---@class AlarmLight:graphics_element
e.redraw() local AlarmLight, id = e.complete(true)
return e.complete() return AlarmLight, id
end end
return alarm_indicator_light

View File

@ -13,11 +13,11 @@ local element = require("graphics.element")
---@field x? integer 1 if omitted ---@field x? integer 1 if omitted
---@field y? integer auto incremented if omitted ---@field y? integer auto incremented if omitted
-- new core map box -- Create a new core map box element.
---@nodiscard ---@nodiscard
---@param args core_map_args ---@param args core_map_args
---@return graphics_element element, element_id id ---@return CoreMap element, element_id id
local function core_map(args) return function (args)
element.assert(util.is_int(args.reactor_l), "reactor_l is a required field") element.assert(util.is_int(args.reactor_l), "reactor_l is a required field")
element.assert(util.is_int(args.reactor_w), "reactor_w is a required field") element.assert(util.is_int(args.reactor_w), "reactor_w is a required field")
@ -29,7 +29,7 @@ local function core_map(args)
args.fg_bg = core.cpair(args.parent.get_fg_bg().fgd, colors.gray) args.fg_bg = core.cpair(args.parent.get_fg_bg().fgd, colors.gray)
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = 0 e.value = 0
@ -165,10 +165,8 @@ local function core_map(args)
draw_core(e.value) draw_core(e.value)
end end
-- initial draw ---@class CoreMap:graphics_element
e.redraw() local CoreMap, id = e.complete(true)
return e.complete() return CoreMap, id
end end
return core_map

View File

@ -19,11 +19,11 @@ local element = require("graphics.element")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new data indicator -- Create new data indicator element.
---@nodiscard ---@nodiscard
---@param args data_indicator_args ---@param args data_indicator_args
---@return graphics_element element, element_id id ---@return DataIndicator element, element_id id
local function data(args) return function (args)
element.assert(type(args.label) == "string", "label is a required field") element.assert(type(args.label) == "string", "label is a required field")
element.assert(type(args.format) == "string", "format is a required field") element.assert(type(args.format) == "string", "format is a required field")
element.assert(args.value ~= nil, "value is a required field") element.assert(args.value ~= nil, "value is a required field")
@ -32,7 +32,7 @@ local function data(args)
args.height = 1 args.height = 1
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = args.value e.value = args.value
@ -94,10 +94,8 @@ local function data(args)
e.on_update(e.value) e.on_update(e.value)
end end
-- initial draw ---@class DataIndicator:graphics_element
e.redraw() local DataIndicator, id = e.complete(true)
return e.complete() return DataIndicator, id
end end
return data

View File

@ -17,13 +17,13 @@ local element = require("graphics.element")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new horizontal bar -- Create a new horizontal fill bar indicator element.
---@nodiscard ---@nodiscard
---@param args hbar_args ---@param args hbar_args
---@return graphics_element element, element_id id ---@return graphics_element element, element_id id
local function hbar(args) return function (args)
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = 0.0 e.value = 0.0
@ -119,10 +119,8 @@ local function hbar(args)
e.on_update(e.value) e.on_update(e.value)
end end
-- initial draw ---@class HorizontalBar:graphics_element
e.redraw() local HorizontalBar, id = e.complete(true)
return e.complete() return HorizontalBar, id
end end
return hbar

View File

@ -18,11 +18,11 @@ local element = require("graphics.element")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new icon indicator -- Create a new icon indicator element.
---@nodiscard ---@nodiscard
---@param args icon_indicator_args ---@param args icon_indicator_args
---@return graphics_element element, element_id id ---@return IconIndicator element, element_id id
local function icon(args) return function (args)
element.assert(type(args.label) == "string", "label is a required field") element.assert(type(args.label) == "string", "label is a required field")
element.assert(type(args.states) == "table", "states is a required field") element.assert(type(args.states) == "table", "states is a required field")
@ -30,7 +30,7 @@ local function icon(args)
args.width = math.max(args.min_label_width or 1, string.len(args.label)) + 4 args.width = math.max(args.min_label_width or 1, string.len(args.label)) + 4
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = args.value or 1 e.value = args.value or 1
if e.value == true then e.value = 2 end if e.value == true then e.value = 2 end
@ -71,10 +71,8 @@ local function icon(args)
e.on_update(e.value) e.on_update(e.value)
end end
-- initial draw ---@class IconIndicator:graphics_element
e.redraw() local IconIndicator, id = e.complete(true)
return e.complete() return IconIndicator, id
end end
return icon

View File

@ -18,11 +18,11 @@ local flasher = require("graphics.flasher")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new indicator light -- Create a new indicator light element.
---@nodiscard ---@nodiscard
---@param args indicator_light_args ---@param args indicator_light_args
---@return graphics_element element, element_id id ---@return IndicatorLight element, element_id id
local function indicator_light(args) return function (args)
element.assert(type(args.label) == "string", "label is a required field") element.assert(type(args.label) == "string", "label is a required field")
element.assert(type(args.colors) == "table", "colors is a required field") element.assert(type(args.colors) == "table", "colors is a required field")
@ -36,7 +36,7 @@ local function indicator_light(args)
local flash_on = true local flash_on = true
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = false e.value = false
@ -93,10 +93,8 @@ local function indicator_light(args)
e.w_write(args.label) e.w_write(args.label)
end end
-- initial draw ---@class IndicatorLight:graphics_element
e.redraw() local IndicatorLight, id = e.complete(true)
return e.complete() return IndicatorLight, id
end end
return indicator_light

View File

@ -18,11 +18,11 @@ local flasher = require("graphics.flasher")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new indicator LED -- Create a new indicator LED element.
---@nodiscard ---@nodiscard
---@param args indicator_led_args ---@param args indicator_led_args
---@return graphics_element element, element_id id ---@return LED element, element_id id
local function indicator_led(args) return function (args)
element.assert(type(args.label) == "string", "label is a required field") element.assert(type(args.label) == "string", "label is a required field")
element.assert(type(args.colors) == "table", "colors is a required field") element.assert(type(args.colors) == "table", "colors is a required field")
@ -36,7 +36,7 @@ local function indicator_led(args)
local flash_on = true local flash_on = true
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = false e.value = false
@ -95,10 +95,8 @@ local function indicator_led(args)
end end
end end
-- initial draw ---@class LED:graphics_element
e.redraw() local LED, id = e.complete(true)
return e.complete() return LED, id
end end
return indicator_led

View File

@ -20,11 +20,12 @@ local flasher = require("graphics.flasher")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new dual LED indicator light -- Create a new three-state LED indicator light. Two "active" states (colors c1 and c2) and an inactive state (off).<br>
-- Values: 1 = off, 2 = c1, 3 = c2
---@nodiscard ---@nodiscard
---@param args indicator_led_pair_args ---@param args indicator_led_pair_args
---@return graphics_element element, element_id id ---@return LEDPair element, element_id id
local function indicator_led_pair(args) return function (args)
element.assert(type(args.label) == "string", "label is a required field") element.assert(type(args.label) == "string", "label is a required field")
element.assert(type(args.off) == "number", "off is a required field") element.assert(type(args.off) == "number", "off is a required field")
element.assert(type(args.c1) == "number", "c1 is a required field") element.assert(type(args.c1) == "number", "c1 is a required field")
@ -44,7 +45,7 @@ local function indicator_led_pair(args)
local c2 = colors.toBlit(args.c2) local c2 = colors.toBlit(args.c2)
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = 1 e.value = 1
@ -104,10 +105,8 @@ local function indicator_led_pair(args)
end end
end end
-- initial draw ---@class LEDPair:graphics_element
e.redraw() local LEDPair, id = e.complete(true)
return e.complete() return LEDPair, id
end end
return indicator_led_pair

View File

@ -19,11 +19,11 @@ local element = require("graphics.element")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new power indicator -- Create a new power indicator. Variant of a data indicator with dynamic energy units.
---@nodiscard ---@nodiscard
---@param args power_indicator_args ---@param args power_indicator_args
---@return graphics_element element, element_id id ---@return PowerIndicator element, element_id id
local function power(args) return function (args)
element.assert(type(args.label) == "string", "label is a required field") element.assert(type(args.label) == "string", "label is a required field")
element.assert(type(args.unit) == "string", "unit is a required field") element.assert(type(args.unit) == "string", "unit is a required field")
element.assert(type(args.value) == "number", "value is a required field") element.assert(type(args.value) == "number", "value is a required field")
@ -32,7 +32,7 @@ local function power(args)
args.height = 1 args.height = 1
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = args.value e.value = args.value
@ -82,10 +82,8 @@ local function power(args)
e.on_update(e.value) e.on_update(e.value)
end end
-- initial draw ---@class PowerIndicator:graphics_element
e.redraw() local PowerIndicator, id = e.complete(true)
return e.complete() return PowerIndicator, id
end end
return power

View File

@ -13,11 +13,11 @@ local element = require("graphics.element")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new RGB LED indicator light -- Create a new RGB LED indicator light element.
---@nodiscard ---@nodiscard
---@param args indicator_led_rgb_args ---@param args indicator_led_rgb_args
---@return graphics_element element, element_id id ---@return RGBLED element, element_id id
local function indicator_led_rgb(args) return function (args)
element.assert(type(args.label) == "string", "label is a required field") element.assert(type(args.label) == "string", "label is a required field")
element.assert(type(args.colors) == "table", "colors is a required field") element.assert(type(args.colors) == "table", "colors is a required field")
@ -25,7 +25,7 @@ local function indicator_led_rgb(args)
args.width = math.max(args.min_label_width or 0, string.len(args.label)) + 2 args.width = math.max(args.min_label_width or 0, string.len(args.label)) + 2
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = 1 e.value = 1
@ -52,10 +52,8 @@ local function indicator_led_rgb(args)
end end
end end
-- initial draw ---@class RGBLED:graphics_element
e.redraw() local RGBLED, id = e.complete(true)
return e.complete() return RGBLED, id
end end
return indicator_led_rgb

View File

@ -19,11 +19,11 @@ local element = require("graphics.element")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new radiation indicator -- Create a new radiation indicator element. Variant of a data indicator using dynamic Sievert unit precision.
---@nodiscard ---@nodiscard
---@param args rad_indicator_args ---@param args rad_indicator_args
---@return graphics_element element, element_id id ---@return RadIndicator element, element_id id
local function rad(args) return function (args)
element.assert(type(args.label) == "string", "label is a required field") element.assert(type(args.label) == "string", "label is a required field")
element.assert(type(args.format) == "string", "format is a required field") element.assert(type(args.format) == "string", "format is a required field")
element.assert(util.is_int(args.width), "width is a required field") element.assert(util.is_int(args.width), "width is a required field")
@ -31,7 +31,7 @@ local function rad(args)
args.height = 1 args.height = 1
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = args.value or types.new_zero_radiation_reading() e.value = args.value or types.new_zero_radiation_reading()
@ -83,10 +83,8 @@ local function rad(args)
e.on_update(e.value) e.on_update(e.value)
end end
-- initial draw ---@class RadIndicator:graphics_element
e.redraw() local RadIndicator, id = e.complete(true)
return e.complete() return RadIndicator, id
end end
return rad

View File

@ -15,16 +15,16 @@ local element = require("graphics.element")
---@field fg_bg? cpair foreground/background colors (foreground is used for high signal quality) ---@field fg_bg? cpair foreground/background colors (foreground is used for high signal quality)
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new signal bar -- Create a new signal bar indicator element.
---@nodiscard ---@nodiscard
---@param args signal_bar_args ---@param args signal_bar_args
---@return graphics_element element, element_id id ---@return SignalBar element, element_id id
local function signal_bar(args) return function (args)
args.height = 1 args.height = 1
args.width = util.trinary(args.compact, 1, 2) args.width = util.trinary(args.compact, 1, 2)
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = 0 e.value = 0
@ -76,10 +76,8 @@ local function signal_bar(args)
end end
end end
-- initial draw ---@class SignalBar:graphics_element
e.redraw() local SignalBar, id = e.complete(true)
return e.complete() return SignalBar, id
end end
return signal_bar

View File

@ -20,11 +20,11 @@ local element = require("graphics.element")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new state indicator -- Create a new state indicator element.
---@nodiscard ---@nodiscard
---@param args state_indicator_args ---@param args state_indicator_args
---@return graphics_element element, element_id id ---@return StateIndicator element, element_id id
local function state_indicator(args) return function (args)
element.assert(type(args.states) == "table", "states is a required field") element.assert(type(args.states) == "table", "states is a required field")
if util.is_int(args.height) then if util.is_int(args.height) then
@ -52,7 +52,7 @@ local function state_indicator(args)
end end
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = args.value or 1 e.value = args.value or 1
@ -74,10 +74,8 @@ local function state_indicator(args)
---@param val integer indicator state ---@param val integer indicator state
function e.set_value(val) e.on_update(val) end function e.set_value(val) e.on_update(val) end
-- initial draw ---@class StateIndicator:graphics_element
e.redraw() local StateIndicator, id = e.complete(true)
return e.complete() return StateIndicator, id
end end
return state_indicator

View File

@ -20,11 +20,11 @@ local flasher = require("graphics.flasher")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new tri-state indicator light -- Create a new tri-state indicator light element.
---@nodiscard ---@nodiscard
---@param args tristate_indicator_light_args ---@param args tristate_indicator_light_args
---@return graphics_element element, element_id id ---@return TriIndicatorLight element, element_id id
local function tristate_indicator_light(args) return function (args)
element.assert(type(args.label) == "string", "label is a required field") element.assert(type(args.label) == "string", "label is a required field")
element.assert(type(args.c1) == "number", "c1 is a required field") element.assert(type(args.c1) == "number", "c1 is a required field")
element.assert(type(args.c2) == "number", "c2 is a required field") element.assert(type(args.c2) == "number", "c2 is a required field")
@ -38,7 +38,7 @@ local function tristate_indicator_light(args)
args.width = math.max(args.min_label_width or 1, string.len(args.label)) + 2 args.width = math.max(args.min_label_width or 1, string.len(args.label)) + 2
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = 1 e.value = 1
@ -102,10 +102,8 @@ local function tristate_indicator_light(args)
e.w_write(args.label) e.w_write(args.label)
end end
-- initial draw ---@class TriIndicatorLight:graphics_element
e.redraw() local TriIndicatorLight, id = e.complete(true)
return e.complete() return TriIndicatorLight, id
end end
return tristate_indicator_light

View File

@ -15,13 +15,13 @@ local element = require("graphics.element")
---@field fg_bg? cpair foreground/background colors ---@field fg_bg? cpair foreground/background colors
---@field hidden? boolean true to hide on initial draw ---@field hidden? boolean true to hide on initial draw
-- new vertical bar -- Create a new vertical fill bar indicator element.
---@nodiscard ---@nodiscard
---@param args vbar_args ---@param args vbar_args
---@return graphics_element element, element_id id ---@return VerticalBar element, element_id id
local function vbar(args) return function (args)
-- create new graphics element base object -- create new graphics element base object
local e = element.new(args) local e = element.new(args --[[@as graphics_args]])
e.value = 0.0 e.value = 0.0
@ -98,10 +98,8 @@ local function vbar(args)
e.redraw() e.redraw()
end end
-- initial draw ---@class VerticalBar:graphics_element
e.redraw() local VerticalBar, id = e.complete(true)
return e.complete() return VerticalBar, id
end end
return vbar