coomputer-craft/main/startup.lua
ZareMate 17f68aa860 .
2022-06-01 19:11:26 +02:00

190 lines
4.5 KiB
Lua

--[[Local Variables]]--
local termWidth, termHeight = term.getSize()
local selectedItem = 1
local inMainMenu = true
local inLightsMenu = false
local color = "off"
--[[Menu Methods]]--
function Choice1()
term.clear()
term.setCursorPos(1,1)
term.write("chuj")
sleep(3)
end
function Choice2()
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 LightsOn()
lightSystem("on", "white")
end
function AlarmOn()
lightSystem("on", "red")
end
function LOff()
lightSystem("off", "white")
end
function AOff()
lightSystem("off", "red")
end
function LightsBack()
inLightsMenu = false
selectedItem = 1
end
function AllOff()
lightSystem("off", "white")
lightSystem("off", "red")
end
function Snake()
shell.run("worm")
end
function Edit()
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=Choice1 },
[2] = { text = "Light Controls",handler=Choice2 },
[3] = { text = "Snake",handler=Snake },
[4] = { text = "Edit program",handler=Edit },
[5] = { text = "Reboot",handler=Reboot },
[6] = { text = "Exit",handler=Exit }
}
lightsMenu={
[1]= { text="Lights On", handler=LightsOn},
[2]= { text="Alarm On", handler=AlarmOn},
[3]= { text="Lights Off", handler=LOff},
[4]= { text="Alarm Off", handler=AOff},
[5]= { text="All Off", handler=AllOff},
[6]= { 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()
end
--[[Light System]]--
function lightSystem( op, type )
--[[On functions]]--
if color == "off" and op == "on" and type == "white" then
redstone.setBundledOutput("top", colors.white)
color = "white"
elseif color == "off" and op == "on" and type == "red" then
redstone.setBundledOutput("top", colors.red)
color = "red"
elseif color == "white" and op == "on" and type == "red" then
redstone.setBundledOutput("top", colors.white + colors.red)
color = "both"
elseif color == "red" and op == "on" and type == "white" then
redstone.setBundledOutput("top", colors.white + colors.red)
color = "both"
--[[Off functions]]--
elseif color == "both" and op == "off" and type == "white" then
redstone.setBundledOutput("top", colors.red)
color = "red"
elseif color == "both" and op == "off" and type == "red" then
redstone.setBundledOutput("top", colors.white)
color = "white"
elseif color == "white" and op == "off" and type == "white" then
redstone.setBundledOutput("top", 0)
color = "off"
elseif color == "red" and op == "off" and type == "red" then
redstone.setBundledOutput("top", 0)
color = "off"
else error("Light system error " .. op .. " " .. type .. " " .. color)
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()