summaryrefslogtreecommitdiff
path: root/game/music.lua
diff options
context:
space:
mode:
Diffstat (limited to 'game/music.lua')
-rw-r--r--game/music.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/game/music.lua b/game/music.lua
new file mode 100644
index 0000000..b4ed5f1
--- /dev/null
+++ b/game/music.lua
@@ -0,0 +1,21 @@
+local M = {}
+M.__index = M
+M.playing = nil
+
+function M.new(assets)
+ local new = setmetatable({}, M)
+ new.assets = assets
+ return new
+end
+
+function M:play(name)
+ assert(self.assets.music[name], name.." isn't extant music")
+ if M.playing ~= self.assets.music[name] then
+ if M.playing then M.playing:stop() end
+ self.assets.music[name]:seek(0)
+ M.playing = self.assets.music[name]
+ end
+ self.assets.music[name]:play()
+end
+
+return M