Deleting a tile left the cells painted with it in the tilemaps. They
drew nothing, blocked nothing and did not show in the delete dialog,
but still read as a tile for "Tile at" and stopped a fill.
- DeleteAssetCommand empties the cells of a deleted tile on every
layer of every tilemap in the same step. Undo puts the tile and its
cells back together.
- The delete dialog counts them, for example "3 cell(s) on 1
tilemap(s) are painted with it and become empty." (cellsPainted).
- presentTile treats a cell naming a missing tile as empty. "Tile at"
(World.tileAt) and floodFill use it, so cells already in existing
files read and fill as empty. There is no migration.
- The brush, the rectangle and the fill check the tile in hand. A
tile deleted after it was picked no longer paints new invisible
cells, the editor says "Choose a tile to paint with." instead.
- Unchanged on purpose: the picker still reports such a cell as
naming a tile that no longer exists, and erasing removes it.
Tests:
- ./check.sh: 195 files, 2823 tests, CHECK EXIT 0 (+6).
- GM_STEPS=39,40: ALL PASSED, 100 checks (4 new in 40t).
- Full e2e sum is now 1590 (1586 confirmed by CI on round 8, plus 4).
- Counter-checks, all fail as expected: 5 in unit tests (delete
without emptying, undo without cells, fill and "Tile at" without
presentTile, wrong map count) and 3 in the browser (dialog without
count, delete without emptying, brush without the check).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>