Tilemaps: Fill, Pick and holding Alt (#133); check total 1038

admin committed 2026-09-18 12:31:20 +02:00
1 parent 2f2ccdffb3
commit fe18812e0f
2 files changed
+12 -4

No files matched your search

+1 -1
@@ -12,7 +12,7 @@ npm run check # typecheck + lint + format:check + tests, the gate CI runs
# code is lost (tail's is reported), so a red run reads as green # code is lost (tail's is reported), so a red run reads as green
npm run build # writes dist/ and regenerates index.html npm run build # writes dist/ and regenerates index.html
./build.sh # the same under `set -o pipefail`, for callers that pipe the output ./build.sh # the same under `set -o pipefail`, for callers that pipe the output
node tools/seed-e2e.mjs && node tools/e2e.mjs # 1034 editor checks, screenshots in /tmp/gm-e2e-*.png node tools/seed-e2e.mjs && node tools/e2e.mjs # 1038 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 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 start [GM_STEPS] # the same run detached, see below
./e2e.sh status # live progress, or the last run's result ./e2e.sh status # live progress, or the last run's result
+11 -3
@@ -49,11 +49,20 @@ the Columns, Rows and Tile size rows.
pointer was reported at. pointer was reported at.
- **Erase** clears cells the same way. - **Erase** clears cells the same way.
- **Rect** fills the box a drag spans; while dragging, that box is outlined. - **Rect** fills the box a drag spans; while dragging, that box is outlined.
- **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.
- **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.
- **Holding Alt** is Pick for as long as it is held, from any tool; letting go brings the tool
back. Choosing another tool while Alt is down keeps that one.
While any of the three is chosen, the map shows its cell grid, so one does not paint blind. While any painting tool is chosen, the map shows its cell grid, so one does not paint blind.
Shift-drag still pans the view, whatever the tool. Shift-drag still pans the view, whatever the tool.
**One stroke is one undo step** — a line of twenty cells comes back with one Ctrl+Z, and a stroke **One stroke is one undo step**, and so is one fill — a line of twenty cells comes back with one Ctrl+Z, and a stroke
painted over another tile puts *that* one back, not merely emptiness. painted over another tile puts *that* one back, not merely emptiness.
Under **TILES** stands every tile of the project as a grid of pictures with its name below Under **TILES** stands every tile of the project as a grid of pictures with its name below
@@ -138,4 +147,3 @@ the next save.
- No trigger tiles: a tile that only reports an overlap (water that fires an event) is not there - No trigger tiles: a tile that only reports an overlap (water that fires an event) is not there
yet — a tile blocks or it does not. yet — a tile blocks or it does not.
- Nothing fills an area by flooding it, and there is no picking up a tile off the map.