sound.lua 684 B

12345678910111213141516171819202122232425262728293031323334
  1. Sound = class()
  2. function Sound:init()
  3. self.muted = false
  4. self.sounds = {}
  5. end
  6. function Sound:play(data)
  7. if self.muted then return end
  8. local name = data.sound
  9. if not self.sounds[name] and love.filesystem.exists('media/sounds/' .. name .. '.ogg') then
  10. self.sounds[name] = love.audio.newSource('media/sounds/' .. name .. '.ogg')
  11. end
  12. if self.sounds[name] then
  13. local sound = self.sounds[name]:play()
  14. return sound
  15. end
  16. return nil
  17. end
  18. function Sound:loop(data)
  19. local sound = self:play(data)
  20. if sound then sound:setLooping(true) end
  21. return sound
  22. end
  23. function Sound:mute()
  24. self.muted = not self.muted
  25. love.audio.tags.all.setVolume(self.muted and 0 or 1)
  26. end