Advertisement
Skillkiller

Schlafzimmer Knopf

Sep 2nd, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Variablen
  2. wModul = "bottom"
  3. zone = "Schlafzimmer"
  4. lamp = "right"
  5. --Code
  6. rednet.open(wModul)
  7. open = true
  8. header = zone
  9.  
  10.  
  11. function start()
  12. rednet.broadcast(zone .. " status?", "1900Door")
  13. senderId = rednet.receive("1900Door",3)
  14. if (open == true) then
  15. dashboard("Zimmer offen", senderId)
  16. else
  17. dashboard("Derzeit geschlossen", senderId)
  18. end
  19. updateRedstone()
  20. end
  21.  
  22. function updateRedstone()
  23. if (open == true) then
  24.     redstone.setOutput(lamp, true)
  25. else
  26.     redstone.setOutput(lamp,false)
  27. end
  28. end
  29.  
  30. function dashboard(status, id)
  31. shell.run("clear")
  32. maxX, maxY = term.getSize()
  33. term.setCursorPos(1,2)
  34. text = ""
  35. for i = 0, maxX - 1, 1 do
  36.     text = text .. "#"
  37. end
  38. print(text)
  39.  
  40. term.setCursorPos(math.floor((maxX - string.len(header)) / 2), 4)
  41. print(header)
  42.  
  43. term.setCursorPos(math.floor((maxX - string.len(status)) / 2),math.floor(maxY / 2))
  44. print(status)
  45.  
  46. text = ""
  47. text = "Sende Befehle an den Computer " .. tostring(id)
  48. term.setCursorPos(math.floor((maxX - string.len(text)) / 2),math.floor(maxY / 2) + 1)
  49. print(text)
  50.  
  51.  
  52.  
  53.  
  54.  
  55. text = ""
  56. term.setCursorPos(1,maxY)
  57. for i = 0, maxX - 1, 1 do
  58.     text = text .. "#"
  59. end
  60. print(text)
  61.  
  62. warten = " Signal kann gesendet werden "
  63. term.setCursorPos(math.floor((maxX - string.len(warten)) / 2),maxY - 1)
  64. print(warten)
  65. end
  66.  
  67. function signal()
  68. local event = os.pullEvent("redstone")
  69. if rs.getInput("top") then
  70.     rednet.send(senderId, zone .. " status?", "1900Door")
  71.     senderId, message, protocol = rednet.receive("1900Door",3)
  72.     if (message == true) then
  73.         rednet.send(senderId, zone .. " zu", "1900Door")
  74.         open = false
  75.         updateRedstone()
  76.         rednet.broadcast("Die T\195\188r " .. zone .. " wurde geschlossen", "1900Info")
  77.     elseif (message == false) then
  78.         rednet.send(senderId, zone .. " auf", "1900Door")
  79.         open = true
  80.         updateRedstone()
  81.         rednet.broadcast("Die T\195\188r f\195\188r " .. zone .. " wurde ge\195\182ffnet", "1900Info")
  82.     end
  83. end
  84. end
  85.  
  86. --Einmalig alles Updaten
  87. start()
  88.  
  89. --Endlosschleife
  90. while true do
  91. signal()
  92. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement