[lua] Make Sprite:newTileset(Rectangle) work (fix #4117)

This commit is contained in:
David Capello 2023-10-30 13:40:12 -03:00
parent 43079b226d
commit bb60da8c60
2 changed files with 15 additions and 3 deletions

View File

@ -632,7 +632,8 @@ int Sprite_newTileset(lua_State* L)
grid = *g;
}
// Convert Rectangle into a Grid
else if (lua_istable(L, 2)) {
else if (lua_istable(L, 2) ||
may_get_obj<gfx::Rect>(L, 2)) {
gfx::Rect rect = convert_args_into_rect(L, 2);
grid = Grid(rect.size());
grid.origin(rect.origin());

View File

@ -124,6 +124,17 @@ do
app.undo()
assert(#spr.tilesets == 3)
-- Create a tileset with a rectangle
local tileset5 = spr:newTileset(Rectangle(0, 0, 32, 64), 4)
assert(#tileset5 == 4)
assert(tileset5.grid.origin.x == 0)
assert(tileset5.grid.origin.y == 0)
assert(tileset5.grid.tileSize.width == 32)
assert(tileset5.grid.tileSize.height == 64)
assert(#spr.tilesets == 4)
app.undo()
assert(#spr.tilesets == 3)
-- Delete tileset
spr:deleteTileset(2)
assert(#spr.tilesets == 2)