80 lines
2.5 KiB
Lua
80 lines
2.5 KiB
Lua
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",
|
||
"I’M 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, IT’S 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 } |