diff options
Diffstat (limited to 'assets.lua')
-rw-r--r-- | assets.lua | 26 |
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 |