Advertisement
Derek1017

Button

Apr 8th, 2015
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.38 KB | None | 0 0
  1. rednet.open("top")
  2. local transmit = peripheral.wrap("top")
  3. local freq
  4. local rowLength=4
  5. local func
  6.  
  7. function useFreq(id,value)
  8.     transmit.setFreq(id)
  9.     transmit.set(value)
  10.     sleep(.2)
  11. end
  12.  
  13. function blink(freq)
  14.     useFreq(freq,true)
  15.     sleep(.2)
  16.     useFreq(freq,false)
  17. end
  18.  
  19. function housekeeping()
  20.     term.clear()
  21.     term.setCursorPos(1,1)
  22. end
  23.  
  24. function waitMsg()
  25.     id,msg,dist = rednet.receive()
  26.     for f,g in string.gmatch(tostring(msg),"(%a+):(%d+)") do
  27.         func = f
  28.         freq = tonumber(g)
  29.     end
  30. end
  31.  
  32. function housekeeping(text)
  33.     term.clear()
  34.     term.setCursorPos(math.random(1,4),math.random(1,8))
  35.     term.write(text)
  36. end
  37.  
  38. function send(freq)
  39.     useFreq(freq,true)
  40.     rednet.send(7,freq)
  41. end
  42.  
  43. function store(freq)
  44.     useFreq(freq,false)
  45.     path()
  46. end
  47.  
  48. function isElevator()
  49.     local elevator
  50.    
  51.     if freq>rowLength then
  52.         elevator = true
  53.     else
  54.         elevator = false
  55.     end
  56.    
  57.     local level = math.ceil(freq/rowLength)
  58.    
  59.     if level>2 then
  60.         rednet.send(15,elevator)
  61.     elseif level<3 then
  62.         rednet.send(15,not elevator)
  63.     end
  64.  
  65.     rednet.send(9,not elevator)
  66.    
  67.     return elevator
  68. end
  69.  
  70. function path()
  71.     blink(1101)
  72.     isElevator()
  73. end
  74.  
  75. print(math.random(1,50))
  76. sleep(1)
  77. housekeeping()
  78.  
  79. while true do
  80.     waitMsg()
  81.     if func=="send" then
  82.         send(freq)
  83.     elseif func=="store" then
  84.         store(freq)
  85.     elseif func=="new" then
  86.         blink(1101)
  87.     end
  88.     housekeeping("Did '"..func.."' for "..freq)
  89. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement