196 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			196 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| --[[Local Variables]]--
 | |
| local termWidth, termHeight = term.getSize()
 | |
| local selectedItem = 1
 | |
| local inMainMenu = true
 | |
| local ActiveColor = 0
 | |
| local inLightsMenu = false
 | |
| local CableSite = "top"
 | |
| os.pullEvent = os.pullEventRaw
 | |
| 
 | |
| --[[Menu Methods]]--
 | |
| function Who()
 | |
|   term.clear()
 | |
|   term.setCursorPos(1,1)
 | |
|   term.write("chuj")
 | |
|   sleep(3)
 | |
| end
 | |
| 
 | |
| function LightSystem()
 | |
|   selectedItem = 1
 | |
|   inLightsMenu=true
 | |
|   while inLightsMenu do
 | |
|     term.clear()
 | |
|     term.setCursorPos(1,1)
 | |
|     printMenu(lightsMenu)
 | |
|     event,key=os.pullEvent("key")
 | |
|     onKeyPressed(key,lightsMenu)
 | |
|   end
 | |
| end
 | |
| 
 | |
| function LightOn()
 | |
|   lightSystem("on", colors.white)
 | |
| end
 | |
| function LightOff()
 | |
|   lightSystem("off", colors.white)
 | |
| end
 | |
| function OrangeOn()
 | |
|   lightSystem("on", colors.orange)
 | |
| end
 | |
| function OrangeOff()
 | |
|   lightSystem("off", colors.orange)
 | |
| end
 | |
| function AlarmOn()
 | |
|   lightSystem("on", colors.red)
 | |
| end
 | |
| function AlarmOff()
 | |
|   lightSystem("off", colors.red)
 | |
| end
 | |
| function AllOff()
 | |
|   lightSystem("off", 65535)
 | |
| end
 | |
| function LightsBack()
 | |
|   inLightsMenu = false
 | |
|   selectedItem = 1
 | |
| end
 | |
| 
 | |
| function Snake()
 | |
|   shell.run("worm")
 | |
| end
 | |
| 
 | |
| function Calculator()
 | |
|   shell.run("calculator.lua")
 | |
| end
 | |
| 
 | |
| function Edit()
 | |
|   inMainMenu = false
 | |
|   shell.run("edit "..shell.getRunningProgram())
 | |
|   os.reboot()
 | |
| end
 | |
| 
 | |
| function Console()
 | |
|   term.clear()
 | |
|   term.setCursorPos(1,1)
 | |
|   inMainMenu = false
 | |
| end
 | |
| 
 | |
| function Reboot()
 | |
|   print("Rebooting...")
 | |
|   sleep(1)
 | |
|   os.reboot()
 | |
| end
 | |
| 
 | |
| function Exit()
 | |
|   os.shutdown()
 | |
| end
 | |
| 
 | |
| --[[Menu Definitions]]--
 | |
| mainMenu = {
 | |
|   [1] = { text = "Who amI?",handler=Who },
 | |
|   [2] = { text = "Light Controls",handler=LightSystem },
 | |
|   [3] = { text = "Snake",handler=Snake },
 | |
|   [4] = { text = "Calculator",handler=Calculator },
 | |
|   [5] = { text = "Edit",handler=Edit },
 | |
|   [6] = { text = "Console",handler=Console },
 | |
|   [7] = { text = "Reboot",handler=Reboot },
 | |
|   [8] = { text = "Exit",handler=Exit }
 | |
| }
 | |
| lightsMenu={
 | |
|   [1]= { text="Lights On", handler=LightOn },
 | |
|   [2]= { text="Lights Off", handler=LightOff },
 | |
|   [3]= { text="Orange On", handler=OrangeOn },
 | |
|   [4]= { text="Orange Off", handler=OrangeOff },
 | |
|   [5]= { text="Alarm On", handler=AlarmOn },
 | |
|   [6]= { text="Alarm Off", handler=AlarmOff },
 | |
|   [7]= { text="All Off", handler=AllOff },
 | |
|   [8]= { text="Back", handler=LightsBack }
 | |
| }
 | |
| 
 | |
| --[[Printing Methods]]--
 | |
| function printMenu(menu)
 | |
|   for i=1,#menu do
 | |
|     if i== selectedItem then
 | |
|       print("[*]"..menu[i].text)
 | |
|     else
 | |
|       print("[ ]"..menu[i].text)
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | |
| --[[Handler Method]]--
 | |
| function onKeyPressed( key, menu )
 | |
|   if key == keys.enter then
 | |
|     onItemSelected( menu )
 | |
|   elseif key == keys.up then
 | |
|     if selectedItem > 1 then
 | |
|       selectedItem = selectedItem - 1
 | |
|     else
 | |
|       selectedItem = #menu
 | |
|     end
 | |
|   elseif key == keys.down then
 | |
|     if selectedItem < #menu then
 | |
| 	    selectedItem = selectedItem + 1
 | |
|     else
 | |
|       selectedItem = 1 
 | |
| 	  end
 | |
|   end
 | |
| end
 | |
| 
 | |
| function onItemSelected( menu )
 | |
|   menu[selectedItem].handler(args)
 | |
| end
 | |
| 
 | |
| --[[Light System]]--
 | |
| function lightSystem( op, SetColors )
 | |
| --[[Color Conversion]]--
 | |
|   ConvertColors = SetColors
 | |
| --[[Color Change]]--
 | |
|   if op == "on" then
 | |
|     ActiveColor = colors.combine(ActiveColor, ConvertColors)
 | |
|     rs.setBundledOutput(CableSite ,ActiveColor)
 | |
|   elseif op == "off" then
 | |
|     ActiveColor = colors.subtract(ActiveColor, ConvertColors)
 | |
|     rs.setBundledOutput(CableSite, ActiveColor)
 | |
|   else error("Light system error you tried to: Turn " .. op .. " Color: " .. SetColors .. " when the state of color in memory is: " .. ActiveColor)
 | |
|   end
 | |
|   inLightsMenu = false
 | |
|   selectedItem = 1
 | |
| end
 | |
| 
 | |
| --[[Main function]]--
 | |
| function main()
 | |
|   while inMainMenu do
 | |
|     term.clear()
 | |
|     term.setCursorPos(1,1)
 | |
|     printMenu(mainMenu)
 | |
|     event,key = os.pullEvent("key")
 | |
|     onKeyPressed(key,mainMenu)
 | |
|   end
 | |
| end
 | |
| 
 | |
| --[[Login system]]--
 | |
| function login()
 | |
|   term.clear()
 | |
|   term.setCursorPos(1,1)
 | |
|   print("Login:")
 | |
|   local username = read()
 | |
|   term.clear()
 | |
|   term.setCursorPos(1,1)
 | |
|   print("Password:")
 | |
|   local password = read("*")
 | |
|   if username == "ZareMate" and password == "nigga" then
 | |
|     main()
 | |
|   elseif username == "zaremate" and password == "nigga" then
 | |
|     main()
 | |
|   elseif username == "Querdus" and password == "kebab" then
 | |
|     main()
 | |
|   elseif username == "querdus" and password == "kebab" then
 | |
|     main()
 | |
|   else
 | |
|     print("Wrong Password!")
 | |
|     sleep(3)
 | |
|     os.reboot()
 | |
|   end
 | |
| end
 | |
| 
 | |
| login()
 |