This is the first commit with a simple tilemap editor. Still buggy but
functional in several ways. Several changes were made:
* NewLayer command can receive a tilemap=true to create a new tilemap
layer
* New ToggleTilesMode command added to switch between the palette and
the tileset in the ColorBar (the ColorBar was expanded to show
colors or tilesets with a generic AbstractPaletteViewAdapter)
* All commands to create new layers were moved to Layer >
New... submenu
* There are a new tileset chunk to save tilesets in .aseprite files,
and a new kind of cels to save tilemaps
* Added doc::LayerTilemap, doc::Tileset, etc. and several other types
to handle tilesets/tilemaps in the doc layer.
* Added doc::Grid class with grid specifications that indicates how a
tilemap <-> tileset must be drawn
* Added and expanded cel operations to work with tilemaps and
conversions between regular LayerImage cels <-> LayerTilemap cels
(e.g. copy cels in the timeline between layer types)
This is a common solution in the DocApi wrapper that takes cares of
the duplicated cels that we're copying with copyCel() and that are
linked in the source, so then it maps the links into the destination.
Solving this in DocApi we fixed the problem on the timeline
drag-and-drop (doc_range_ops), copy/paste clipboard ranges, and merged
the code in NewFrame to duplicate (linked) cels.
We've also added 3 variants of Duplicate Cels with this change:
- Duplicate Cels: Copies the whole cel block without linking to
previous cels.
- Duplicate Linked Cels: Copies the whole cel block linking all cels to
previous cels.
- Duplicate Cels w/Layer Mode: Depending on the layer mode (continuous
or not) the cels will be linked or not (this is how "duplicate
linked cels" was working before, and was added just in case for
backward compatibility).
Fixes: http://steamcommunity.com/app/431730/discussions/1/142261352649813598/
We've changed the way the "recover files" option works:
* Now it's an option that is always available (so we can open files
even from sessions that were correctly closed in the past)
* We can open sessions from other Aseprite versions (as in a "best
effort" approach, if it works, ok, if it doesn't -> contact user
support)
After introducing AutocropSpriteCommand::onGetFriendlyName(), we stop
using the automatic commands_AutocropSprite string from en.ini. This
commit fix that regression from f24eb75298
Merged #1978 (squashed). The only solved conflict was that now
ExportSpriteSheet use params, so we've added the "extrude" param to
ExportSpriteSheetParams.