local reader = peripheral.find("blockReader") if not reader then print("Error: Block Reader not found!") return end while true do term.clear() term.setCursorPos(1,1) print("=== CRN Advanced Display Parser ===") local success, data = pcall(reader.getBlockData) if success and data and data.TrainStops then local now = os.epoch("utc") / 50 -- Minecraft ticks (approx) for i, stop in ipairs(data.TrainStops) do local st = stop.Station if st then local trainName = st.TrainName or "Unknown" local dest = st.Destination or "Unknown" -- 时间计算 local scheduledArrival = st.ScheduledArrival or 0 local realArrival = st.RealTimeArrival or 0 -- 计算 ETA (秒) local etaTicks = realArrival - data.LastRefreshed local etaSeconds = math.floor(etaTicks / 20) if etaSeconds < 0 then etaSeconds = 0 end -- 计算 Delay (分钟) local delayTicks = realArrival - scheduledArrival local delayMinutes = math.floor(delayTicks / (20 * 60)) if delayMinutes < 0 then delayMinutes = 0 end print(string.format("[%d] Train: %s -> %s", i, trainName, dest)) print(string.format(" ETA: %d seconds", etaSeconds)) print(string.format(" Delay: %d minutes", delayMinutes)) print("---------------------------------") end end else print("Waiting for CRN data...") end os.sleep(1) end