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