summaryrefslogtreecommitdiff
path: root/assets.lua
diff options
context:
space:
mode:
Diffstat (limited to 'assets.lua')
-rw-r--r--assets.lua26
1 files changed, 26 insertions, 0 deletions
diff --git a/assets.lua b/assets.lua
new file mode 100644
index 0000000..e56deba
--- /dev/null
+++ b/assets.lua
@@ -0,0 +1,26 @@
+local M = {}
+
+local loaders = {
+ sfx = function(f) return love.audio.newSource(f, "static") end,
+}
+
+local loaded = {}
+function M.load_from(assets_dir)
+ if not loaded[assets_dir] then
+ local assets = {}
+ loaded[assets_dir] = assets
+ for k, loader in pairs(loaders) do
+ local dir = assets_dir..'/'..k..'/'
+ assets[k] = {}
+ for _, file in ipairs(love.filesystem.getDirectoryItems(dir)) do
+ if love.filesystem.getInfo(dir..file).type == "file" then
+ local name = file:match "(.+)%.[^%.]+$" or name
+ assets[k][name] = assert(loader(dir..file))
+ end
+ end
+ end
+ end
+ return loaded[assets_dir]
+end
+
+return M