notsanequarium/lib/assets.lua

95 lines
2.6 KiB
Lua
Raw Normal View History

2021-01-23 16:37:37 +00:00
require 'lib.audio'
2021-01-22 22:33:08 +00:00
local assets = {}
2021-01-25 21:17:32 +00:00
local rawsprites = {}
2021-01-22 22:33:08 +00:00
function assets.clear()
print(" clearing assets")
sprites = {}
2021-01-25 21:17:32 +00:00
rawsprites = {}
2021-01-22 22:33:08 +00:00
sound_path = {}
music_path = {}
end
function assets.load(base)
print(" loading " .. base)
2021-01-25 21:17:32 +00:00
setmetatable(sprites, {__index = function(tbl, i)
if rawsprites[i] then return rawsprites[i] end
local sprite = love.graphics.newImage('assets/sprites/' .. i .. '.png')
rawsprites[i] = sprite
return sprite
end})
--assets.addSprites(base)
--print("✓ added sprites")
2021-01-22 22:33:08 +00:00
assets.addAudio(base)
print("✓ added audio")
end
function assets.addSprites(base, d)
local dir = base.."/sprites"
if d then
dir = dir .. "/" .. d
end
local files = love.filesystem.getDirectoryItems(dir)
for _,file in ipairs(files) do
if string.sub(file, -4) == ".png" then
local spritename = string.sub(file, 1, -5)
local sprite = love.graphics.newImage(dir .. "/" .. file)
if d then
spritename = d .. "/" .. spritename
end
sprites[spritename] = sprite
--print(colr.cyan(" added sprite "..spritename))
elseif love.filesystem.getInfo(dir .. "/" .. file).type == "directory" then
--print(colr.cyan(" found sprite dir: " .. file))
local newdir = file
if d then
newdir = d .. "/" .. newdir
end
assets.addSprites(base, newdir)
end
end
end
function assets.addAudio(base, d, type)
local dir = base.."/audio"
if d then
dir = dir .. "/" .. d
end
local files = love.filesystem.getDirectoryItems(dir)
for _,file in ipairs(files) do
if love.filesystem.getInfo(dir .. "/" .. file).type == "directory" then
local newdir = file
if d then
newdir = d .. "/" .. newdir
end
assets.addAudio(base, newdir, type or file)
else
local audioname = file
if file:ends(".wav") then audioname = file:sub(1, -5) end
if file:ends(".mp3") then audioname = file:sub(1, -5) end
if file:ends(".ogg") then audioname = file:sub(1, -5) end
if file:ends(".flac") then audioname = file:sub(1, -5) end
if file:ends(".xm") then audioname = file:sub(1, -4) end
--[[if d then
audioname = d .. "/" .. audioname
end]]
if type == "sfx" then
sound_path[audioname] = dir .. "/" .. file
2021-01-23 16:37:37 +00:00
if sounds then
registerSound(audioname, (sounds[audioname] or {}).volume or 1)
2021-01-22 22:33:08 +00:00
end
elseif type == "bgm" then
music_path[audioname] = dir .. "/" .. file
end
--print(" audio "..audioname.." added")
end
end
end
return assets