mirror of
https://github.com/MikaylaFischler/cc-mek-scada.git
synced 2024-08-30 18:22:34 +00:00
48 lines
1.4 KiB
Lua
48 lines
1.4 KiB
Lua
--
|
|
-- Main SCADA Coordinator GUI
|
|
--
|
|
|
|
local iocontrol = require("coordinator.iocontrol")
|
|
|
|
local style = require("coordinator.ui.style")
|
|
|
|
local unit_overview = require("coordinator.ui.components.unit_overview")
|
|
|
|
local core = require("graphics.core")
|
|
|
|
local DisplayBox = require("graphics.elements.displaybox")
|
|
local TextBox = require("graphics.elements.textbox")
|
|
|
|
local TEXT_ALIGN = core.graphics.TEXT_ALIGN
|
|
|
|
-- create new main view
|
|
---@param monitor table main viewscreen
|
|
local function init(monitor)
|
|
local main = DisplayBox{window=monitor,fg_bg=style.root}
|
|
|
|
-- window header message
|
|
TextBox{parent=main,text="Nuclear Generation Facility SCADA Coordinator",alignment=TEXT_ALIGN.CENTER,height=1,fg_bg=style.header}
|
|
|
|
local db = iocontrol.get_db()
|
|
|
|
local uo_1, uo_2, uo_3, uo_4 ---@type graphics_element
|
|
|
|
-- unit overviews
|
|
if db.facility.num_units >= 1 then uo_1 = unit_overview(main, 2, 3, db.units[1]) end
|
|
if db.facility.num_units >= 2 then uo_2 = unit_overview(main, 84, 3, db.units[2]) end
|
|
|
|
if db.facility.num_units >= 3 then
|
|
-- base offset 3, spacing 1, max height of units 1 and 2
|
|
local row_2_offset = 3 + 1 + math.max(uo_1.height(), uo_2.height())
|
|
|
|
uo_3 = unit_overview(main, 2, row_2_offset, db.units[3])
|
|
if db.facility.num_units == 4 then uo_4 = unit_overview(main, 84, row_2_offset, db.units[4]) end
|
|
end
|
|
|
|
-- command & control
|
|
|
|
return main
|
|
end
|
|
|
|
return init
|