summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAki <nthirtyone@gmail.com>2017-06-15 17:21:02 +0200
committerAki <nthirtyone@gmail.com>2017-06-15 17:21:02 +0200
commit2c458f0c756ebe577083a7cc972a07e870cb0ba9 (patch)
tree7f9bf44504deaf3a3f9e9abb5116da6d6ad9f9bc
parenta00ac10a0c3654dccf7c8c92da6d8666f2f7ac48 (diff)
downloadroflnauts-2c458f0c756ebe577083a7cc972a07e870cb0ba9.zip
roflnauts-2c458f0c756ebe577083a7cc972a07e870cb0ba9.tar.gz
roflnauts-2c458f0c756ebe577083a7cc972a07e870cb0ba9.tar.bz2
Music renamed to MusicPlayer
changed behaviour to use static table for sources need to change dependencies now
-rw-r--r--not/Music.lua25
-rw-r--r--not/MusicPlayer.lua34
2 files changed, 34 insertions, 25 deletions
diff --git a/not/Music.lua b/not/Music.lua
deleted file mode 100644
index ee930f4..0000000
--- a/not/Music.lua
+++ /dev/null
@@ -1,25 +0,0 @@
---- `Music`
--- Simple music player object that plays and loops selected track in single Scene.
-Music = {
- source = --[[love.audio.newSource]]nil
-}
-
-Music.__index = Music
-
-function Music:new (trackName)
- local o = setmetatable({}, self)
- o:init(trackName)
- return o
-end
-
--- TODO: trackName should be passed without file extension.
-function Music:init (trackName)
- self.source = love.audio.newSource("assets/music/" .. trackName)
- self.source:setLooping(true)
- self.source:setVolume(.7)
- self.source:play()
-end
-
-function Music:delete ()
- self.source:stop()
-end \ No newline at end of file
diff --git a/not/MusicPlayer.lua b/not/MusicPlayer.lua
new file mode 100644
index 0000000..1e65e3b
--- /dev/null
+++ b/not/MusicPlayer.lua
@@ -0,0 +1,34 @@
+require "not.object"
+
+--- `MusicPlayer`
+-- Simple music player object that plays and loops selected track.
+MusicPlayer = Object:extends()
+
+MusicPlayer.TRACKS = {}
+
+-- TODO: trackName should be passed without file extension.
+function MusicPlayer:new (trackName)
+ self:setTrack(trackName)
+end
+
+function MusicPlayer:delete ()
+ self.source:stop()
+end
+
+function MusicPlayer:setTrack (trackName)
+ if self.source then
+ self.source:stop()
+ end
+ if MusicPlayer.TRACKS[trackName] then
+ self.source = MusicPlayer.TRACKS[trackName]
+ else
+ local source = love.audio.newSource("assets/music" .. trackName)
+ source:setLooping(true)
+ source:setVolume(.7)
+ self.source = source
+ MusicPlayer.TRACKS[trackName] = source
+ end
+ self.source:play()
+end
+
+return MusicPlayer