blob: 4994abc0b8857553f77f5af58d2c89644f926203 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
local M = {}
local loaders = {
sfx = function(f) return love.audio.newSource(f, "static") end,
img = love.graphics.newImage,
shader = love.graphics.newShader,
}
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 file
assets[k][name] = assert(loader(dir..file))
end
end
end
end
return loaded[assets_dir]
end
return M
|