Saving Tilesets

I don’t agree about new file type.

First of all extrernal tilesets should have their own palette i.e. just to use external .ase sprite palette. This will be more than enough and generalized. And this way we can use RGB tiles inside Indexed sprite, which is Ok, until Tile map layer converted to just bitmap, where we should get its tiles converted too.

Second of all the frames of .ase file should be used as tiles indices to allow complex multi-layer tiles which flattened when loaded to be used as tiles. And you can hide/show layers in tiles sprite .ase to control what to see in Tile maps. Even tiles of tiles possible this way. But no direct editing of tiles inside where used for Tile map layer, which is preferred in this case. And with “Edit tiles…” to open source sprite of tiles. This should also auto create new frame in source sprite for new tiles of Manual tiling mode effectively inserting drawn content to first suitable visible layer (or creating new layer), and go to existing frame for Auto tiling mode (when modifcation of tile attempted by an artist).

And don’t afraid to use frame numbers as tiles indices. Because animation of tiles should generally use tiles themselves as frames i.e. tiles = frames here (except for NES-like mappers bank switching which is special case of several tilesets used to make tiles animated).

And third of all, information on how to align tiles from external .ase sprite frames i.e. (dx, dy, tile_width, tile_height) could be taken from its Grid (grid_cells_dx, grid_cells_dy, grid_cell_width, grid_cell_height). Even additional information like per-frame/tags user data (working as tile info) and non-rectangular base vectors (by adding support of non-rectangular grids with base vectors first) could be added and used for .ase tiles.

Tiles should be re-loaded and re-flattened when external .ase detected as changed. Also they should be baked into sprite as internal tileset until auto re-bake or explicit re-bake requested by an artist and/or when external .ase is not available.