Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- os.pullEvent = os.pullEventRaw
- --Facility Manager Base
- --this program is the base file for the Facility Management System.
- --this program is for minecraft 1.16.5, CC Tweaked
- --Facility Related Variables
- local Facility_NightShift = 22
- local Facility_DayShift = 6
- local Facility_SecurityState = 0
- local Facility_DEFCON = 5
- local Facility_Personal = {..}
- local Facility_PersonalSensors = 0
- --Protocols
- local Facility_SecurityProtocol = 5555
- --Security Related Variables
- local Security_IncreaseState = "g2sxts"
- local Security_DecreaseState = "og37fs"
- --Access
- local ACCESS_Testing = true
- local ACCESS_Security = true
- local ACCESS_Manufactoring = true
- local ACCESS_EmergencyServices = true
- local ACCESS_DEFCON = false
- local ACCESS_Lockdown = true
- --Emergency Variables
- local EFM = 0
- local ENP = 0
- rednet.open("back")
- function start()
- if fs.exists("SystemData") == false then
- SaveData()
- else
- LoadData()
- end
- if Facility_SecurityState == 5 then
- LOCKED()
- else
- MainHandler()
- end
- end
- function MainHandler()
- rednet.host(0,"FacilityManager")
- while true do
- local event, Item = os.pullEvent()
- local id, message, protocol = rednet.receive()
- if event ~= nil then
- if event == "key" then
- if Item == keys.enter then
- UserInterface()
- break
- end
- else
- end
- elseif id ~= nil then
- if protocol == Facility_SecurityProtocol and ACCESS_Security == true then
- if message == Security_IncreaseState then
- Facility_SecurityState = Facility_SecurityState + 1
- elseif message == Security_DecreaseState then
- Facility_SecurityState = Facility_SecurityState - 1
- end
- if Facility_SecurityState > 5 then
- Facility_SecurityState = 5
- elseif Facility_SecurityState < 0 then
- Facility_SecurityState = 0
- end
- else
- end
- else
- if Facility_SecurityState < 3 then
- local h = os.time("ingame")
- if h >= Facility_NightShift or h < Facility_DayShift then
- FacilityState("Night")
- elseif h >= Facility_DayShift then
- FacilityState("Day")
- end
- elseif Faciltiy_SecurityState < 5 and ACCESS_EmergencyServices == true then
- MartialLaw()
- elseif Facility_SecurityState == 5 ACCESS_Lockdown == true then
- CompleteLockdown()
- break
- end
- end
- SaveData()
- end
- end
- function FacilityState(State)
- rednet.broadcast(0432,State)
- end
- function GetPresentPersonal()
- rednet.broadcast(8532,"FindPersonal")
- local I = 1
- while I < Facility_PersonalSensors do
- local id, message, protocol = rednet.receive()
- Facility_Personal[#Facility_Personal+1] = message
- I = I + 1
- end
- end
- function NetworkHandler(Network,Message)
- local Protocol = 0
- if Network == "Testing" and ACCESS_Testing == true then
- Protocol == 0
- elseif Network == "Security" and ACCESS_Security == true then
- Protocol == 0
- elseif Network == "Logistics" and ACCESS_Manufactoring == true then
- Protocol == 0
- elseif Network == "SubjectManagement" then
- Protocol == 0
- elseif Network == "Colonies" then
- Protocol == 0
- elseif Network == "Diplomacy" then
- Protocol == 0
- elseif Network == "ExpansionAreas" then
- Protocol == 0
- end
- rednet.broadcast(Protocol,Message)
- end
- function SaveData()
- local file = fs.open("SystemData","w")
- file.writeLine(Facility_SecurityState)
- file.writeLine(Facility_PersonalSensors)
- file.writeLine(Facility_DEFCON)
- file.writeLine(Facility_NightShift)
- file.writeLine(Facility_DayShift)
- file.writeLine(Facility_SecurityProtocol)
- file.writeLine(Security_IncreaseState)
- file.writeLine(Security_DecreaseState)
- file.writeLine(ACCESS_Testing)
- file.writeLine(ACCESS_Security)
- file.writeLine(ACCESS_Manufactoring)
- file.writeLine(ACCESS_EmergencyServices)
- file.writeLine(ACCESS_DEFCON)
- file.writeLine(ACCESS_Lockdown)
- file.writeLine(EFM)
- file.writeLine(ENP)
- file.close()
- end
- function LoadData()
- local file = fs.open("SystemData","r")
- Facility_SecurityState = file.readLine(1)
- Facility_PersonalSensors = file.readLine(2)
- Facility_DEFCON = file.readLine(3)
- Facility_NightShift = file.readLine(4)
- Facility_DayShift = file.readLine(5)
- Facility_SecurityProtocol = file.readLine(6)
- Security_IncreaseState = file.readLine(7)
- Security_DecreaseState = file.readLine(8)
- ACCESS_Testing = file.readLine(9)
- ACCESS_Security = file.readLine(10)
- ACCESS_Manufactoring = file.readLine(11)
- ACCESS_EmergencyServices = file.readLine(12)
- ACCESS_DEFCON = file.readLine(13)
- ACCESS_Lockdown = file.readLine(14)
- EFM = file.readLine(15)
- ENP = file.readLine(16)
- file.close()
- end
- --Security Functions
- function MartialLaw()
- rednet.broadcast(ENP,"LOCKDOWN")
- rednet.broadcast(Facility_SecurityProtocol,"MaritalLaw")
- end
- function CompleteLockdown()
- MartialLaw()
- rednet.send(EFM,"Activate",ENP)
- LOCKED()
- end
- --Emergency Functions
- function LOCKED()
- while true do
- local id, message, protocol = rednet.receive()
- if id == EFM and message == "Activate" and protocol == ENP then
- Facility_SecurityState = 0
- start()
- break
- end
- end
- --User Interaction
- function UserInterface()
- term.clear()
- term.setCursorPos(1,1)
- print("==============FACILITY=MANAGER============")
- print("--------USER---INTERFACE------------------")
- print("---OPTIONS---")
- print(" 1 = REBOOT")
- print(" 2 = MANAGE ACCESS")
- print(" 3 = OPEN CONSOLE")
- print(" 4 = SAVED DATA")
- print(" 5 = CANCEL")
- local event, key = os.pullEvent("key")
- if key == keys.one then
- os.reboot
- elseif key == keys.two then
- UserInterface_AccessManagement()
- elseif key == keys.three then
- elseif key == keys.four then
- UserInterface_Data()
- elseif key == keys.five then
- start()
- else
- UserInterface()
- end
- end
- function UserInferface_AccessManagement()
- term.clear()
- term.setCursorPos(1,1)
- print("===========ACCESS=MANAGEMENT=========")
- print("--OPTIONS--")
- print(" 1 = Testing ("..ACCESS_Testing..")")
- print(" 1 = Testing ("..ACCESS_Security..")")
- print(" 1 = Testing ("..ACCESS_Manufactoring..")")
- print(" 1 = Testing ("..ACCESS_EmergencyServices..")")
- print(" 1 = Testing ("..ACCESS_DEFCON..")")
- print(" 1 = Testing ("..ACCESS_Lockdown..")")
- end
- start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement