228 lines
4.7 KiB
Lua
228 lines
4.7 KiB
Lua
--[[Local Variables]]
|
|
--
|
|
local termWidth, termHeight = term.getSize()
|
|
local selectedItem = 1
|
|
local inMainMenu = true
|
|
local inLightsMenu = false
|
|
local CableSite = "top"
|
|
local ActiveColor = rs.getBundledOutput(CableSite)
|
|
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 First()
|
|
lightSystem(colors.white)
|
|
end
|
|
|
|
function Second()
|
|
lightSystem(colors.orange)
|
|
end
|
|
|
|
function Third()
|
|
lightSystem(colors.magenta)
|
|
end
|
|
|
|
function Fourth()
|
|
lightSystem(colors.yellow)
|
|
end
|
|
|
|
function Fifth()
|
|
lightSystem(colors.lime)
|
|
end
|
|
|
|
function Sixth()
|
|
lightSystem(colors.pink)
|
|
end
|
|
|
|
function Alarm()
|
|
lightSystem(colors.red)
|
|
end
|
|
|
|
function All()
|
|
lightSystem(65407)
|
|
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 = "First", handler = First },
|
|
[2] = { text = "Second", handler = Second },
|
|
[3] = { text = "Third", handler = Third },
|
|
[4] = { text = "Fourth", handler = Fourth },
|
|
[5] = { text = "Fifth", handler = Fifth },
|
|
[6] = { text = "Sixth", handler = Sixth },
|
|
[7] = { text = "Alarm", handler = Alarm },
|
|
[8] = { text = "All (Off)", handler = All },
|
|
[9] = { 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(SetColors)
|
|
if SetColors == 65407 then
|
|
ActiveColor = 0
|
|
rs.setBundledOutput(CableSite, 0)
|
|
elseif colors.test(ActiveColor, SetColors) then
|
|
ActiveColor = colors.subtract(ActiveColor, SetColors)
|
|
rs.setBundledOutput(CableSite, ActiveColor)
|
|
else
|
|
ActiveColor = colors.combine(ActiveColor, SetColors)
|
|
rs.setBundledOutput(CableSite, ActiveColor)
|
|
end
|
|
SaveColors = ActiveColor
|
|
local file = io.open("lights", "w")
|
|
file:write(SaveColors)
|
|
file:close()
|
|
end
|
|
|
|
--[[Restore Light System]]
|
|
--
|
|
function RestoreLightSystem()
|
|
local Restore = io.open("lights", "r")
|
|
RestoredColors = tonumber(Restore:read())
|
|
rs.setBundledOutput(CableSite, RestoredColors)
|
|
ActiveColor = rs.getBundledOutput(CableSite)
|
|
Restore:close()
|
|
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
|
|
|
|
RestoreLightSystem()
|
|
login()
|