ui/monitor_turtles.lua
2025-06-27 13:40:42 +01:00

36 lines
968 B
Lua

local monitor = peripheral.find("monitor")
local turtleStates = {}
-- Set monitor display
monitor.setTextScale(0.5)
monitor.clear()
monitor.setCursorPos(1,1)
-- Pretty print function
local function draw()
monitor.clear()
monitor.setCursorPos(1,1)
monitor.write("Turtle Monitor")
local row = 2
for id, data in pairs(turtleStates) do
monitor.setCursorPos(1, row)
local age = os.clock() - data.time
local status = (age > 10) and "offline" or data.status
monitor.write(string.format("%s (ID %d): %s", data.label, id, status))
row = row + 1
end
end
-- Main loop
rednet.open("back") -- or side where modem is
while true do
local msg, proto
local id, message, protocol = rednet.receive("turtle_status", 2)
if id then
local ok, data = pcall(textutils.unserialize, message)
if ok and data and data.id then
turtleStates[data.id] = data
end
end
draw()
end