Advertisement
TechManDylan

Zelda SFX CC

May 24th, 2025 (edited)
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.08 KB | None | 0 0
  1. -- Find and wrap all connected speaker peripherals (including via modems)
  2. local speakers = {}
  3. for _, name in ipairs(peripheral.getNames()) do
  4.   if peripheral.getType(name) == "speaker" then
  5.     table.insert(speakers, peripheral.wrap(name))
  6.   end
  7. end
  8.  
  9. function playSong()
  10.   if #speakers == 0 then
  11.     print("No speakers found!")
  12.     return
  13.   end
  14.  
  15.   local notes = {13, 12, 9, 3, 2, 10, 14, 18}
  16.   for _, pitch in ipairs(notes) do
  17.     for _, speaker in ipairs(speakers) do
  18.       speaker.playNote("bit", 1, pitch)
  19.     end
  20.     os.sleep(0.15)
  21.   end
  22. end
  23.  
  24. -- Check for redstone signal from any side
  25. function isRedstonePowered()
  26.   local sides = {"top", "bottom", "left", "right", "front", "back"}
  27.   for _, side in ipairs(sides) do
  28.     if redstone.getInput(side) then
  29.       return true
  30.     end
  31.   end
  32.   return false
  33. end
  34.  
  35. -- Main loop: wait for redstone signal and play song
  36. while true do
  37.   if isRedstonePowered() then
  38.     playSong()
  39.  
  40.     -- Wait until the redstone signal turns off
  41.     repeat
  42.       os.sleep(0.1)
  43.     until not isRedstonePowered()
  44.   end
  45.  
  46.   os.sleep(0.1)
  47. end
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement