Files
Techmino/parts/skin.lua
MrZ_26 06f4bb4e1a 整 理 代 码
(应该没有改到字符串里面的东西吧…)起码不直接影响运行
2022-10-01 11:32:11 +08:00

60 lines
1.2 KiB
Lua

local function C(x,y)
local canvas=GC.newCanvas(x,y)
GC.setCanvas(canvas)
return canvas
end
local Skins={}
local skinList={}
local SKIN={
lib={},
libMini={},
}
function SKIN.load(list)
for i=1,#list do
table.insert(skinList,list[i].name)
Skins[list[i].name]=list[i].path
end
end
function SKIN.getList() return skinList end
local skinMeta={__index=function(self,name)
GC.push()
GC.origin()
GC.setDefaultFilter('nearest','nearest')
local I
local N=Skins[name]
if N and love.filesystem.getInfo(N) then
I=GC.newImage(N)
else
MES.new('warn',"[no skin] "..name)
end
SKIN.lib[name],SKIN.libMini[name]={},{}
GC.setColor(1,1,1)
for y=0,2 do
for x=1,8 do
SKIN.lib[name][8*y+x]=C(30,30)
if I then
GC.draw(I,30-30*x,-30*y)
end
SKIN.libMini[name][8*y+x]=C(6,6)
if I then
GC.draw(I,6-6*x,-6*y,nil,.2)
end
end
end
GC.setDefaultFilter('linear','linear')
GC.setCanvas()
GC.pop()
return self[name]
end}
setmetatable(SKIN.lib,skinMeta)
setmetatable(SKIN.libMini,skinMeta)
return SKIN