mirror of
https://github.com/aseprite/aseprite.git
synced 2024-12-30 12:19:04 +00:00
119 lines
3.0 KiB
Lua
119 lines
3.0 KiB
Lua
-- Copyright (C) 2019-2020 Igara Studio S.A.
|
|
--
|
|
-- This file is released under the terms of the MIT license.
|
|
-- Read LICENSE.txt for more information.
|
|
|
|
do
|
|
-- Three layers
|
|
local s = Sprite(32, 32)
|
|
assert(#s.layers == 1)
|
|
|
|
app.activeCel = s.cels[1]
|
|
|
|
local r = app.range
|
|
assert(#r.layers == 1)
|
|
assert(#r.frames == 1)
|
|
assert(#r.cels == 1)
|
|
assert(r.layers[1] == s.layers[1])
|
|
assert(r.frames[1] == s.frames[1])
|
|
assert(r.cels[1] == s.cels[1])
|
|
|
|
s:newLayer()
|
|
assert(#s.layers == 2)
|
|
|
|
local r = app.range
|
|
assert(#r.layers == 1)
|
|
assert(#r.frames == 1)
|
|
assert(#r.cels == 0)
|
|
assert(r.layers[1] == s.layers[2])
|
|
assert(r.frames[1] == s.frames[1])
|
|
end
|
|
|
|
-- Test app.range.colors
|
|
do
|
|
assert(#app.range.colors == 0)
|
|
app.range.colors = { 2 }
|
|
assert(#app.range.colors == 1)
|
|
assert(app.range.colors[1] == 2)
|
|
app.range.colors = { 1, 4 }
|
|
assert(#app.range.colors == 2)
|
|
assert(app.range.colors[1] == 1)
|
|
assert(app.range.colors[2] == 4)
|
|
app.range.colors = { 5, 2, 10, 8, 0 }
|
|
assert(#app.range.colors == 5)
|
|
-- app.range.colors are always sorted by color index
|
|
assert(app.range.colors[1] == 0)
|
|
assert(app.range.colors[2] == 2)
|
|
assert(app.range.colors[3] == 5)
|
|
assert(app.range.colors[4] == 8)
|
|
assert(app.range.colors[5] == 10)
|
|
assert(app.range:containsColor(0))
|
|
assert(not app.range:containsColor(1))
|
|
assert(app.range:containsColor(2))
|
|
assert(app.range:containsColor(5))
|
|
assert(app.range:containsColor(8))
|
|
assert(app.range:containsColor(10))
|
|
end
|
|
|
|
-- Test setters
|
|
do
|
|
local spr = Sprite(32, 32)
|
|
local lay1 = spr.layers[1]
|
|
local r = app.range
|
|
assert(r.type == RangeType.EMPTY)
|
|
assert(#r.layers == 1)
|
|
assert(#r.frames == 1)
|
|
assert(r.layers[1] == lay1)
|
|
assert(r.frames[1].frameNumber == 1)
|
|
|
|
local lay2 = spr:newLayer()
|
|
r = app.range
|
|
assert(r.type == RangeType.EMPTY)
|
|
assert(#r.layers == 1)
|
|
assert(#r.frames == 1)
|
|
assert(r.layers[1] == lay2)
|
|
assert(r.frames[1].frameNumber == 1)
|
|
|
|
r.layers = { lay1, lay2 }
|
|
assert(r.type == RangeType.LAYERS)
|
|
assert(#r.layers == 2)
|
|
assert(#r.frames == 1)
|
|
assert(r.layers[1] == lay1)
|
|
assert(r.layers[2] == lay2)
|
|
assert(r.frames[1].frameNumber == 1)
|
|
|
|
spr:newFrame()
|
|
spr:newFrame()
|
|
r.frames = { 1, 3 }
|
|
assert(r.type == RangeType.FRAMES)
|
|
assert(#r.layers == 2)
|
|
assert(#r.frames == 2)
|
|
assert(r.layers[1] == lay1)
|
|
assert(r.layers[2] == lay2)
|
|
assert(r.frames[1].frameNumber == 1)
|
|
assert(r.frames[2].frameNumber == 3)
|
|
|
|
r.layers = { lay2 }
|
|
assert(r.type == RangeType.LAYERS)
|
|
assert(#r.layers == 1)
|
|
assert(#r.frames == 2)
|
|
assert(r.layers[1] == lay2)
|
|
assert(r.frames[1].frameNumber == 1)
|
|
assert(r.frames[2].frameNumber == 3)
|
|
|
|
-- Clear range
|
|
r:clear()
|
|
assert(r.type == RangeType.EMPTY)
|
|
assert(#r.layers == 1)
|
|
assert(#r.frames == 1)
|
|
assert(r.layers[1] == app.activeLayer)
|
|
assert(r.frames[1] == app.activeFrame)
|
|
|
|
-- Check that Range:clear() reset the selected colors
|
|
r.colors = { 2 }
|
|
assert(#r.colors == 1)
|
|
assert(r.colors[1] == 2)
|
|
r:clear()
|
|
assert(#r.colors == 0)
|
|
end
|