mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-30 04:20:23 +00:00
Update tilemap tests with recent changes in the impl
This commit is contained in:
parent
475b81b78c
commit
e3a2403501
@ -13,8 +13,8 @@ local rgba = app.pixelColor.rgba
|
||||
-- Check constants
|
||||
assert(TilemapMode.PIXELS == 0)
|
||||
assert(TilemapMode.TILES == 1)
|
||||
assert(TilesetMode.MANUAL == 0)
|
||||
assert(TilesetMode.AUTO == 1)
|
||||
assert(TilesetMode.AUTO == 0)
|
||||
assert(TilesetMode.MANUAL == 1)
|
||||
assert(TilesetMode.STACK == 2)
|
||||
|
||||
----------------------------------------------------------------------
|
||||
@ -56,15 +56,15 @@ do
|
||||
assert(spr.tilesets[1] == tilemapLay.tileset)
|
||||
|
||||
local tileset = tilemapLay.tileset
|
||||
assert(#tileset == 1) -- one tile
|
||||
assert(#tileset == 2) -- empty tile + our tile
|
||||
|
||||
tilemapCel.position = Point(2, 2)
|
||||
assert(tilemapCel.bounds == Rectangle(2, 2, 16, 16))
|
||||
assert(#tileset == 1)
|
||||
assert(#tileset == 2)
|
||||
|
||||
assert(tilemapCel.image.width == 1)
|
||||
assert(tilemapCel.image.height == 1)
|
||||
assert(tilemapCel.image:getPixel(0, 0) == 0)
|
||||
assert(tilemapCel.image:getPixel(0, 0) == 1)
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- Draw a second pixel with locked mode (new tiles are not generated)
|
||||
@ -78,7 +78,7 @@ do
|
||||
points={ Point(0, 0) }}
|
||||
|
||||
assert(tilemapCel.bounds == Rectangle(2, 2, 16, 16))
|
||||
assert(#tileset == 1)
|
||||
assert(#tileset == 2)
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- Draw pixels generating new tiles
|
||||
@ -93,11 +93,11 @@ do
|
||||
|
||||
assert(tilemapCel.bounds == Rectangle(-14, -14, 32, 32))
|
||||
assert(#tileset == 3)
|
||||
assert(not tileset:getTile(0):isEmpty())
|
||||
assert(tileset:getTile(0):isEmpty())
|
||||
assert(not tileset:getTile(1):isEmpty())
|
||||
assert(tileset:getTile(2):isEmpty())
|
||||
expect_img(tilemapCel.image, { 1, 2,
|
||||
2, 0 })
|
||||
assert(not tileset:getTile(2):isEmpty())
|
||||
expect_img(tilemapCel.image, { 2, 0,
|
||||
0, 1 })
|
||||
|
||||
app.useTool{
|
||||
tool='pencil',
|
||||
@ -109,9 +109,9 @@ do
|
||||
assert(tilemapCel.bounds == Rectangle(-14, -14, 48, 48))
|
||||
assert(#tilemapLay.tileset == 4)
|
||||
assert(not tileset:getTile(3):isEmpty())
|
||||
expect_img(tilemapCel.image, { 1, 2, 2,
|
||||
2, 0, 2,
|
||||
2, 2, 3 })
|
||||
expect_img(tilemapCel.image, { 2, 0, 0,
|
||||
0, 1, 0,
|
||||
0, 0, 3 })
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------
|
||||
@ -140,67 +140,64 @@ do
|
||||
|
||||
local cel = tm.cels[1]
|
||||
expect_eq(2, #ts)
|
||||
expect_img(cel.image, { 0,1,1,1,
|
||||
1,0,1,1,
|
||||
1,1,0,1,
|
||||
1,1,1,0 })
|
||||
expect_img(cel.image, { 1,0,0,0,
|
||||
0,1,0,0,
|
||||
0,0,1,0,
|
||||
0,0,0,1 })
|
||||
|
||||
app.useTool{
|
||||
tool='pencil',
|
||||
color=Color{ index=0 },
|
||||
color=Color{ index=1 },
|
||||
tilemapMode=TilemapMode.TILES,
|
||||
tilesetMode=TilesetMode.STACK,
|
||||
points={ Point(0, 16) }} -- y=16 is the first pixel of 3rd row of tiles
|
||||
cel = tm.cels[1]
|
||||
expect_img(cel.image, { 0,1,1,1,
|
||||
1,0,1,1,
|
||||
0,1,0,1,
|
||||
1,1,1,0 })
|
||||
expect_img(cel.image, { 1,0,0,0,
|
||||
0,1,0,0,
|
||||
1,0,1,0,
|
||||
0,0,0,1 })
|
||||
|
||||
app.useTool{
|
||||
tool='pencil',
|
||||
color=Color{ index=0 },
|
||||
color=Color{ index=1 },
|
||||
tilemapMode=TilemapMode.TILES,
|
||||
tilesetMode=TilesetMode.STACK,
|
||||
points={ Point(0, 0), Point(16, 0) }} -- x=16 is the first pixel of 3rd column of tiles
|
||||
cel = tm.cels[1]
|
||||
expect_img(cel.image, { 0,0,0,1,
|
||||
1,0,1,1,
|
||||
0,1,0,1,
|
||||
1,1,1,0 })
|
||||
expect_img(cel.image, { 1,1,1,0,
|
||||
0,1,0,0,
|
||||
1,0,1,0,
|
||||
0,0,0,1 })
|
||||
|
||||
-- Move layer origin to 10, 8
|
||||
cel.position = { 10, 8 }
|
||||
expect_eq(Point{ 10, 8 }, cel.position)
|
||||
app.useTool{
|
||||
tool='pencil',
|
||||
color=Color{ index=1 },
|
||||
color=Color{ index=0 },
|
||||
tilemapMode=TilemapMode.TILES,
|
||||
tilesetMode=TilesetMode.STACK,
|
||||
points={ { 10, 8 }, { 18, 16 } }} -- {10,8} is the first existent tile in the tilemap
|
||||
-- these are tiles 2,1 and 3,2
|
||||
cel = tm.cels[1]
|
||||
expect_img(cel.image, { 1,0,0,1,
|
||||
1,1,1,1,
|
||||
0,1,0,1,
|
||||
1,1,1,0 })
|
||||
expect_img(cel.image, { 0,1,1,0,
|
||||
0,0,0,0,
|
||||
1,0,1,0,
|
||||
0,0,0,1 })
|
||||
|
||||
app.useTool{
|
||||
tool='pencil',
|
||||
color=Color{ index=0 },
|
||||
color=Color{ index=1 },
|
||||
tilemapMode=TilemapMode.TILES,
|
||||
tilesetMode=TilesetMode.STACK,
|
||||
points={ Point(1, 7), Point(2, 8) }} -- Tile 0,0 and 1,1
|
||||
|
||||
-- TODO add a constant for the empty tile
|
||||
local e = tonumber("ffffffff", 16) -- empty tile (0xffffffff)
|
||||
|
||||
cel = tm.cels[1]
|
||||
expect_img(cel.image, { 0,e, e,e,e,e,
|
||||
e,0, 1,0,0,1,
|
||||
e,e, 1,1,1,1,
|
||||
e,e, 0,1,0,1,
|
||||
e,e, 1,1,1,0 })
|
||||
expect_img(cel.image, { 1,0, 0,0,0,0,
|
||||
0,1, 0,1,1,0,
|
||||
0,0, 0,0,0,0,
|
||||
0,0, 1,0,1,0,
|
||||
0,0, 0,0,0,1 })
|
||||
|
||||
end
|
||||
|
||||
@ -223,7 +220,7 @@ do
|
||||
assert(tilemapCel.bounds == Rectangle(0, 0, 16, 16))
|
||||
|
||||
local tileset = tilemapLay.tileset
|
||||
assert(#tileset == 1) -- one tile
|
||||
assert(#tileset == 2) -- empty tile + our tile
|
||||
|
||||
tilemapCel.position = Point(-1, -1)
|
||||
assert(tilemapCel.bounds == Rectangle(-1, -1, 16, 16))
|
||||
@ -236,9 +233,9 @@ do
|
||||
points={ Point(0, 0) }}
|
||||
|
||||
assert(tilemapCel.bounds == Rectangle(-1, -1, 16, 16))
|
||||
assert(#tileset == 2)
|
||||
assert(#tileset == 3)
|
||||
|
||||
local img = tileset:getTile(1)
|
||||
local img = tileset:getTile(2)
|
||||
|
||||
assert(img:getPixel(0, 0) == rgba(0, 255, 0, 255))
|
||||
assert(img:getPixel(1, 0) == rgba(0, 0, 0, 0))
|
||||
@ -298,142 +295,149 @@ do
|
||||
points={ Point(0, 0), Point(31, 31) }}
|
||||
|
||||
local ts = tilemapLay.tileset
|
||||
assert(#ts == 4)
|
||||
assert(#ts == 5)
|
||||
|
||||
local imgs = { ts:getTile(0),
|
||||
ts:getTile(1),
|
||||
local imgs = { ts:getTile(1),
|
||||
ts:getTile(2),
|
||||
ts:getTile(3) }
|
||||
ts:getTile(3),
|
||||
ts:getTile(4) }
|
||||
|
||||
-- No op = move tile 0 before the tile 0, result=0,1,2,3
|
||||
app.range.tiles = { 0 }
|
||||
app.command.MoveTiles{ before=0 }
|
||||
expect_eq(imgs[0+1], ts:getTile(0))
|
||||
expect_eq(imgs[1+1], ts:getTile(1))
|
||||
expect_eq(imgs[2+1], ts:getTile(2))
|
||||
expect_eq(imgs[3+1], ts:getTile(3))
|
||||
expect_eq(1, #app.range.tiles)
|
||||
expect_eq(0, app.range.tiles[1])
|
||||
|
||||
-- Move tile 1 before tile 0, result=1,0,2,3
|
||||
-- No op = move tile 1 before the tile 1, result=0,1,2,3,4
|
||||
app.range.tiles = { 1 }
|
||||
app.command.MoveTiles{ before=0 }
|
||||
expect_eq(imgs[1+1], ts:getTile(0))
|
||||
expect_eq(imgs[0+1], ts:getTile(1))
|
||||
expect_eq(imgs[2+1], ts:getTile(2))
|
||||
expect_eq(imgs[3+1], ts:getTile(3))
|
||||
app.command.MoveTiles{ before=1 }
|
||||
expect_eq(imgs[1], ts:getTile(1))
|
||||
expect_eq(imgs[2], ts:getTile(2))
|
||||
expect_eq(imgs[3], ts:getTile(3))
|
||||
expect_eq(imgs[4], ts:getTile(4))
|
||||
expect_eq(1, #app.range.tiles)
|
||||
expect_eq(0, app.range.tiles[1])
|
||||
app.undo()
|
||||
|
||||
-- Move tiles 0 and 1 before 3, result=2,0,1,3
|
||||
app.range.tiles = { 0, 1 }
|
||||
app.command.MoveTiles({ before=3 })
|
||||
expect_eq(imgs[2+1], ts:getTile(0))
|
||||
expect_eq(imgs[0+1], ts:getTile(1))
|
||||
expect_eq(imgs[1+1], ts:getTile(2))
|
||||
expect_eq(imgs[3+1], ts:getTile(3))
|
||||
expect_eq(2, #app.range.tiles)
|
||||
expect_eq(1, app.range.tiles[1])
|
||||
expect_eq(2, app.range.tiles[2])
|
||||
app.undo()
|
||||
|
||||
-- Move tiles 0 and 2 before 2, result=1,0,2,3
|
||||
app.range.tiles = { 0, 2 }
|
||||
app.command.MoveTiles({ before=2 })
|
||||
expect_eq(imgs[1+1], ts:getTile(0))
|
||||
expect_eq(imgs[0+1], ts:getTile(1))
|
||||
expect_eq(imgs[2+1], ts:getTile(2))
|
||||
expect_eq(imgs[3+1], ts:getTile(3))
|
||||
expect_eq(2, #app.range.tiles)
|
||||
-- Move tile 2 before tile 1, result=0,2,1,3,4
|
||||
app.range.tiles = { 2 }
|
||||
app.command.MoveTiles{ before=1 }
|
||||
expect_eq(imgs[2], ts:getTile(1))
|
||||
expect_eq(imgs[1], ts:getTile(2))
|
||||
expect_eq(imgs[3], ts:getTile(3))
|
||||
expect_eq(imgs[4], ts:getTile(4))
|
||||
expect_eq(1, #app.range.tiles)
|
||||
expect_eq(1, app.range.tiles[1])
|
||||
expect_eq(2, app.range.tiles[2])
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 0 before 0, result=0,0,1,2,3
|
||||
app.range.tiles = { 0 }
|
||||
app.command.CopyTiles({ before=0 })
|
||||
expect_eq(1, #app.range.tiles)
|
||||
expect_eq(0, app.range.tiles[1])
|
||||
expect_eq(5, #ts)
|
||||
assert(ts:getTile(0):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(1):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[1+1]))
|
||||
assert(ts:getTile(3):isEqual(imgs[2+1]))
|
||||
assert(ts:getTile(4):isEqual(imgs[3+1]))
|
||||
-- Move tiles 1 and 2 before 4, result=0,3,1,2,4
|
||||
app.range.tiles = { 1, 2 }
|
||||
app.command.MoveTiles({ before=4 })
|
||||
expect_eq(imgs[3], ts:getTile(1))
|
||||
expect_eq(imgs[1], ts:getTile(2))
|
||||
expect_eq(imgs[2], ts:getTile(3))
|
||||
expect_eq(imgs[4], ts:getTile(4))
|
||||
expect_eq(2, #app.range.tiles)
|
||||
expect_eq(2, app.range.tiles[1])
|
||||
expect_eq(3, app.range.tiles[2])
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 0 before 3, result=0,1,2,0,3
|
||||
app.range.tiles = { 0 }
|
||||
app.command.CopyTiles({ before=3 })
|
||||
expect_eq(1, #app.range.tiles)
|
||||
expect_eq(3, app.range.tiles[1])
|
||||
expect_eq(5, #ts)
|
||||
assert(ts:getTile(0):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(1):isEqual(imgs[1+1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[2+1]))
|
||||
assert(ts:getTile(3):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(4):isEqual(imgs[3+1]))
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 0, 1, and 3, before 4, result=0,1,2,3,0,1,3
|
||||
app.range.tiles = { 0, 1, 3 }
|
||||
app.command.CopyTiles({ before=4 })
|
||||
assert(ts:getTile(0):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(1):isEqual(imgs[1+1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[2+1]))
|
||||
assert(ts:getTile(3):isEqual(imgs[3+1]))
|
||||
assert(ts:getTile(4):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(5):isEqual(imgs[1+1]))
|
||||
assert(ts:getTile(6):isEqual(imgs[3+1]))
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 1, and 3, before 0, result=1,3,0,1,2,3
|
||||
-- Move tiles 1 and 3 before 3, result=0,2,1,3,4
|
||||
app.range.tiles = { 1, 3 }
|
||||
app.command.CopyTiles({ before=0 })
|
||||
assert(ts:getTile(0):isEqual(imgs[1+1]))
|
||||
assert(ts:getTile(1):isEqual(imgs[3+1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(3):isEqual(imgs[1+1]))
|
||||
assert(ts:getTile(4):isEqual(imgs[2+1]))
|
||||
assert(ts:getTile(5):isEqual(imgs[3+1]))
|
||||
app.command.MoveTiles({ before=3 })
|
||||
expect_eq(imgs[2], ts:getTile(1))
|
||||
expect_eq(imgs[1], ts:getTile(2))
|
||||
expect_eq(imgs[3], ts:getTile(3))
|
||||
expect_eq(imgs[4], ts:getTile(4))
|
||||
expect_eq(2, #app.range.tiles)
|
||||
expect_eq(2, app.range.tiles[1])
|
||||
expect_eq(3, app.range.tiles[2])
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 0, and 3, before 7, result=0,1,2,3,0,3
|
||||
app.range.tiles = { 0, 3 }
|
||||
-- Copy tiles 1 before 1, result=0,1,1,2,3,4
|
||||
app.range.tiles = { 1 }
|
||||
app.command.CopyTiles({ before=1 })
|
||||
expect_eq(1, #app.range.tiles)
|
||||
expect_eq(1, app.range.tiles[1])
|
||||
expect_eq(6, #ts)
|
||||
assert(ts:getTile(0):isEmpty())
|
||||
assert(ts:getTile(1):isEqual(imgs[1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[1]))
|
||||
assert(ts:getTile(3):isEqual(imgs[2]))
|
||||
assert(ts:getTile(4):isEqual(imgs[3]))
|
||||
assert(ts:getTile(5):isEqual(imgs[4]))
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 1 before 4, result=0,1,2,3,1,4
|
||||
app.range.tiles = { 1 }
|
||||
app.command.CopyTiles({ before=4 })
|
||||
assert(ts:getTile(0):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(1):isEqual(imgs[1+1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[2+1]))
|
||||
assert(ts:getTile(3):isEqual(imgs[3+1]))
|
||||
assert(ts:getTile(4):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(5):isEqual(imgs[3+1]))
|
||||
expect_eq(1, #app.range.tiles)
|
||||
expect_eq(4, app.range.tiles[1])
|
||||
expect_eq(6, #ts)
|
||||
assert(ts:getTile(0):isEmpty())
|
||||
assert(ts:getTile(1):isEqual(imgs[1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[2]))
|
||||
assert(ts:getTile(3):isEqual(imgs[3]))
|
||||
assert(ts:getTile(4):isEqual(imgs[1]))
|
||||
assert(ts:getTile(5):isEqual(imgs[4]))
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 0, and 3, before 7, result=0,1,2,3,-,0,3
|
||||
app.range.tiles = { 0, 3 }
|
||||
-- Copy tiles 1, 2, and 4, before 5, result=0,1,2,3,4,1,2,4
|
||||
app.range.tiles = { 1, 2, 4 }
|
||||
app.command.CopyTiles({ before=5 })
|
||||
assert(ts:getTile(0):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(1):isEqual(imgs[1+1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[2+1]))
|
||||
assert(ts:getTile(3):isEqual(imgs[3+1]))
|
||||
assert(ts:getTile(4):isPlain())
|
||||
assert(ts:getTile(5):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(6):isEqual(imgs[3+1]))
|
||||
assert(ts:getTile(0):isEmpty())
|
||||
assert(ts:getTile(1):isEqual(imgs[1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[2]))
|
||||
assert(ts:getTile(3):isEqual(imgs[3]))
|
||||
assert(ts:getTile(4):isEqual(imgs[4]))
|
||||
assert(ts:getTile(5):isEqual(imgs[1]))
|
||||
assert(ts:getTile(6):isEqual(imgs[2]))
|
||||
assert(ts:getTile(7):isEqual(imgs[4]))
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 2, and 3, before 7, result=0,1,2,3,-,-,-,2,3
|
||||
app.range.tiles = { 2, 3 }
|
||||
app.command.CopyTiles({ before=7 })
|
||||
assert(ts:getTile(0):isEqual(imgs[0+1]))
|
||||
assert(ts:getTile(1):isEqual(imgs[1+1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[2+1]))
|
||||
assert(ts:getTile(3):isEqual(imgs[3+1]))
|
||||
assert(ts:getTile(4):isPlain())
|
||||
-- Copy tiles 2, and 4, before 1, result=0,2,4,1,2,3,4
|
||||
app.range.tiles = { 2, 4 }
|
||||
app.command.CopyTiles({ before=1 })
|
||||
assert(ts:getTile(0):isEmpty())
|
||||
assert(ts:getTile(1):isEqual(imgs[2]))
|
||||
assert(ts:getTile(2):isEqual(imgs[4]))
|
||||
assert(ts:getTile(3):isEqual(imgs[1]))
|
||||
assert(ts:getTile(4):isEqual(imgs[2]))
|
||||
assert(ts:getTile(5):isEqual(imgs[3]))
|
||||
assert(ts:getTile(6):isEqual(imgs[4]))
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 1, and 4, before 5, result=0,1,2,3,4,1,4
|
||||
app.range.tiles = { 1, 4 }
|
||||
app.command.CopyTiles({ before=5 })
|
||||
assert(ts:getTile(0):isEmpty())
|
||||
assert(ts:getTile(1):isEqual(imgs[1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[2]))
|
||||
assert(ts:getTile(3):isEqual(imgs[3]))
|
||||
assert(ts:getTile(4):isEqual(imgs[4]))
|
||||
assert(ts:getTile(5):isEqual(imgs[1]))
|
||||
assert(ts:getTile(6):isEqual(imgs[4]))
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 1, and 4, before 6, result=0,1,2,3,4,-,1,4
|
||||
app.range.tiles = { 1, 4 }
|
||||
app.command.CopyTiles({ before=6 })
|
||||
assert(ts:getTile(0):isEmpty())
|
||||
assert(ts:getTile(1):isEqual(imgs[1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[2]))
|
||||
assert(ts:getTile(3):isEqual(imgs[3]))
|
||||
assert(ts:getTile(4):isEqual(imgs[4]))
|
||||
assert(ts:getTile(5):isEmpty())
|
||||
assert(ts:getTile(6):isEqual(imgs[1]))
|
||||
assert(ts:getTile(7):isEqual(imgs[4]))
|
||||
app.undo()
|
||||
|
||||
-- Copy tiles 3, and 4, before 8, result=0,1,2,3,4,-,-,-,3,4
|
||||
app.range.tiles = { 3, 4 }
|
||||
app.command.CopyTiles({ before=8 })
|
||||
assert(ts:getTile(0):isEmpty())
|
||||
assert(ts:getTile(1):isEqual(imgs[1]))
|
||||
assert(ts:getTile(2):isEqual(imgs[2]))
|
||||
assert(ts:getTile(3):isEqual(imgs[3]))
|
||||
assert(ts:getTile(4):isEqual(imgs[4]))
|
||||
assert(ts:getTile(5):isPlain())
|
||||
assert(ts:getTile(6):isPlain())
|
||||
assert(ts:getTile(7):isEqual(imgs[2+1]))
|
||||
assert(ts:getTile(8):isEqual(imgs[3+1]))
|
||||
assert(ts:getTile(7):isPlain())
|
||||
assert(ts:getTile(8):isEqual(imgs[3]))
|
||||
assert(ts:getTile(9):isEqual(imgs[4]))
|
||||
app.undo()
|
||||
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user