Advertisement
lucifersamfr

MSlevitate

Apr 1st, 2013
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.31 KB | None | 0 0
  1. --Operate 2 frame motors moving the mining station UP & DOWN
  2. local movChannel = 12
  3. local movRespChannel = 13
  4. local followChannel = 14
  5. local followRespChannel = 15
  6. local modem = peripheral.wrap("right")
  7. modem.open(movChannel)
  8.  
  9. function unsetAll(sigSide)
  10.   rs.setBundledOutput(sigSide,0)
  11. end
  12.  
  13. function levitate(side,dist)
  14.   local signalSide
  15.   local followerCmd
  16.   if (side == "up") then
  17.     signalSide = "front"
  18.     followerCmd = "follow_Up"
  19.   else
  20.     if (side == "down") then
  21.       signalSide = "bottom"
  22.       followerCmd = "follow_Down"
  23.     else
  24.       return false
  25.     end
  26.   end
  27.  
  28.  
  29.   for i=1,dist do
  30.     modem.transmit(followChannel ,followRespChannel ,followerCmd)
  31.    
  32.     rs.setBundledOutput(signalSide,colors.red)
  33.     sleep(0.5)
  34.     unsetAll(signalSide)
  35.     sleep(1)
  36.    
  37.     rs.setBundledOutput(signalSide,colors.black)
  38.     sleep(0.5)
  39.     unsetAll(signalSide)
  40.     sleep(1)
  41.   end
  42. end
  43.  
  44. while true do
  45.   local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
  46.   local op=textutils.unserialize(message)
  47.   --print(op.name)
  48.   --print("__"..op.direction)
  49.   --print("__"..op.iter)
  50.   if (op.name == "levitate") then
  51.     levitate(op.direction, tonumber(op.iter))
  52.     modem.transmit(movRespChannel,movChannel,"levitate OK")
  53.   end
  54.   sleep(3)
  55. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement