Add tests to compare -sheet-type columns vs. rows and -trim vs -trim-sprite

This commit is contained in:
David Capello 2019-11-01 15:21:26 -03:00
parent 4ddb08203a
commit fdf8adc947
2 changed files with 99 additions and 0 deletions

View File

@ -166,3 +166,42 @@ assert(#sheet1.frames == 12)
assert(#sheet2.frames == 4)
EOF
$ASEPRITE -b -script "$d/check.lua" || exit 1
# -sheet -sheet-columns vs -sheet-rows
d=$t/sheet-columns-and-rows
$ASEPRITE -b -split-layers sprites/1empty3.aseprite \
-filename-format "{layer}{frame}" \
-sheet "$d/sheet1.png" \
-sheet-type rows \
-sheet-columns 3 \
-data "$d/sheet1.json" || exit $?
$ASEPRITE -b -split-layers sprites/1empty3.aseprite \
-filename-format "{layer}{frame}" \
-sheet "$d/sheet2.png" \
-sheet-type columns \
-sheet-rows 3 \
-data "$d/sheet2.json" || exit $?
$ASEPRITE -b \
-script-param file1=$d/sheet1.json \
-script-param file2=$d/sheet2.json \
-script scripts/compare_sprite_sheets.lua || exit $?
# -sheet -trim vs -trim-sprite
d=$t/sheet-columns-and-rows
$ASEPRITE -b -split-layers sprites/1empty3.aseprite \
-trim \
-filename-format "{layer}{frame}" \
-sheet "$d/sheet1.png" \
-data "$d/sheet1.json" || exit $?
$ASEPRITE -b -split-layers sprites/1empty3.aseprite \
-trim-sprite \
-filename-format "{layer}{frame}" \
-sheet "$d/sheet2.png" \
-data "$d/sheet2.json" || exit $?
$ASEPRITE -b \
-script-param file1=$d/sheet1.json \
-script-param file2=$d/sheet2.json \
-script scripts/compare_sprite_sheets.lua || exit $?

View File

@ -0,0 +1,60 @@
-- Copyright (C) 2019 Igara Studio S.A.
--
-- This file is released under the terms of the MIT license.
-- Read LICENSE.txt for more information.
local file1 = app.params["file1"]
local file2 = app.params["file2"]
if file1 == nil or file2 == nil then
return 0
end
local json = dofile('../third_party/json/json.lua')
local data1 = json.decode(io.open(file1):read('a'))
local data2 = json.decode(io.open(file2):read('a'))
if data1 == nil then
print('Cannot read file ' .. file1)
return 1
elseif data2 == nil then
print('Cannot read file ' .. file2)
return 1
end
local function replace_filename(fn, newfn)
return string.gsub(fn, "(.*)[/\\]([^/\\]+)", "%1/"..newfn)
end
local sheet1 = app.open(replace_filename(file1, data1.meta.image))
local sheet2 = app.open(replace_filename(file2, data2.meta.image))
for k,v in pairs(data1.frames) do
local fr1 = data1.frames[k]
local fr2 = data2.frames[k]
if fr1.duration ~= fr2.duration then
print('Frame '..k..' doesn\'t match duration')
return 1
end
if fr1.sourceSize.w ~= fr2.sourceSize.w or
fr1.sourceSize.h ~= fr2.sourceSize.h then
print('Frame '..k..' doesn\'t match sourceSize')
return 1
end
local celImage1 = Image(fr1.frame.w, fr1.frame.h, sheet1.colorMode)
local celImage2 = Image(fr2.frame.w, fr2.frame.h, sheet2.colorMode)
celImage1:drawSprite(sheet1, 1, -fr1.frame.x, -fr1.frame.y)
celImage2:drawSprite(sheet2, 1, -fr2.frame.x, -fr2.frame.y)
local frImage1 = Image(fr1.sourceSize.w, fr1.sourceSize.h, sheet1.colorMode)
local frImage2 = Image(fr2.sourceSize.w, fr2.sourceSize.h, sheet2.colorMode)
frImage1:drawImage(celImage1, fr1.spriteSourceSize.x, fr1.spriteSourceSize.y)
frImage2:drawImage(celImage2, fr2.spriteSourceSize.x, fr2.spriteSourceSize.y)
-- To debug this function
--frImage1:saveAs(replace_filename(file1, k .. "-fr1.png"))
--frImage2:saveAs(replace_filename(file2, k .. "-fr2.png"))
--print(k, "fr1", fr1.frame.x, fr1.frame.y, "fr2", fr2.frame.x, fr2.frame.y)
assert(frImage1:isEqual(frImage2))
end