#344 graphics assertion overhaul

This commit is contained in:
Mikayla Fischler
2023-09-30 11:46:47 -04:00
parent ed4180a072
commit 625feb3fd1
31 changed files with 126 additions and 113 deletions

View File

@@ -25,13 +25,13 @@ local flasher = require("graphics.flasher")
---@param args alarm_indicator_light
---@return graphics_element element, element_id id
local function alarm_indicator_light(args)
assert(type(args.label) == "string", "indicators.alight: label is a required field")
assert(type(args.c1) == "number", "indicators.alight: c1 is a required field")
assert(type(args.c2) == "number", "indicators.alight: c2 is a required field")
assert(type(args.c3) == "number", "indicators.alight: c3 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.c2) == "number", "c2 is a required field")
element.assert(type(args.c3) == "number", "c3 is a required field")
if args.flash then
assert(util.is_int(args.period), "indicators.alight: period is a required field if flash is enabled")
element.assert(util.is_int(args.period), "period is a required field if flash is enabled")
end
-- single line

View File

@@ -18,8 +18,8 @@ local element = require("graphics.element")
---@param args core_map_args
---@return graphics_element element, element_id id
local function core_map(args)
assert(util.is_int(args.reactor_l), "indicators.coremap: reactor_l is a required field")
assert(util.is_int(args.reactor_w), "indicators.coremap: reactor_w 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")
-- require max dimensions
args.width = 18

View File

@@ -24,10 +24,10 @@ local element = require("graphics.element")
---@param args data_indicator_args
---@return graphics_element element, element_id id
local function data(args)
assert(type(args.label) == "string", "indicators.data: label is a required field")
assert(type(args.format) == "string", "indicators.data: format is a required field")
assert(args.value ~= nil, "indicators.data: value is a required field")
assert(util.is_int(args.width), "indicators.data: width 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(args.value ~= nil, "value is a required field")
element.assert(util.is_int(args.width), "width is a required field")
args.height = 1

View File

@@ -22,9 +22,6 @@ local element = require("graphics.element")
---@param args hbar_args
---@return graphics_element element, element_id id
local function hbar(args)
-- properties/state
local last_num_bars = -1
-- create new graphics element base object
local e = element.new(args)
@@ -33,7 +30,9 @@ local function hbar(args)
-- bar width is width - 5 characters for " 100%" if showing percent
local bar_width = util.trinary(args.show_percent, e.frame.w - 5, e.frame.w)
assert(bar_width > 0, "indicators.hbar: too small for bar")
element.assert(bar_width > 0, "too small for bar")
local last_num_bars = -1
-- determine bar colors
local bar_bkg = e.fg_bg.blit_bkg

View File

@@ -23,8 +23,8 @@ local element = require("graphics.element")
---@param args icon_indicator_args
---@return graphics_element element, element_id id
local function icon(args)
assert(type(args.label) == "string", "indicators.icon: label is a required field")
assert(type(args.states) == "table", "indicators.icon: states 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")
args.height = 1
args.width = math.max(args.min_label_width or 1, string.len(args.label)) + 4

View File

@@ -23,11 +23,11 @@ local flasher = require("graphics.flasher")
---@param args indicator_led_args
---@return graphics_element element, element_id id
local function indicator_led(args)
assert(type(args.label) == "string", "indicators.led: label is a required field")
assert(type(args.colors) == "table", "indicators.led: colors 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")
if args.flash then
assert(util.is_int(args.period), "indicators.led: period is a required field if flash is enabled")
element.assert(util.is_int(args.period), "period is a required field if flash is enabled")
end
args.height = 1

View File

@@ -25,13 +25,13 @@ local flasher = require("graphics.flasher")
---@param args indicator_led_pair_args
---@return graphics_element element, element_id id
local function indicator_led_pair(args)
assert(type(args.label) == "string", "indicators.ledpair: label is a required field")
assert(type(args.off) == "number", "indicators.ledpair: off is a required field")
assert(type(args.c1) == "number", "indicators.ledpair: c1 is a required field")
assert(type(args.c2) == "number", "indicators.ledpair: c2 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.c1) == "number", "c1 is a required field")
element.assert(type(args.c2) == "number", "c2 is a required field")
if args.flash then
assert(util.is_int(args.period), "indicators.ledpair: period is a required field if flash is enabled")
element.assert(util.is_int(args.period), "period is a required field if flash is enabled")
end
args.height = 1

View File

@@ -18,8 +18,8 @@ local element = require("graphics.element")
---@param args indicator_led_rgb_args
---@return graphics_element element, element_id id
local function indicator_led_rgb(args)
assert(type(args.label) == "string", "indicators.ledrgb: label is a required field")
assert(type(args.colors) == "table", "indicators.ledrgb: colors 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")
args.height = 1
args.width = math.max(args.min_label_width or 0, string.len(args.label)) + 2

View File

@@ -23,11 +23,11 @@ local flasher = require("graphics.flasher")
---@param args indicator_light_args
---@return graphics_element element, element_id id
local function indicator_light(args)
assert(type(args.label) == "string", "indicators.light: label is a required field")
assert(type(args.colors) == "table", "indicators.light: colors 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")
if args.flash then
assert(util.is_int(args.period), "indicators.light: period is a required field if flash is enabled")
element.assert(util.is_int(args.period), "period is a required field if flash is enabled")
end
args.height = 1

View File

@@ -23,8 +23,8 @@ local element = require("graphics.element")
---@param args power_indicator_args
---@return graphics_element element, element_id id
local function power(args)
assert(type(args.value) == "number", "indicators.power: value is a required number field")
assert(util.is_int(args.width), "indicators.power: width is a required field")
element.assert(type(args.value) == "number", "value is a required number field")
element.assert(util.is_int(args.width), "width is a required field")
args.height = 1

View File

@@ -24,10 +24,10 @@ local element = require("graphics.element")
---@param args rad_indicator_args
---@return graphics_element element, element_id id
local function rad(args)
assert(type(args.value) ~= "number", "indicators.rad: value is a required number field")
assert(type(args.label) == "string", "indicators.rad: label is a required field")
assert(type(args.format) == "string", "indicators.rad: format is a required field")
assert(util.is_int(args.width), "indicators.rad: width is a required field")
element.assert(type(args.value) ~= "number", "value is a required number 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(util.is_int(args.width), "width is a required field")
args.height = 1

View File

@@ -25,13 +25,11 @@ local element = require("graphics.element")
---@param args state_indicator_args
---@return graphics_element element, element_id id
local function state_indicator(args)
assert(type(args.states) == "table", "indicators.state: states is a required field")
element.assert(type(args.states) == "table", "states is a required field")
if util.is_int(args.height) then
assert(args.height % 2 == 1, "indicators.state: height should be an odd number")
else
args.height = 1
end
element.assert(args.height % 2 == 1, "height should be an odd number")
else args.height = 1 end
args.width = args.min_width or 1

View File

@@ -25,13 +25,13 @@ local flasher = require("graphics.flasher")
---@param args tristate_indicator_light_args
---@return graphics_element element, element_id id
local function tristate_indicator_light(args)
assert(type(args.label) == "string", "indicators.trilight: label is a required field")
assert(type(args.c1) == "number", "indicators.trilight: c1 is a required field")
assert(type(args.c2) == "number", "indicators.trilight: c2 is a required field")
assert(type(args.c3) == "number", "indicators.trilight: c3 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.c2) == "number", "c2 is a required field")
element.assert(type(args.c3) == "number", "c3 is a required field")
if args.flash then
assert(util.is_int(args.period), "indicators.trilight: period is a required field if flash is enabled")
element.assert(util.is_int(args.period), "period is a required field if flash is enabled")
end
args.height = 1