This commit is contained in:
2025-06-14 13:41:19 -04:00
parent 51cda50b3c
commit 83030e6869
3 changed files with 68 additions and 23 deletions

View File

@@ -1,15 +1,43 @@
local function report(reactor)
local maxValue = 100
local minValue = 0
local function configureReport(monitor)
local x,y = term.getCursorPos()
monitor.setCursorPos(x, y + 1)
monitor.clearLine()
end
local function getValue(reactor)
return (reactor.getCoolantFilledPercentage() or 0) * 100
end
local function watch(reactor, monitor)
local coolantLevel = getValue(reactor)
print("Coolant: " .. coolantLevel)
sleep(1)
end
local function report(reactor, monitor)
if reactor then
return (reactor.getCoolantFilledPercentage() or 0) * 100
local value = getValue(reactor)
local color = color(reactor)
configureReport(monitor)
monitor.setBackgroundColor(color)
monitor.write("Coolant: " .. value .. "%")
else
return "No reactor found"
end
end
local function watch(reactor, monitor)
local coolantLevel =
print("Coolant: " .. report(reactor))
sleep(1)
local function configureReport(monitor)
local x,y = monitor.getCursorPos()
monitor.setCursorPos(x, y + 1)
monitor.clearLine()
end
return { report = report, watch = watch }
local function color(reactor)
local coolantLevel = getValue(reactor)
return colors.black
end
return { report = report, watch = watch}

View File

@@ -1,8 +1,7 @@
local kernel = require("kernel")
local tempDriver = kernel.addDriver("temperature_driver")
local coolantDriver = kernel.addDriver("coolant_driver")
local reactor = peripheral.find("fissionReactorLogicAdapter")
local monitor = peripheral.find("monitor")
local function runMonitors()
while true do
@@ -14,17 +13,15 @@ end
local function runDisplay()
while true do
monitor.setCursorPos(1,1)
local data = {
{ Label = "Temperature", value = tempDriver.report(reactor)},
{ Label = "Coolant", value = coolantDriver.report(reactor) },
{ Label = "Humidity", value = "45%" }
local drivers = {
{ Label = "Temperature", driver = tempDriver },
{ Label = "Coolant", driver = coolantDriver },
}
for i, item in ipairs(data) do
monitor.clearLine();
monitor.write(item.Label .. ": " .. item.value)
monitor.setCursorPos(1, i + 1)
for _, item in ipairs(drivers) do
item.driver.report(reactor, monitor)
end
sleep(0.25) -- Update every quarter second
end
end

View File

@@ -1,14 +1,34 @@
local function report(reactor)
local function getValue(reactor)
return reactor.getTemperature() or 0
end
local function watch(reactor, monitor)
print("Temperature: " .. getValue(reactor))
sleep(1)
end
local function color(reactor)
local temperature = getValue(reactor)
return colors.black
end
local function report(reactor, monitor)
if reactor then
return reactor.getTemperature()
local value = getValue(reactor)
local color = color(reactor)
configureReport(monitor)
monitor.setBackgroundColor(color)
monitor.write("Coolant: " .. value .. "%")
else
return "No reactor found"
end
end
local function watch(reactor, monitor)
print("Temperature: " .. report(reactor))
sleep(1)
local function configureReport(monitor)
local x,y = monitor.getCursorPos()
monitor.setCursorPos(x, y + 1)
monitor.clearLine()
end
return { report = report, watch = watch }
return { report = report, watch = watch}