LMB-hold strokes a line of paints (Auto-Tile: each hovered vertex; Direct: each hovered cell as an override). RMB-hold strokes a line of erases (clear_vertex / clear_override). On mouse-press inside the UI (toolbar / palette / side-panel) the drag never enters paint-mode so toolbar interaction stays unaffected. State machine: - press(button) outside UI -> drag_paint = "paint"|"erase" - while drag_paint and corresponding button still down -> dispatch paint at current snap_vertex / mouse_cell each frame - button release -> drag_paint = nil Idempotency: maps.set_vertex / set_override / clear_* are no-op when the target state is unchanged, so the per-frame repaint is cheap and doesn't grow the JSON on save.
19 lines
527 B
Plaintext
19 lines
527 B
Plaintext
{
|
|
"id": "map-editor",
|
|
"version": "0.2.0c.1",
|
|
"kind": "module",
|
|
"api": "^0.1",
|
|
"ci_frames": 30,
|
|
"entry_point": "init.lua",
|
|
"asset_aliases": {
|
|
"blob_rect_stone": "lib-asset.prototype-blob-geom"
|
|
},
|
|
"deps": [
|
|
{"id":"lib-core.maps","version":"0.5.2"},
|
|
{"id":"lib-core.render","version":"0.1.0"},
|
|
{"id":"lib-core.camera","version":"0.3.0"},
|
|
{"id":"lib-core.input","version":"0.4.0"},
|
|
{"id":"lib-asset.prototype-blob-geom","version":"0.1.0"}
|
|
]
|
|
}
|