Files
CC-StationBroadcast/test.lua
T
Henry_Du 26003844b9 特性(音频与脚本): 添加8条语音音频文件与火车站点监测脚本
添加4条中文、4条日文语音音频文件,新增脚本用于ComputerCraft下的Create模组火车站点监测
2026-08-02 11:45:24 +08:00

69 lines
2.3 KiB
Lua

local target = peripheral.find("create_target")
if not target then
print("Error: Target block not found! Please check if Wired Modem is connected and activated (red ring).")
return
end
pcall(target.resize, 80, 10)
-- A helper function to parse the Create station summary line
-- Example input: "1 ?? [Local]1123 HC-02 2"
local function parseTrainLine(line)
-- Format we are parsing:
-- "<Time_Number> <Time_Unit> <Train_Name> <Destination>"
-- Example: "1 ?? [Local]1123 HC-02 2"
-- Example: "现在 ?? [Local]1123 HC-02 2" (assuming "现在" might replace the number and unit)
local timeValue, timeUnit, trainName, destination
-- Try parsing format with a number first (e.g., "1 ?? ...")
timeValue, timeUnit, trainName, destination = string.match(line, "^(%d+)%s+(.-)%s+(%[.-%][^%s]*)%s+(.*)$")
-- If that fails, it might be the "Now" (现在) format which might not have digits at the start
if not trainName then
timeValue, timeUnit, trainName, destination = string.match(line, "^([^%s]+)%s+(.-)%s+(%[.-%][^%s]*)%s+(.*)$")
end
-- Fallback for extremely weird formatting
if not trainName then
timeValue, timeUnit, trainName, destination = string.match(line, "^([^%s]+)%s+(.-)%s+([^%s]+)%s+(.*)$")
end
return {
eta_value = timeValue or "N/A",
eta_unit = timeUnit or "N/A",
trainName = trainName or "N/A",
destination = destination or "N/A",
raw = line
}
end
while true do
term.clear()
term.setCursorPos(1,1)
print("=== Receiving Station Data ===")
local lines = target.dump()
local hasData = false
for i, lineText in pairs(lines) do
if lineText and lineText ~= "" and lineText:match("[%w%?%[]") then
print("--- Line " .. i .. " ---")
print("Raw: " .. lineText)
local parsed = parseTrainLine(lineText)
print(" Train Name : " .. parsed.trainName)
print(" Destination: " .. parsed.destination)
print(" ETA Value : " .. parsed.eta_value)
print(" ETA Unit : " .. parsed.eta_unit)
hasData = true
end
end
if not hasData then
print("No active trains incoming/departing...")
end
os.sleep(1)
end