Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local pullEvent = os.pullEvent
- os.pullEvent = os.pullEventRaw
- function getDeviceSide(deviceType)
- deviceType = deviceType:lower()
- for i, side in pairs(rs.getSides()) do
- if (peripheral.isPresent(side)) then
- if (string.lower(peripheral.getType(side)) == deviceType) then
- return side;
- end
- end
- end
- return nil;
- end
- function wrapThis(thing, f)
- local wrapped = nil
- while wrapped == nil and f <= 100 do
- wrapped = peripheral.wrap(thing.."_"..f)
- f = f + 1
- end
- if wrapped == nil then
- side = getDeviceSide(thing)
- if side ~= nil then
- return peripheral.wrap(side)
- else
- return nil
- end
- else
- return wrapped
- end
- end
- local monitor1 = wrapThis("monitor", 1)
- local monitor2 = wrapThis("monitor", 2)
- while true do
- monitor1.setTextScale(2)
- monitor1.clear()
- monitor1.setCursorPos(1, 1)
- monitor1.setTextColor(colors.white)
- monitor1.write("Launch bay door status:")
- monitor1.setCursorPos(1, 3)
- monitor1.setTextColor(colors.white)
- monitor1.write("Upper Door")
- monitor1.setCursorPos(19, 3)
- monitor1.setTextColor(colors.blue)
- monitor1.write("CLOSED")
- monitor1.setCursorPos(1, 5)
- monitor1.setTextColor(colors.white)
- monitor1.write("Lower Door")
- monitor1.setCursorPos(19, 5)
- monitor1.setTextColor(colors.blue)
- monitor1.write("CLOSED")
- monitor2.setTextScale(2)
- monitor2.clear()
- monitor2.setCursorPos(1, 1)
- monitor2.setTextColor(colors.white)
- monitor2.write("Launch bay door status:")
- monitor2.setCursorPos(1, 3)
- monitor2.setTextColor(colors.white)
- monitor2.write("Upper Door")
- monitor2.setCursorPos(19, 3)
- monitor2.setTextColor(colors.blue)
- monitor2.write("CLOSED")
- monitor2.setCursorPos(1, 5)
- monitor2.setTextColor(colors.white)
- monitor2.write("Lower Door")
- monitor2.setCursorPos(19, 5)
- monitor2.setTextColor(colors.blue)
- monitor2.write("CLOSED")
- term.clear()
- term.setTextColor(colors.white)
- term.setCursorPos(1, 1)
- print("This is the launch bay doors control computer.")
- term.setCursorPos(1, 3)
- term.setTextColor(colors.orange)
- print("The doors MUST be open before a rocket can be launched.")
- term.setCursorPos(1, 6)
- term.setTextColor(colors.white)
- print("Please input a command:")
- input = read()
- if input == "open" then
- doortime = 200
- term.clear()
- term.setTextColor(colors.red)
- term.setCursorPos(1, 1)
- print("Doors opening...")
- redstone.setOutput("right", true)
- redstone.setOutput("left", true)
- sleep(5)
- while true do
- term.clear()
- term.setTextColor(colors.red)
- term.setCursorPos(1, 1)
- print("Doors open.")
- term.setTextColor(colors.white)
- term.setCursorPos(1, 3)
- print("Time until doors close:")
- term.setCursorPos(1, 4)
- print(doortime)
- monitor1.clear()
- monitor1.setCursorPos(1, 1)
- monitor1.setTextColor(colors.white)
- monitor1.write("Launch bay door status:")
- monitor1.setCursorPos(1, 3)
- monitor1.setTextColor(colors.white)
- monitor1.write("Upper Door")
- monitor1.setCursorPos(20, 3)
- monitor1.setTextColor(colors.red)
- monitor1.write("OPEN!")
- monitor1.setCursorPos(1, 5)
- monitor1.setTextColor(colors.white)
- monitor1.write("Lower Door")
- monitor1.setCursorPos(20, 5)
- monitor1.setTextColor(colors.red)
- monitor1.write("OPEN!")
- monitor1.setCursorPos(20, 8)
- monitor1.setTextColor(colors.white)
- monitor1.write(doortime)
- monitor2.clear()
- monitor2.setCursorPos(1, 1)
- monitor2.setTextColor(colors.white)
- monitor2.write("Launch bay door status:")
- monitor2.setCursorPos(1, 3)
- monitor2.setTextColor(colors.white)
- monitor2.write("Upper Door")
- monitor2.setCursorPos(20, 3)
- monitor2.setTextColor(colors.red)
- monitor2.write("OPEN!")
- monitor2.setCursorPos(1, 5)
- monitor2.setTextColor(colors.white)
- monitor2.write("Lower Door")
- monitor2.setCursorPos(20, 5)
- monitor2.setTextColor(colors.red)
- monitor2.write("OPEN!")
- monitor2.setCursorPos(20, 8)
- monitor2.setTextColor(colors.white)
- monitor2.write(doortime)
- redstone.setOutput("right", true)
- redstone.setOutput("left", true)
- doortime = doortime - 1
- sleep(1)
- if doortime == 0 then
- redstone.setOutput("right", false)
- redstone.setOutput("left", false)
- break
- end
- end
- end
- if input == "opentop" then
- doortime = 200
- term.clear()
- term.setTextColor(colors.red)
- term.setCursorPos(1, 1)
- print("Upper door opening...")
- redstone.setOutput("right", true)
- redstone.setOutput("left", false)
- sleep(5)
- while true do
- term.clear()
- term.setTextColor(colors.red)
- term.setCursorPos(1, 1)
- print("Upper door open!")
- term.setTextColor(colors.white)
- term.setCursorPos(1, 3)
- print("Time until upper door closes:")
- term.setCursorPos(1, 4)
- print(doortime)
- monitor1.clear()
- monitor1.setCursorPos(1, 1)
- monitor1.setTextColor(colors.white)
- monitor1.write("Launch bay door status:")
- monitor1.setCursorPos(1, 3)
- monitor1.setTextColor(colors.white)
- monitor1.write("Upper Door")
- monitor1.setCursorPos(20, 3)
- monitor1.setTextColor(colors.red)
- monitor1.write("OPEN!")
- monitor1.setCursorPos(1, 5)
- monitor1.setTextColor(colors.white)
- monitor1.write("Lower Door")
- monitor1.setCursorPos(19, 5)
- monitor1.setTextColor(colors.blue)
- monitor1.write("CLOSED")
- monitor1.setCursorPos(20, 8)
- monitor1.setTextColor(colors.white)
- monitor1.write(doortime)
- monitor2.clear()
- monitor2.setCursorPos(1, 1)
- monitor2.setTextColor(colors.white)
- monitor2.write("Launch bay door status:")
- monitor2.setCursorPos(1, 3)
- monitor2.setTextColor(colors.white)
- monitor2.write("Upper Door")
- monitor2.setCursorPos(20, 3)
- monitor2.setTextColor(colors.red)
- monitor2.write("OPEN!")
- monitor2.setCursorPos(1, 5)
- monitor2.setTextColor(colors.white)
- monitor2.write("Lower Door")
- monitor2.setCursorPos(19, 5)
- monitor2.setTextColor(colors.blue)
- monitor2.write("CLOSED")
- monitor2.setCursorPos(20, 8)
- monitor2.setTextColor(colors.white)
- monitor2.write(doortime)
- redstone.setOutput("right", true)
- redstone.setOutput("left", false)
- doortime = doortime - 1
- sleep(1)
- if doortime == 0 then
- redstone.setOutput("right", false)
- redstone.setOutput("left", false)
- break
- end
- end
- end
- if input == "debug" then
- term.clear()
- term.setCursorPos(1, 1)
- print("Debug mode activated, press CTRL + T after 5 seconds to exit program.")
- os.pullEvent = pullEvent
- sleep(5)
- end
- if input ~= "debug" and input ~= "open" then
- term.clear()
- term.setCursorPos(1, 1)
- print("Invalid command.")
- sleep(3)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment