Wouter0100

Door master

May 29th, 2019
740
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.42 KB | None | 0 0
  1. state = true -- true = open (able to walk through), false other
  2. inTransition = false
  3.  
  4. rednet.open("front")
  5.  
  6. local closeTimer = nil
  7.  
  8. function open()
  9.     if inTransition then
  10.         return
  11.     end
  12.  
  13.     if state then
  14.         return
  15.     end
  16.  
  17.     state = true
  18.     inTransition = true
  19.  
  20.     delay = 0.2
  21.  
  22.     -- Open gate
  23.     rednet.send(460, 4)
  24.     rednet.send(461, 3)
  25.  
  26.     sleep(delay)
  27.  
  28.     rednet.send(462, 6)
  29.     rednet.send(463, 5)
  30.  
  31.     sleep(delay)
  32.  
  33.     rednet.send(455, 6)
  34.     rednet.send(454, 6)
  35.  
  36.     sleep(delay)
  37.  
  38.     rednet.send(464, 12)
  39.     rednet.send(465, 11)
  40.  
  41.     sleep(0.1)
  42.  
  43.     rednet.send(464, 2)
  44.     rednet.send(465, 1)
  45.  
  46.     sleep(0.1)
  47.  
  48.     rednet.send(452, 16)
  49.     rednet.send(461, 16)
  50.     rednet.send(460, 12)
  51.     rednet.send(459, 16)
  52.  
  53.     inTransition = false
  54. end
  55.  
  56. function close()
  57.     if inTransition then
  58.         return
  59.     end
  60.  
  61.     if not state then
  62.         return
  63.     end
  64.  
  65.     state = false
  66.     inTransition = true
  67.  
  68.     delay = 0.1
  69.  
  70.     -- Close gate
  71.     rednet.send(452, 6)
  72.     rednet.send(461, 6)
  73.     rednet.send(460, 2)
  74.     rednet.send(459, 6)
  75.  
  76.     sleep(delay)
  77.  
  78.     rednet.send(455, 16)
  79.     rednet.send(454, 16)
  80.  
  81.     sleep(delay)
  82.  
  83.     rednet.send(462, 16)
  84.     rednet.send(463, 15)
  85.  
  86.     sleep(delay)
  87.  
  88.     rednet.send(460, 14)
  89.     rednet.send(461, 13)
  90.  
  91.     inTransition = false
  92. end
  93.  
  94.  
  95. while true do
  96.   local event, par1 = os.pullEvent()
  97.  
  98.   if event == "timer" and par1 == closeTimer then
  99.     closeTimer = nil
  100.     close()
  101.   elseif event == "redstone" then
  102.     closeTimer = os.startTimer(3)
  103.     open()
  104.   end
  105. end
Advertisement
Add Comment
Please, Sign In to add comment