-- controller.lua
-- Steuert das Startsignal für alle Musik-Computer
-- Version 1.0
local CONTROL_FILE = "disk/control.txt"
local TRIGGER_SIDE = "back" -- <--- Seite hier anpassen (z.B. "left", "right", "back" usw.)
-- -----------------------------
-- Hilfsfunktion: schreibt die Control-Datei
-- -----------------------------
local function writeControl(play, startTime)
local f = fs.open(CONTROL_FILE, "w")
f.writeLine("play=" .. tostring(play))
f.writeLine("startTime=" .. tostring(startTime))
f.close()
end
-- -----------------------------
-- Hauptschleife
-- -----------------------------
print("Musikcontroller aktiv.")
print("Warte auf Redstone-Signal an Seite: " .. TRIGGER_SIDE)
-- Sicherstellen, dass Datei existiert
writeControl(false, 0)
while true do
-- Auf steigende Flanke warten (Signal AN)
if redstone.getInput(TRIGGER_SIDE) then
local startTime = os.epoch("utc") + 1000 -- Start in 1 Sekunde
print("Signal erkannt! Starte alle Geräte in 1 Sekunde...")
writeControl(true, startTime)
-- 2 Sekunden warten, damit alle Geräte starten
sleep(2)
-- Dann Signal zurücksetzen
writeControl(false, startTime)
print("Startsignal beendet. Warte auf nächstes Signal.")
-- Warten bis das Signal wieder aus ist (Flankenerkennung)
while redstone.getInput(TRIGGER_SIDE) do
sleep(0.1)
end
end
sleep(0.1)
end