CCCPaste

RedstoneStarter


-- 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