Describe deleting a painted tile on Tiles and Tilemaps (#268)

- Tiles: deleting a tile empties its cells, the dialog counts them,
  and undo brings both back. A cell naming a missing tile is empty.
- Tilemaps: Fill and "Tile at" treat such a cell as empty, and a
  deleted tile in hand no longer paints.
- Development: the e2e sum is 1590.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
adminandClaude Opus 5.5 committed 2026-09-29 19:00:41 +02:00
1 parent 7995918921
commit d345d9960d
3 files changed
+16 -5

No files matched your search

+1 -1
@@ -18,7 +18,7 @@ php tests/php/accounts.test.php # the API's accoun
# has and the web server's container has not (SKIP there)
php tests/php/snapshots.test.php # the snapshot store (#231), the same way
php tests/php/releases.test.php # the release store (#266), the same way
node tools/seed-e2e.mjs && node tools/e2e.mjs # 1586 editor checks, screenshots in /tmp/gm-e2e-*.png
node tools/seed-e2e.mjs && node tools/e2e.mjs # 1590 editor checks, screenshots in /tmp/gm-e2e-*.png
GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step
./e2e.sh start [GM_STEPS] # the same run detached, see below
./e2e.sh status # live progress, or the last run's result
+6 -4
@@ -77,7 +77,8 @@ the Columns, Rows and Tile size rows.
- **Fill** (#133) fills, from the cell clicked, every cell of the active layer that holds the same
tile — or is empty, if that one is — and is reached through the four edge neighbours. Diagonals do
not count, so a fill does not leak through the gap between two corners. The grid is the border.
Filling a cell with the tile it already holds does nothing.
Filling a cell with the tile it already holds does nothing. A cell naming a tile the project
does not have counts as empty (see [Tiles](Tiles#where-they-are-placed)).
- **Pick** takes the tile of the cell clicked on the **active layer** and hands it straight to the
painting tool used before Pick (Brush, Rect or Fill; from Select or Erase it is the Brush). An
empty cell says so in the console and changes nothing.
@@ -98,7 +99,8 @@ Under **TILES** stands every tile of the project as a grid of pictures with its
(#139), so you see what you paint with. A floor or wall tile shows its lone tile — the four
convex corners, the one RPG Maker shows as well — and an animated tile its first picture. A tile
without a usable picture shows a **?** and can still be picked. Picking one reaches for the brush by
itself. Without one chosen, painting says so instead of quietly doing nothing.
itself. Without one chosen, or with one deleted since, painting says so instead of quietly doing
nothing.
## Layers
@@ -182,8 +184,8 @@ A behavior reads and changes the cells of a placed map while the game runs (#135
it, each taking the placed map as its `tilemap` input:
- **`Tile at`** gives the tile in a cell (`tile`, empty for none) and `empty`. It reads the moment
it is asked, so a `Set tile` earlier in the same flow is already seen. A cell outside the grid or
on a layer the map does not have reads as empty.
it is asked, so a `Set tile` earlier in the same flow is already seen. A cell outside the grid,
on a layer the map does not have or naming a tile the project does not have reads as empty.
- **`Set tile`** puts a tile into a cell, or empties it when no tile is given. `done` says whether
it could: not on something that is no tilemap, not on a missing layer, not outside the grid, and
not with an asset that is no tile.
+9
@@ -139,3 +139,12 @@ Kind, rate, playback, the solid switch, the collision scale and the sort offset
A tile is never placed by itself: it is laid down by a [tilemap](Tilemaps), which is the asset
that carries a grid of cells and is placed in a scene. Two different tiles do not join each other
there — each autotile closes against everything else, as the RPG-Maker sheets are drawn.
**Deleting a tile** that is painted on a map empties its cells in the same step (#268). The delete
dialog says how many cells on how many tilemaps, and Ctrl+Z brings the tile and its cells back
together. A brush still holding the deleted tile paints nothing and asks for a tile.
A cell can still name a tile the project does not have, in an older file or one edited by hand.
It is empty for everything that looks at the map: it is not drawn, it does not block, `Tile at`
reads it as empty and **Fill** fills across it. Only **Pick** says what it is. The file keeps it
until the cell is painted over or erased.