Files
Techmino/parts/skin.lua

126 lines
2.5 KiB
Lua

local gc=love.graphics
local int=math.floor
local function C(x,y)
local _=gc.newCanvas(x,y)
gc.setCanvas(_)
return _
end
local list={
"normal(mrz)",
"smooth(mrz)",
"contrast(mrz)",
"glow(mrz)",
"plastic(mrz)",
"jelly(miya)",
"steel(kulumi)",
"pure(mrz)",
"ball(shaw)",
"paper(mrz)",
"gem(notypey)",
"classic(_)",
"brick(notypey)",
"brick_light(notypey)",
"cartoon_cup(earety)",
"retro(notypey)",
"retro_grey(notypey)",
"text_bone(mrz)",
"colored_bone(mrz)",
"white_bone(mrz)",
"WTF",
}
local count=#list
local SKIN={}
SKIN.lib={}
SKIN.libMini={}
SKIN.libColor={
{color.rainbow( 1.471)},
{color.rainbow( 1.078)},
{color.rainbow( 0.685)},
{color.rainbow( 0.293)},
{color.rainbow(-0.100)},
{color.rainbow(-0.493)},
{color.rainbow(-0.885)},
{color.rainbow(-1.278)},
{color.rainbow(-1.671)},
{color.rainbow(-2.063)},
{color.rainbow(-2.456)},
{color.rainbow(-2.849)},
{color.rainbow(-3.242)},
{color.rainbow(-3.634)},
{color.rainbow(-4.027)},
{color.rainbow(-4.412)},
color.dGrey,
color.black,
color.lYellow,
color.grey,
color.lGrey,
color.dPurple,
color.dRed,
color.dGreen,
}
function SKIN.getCount()
return count
end
function SKIN.loadOne(_)
gc.push()
gc.origin()
gc.setDefaultFilter("nearest","nearest")
gc.setColor(1,1,1)
SKIN.lib[_],SKIN.libMini[_]={},{}
local N="/image/skin/"..list[_]..".png"
local I
if love.filesystem.getInfo(N)then
I=gc.newImage(N)
else
I=gc.newImage("/image/skin/"..list[1]..".png")
LOG.print("No skin file: "..list[_],"warn")
end
for i=0,2 do
for j=1,8 do
SKIN.lib[_][8*i+j]=C(30,30)
gc.draw(I,30-30*j,-30*i)
SKIN.libMini[_][8*i+j]=C(6,6)
gc.draw(I,6-6*j,-6*i,nil,.2)
end
end
I:release()
gc.setCanvas()
gc.pop()
end
function SKIN.loadAll()
for i=1,count do
SFX.loadOne(i)
end
end
function SKIN.prevSet()--Prev skin_set
local _=(SETTING.skinSet-2)%count+1
SETTING.skinSet=_
SKIN.change(_)
_=list[_]
TEXT.show(_,1100,100,int(300/#_)+5,"fly")
end
function SKIN.nextSet()--Next skin_set
local _=SETTING.skinSet%count+1
SETTING.skinSet=_
SKIN.change(_)
_=list[_]
TEXT.show(_,1100,100,int(300/#_)+5,"fly")
end
function SKIN.prev(i)--Prev skin for [i]
local _=SETTING.skin
_[i]=(_[i]-2)%16+1
end
function SKIN.next(i)--Next skin for [i]
local _=SETTING.skin
_[i]=_[i]%16+1
end
function SKIN.rotate(i)--Change direction of [i]
SETTING.face[i]=(SETTING.face[i]+1)%4
SFX.play("rotate")
end
function SKIN.change(i)--Change to skin_set[i]
blockSkin=SKIN.lib[i]
blockSkinMini=SKIN.libMini[i]
end
return SKIN