-- 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