Advertisement
EliteGaming

PortalElite

Aug 29th, 2015
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. dial = peripheral.wrap("ep_dialling_device_2")
  2. monitor = peripheral.wrap("monitor_1")
  3. controller = peripheral.wrap("ep_controller_1")
  4. portalActive = false
  5. locationCount = 0
  6.  
  7. function update()
  8.   portalActive = controller.isPortalActive()
  9.   locationCount = dial.getStoredCount()
  10. end
  11.  
  12. function drawScreen()
  13.   if portalActive then
  14.     monitor.setBackgroundColor(colors.green)
  15.     monitor.clear()
  16.     monW, monH = monitor.getSize()
  17.     monitor.setCursorPos(monW / 2 - string.len("Closing in...5") / 2, monH / 2)
  18.     i = 5
  19.     while i > 0 do
  20.     monitor.clear()
  21.     monitor.setCursorPos(monW / 2 - string.len("Closing in...5") / 2, monH / 2)
  22.         monitor.write("Closing in..."..i)
  23.     i = i - 1
  24.     sleep(1)
  25.     end
  26.     dial.terminate()
  27.     portalActive = false
  28.     drawScreen()
  29.   else
  30.     monitor.setBackgroundColor(colors.black)
  31.     monitor.clear()
  32.  
  33.     if (locationCount - 1 > 0) then
  34.           for i = 1, locationCount do
  35.             monitor.setCursorPos(1, i)
  36.        
  37.             if (i % 2 == 0) then
  38.                   monitor.setBackgroundColor(colors.gray)
  39.             else
  40.                   monitor.setBackgroundColor(colors.lightGray)
  41.             end
  42.  
  43.             name = dial.getStoredName(i - 1)
  44.             monW, monH = monitor.getSize()
  45.        
  46.             monitor.write(name)  
  47.             k = string.len(name)
  48.        
  49.             while (k < monW) do
  50.                   monitor.write(" ")
  51.                   k = k + 1
  52.             end
  53.        
  54.           end
  55.     else
  56.           monitor.setCursorPos(1, 1)
  57.           monitor.write("No Entries")
  58.     end
  59.   end
  60. end
  61.  
  62. function handleInput()
  63.   event, side, posX, posY = os.pullEvent("monitor_touch")
  64.  
  65.   if portalActive then
  66.     dial.terminate()
  67.   else
  68.     if (posY <= locationCount) then
  69.           dial.dialStored(posY - 1)
  70.     end
  71.   end
  72. end
  73.  
  74. while true do
  75.   update()
  76.   drawScreen()
  77.   handleInput()
  78. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement