Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Find and wrap all connected speaker peripherals (including via modems)
- local speakers = {}
- for _, name in ipairs(peripheral.getNames()) do
- if peripheral.getType(name) == "speaker" then
- table.insert(speakers, peripheral.wrap(name))
- end
- end
- function playSong()
- if #speakers == 0 then
- print("No speakers found!")
- return
- end
- local notes = {13, 12, 9, 3, 2, 10, 14, 18}
- for _, pitch in ipairs(notes) do
- for _, speaker in ipairs(speakers) do
- speaker.playNote("bit", 1, pitch)
- end
- os.sleep(0.15)
- end
- end
- -- Check for redstone signal from any side
- function isRedstonePowered()
- local sides = {"top", "bottom", "left", "right", "front", "back"}
- for _, side in ipairs(sides) do
- if redstone.getInput(side) then
- return true
- end
- end
- return false
- end
- -- Main loop: wait for redstone signal and play song
- while true do
- if isRedstonePowered() then
- playSong()
- -- Wait until the redstone signal turns off
- repeat
- os.sleep(0.1)
- until not isRedstonePowered()
- end
- os.sleep(0.1)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement