Files
2026-08-15 23:13:10 +08:00

48 lines
1.7 KiB
Lua

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
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