diff --git a/graphics/themes.lua b/graphics/themes.lua index f5ba50e..0da2037 100644 --- a/graphics/themes.lua +++ b/graphics/themes.lua @@ -28,6 +28,7 @@ themes.sandstone = { highlight_box = cpair(colors.black, colors.lightGray), highlight_box_bright = cpair(colors.black, colors.white), + field_box = cpair(colors.gray, colors.white), colors = { { c = colors.red, hex = 0xdf4949 }, -- RED ON @@ -38,7 +39,7 @@ themes.sandstone = { { c = colors.cyan, hex = 0x34bac8 }, { c = colors.lightBlue, hex = 0x6cc0f2 }, { c = colors.blue, hex = 0x0096ff }, - { c = colors.purple, hex = 0xb156ee }, -- YELLOW HIGH CONTRAST + { c = colors.purple, hex = 0xe3bc2a }, -- YELLOW HIGH CONTRAST { c = colors.pink, hex = 0xdcd9ca }, -- IVORY { c = colors.magenta, hex = 0x85862c }, -- YELLOW OFF { c = colors.white, hex = 0xf0f0f0 }, @@ -61,6 +62,7 @@ themes.basalt = { highlight_box = cpair(colors.white, colors.gray), highlight_box_bright = cpair(colors.black, colors.lightGray), + field_box = cpair(colors.white, colors.gray), colors = { { c = colors.red, hex = 0xdc6466 }, -- RED ON diff --git a/reactor-plc/panel/front_panel.lua b/reactor-plc/panel/front_panel.lua index 18c9cca..eb6b4bd 100644 --- a/reactor-plc/panel/front_panel.lua +++ b/reactor-plc/panel/front_panel.lua @@ -28,14 +28,18 @@ local ALIGN = core.ALIGN local cpair = core.cpair local border = core.border +local s_hi_box = style.theme.highlight_box + +local disabled_fg = style.fp.disabled_fg + local ind_grn = style.ind_grn local ind_red = style.ind_red -- create new front panel view ---@param panel graphics_element main displaybox local function init(panel) - local header = TextBox{parent=panel,y=1,text="REACTOR PLC - UNIT ?",alignment=ALIGN.CENTER,height=1,fg_bg=style.header} - header.register(databus.ps, "unit_id", function (id) header.set_value(util.c("REACTOR PLC - UNIT ", id)) end) + local header = TextBox{parent=panel,y=1,text="FISSION REACTOR PLC - UNIT ?",alignment=ALIGN.CENTER,height=1,fg_bg=style.theme.header} + header.register(databus.ps, "unit_id", function (id) header.set_value(util.c("FISSION REACTOR PLC - UNIT ", id)) end) -- -- system indicators @@ -75,7 +79,7 @@ local function init(panel) ---@diagnostic disable-next-line: undefined-field local comp_id = util.sprintf("(%d)", os.getComputerID()) - TextBox{parent=system,x=9,y=5,width=6,height=1,text=comp_id,fg_bg=cpair(colors.lightGray,colors.ivory)} + TextBox{parent=system,x=9,y=5,width=6,height=1,text=comp_id,fg_bg=disabled_fg} -- -- status & controls @@ -91,12 +95,12 @@ local function init(panel) emer_cool.register(databus.ps, "emer_cool", emer_cool.update) end - local status_trip_rct = Rectangle{parent=status,width=20,height=3,x=1,border=border(1,colors.lightGray,true),even_inner=true,fg_bg=cpair(colors.black,colors.ivory)} - local status_trip = Div{parent=status_trip_rct,width=18,height=1,fg_bg=cpair(colors.black,colors.lightGray)} + local status_trip_rct = Rectangle{parent=status,width=20,height=3,x=1,border=border(1,s_hi_box.bkg,true),even_inner=true} + local status_trip = Div{parent=status_trip_rct,width=18,height=1,fg_bg=s_hi_box} local scram = LED{parent=status_trip,width=10,label="RPS TRIP",colors=ind_red,flash=true,period=flasher.PERIOD.BLINK_250_MS} - local controls_rct = Rectangle{parent=status,width=17,height=3,x=1,border=border(1,colors.lightGray,true),even_inner=true,fg_bg=cpair(colors.black,colors.ivory)} - local controls = Div{parent=controls_rct,width=15,height=1,fg_bg=cpair(colors.black,colors.lightGray)} + local controls_rct = Rectangle{parent=status,width=17,height=3,x=1,border=border(1,s_hi_box.bkg,true),even_inner=true} + local controls = Div{parent=controls_rct,width=15,height=1,fg_bg=s_hi_box} PushButton{parent=controls,x=1,y=1,min_width=7,text="SCRAM",callback=databus.rps_scram,fg_bg=cpair(colors.black,colors.red),active_fg_bg=cpair(colors.black,colors.red_off)} PushButton{parent=controls,x=9,y=1,min_width=7,text="RESET",callback=databus.rps_reset,fg_bg=cpair(colors.black,colors.yellow),active_fg_bg=cpair(colors.black,colors.yellow_off)} @@ -107,7 +111,7 @@ local function init(panel) -- about footer -- - local about = Div{parent=panel,width=15,height=3,x=1,y=18,fg_bg=cpair(colors.lightGray,colors.ivory)} + local about = Div{parent=panel,width=15,height=3,x=1,y=18,fg_bg=disabled_fg} local fw_v = TextBox{parent=about,x=1,y=1,text="FW: v00.00.00",alignment=ALIGN.LEFT,height=1} local comms_v = TextBox{parent=about,x=1,y=2,text="NT: v00.00.00",alignment=ALIGN.LEFT,height=1} @@ -118,7 +122,7 @@ local function init(panel) -- rps list -- - local rps = Rectangle{parent=panel,width=16,height=16,x=36,y=3,border=border(1,colors.lightGray),thin=true,fg_bg=cpair(colors.black,colors.lightGray)} + local rps = Rectangle{parent=panel,width=16,height=16,x=36,y=3,border=border(1,s_hi_box.bkg),thin=true,fg_bg=s_hi_box} local rps_man = LED{parent=rps,label="MANUAL",colors=ind_red} local rps_auto = LED{parent=rps,label="AUTOMATIC",colors=ind_red} local rps_tmo = LED{parent=rps,label="TIMEOUT",colors=ind_red} diff --git a/reactor-plc/panel/style.lua b/reactor-plc/panel/style.lua index 1cf783c..7909ff9 100644 --- a/reactor-plc/panel/style.lua +++ b/reactor-plc/panel/style.lua @@ -2,44 +2,16 @@ -- Graphics Style Options -- -local core = require("graphics.core") +local core = require("graphics.core") +local themes = require("graphics.themes") +---@class plc_style local style = {} local cpair = core.cpair --- GLOBAL -- - --- remap global colors -colors.ivory = colors.pink -colors.yellow_hc = colors.purple -colors.red_off = colors.brown -colors.yellow_off = colors.magenta -colors.green_off = colors.lime - -style.root = cpair(colors.black, colors.ivory) -style.header = cpair(colors.black, colors.lightGray) - -style.colors = { - { c = colors.red, hex = 0xdf4949 }, -- RED ON - { c = colors.orange, hex = 0xffb659 }, - { c = colors.yellow, hex = 0xf9fb53 }, -- YELLOW ON - { c = colors.lime, hex = 0x16665a }, -- GREEN OFF - { c = colors.green, hex = 0x6be551 }, -- GREEN ON - { c = colors.cyan, hex = 0x34bac8 }, - { c = colors.lightBlue, hex = 0x6cc0f2 }, - { c = colors.blue, hex = 0x0096ff }, - { c = colors.purple, hex = 0xb156ee }, -- YELLOW HIGH CONTRAST - { c = colors.pink, hex = 0xdcd9ca }, -- IVORY - { c = colors.magenta, hex = 0x85862c }, -- YELLOW OFF - -- { c = colors.white, hex = 0xdcd9ca }, - { c = colors.lightGray, hex = 0xb1b8b3 }, - { c = colors.gray, hex = 0x575757 }, - -- { c = colors.black, hex = 0x191919 }, - { c = colors.brown, hex = 0x672223 } -- RED OFF -} - --- COMMON COLOR PAIRS -- +style.theme = themes.basalt +style.fp = themes.get_fp_style(style.theme) style.ind_grn = cpair(colors.green, colors.green_off) style.ind_red = cpair(colors.red, colors.red_off) diff --git a/reactor-plc/renderer.lua b/reactor-plc/renderer.lua index 2613600..e8db89c 100644 --- a/reactor-plc/renderer.lua +++ b/reactor-plc/renderer.lua @@ -30,13 +30,13 @@ function renderer.try_start_ui() term.setCursorPos(1, 1) -- set overridden colors - for i = 1, #style.colors do - term.setPaletteColor(style.colors[i].c, style.colors[i].hex) + for i = 1, #style.theme.colors do + term.setPaletteColor(style.theme.colors[i].c, style.theme.colors[i].hex) end -- init front panel view status, msg = pcall(function () - ui.display = DisplayBox{window=term.current(),fg_bg=style.root} + ui.display = DisplayBox{window=term.current(),fg_bg=style.fp.root} panel_view(ui.display) end) @@ -64,9 +64,9 @@ function renderer.close_ui() ui.display = nil -- restore colors - for i = 1, #style.colors do - local r, g, b = term.nativePaletteColor(style.colors[i].c) - term.setPaletteColor(style.colors[i].c, r, g, b) + for i = 1, #style.theme.colors do + local r, g, b = term.nativePaletteColor(style.theme.colors[i].c) + term.setPaletteColor(style.theme.colors[i].c, r, g, b) end -- reset terminal diff --git a/reactor-plc/startup.lua b/reactor-plc/startup.lua index 9c3d382..d67fa7b 100644 --- a/reactor-plc/startup.lua +++ b/reactor-plc/startup.lua @@ -18,7 +18,7 @@ local plc = require("reactor-plc.plc") local renderer = require("reactor-plc.renderer") local threads = require("reactor-plc.threads") -local R_PLC_VERSION = "v1.6.14" +local R_PLC_VERSION = "v1.6.15" local println = util.println local println_ts = util.println_ts diff --git a/rtu/panel/front_panel.lua b/rtu/panel/front_panel.lua index 206ea21..be81b27 100644 --- a/rtu/panel/front_panel.lua +++ b/rtu/panel/front_panel.lua @@ -22,7 +22,7 @@ local ALIGN = core.ALIGN local cpair = core.cpair -local fp_label = style.fp_label +local disabled_fg = style.fp.disabled_fg local ind_grn = style.ind_grn @@ -32,7 +32,7 @@ local UNIT_TYPE_LABELS = { "UNKNOWN", "REDSTONE", "BOILER", "TURBINE", "DYNAMIC ---@param panel graphics_element main displaybox ---@param units table unit list local function init(panel, units) - TextBox{parent=panel,y=1,text="RTU GATEWAY",alignment=ALIGN.CENTER,height=1,fg_bg=style.header} + TextBox{parent=panel,y=1,text="RTU GATEWAY",alignment=ALIGN.CENTER,height=1,fg_bg=style.theme.header} -- -- system indicators @@ -64,17 +64,17 @@ local function init(panel, units) ---@diagnostic disable-next-line: undefined-field local comp_id = util.sprintf("(%d)", os.getComputerID()) - TextBox{parent=system,x=9,y=4,width=6,height=1,text=comp_id,fg_bg=fp_label} + TextBox{parent=system,x=9,y=4,width=6,height=1,text=comp_id,fg_bg=disabled_fg} - TextBox{parent=system,x=1,y=14,text="SPEAKERS",height=1,width=8,fg_bg=style.label} - local speaker_count = DataIndicator{parent=system,x=10,y=14,label="",format="%3d",value=0,width=3,fg_bg=cpair(colors.gray,colors.white)} + TextBox{parent=system,x=1,y=14,text="SPEAKERS",height=1,width=8,fg_bg=style.fp.text_fg} + local speaker_count = DataIndicator{parent=system,x=10,y=14,label="",format="%3d",value=0,width=3,fg_bg=style.theme.field_box} speaker_count.register(databus.ps, "speaker_count", speaker_count.update) -- -- about label -- - local about = Div{parent=panel,width=15,height=3,x=1,y=18,fg_bg=fp_label} + local about = Div{parent=panel,width=15,height=3,x=1,y=18,fg_bg=disabled_fg} local fw_v = TextBox{parent=about,x=1,y=1,text="FW: v00.00.00",alignment=ALIGN.LEFT,height=1} local comms_v = TextBox{parent=about,x=1,y=2,text="NT: v00.00.00",alignment=ALIGN.LEFT,height=1} @@ -116,7 +116,7 @@ local function init(panel, units) -- assignment (unit # or facility) local for_unit = util.trinary(unit.reactor == 0, "\x1a FACIL ", "\x1a UNIT " .. unit.reactor) - TextBox{parent=unit_hw_statuses,y=i,x=19,text=for_unit,height=1,fg_bg=fp_label} + TextBox{parent=unit_hw_statuses,y=i,x=19,text=for_unit,height=1,fg_bg=disabled_fg} end end diff --git a/rtu/panel/style.lua b/rtu/panel/style.lua index bfc52cf..0b646a3 100644 --- a/rtu/panel/style.lua +++ b/rtu/panel/style.lua @@ -2,46 +2,16 @@ -- Graphics Style Options -- -local core = require("graphics.core") +local core = require("graphics.core") +local themes = require("graphics.themes") +---@class rtu_style local style = {} local cpair = core.cpair --- GLOBAL -- - --- remap global colors -colors.ivory = colors.pink -colors.yellow_hc = colors.purple -colors.red_off = colors.brown -colors.yellow_off = colors.magenta -colors.green_off = colors.lime - -style.root = cpair(colors.black, colors.ivory) -style.header = cpair(colors.black, colors.lightGray) - -style.colors = { - { c = colors.red, hex = 0xdf4949 }, -- RED ON - { c = colors.orange, hex = 0xffb659 }, - { c = colors.yellow, hex = 0xf9fb53 }, -- YELLOW ON - { c = colors.lime, hex = 0x16665a }, -- GREEN OFF - { c = colors.green, hex = 0x6be551 }, -- GREEN ON - { c = colors.cyan, hex = 0x34bac8 }, - { c = colors.lightBlue, hex = 0x6cc0f2 }, - { c = colors.blue, hex = 0x0096ff }, - { c = colors.purple, hex = 0xb156ee }, -- YELLOW HIGH CONTRAST - { c = colors.pink, hex = 0xdcd9ca }, -- IVORY - { c = colors.magenta, hex = 0x85862c }, -- YELLOW OFF - -- { c = colors.white, hex = 0xdcd9ca }, - { c = colors.lightGray, hex = 0xb1b8b3 }, - { c = colors.gray, hex = 0x575757 }, - -- { c = colors.black, hex = 0x191919 }, - { c = colors.brown, hex = 0x672223 } -- RED OFF -} - --- COMMON COLOR PAIRS -- - -style.fp_label = cpair(colors.lightGray, colors.ivory) +style.theme = themes.basalt +style.fp = themes.get_fp_style(style.theme) style.ind_grn = cpair(colors.green, colors.green_off) diff --git a/rtu/renderer.lua b/rtu/renderer.lua index a212c39..642823a 100644 --- a/rtu/renderer.lua +++ b/rtu/renderer.lua @@ -31,13 +31,13 @@ function renderer.try_start_ui(units) term.setCursorPos(1, 1) -- set overridden colors - for i = 1, #style.colors do - term.setPaletteColor(style.colors[i].c, style.colors[i].hex) + for i = 1, #style.theme.colors do + term.setPaletteColor(style.theme.colors[i].c, style.theme.colors[i].hex) end -- init front panel view status, msg = pcall(function () - ui.display = DisplayBox{window=term.current(),fg_bg=style.root} + ui.display = DisplayBox{window=term.current(),fg_bg=style.fp.root} panel_view(ui.display, units) end) @@ -65,9 +65,9 @@ function renderer.close_ui() ui.display = nil -- restore colors - for i = 1, #style.colors do - local r, g, b = term.nativePaletteColor(style.colors[i].c) - term.setPaletteColor(style.colors[i].c, r, g, b) + for i = 1, #style.theme.colors do + local r, g, b = term.nativePaletteColor(style.theme.colors[i].c) + term.setPaletteColor(style.theme.colors[i].c, r, g, b) end -- reset terminal diff --git a/rtu/startup.lua b/rtu/startup.lua index 1c5a4a2..90b81a0 100644 --- a/rtu/startup.lua +++ b/rtu/startup.lua @@ -31,7 +31,7 @@ local sna_rtu = require("rtu.dev.sna_rtu") local sps_rtu = require("rtu.dev.sps_rtu") local turbinev_rtu = require("rtu.dev.turbinev_rtu") -local RTU_VERSION = "v1.7.14" +local RTU_VERSION = "v1.7.15" local RTU_UNIT_TYPE = types.RTU_UNIT_TYPE local RTU_UNIT_HW_STATE = databus.RTU_UNIT_HW_STATE