IronClaymore

[minecraft-CC] launch countdown thingy

Jul 22nd, 2014
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.88 KB | None | 0 0
  1. local pullEvent = os.pullEvent
  2. os.pullEvent = os.pullEventRaw
  3.  
  4. function getDeviceSide(deviceType)
  5.         deviceType = deviceType:lower()
  6.    
  7.         for i, side in pairs(rs.getSides()) do
  8.                 if (peripheral.isPresent(side)) then
  9.                         if (string.lower(peripheral.getType(side)) == deviceType) then
  10.                                 return side;
  11.                         end
  12.                 end
  13.         end
  14.    
  15.         return nil;
  16. end
  17.  
  18. function wrapThis(thing, f)
  19.         local wrapped = nil
  20.         while wrapped == nil and f <= 100 do
  21.                 wrapped = peripheral.wrap(thing.."_"..f)
  22.                 f = f + 1
  23.         end
  24.  
  25.         if wrapped == nil then
  26.                 side = getDeviceSide(thing)
  27.                 if side ~= nil then
  28.                         return peripheral.wrap(side)
  29.                 else
  30.                         return nil
  31.                 end
  32.         else
  33.                 return wrapped
  34.         end
  35. end
  36.  
  37. local monitor1 = wrapThis("monitor", 1)
  38. local monitor2 = wrapThis("monitor", 2)
  39.  
  40. while true do
  41.     monitor1.setTextScale(2)
  42.     monitor1.clear()
  43.     monitor1.setCursorPos(1, 1)
  44.     monitor1.setTextColor(colors.white)
  45.     monitor1.write("Launch bay door status:")
  46.     monitor1.setCursorPos(1, 3)
  47.     monitor1.setTextColor(colors.white)
  48.     monitor1.write("Upper Door")
  49.     monitor1.setCursorPos(19, 3)
  50.     monitor1.setTextColor(colors.blue)
  51.     monitor1.write("CLOSED")
  52.     monitor1.setCursorPos(1, 5)
  53.     monitor1.setTextColor(colors.white)
  54.     monitor1.write("Lower Door")
  55.     monitor1.setCursorPos(19, 5)
  56.     monitor1.setTextColor(colors.blue)
  57.     monitor1.write("CLOSED")
  58.    
  59.     monitor2.setTextScale(2)
  60.     monitor2.clear()
  61.     monitor2.setCursorPos(1, 1)
  62.     monitor2.setTextColor(colors.white)
  63.     monitor2.write("Launch bay door status:")
  64.     monitor2.setCursorPos(1, 3)
  65.     monitor2.setTextColor(colors.white)
  66.     monitor2.write("Upper Door")
  67.     monitor2.setCursorPos(19, 3)
  68.     monitor2.setTextColor(colors.blue)
  69.     monitor2.write("CLOSED")
  70.     monitor2.setCursorPos(1, 5)
  71.     monitor2.setTextColor(colors.white)
  72.     monitor2.write("Lower Door")
  73.     monitor2.setCursorPos(19, 5)
  74.     monitor2.setTextColor(colors.blue)
  75.     monitor2.write("CLOSED")
  76.    
  77.  
  78.     term.clear()
  79.     term.setTextColor(colors.white)
  80.     term.setCursorPos(1, 1)
  81.     print("This is the launch bay doors control computer.")
  82.     term.setCursorPos(1, 3)
  83.     term.setTextColor(colors.orange)
  84.     print("The doors MUST be open before a rocket can be launched.")
  85.     term.setCursorPos(1, 6)
  86.     term.setTextColor(colors.white)
  87.     print("Please input a command:")
  88.  
  89.     input = read()
  90.     if input == "open" then
  91.         doortime = 200
  92.         term.clear()
  93.         term.setTextColor(colors.red)
  94.         term.setCursorPos(1, 1)
  95.         print("Doors opening...")
  96.         redstone.setOutput("right", true)
  97.         redstone.setOutput("left", true)
  98.         sleep(5)
  99.         while true do
  100.             term.clear()
  101.             term.setTextColor(colors.red)
  102.             term.setCursorPos(1, 1)
  103.             print("Doors open.")
  104.             term.setTextColor(colors.white)
  105.             term.setCursorPos(1, 3)
  106.             print("Time until doors close:")
  107.             term.setCursorPos(1, 4)
  108.             print(doortime)
  109.             monitor1.clear()
  110.             monitor1.setCursorPos(1, 1)
  111.             monitor1.setTextColor(colors.white)
  112.             monitor1.write("Launch bay door status:")
  113.             monitor1.setCursorPos(1, 3)
  114.             monitor1.setTextColor(colors.white)
  115.             monitor1.write("Upper Door")
  116.             monitor1.setCursorPos(20, 3)
  117.             monitor1.setTextColor(colors.red)
  118.             monitor1.write("OPEN!")
  119.             monitor1.setCursorPos(1, 5)
  120.             monitor1.setTextColor(colors.white)
  121.             monitor1.write("Lower Door")
  122.             monitor1.setCursorPos(20, 5)
  123.             monitor1.setTextColor(colors.red)
  124.             monitor1.write("OPEN!")
  125.             monitor1.setCursorPos(20, 8)
  126.             monitor1.setTextColor(colors.white)
  127.             monitor1.write(doortime)
  128.             monitor2.clear()
  129.             monitor2.setCursorPos(1, 1)
  130.             monitor2.setTextColor(colors.white)
  131.             monitor2.write("Launch bay door status:")
  132.             monitor2.setCursorPos(1, 3)
  133.             monitor2.setTextColor(colors.white)
  134.             monitor2.write("Upper Door")
  135.             monitor2.setCursorPos(20, 3)
  136.             monitor2.setTextColor(colors.red)
  137.             monitor2.write("OPEN!")
  138.             monitor2.setCursorPos(1, 5)
  139.             monitor2.setTextColor(colors.white)
  140.             monitor2.write("Lower Door")
  141.             monitor2.setCursorPos(20, 5)
  142.             monitor2.setTextColor(colors.red)
  143.             monitor2.write("OPEN!")
  144.             monitor2.setCursorPos(20, 8)
  145.             monitor2.setTextColor(colors.white)
  146.             monitor2.write(doortime)
  147.             redstone.setOutput("right", true)
  148.             redstone.setOutput("left", true)
  149.             doortime = doortime - 1
  150.             sleep(1)
  151.             if doortime == 0 then
  152.                 redstone.setOutput("right", false)
  153.                 redstone.setOutput("left", false)
  154.                 break
  155.             end
  156.         end
  157.     end
  158.     if input == "opentop" then
  159.         doortime = 200
  160.         term.clear()
  161.         term.setTextColor(colors.red)
  162.         term.setCursorPos(1, 1)
  163.         print("Upper door opening...")
  164.         redstone.setOutput("right", true)
  165.         redstone.setOutput("left", false)
  166.         sleep(5)
  167.         while true do
  168.             term.clear()
  169.             term.setTextColor(colors.red)
  170.             term.setCursorPos(1, 1)
  171.             print("Upper door open!")
  172.             term.setTextColor(colors.white)
  173.             term.setCursorPos(1, 3)
  174.             print("Time until upper door closes:")
  175.             term.setCursorPos(1, 4)
  176.             print(doortime)
  177.             monitor1.clear()
  178.             monitor1.setCursorPos(1, 1)
  179.             monitor1.setTextColor(colors.white)
  180.             monitor1.write("Launch bay door status:")
  181.             monitor1.setCursorPos(1, 3)
  182.             monitor1.setTextColor(colors.white)
  183.             monitor1.write("Upper Door")
  184.             monitor1.setCursorPos(20, 3)
  185.             monitor1.setTextColor(colors.red)
  186.             monitor1.write("OPEN!")
  187.             monitor1.setCursorPos(1, 5)
  188.             monitor1.setTextColor(colors.white)
  189.             monitor1.write("Lower Door")
  190.             monitor1.setCursorPos(19, 5)
  191.             monitor1.setTextColor(colors.blue)
  192.             monitor1.write("CLOSED")
  193.             monitor1.setCursorPos(20, 8)
  194.             monitor1.setTextColor(colors.white)
  195.             monitor1.write(doortime)
  196.             monitor2.clear()
  197.             monitor2.setCursorPos(1, 1)
  198.             monitor2.setTextColor(colors.white)
  199.             monitor2.write("Launch bay door status:")
  200.             monitor2.setCursorPos(1, 3)
  201.             monitor2.setTextColor(colors.white)
  202.             monitor2.write("Upper Door")
  203.             monitor2.setCursorPos(20, 3)
  204.             monitor2.setTextColor(colors.red)
  205.             monitor2.write("OPEN!")
  206.             monitor2.setCursorPos(1, 5)
  207.             monitor2.setTextColor(colors.white)
  208.             monitor2.write("Lower Door")
  209.             monitor2.setCursorPos(19, 5)
  210.             monitor2.setTextColor(colors.blue)
  211.             monitor2.write("CLOSED")
  212.             monitor2.setCursorPos(20, 8)
  213.             monitor2.setTextColor(colors.white)
  214.             monitor2.write(doortime)
  215.             redstone.setOutput("right", true)
  216.             redstone.setOutput("left", false)
  217.             doortime = doortime - 1
  218.             sleep(1)
  219.             if doortime == 0 then
  220.                 redstone.setOutput("right", false)
  221.                 redstone.setOutput("left", false)
  222.                 break
  223.             end
  224.         end
  225.     end
  226.     if input == "debug" then
  227.         term.clear()
  228.         term.setCursorPos(1, 1)
  229.         print("Debug mode activated, press CTRL + T after 5 seconds to exit program.")
  230.         os.pullEvent = pullEvent
  231.         sleep(5)
  232.     end
  233.     if input ~= "debug" and input ~= "open" then
  234.         term.clear()
  235.         term.setCursorPos(1, 1)
  236.         print("Invalid command.")
  237.         sleep(3)
  238.     end
  239. end
Advertisement
Add Comment
Please, Sign In to add comment