aseprite/tests/scripts/palette.lua

88 lines
2.1 KiB
Lua
Raw Normal View History

-- 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))
-- Check alpha
local c = Color{red=100, green=50, blue=10, alpha=128}
p:setColor(3, c)
assert(p:getColor(3) == c)
assert(p:getColor(3).alpha == 128)
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)
2023-11-02 17:30:36 +00:00
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