Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- This is a program for ComputerCraft
- Instructions:
- 1. Login to your computer's prompt
- -Your computer is usually there by default
- 2. Download with "pastebin get 5dNPx84w startup"
- 3. IMPORTANT! Make sure to view or change the default
- password by typing "edit startup" and changing line 19
- -The password can also be changed in-program
- -However, it will RESET to the default if the computer restarts!
- 4. Make sure to change line 18 to reflect either where
- the door is, or a redstone wire connection
- 5. Run by typing "startup"
- or by rebooting your computer (CTRL-R)
- ]]
- local side ="left" --Side the door is on relation to the computer
- local password = "password" --Make sure to change this!
- local openTime = 3 --Time in seconds the door will stay open
- local input = ""
- local status = "Door status: CLOSED" --Default status flag DO NOT EDIT
- function getInput(prompt)
- print(prompt)
- term.write(">")
- input = read("*")
- end
- function validate(input)
- if input == password then
- return true
- else
- return false
- end
- end
- function openDoor(time)
- status = "Door status: OPEN"
- setFooter(status)
- rs.setOutput(side, true)
- sleep(time)
- status = "Door status: CLOSED"
- setFooter(status)
- rs.setOutput(side, false)
- end
- function setFooter(text)
- term.setCursorPos(1, 19)
- term.clearLine()
- term.write(text)
- end
- function callMainMenu()
- term.clear()
- setFooter(status)
- term.setCursorPos(1, 1)
- print("Flawedspirit Imperial Dynamics Inc.")
- print("Access Mediator v1.1")
- term.setCursorPos(1, 4)
- print("1. Relock accessway")
- print("2. Change password")
- print("3. Override door")
- print("4. Open access for " .. openTime .. " seconds")
- print("5. Change activation time")
- term.write(">")
- local event, input = os.pullEvent("char")
- if input == "1" then
- print("Relocking...")
- sleep(1)
- start()
- elseif input == "2" then
- changePass()
- elseif input == "3" then
- overrideDoor(input)
- elseif input == "4" then
- openDoor(openTime)
- callMainMenu()
- elseif input == "5" then
- changePulse()
- else
- print("**Invalid option**")
- sleep(2)
- callMainMenu()
- end
- end
- function changePass()
- term.clear()
- setFooter(status)
- term.setCursorPos(1, 1)
- print("Change Password:")
- term.setCursorPos(1, 3)
- getInput("Enter current access code:")
- if validate(input) == true then
- getInput("Enter new access code:")
- --New password must be entered twice
- local newCode1 = input
- getInput("Enter new access code again:")
- local newCode2 = input
- --Make sure new password is correct
- if newCode1 == newCode2 then
- password = newCode2
- print("Password changed.")
- sleep(2)
- start()
- else
- print("**The new passwords did not match**")
- sleep(2)
- changePass()
- end
- else
- print("**Incorrect password**")
- sleep(2)
- start()
- end
- end
- function overrideDoor(input)
- if input == "3" and not redstone.getOutput(side) then
- status = "Door status: FORCE OPEN"
- setFooter(status)
- redstone.setOutput(side, true)
- elseif input == "3" and redstone.getOutput(side) then
- status = "Door status: CLOSED"
- setFooter(status)
- redstone.setOutput(side, false)
- end
- sleep(2)
- callMainMenu()
- end
- function changePulse()
- term.clear()
- setFooter(status)
- term.setCursorPos(1, 1)
- print("Change Activation Time:")
- term.setCursorPos(1, 3)
- print("1. Short (3 sec)")
- print("2. Long (5 sec)")
- print("3. Extra Long (10 sec)")
- print("4. Back")
- term.write(">")
- local event, input = os.pullEvent("char")
- if input == "1" then
- openTime = 3
- elseif input == "2" then
- openTime = 5
- elseif input == "3" then
- openTime = 10
- elseif input == "4" then
- callMainMenu()
- else
- print("**Invalid option**")
- sleep(2)
- changePulse()
- end
- print("Activation time changed.")
- sleep(2)
- callMainMenu()
- end
- function start()
- --Prevent user from terminating program early
- local pullEvent = os.pullEvent
- os.pullEvent = os.pullEventRaw
- term.clear()
- setFooter(status)
- term.setCursorPos(1, 1)
- getInput("Enter access code:")
- if validate(input) == true then
- openDoor(openTime)
- callMainMenu()
- else
- print("**Incorrect password**")
- sleep(2)
- start()
- end
- end
- --Run the thing!
- start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement