aseprite/scripts/palette.lua

82 lines
2.0 KiB
Lua

-- Copyright (C) 2019 Igara Studio S.A.
-- Copyright (C) 2018 David Capello
--
-- This file is released under the terms of the MIT license.
-- Read LICENSE.txt for more information.
do
local p = Palette()
assert(#p == 256)
for i = 0,#p-1 do
assert(p:getColor(i) == Color(0, 0, 0))
end
end
do
local p = Palette(32)
assert(#p == 32)
for i = 0,#p-1 do
assert(p:getColor(i) == Color(0, 0, 0))
end
p:resize(4)
assert(#p == 4)
p:setColor(0, Color(255, 8, 32))
p:setColor(1, Color(250, 4, 30))
p:setColor(2, Color(240, 3, 20))
p:setColor(3, Color(210, 2, 10))
assert(p:getColor(0) == Color(255, 8, 32))
assert(p:getColor(1) == Color(250, 4, 30))
assert(p:getColor(2) == Color(240, 3, 20))
assert(p:getColor(3) == Color(210, 2, 10))
end
-- Load/save
do
local p = Palette{ fromFile="sprites/abcd.aseprite" }
assert(#p == 5)
assert(p:getColor(0) == Color(0, 0, 0))
assert(p:getColor(1) == Color(25, 0, 255))
assert(p:getColor(2) == Color(255, 0, 0))
assert(p:getColor(3) == Color(255, 255, 0))
assert(p:getColor(4) == Color(0, 128, 0))
p:saveAs("_test_.gpl")
local q = Palette{ fromFile="_test_.gpl" }
assert(#p == #q)
for i=0,#q-1 do
assert(p:getColor(i) == q:getColor(i))
end
end
-- Default palette and resources
do
local db16 = Palette{ fromResource="DB16" }
local db32 = Palette{ fromResource="DB32" }
assert(#db16 == 16)
assert(#db32 == 32)
assert(db32:getColor(0) == Color(0, 0, 0))
assert(db32:getColor(31) == Color(138, 111, 48))
assert(app.defaultPalette == db32)
app.defaultPalette = db16
assert(app.defaultPalette == db16)
-- Default sprite palette is completely black
-- TODO should we use the app.defaultPalette as the default palette?
local spr = Sprite(32, 32, ColorMode.INDEXED)
local sprPal = spr.palettes[1];
assert(#sprPal == 256)
assert(sprPal ~= db16)
assert(sprPal ~= db32)
for i=0,255 do
assert(sprPal:getColor(i) == Color(0, 0,0))
end
spr:setPalette(db32)
assert(sprPal == db32)
end