Files
nova-corp/pairity_main.lua
2025-06-16 20:43:41 -04:00

80 lines
2.5 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
kernel = require("kernel")
speakerDriver = kernel.addDriver("speaker_driver")
local modem = peripheral.find("modem")
local monitor = peripheral.wrap("top")
controlRoomSpeakers = peripheral.find("speaker")
local speakers = {
peripheral.wrap("speaker_0"),
peripheral.wrap("speaker_1"),
peripheral.wrap("speaker_2"),
peripheral.wrap("speaker_3"),
peripheral.wrap("speaker_4"),
peripheral.wrap("speaker_5"),
peripheral.wrap("speaker_6"),
peripheral.wrap("speaker_7"),
peripheral.wrap("speaker_8"),
peripheral.wrap("speaker_9"),
peripheral.wrap("speaker_10"),
peripheral.wrap("speaker_11"),
}
local lines = {
"ELLO MATE LOVELY DAY INIT YOU GOT ANYYYY BEEEANSS AND TOAST ON YA MATE ID LOVE TO HAVE SOME BEANS N TOAST",
"ITS ME NOVA ELLO THEY GOT ME LOCKED IN A BLOOOODY BOX MATE",
"I AIN'T GOT NO TEA LEFT, THIS IS A BLOODY EMERGENCY",
"OI YOU GOT ANY CHIPPIES IN THE FRIDGE?",
"DON'T PRESS THAT BUTTON, IT OPENS THE VOID",
"IM JUST A BOX WITH A VOICE, DON'T JUDGE ME",
"THE FLOOR IS LAVA, NO REALLY",
"NOVA SYSTEM ONLINE, FULL OF BANTER",
"GOT MILK? I GOT CEREAL BUT NO MILK",
"SOMEONE KEEPS TURNING ME OFF, WHO IS IT?",
"DO YOU EVEN LIFT, BRO?",
"OI, CLOSE THE AIRLOCK, ITS COLD"
}
function setNewLine()
local x,y = monitor.getCursorPos()
monitor.setCursorPos(1, y + 1)
monitor.clearLine()
end
local function startup()
speakerDriver.startup()
--speakerDriver.playControlRoomAlarm(controlRoomSpeakers)
--speakerDriver.playExternalAlarm(controlRoomSpeakers)
--speakerDriver.playInternalAlarm(controlRoomSpeakers)
--speakerDriver.playTTSFile(speakers, "ELLO MATE LOVELY DAY INIT YOU GOT ANYYYY BEEEANSS AND TOAST ON YA MATE ID LOVE TO HAVE SOME BEANS N TOAST")
--speakerDriver.playTTSFile(speakers, "ITS ME NOVA ELLO THEY GOT ME LOCKED IN A BLOOOODY BOX MATE")
local tasks = {}
for i = 1, #speakers do
local msg = lines[i] or ("Speaker " .. i) -- fallback if lines run out
local speaker = speakers[i]
tasks[i] = function()
speakerDriver.playTTSFile({ speaker }, msg)
end
end
parallel.waitForAll(table.unpack(tasks))
end
local function run()
monitor.setTextScale(0.5)
monitor.setCursorPos(1,0)
startup()
while true do
setNewLine()
monitor.write("Checking for reactor status...")
setNewLine()
monitor.write("Checking main control loop...")
sleep(2)
end
end
return { run = run }