gundami

Untitled

Nov 5th, 2025 (edited)
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. -- master.lua
  2. -- Automatically broadcasts TTS announcements for train arrival/departure (negative redstone logic)
  3.  
  4. local modemSide = "back" -- Change to your wireless modem side
  5. rednet.open(modemSide)
  6.  
  7. -- Map each redstone side to a platform name
  8. local platforms = {
  9. front = "A",
  10. left = "B",
  11. back = "C",
  12. right = "D"
  13. }
  14.  
  15. -- Generate announcement text
  16. local function generateAnnouncement(platform, isArriving)
  17. if isArriving then
  18. return "Attention please. The train is arriving at platform "
  19. .. tostring(platform)
  20. .. ". Please stand behind the yellow line and allow passengers to alight before boarding. Thank you."
  21. else
  22. return "Attention please. The train at platform "
  23. .. tostring(platform)
  24. .. " is now departing. Please stand clear of the doors. Thank you."
  25. end
  26. end
  27.  
  28. -- Store previous redstone states
  29. local previous = {}
  30. for side, _ in pairs(platforms) do
  31. previous[side] = redstone.getInput(side)
  32. end
  33.  
  34. print("Starting platform redstone monitoring (negative logic)...")
  35.  
  36. while true do
  37. for side, platformName in pairs(platforms) do
  38. local current = redstone.getInput(side)
  39.  
  40. -- Detect state change
  41. if current ~= previous[side] then
  42. if current == true then
  43. -- No signal → Has signal = Train arriving
  44. local message = generateAnnouncement(platformName, true)
  45. rednet.broadcast({type = "tts", text = message})
  46. print("Train arriving at platform " .. platformName)
  47. else
  48. -- Has signal → No signal = Train departing
  49. local message = generateAnnouncement(platformName, false)
  50. rednet.broadcast({type = "tts", text = message})
  51. print("Train departing from platform " .. platformName)
  52. end
  53. previous[side] = current
  54. end
  55. end
  56.  
  57. sleep(1) -- Check every second
  58. end
  59.  
Advertisement
Add Comment
Please, Sign In to add comment