Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- master.lua
- -- Automatically broadcasts TTS announcements for train arrival/departure (negative redstone logic)
- local modemSide = "back" -- Change to your wireless modem side
- rednet.open(modemSide)
- -- Map each redstone side to a platform name
- local platforms = {
- front = "A",
- left = "B",
- back = "C",
- right = "D"
- }
- -- Generate announcement text
- local function generateAnnouncement(platform, isArriving)
- if isArriving then
- return "Attention please. The train is arriving at platform "
- .. tostring(platform)
- .. ". Please stand behind the yellow line and allow passengers to alight before boarding. Thank you."
- else
- return "Attention please. The train at platform "
- .. tostring(platform)
- .. " is now departing. Please stand clear of the doors. Thank you."
- end
- end
- -- Store previous redstone states
- local previous = {}
- for side, _ in pairs(platforms) do
- previous[side] = redstone.getInput(side)
- end
- print("Starting platform redstone monitoring (negative logic)...")
- while true do
- for side, platformName in pairs(platforms) do
- local current = redstone.getInput(side)
- -- Detect state change
- if current ~= previous[side] then
- if current == true then
- -- No signal → Has signal = Train arriving
- local message = generateAnnouncement(platformName, true)
- rednet.broadcast({type = "tts", text = message})
- print("Train arriving at platform " .. platformName)
- else
- -- Has signal → No signal = Train departing
- local message = generateAnnouncement(platformName, false)
- rednet.broadcast({type = "tts", text = message})
- print("Train departing from platform " .. platformName)
- end
- previous[side] = current
- end
- end
- sleep(1) -- Check every second
- end
Advertisement
Add Comment
Please, Sign In to add comment