@edv4h/usketch-plugin-map 0.9.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/autotile.d.ts +4 -0
- package/dist/autotile.d.ts.map +1 -1
- package/dist/autotile.js +7 -3
- package/dist/autotile.js.map +1 -1
- package/dist/base/base-layer.d.ts +3 -1
- package/dist/base/base-layer.d.ts.map +1 -1
- package/dist/base/base-layer.js +65 -54
- package/dist/base/base-layer.js.map +1 -1
- package/dist/base/base-map-shape.d.ts +3 -2
- package/dist/base/base-map-shape.d.ts.map +1 -1
- package/dist/base/base-map-shape.js.map +1 -1
- package/dist/base/base-ops.d.ts +6 -8
- package/dist/base/base-ops.d.ts.map +1 -1
- package/dist/base/base-ops.js +15 -63
- package/dist/base/base-ops.js.map +1 -1
- package/dist/base/territory-style.d.ts +63 -0
- package/dist/base/territory-style.d.ts.map +1 -0
- package/dist/base/territory-style.js +34 -0
- package/dist/base/territory-style.js.map +1 -0
- package/dist/base/territory.d.ts.map +1 -1
- package/dist/base/territory.js +11 -17
- package/dist/base/territory.js.map +1 -1
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +6 -4
- package/dist/generate.js.map +1 -1
- package/dist/icon-render.d.ts +10 -0
- package/dist/icon-render.d.ts.map +1 -0
- package/dist/icon-render.js +26 -0
- package/dist/icon-render.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/map-icon-layer.d.ts +9 -0
- package/dist/map-icon-layer.d.ts.map +1 -0
- package/dist/map-icon-layer.js +55 -0
- package/dist/map-icon-layer.js.map +1 -0
- package/dist/map-service.d.ts +14 -1
- package/dist/map-service.d.ts.map +1 -1
- package/dist/map-service.js +36 -1
- package/dist/map-service.js.map +1 -1
- package/dist/map-tool.d.ts.map +1 -1
- package/dist/map-tool.js +89 -54
- package/dist/map-tool.js.map +1 -1
- package/dist/plugin.d.ts +7 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +19 -5
- package/dist/plugin.js.map +1 -1
- package/dist/tilemap-shape.d.ts +15 -3
- package/dist/tilemap-shape.d.ts.map +1 -1
- package/dist/tilemap-shape.js +40 -14
- package/dist/tilemap-shape.js.map +1 -1
- package/package.json +1 -1
- package/dist/map-icon-shape.d.ts +0 -17
- package/dist/map-icon-shape.d.ts.map +0 -1
- package/dist/map-icon-shape.js +0 -106
- package/dist/map-icon-shape.js.map +0 -1
package/dist/map-tool.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { createAddShapeCommand
|
|
2
|
+
import { createAddShapeCommand } from "@edv4h/usketch-store";
|
|
3
3
|
import { cellKey, cellsBounds, floodFill, regionFillCells, samplerFloodFill, worldToCell, } from "./autotile.js";
|
|
4
4
|
import { createBase, getBaseMap, setBeacon } from "./base/base-ops.js";
|
|
5
5
|
import { baseStateStore } from "./base/base-state.js";
|
|
@@ -7,8 +7,7 @@ import { makeTerrainSampler, resolveBaseGen } from "./base-terrain.js";
|
|
|
7
7
|
import { genStateStore } from "./gen-state.js";
|
|
8
8
|
import { generateIntoBox, resolveTilemap } from "./generate.js";
|
|
9
9
|
import { ICONS_BY_KEY } from "./icons.js";
|
|
10
|
-
import {
|
|
11
|
-
import { DEFAULT_TILE, isTileMap, seededTilemap } from "./tilemap-shape.js";
|
|
10
|
+
import { DEFAULT_TILE, isTileMap, seededTilemap, tilemapBounds, } from "./tilemap-shape.js";
|
|
12
11
|
import { toolStateStore } from "./tool-state.js";
|
|
13
12
|
// Hard cap on a single sampler-based fill over the infinite base terrain. A truly
|
|
14
13
|
// enclosed region terminates well below this; hitting it means the region is open
|
|
@@ -37,6 +36,15 @@ function cellsEqual(a, b) {
|
|
|
37
36
|
return false;
|
|
38
37
|
return true;
|
|
39
38
|
}
|
|
39
|
+
function iconsEqual(a, b) {
|
|
40
|
+
const ak = Object.keys(a);
|
|
41
|
+
if (ak.length !== Object.keys(b).length)
|
|
42
|
+
return false;
|
|
43
|
+
for (const k of ak)
|
|
44
|
+
if (a[k] !== b[k])
|
|
45
|
+
return false;
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
40
48
|
export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
41
49
|
let stroke = null;
|
|
42
50
|
let lastKey = "";
|
|
@@ -50,10 +58,27 @@ export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
|
50
58
|
const s = ctx.store.getShape(id);
|
|
51
59
|
return s?.handPaint ? { ...s.handPaint } : {};
|
|
52
60
|
}
|
|
61
|
+
function currentIcons(ctx, id) {
|
|
62
|
+
const s = ctx.store.getShape(id);
|
|
63
|
+
return s?.icons ? { ...s.icons } : {};
|
|
64
|
+
}
|
|
65
|
+
// Write terrain cells; bounds enclose the shape's existing icons too so an
|
|
66
|
+
// icon-only cell outside the paint doesn't get clipped. (`cells`/`icons` are
|
|
67
|
+
// intrinsic tilemap fields outside base ShapeData — cast at the store boundary.)
|
|
53
68
|
function applyCells(ctx, id, cells) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
69
|
+
const icons = ctx.store.getShape(id)?.icons;
|
|
70
|
+
ctx.store.updateShape(id, {
|
|
71
|
+
cells,
|
|
72
|
+
...tilemapBounds(cells, icons, tile),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
// Write both grids at once (used by the eraser, which may remove either).
|
|
76
|
+
function applyGrid(ctx, id, cells, icons) {
|
|
77
|
+
ctx.store.updateShape(id, {
|
|
78
|
+
cells,
|
|
79
|
+
icons,
|
|
80
|
+
...tilemapBounds(cells, icons, tile),
|
|
81
|
+
});
|
|
57
82
|
}
|
|
58
83
|
function paintAt(ctx, event) {
|
|
59
84
|
if (!stroke)
|
|
@@ -66,6 +91,13 @@ export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
|
66
91
|
const { mode, terrain } = toolStateStore.get();
|
|
67
92
|
const cells = currentCells(ctx, stroke.tilemapId);
|
|
68
93
|
if (mode === "eraser") {
|
|
94
|
+
// Erase the icon first (it sits on top); only if there's none, the terrain.
|
|
95
|
+
const icons = currentIcons(ctx, stroke.tilemapId);
|
|
96
|
+
if (key in icons) {
|
|
97
|
+
delete icons[key];
|
|
98
|
+
applyGrid(ctx, stroke.tilemapId, cells, icons);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
69
101
|
if (!(key in cells))
|
|
70
102
|
return;
|
|
71
103
|
delete cells[key];
|
|
@@ -195,15 +227,16 @@ export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
|
195
227
|
function commit(ctx) {
|
|
196
228
|
if (!stroke)
|
|
197
229
|
return;
|
|
198
|
-
const { tilemapId, created, prevCells, prevHandPaint } = stroke;
|
|
230
|
+
const { tilemapId, created, prevCells, prevHandPaint, prevIcons } = stroke;
|
|
199
231
|
stroke = null;
|
|
200
232
|
lastKey = "";
|
|
201
233
|
const shape = ctx.store.getShape(tilemapId);
|
|
202
234
|
const nextCells = shape ? shape.cells : {};
|
|
235
|
+
const nextIcons = shape?.icons ? { ...shape.icons } : {};
|
|
203
236
|
if (created) {
|
|
204
237
|
// Newly created this stroke: commit as an add (undo deletes it). Every
|
|
205
238
|
// cell was just hand-painted, so mark them all as hand-paint.
|
|
206
|
-
if (!shape || Object.keys(nextCells).length === 0) {
|
|
239
|
+
if (!shape || (Object.keys(nextCells).length === 0 && Object.keys(nextIcons).length === 0)) {
|
|
207
240
|
if (shape)
|
|
208
241
|
ctx.store.deleteShape(tilemapId);
|
|
209
242
|
return;
|
|
@@ -216,8 +249,8 @@ export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
|
216
249
|
ctx.commands.execute(createAddShapeCommand(ctx.store, finalShape));
|
|
217
250
|
return;
|
|
218
251
|
}
|
|
219
|
-
// Edited an existing tilemap: commit the cells diff (undo restores prev).
|
|
220
|
-
if (cellsEqual(prevCells, nextCells))
|
|
252
|
+
// Edited an existing tilemap: commit the cells + icons diff (undo restores prev).
|
|
253
|
+
if (cellsEqual(prevCells, nextCells) && iconsEqual(prevIcons, nextIcons))
|
|
221
254
|
return;
|
|
222
255
|
const prev = prevCells;
|
|
223
256
|
const next = { ...nextCells };
|
|
@@ -232,16 +265,18 @@ export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
|
232
265
|
else
|
|
233
266
|
delete nextHandPaint[k];
|
|
234
267
|
}
|
|
235
|
-
const prevBounds =
|
|
236
|
-
const nextBounds =
|
|
268
|
+
const prevBounds = tilemapBounds(prev, prevIcons, tile);
|
|
269
|
+
const nextBounds = tilemapBounds(next, nextIcons, tile);
|
|
237
270
|
const command = {
|
|
238
271
|
execute: () => ctx.store.updateShape(tilemapId, {
|
|
239
272
|
cells: next,
|
|
273
|
+
icons: nextIcons,
|
|
240
274
|
handPaint: nextHandPaint,
|
|
241
275
|
...nextBounds,
|
|
242
276
|
}),
|
|
243
277
|
undo: () => ctx.store.updateShape(tilemapId, {
|
|
244
278
|
cells: prev,
|
|
279
|
+
icons: prevIcons,
|
|
245
280
|
handPaint: prevHandPaint,
|
|
246
281
|
...prevBounds,
|
|
247
282
|
}),
|
|
@@ -249,34 +284,41 @@ export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
|
249
284
|
ctx.commands.execute(command);
|
|
250
285
|
}
|
|
251
286
|
/**
|
|
252
|
-
*
|
|
253
|
-
*
|
|
254
|
-
*
|
|
287
|
+
* Stamp the active icon into the clicked cell as ONE undoable command. Icons are
|
|
288
|
+
* grid data on the tilemap (`icons[cellKey] = iconKey`), one per cell (re-stamp
|
|
289
|
+
* overwrites). No free shape is created — Select can't grab it; only the Map tool.
|
|
255
290
|
*/
|
|
256
|
-
function
|
|
257
|
-
const def = ctx.shapes.get(MAP_ICON_TYPE);
|
|
258
|
-
if (!def)
|
|
259
|
-
return null;
|
|
260
|
-
const point = { x, y };
|
|
261
|
-
let found = null;
|
|
262
|
-
for (const s of ctx.store.getShapesSorted()) {
|
|
263
|
-
if (s.type !== MAP_ICON_TYPE)
|
|
264
|
-
continue;
|
|
265
|
-
if (isEffectivelyLocked(ctx.store, s) || isEffectivelyHidden(ctx.store, s))
|
|
266
|
-
continue;
|
|
267
|
-
if (def.hitTest(s, point))
|
|
268
|
-
found = s.id;
|
|
269
|
-
}
|
|
270
|
-
return found;
|
|
271
|
-
}
|
|
272
|
-
function placeIcon(ctx, event) {
|
|
291
|
+
function stampIcon(ctx, event) {
|
|
273
292
|
const { iconKey } = toolStateStore.get();
|
|
274
|
-
|
|
275
|
-
|
|
293
|
+
if (!ICONS_BY_KEY.has(iconKey))
|
|
294
|
+
return;
|
|
295
|
+
const target = resolveTilemap(ctx.store, tile);
|
|
296
|
+
const id = target.id;
|
|
297
|
+
const shape = ctx.store.getShape(id);
|
|
298
|
+
if (!shape)
|
|
299
|
+
return;
|
|
300
|
+
const [c, r] = worldToCell(event.worldPoint.x, event.worldPoint.y, tile);
|
|
301
|
+
const key = cellKey(c, r);
|
|
302
|
+
const prevIcons = shape.icons ? { ...shape.icons } : {};
|
|
303
|
+
if (prevIcons[key] === iconKey && !target.created)
|
|
304
|
+
return; // no-op re-stamp
|
|
305
|
+
const nextIcons = { ...prevIcons, [key]: iconKey };
|
|
306
|
+
const cells = shape.cells;
|
|
307
|
+
const prevBounds = tilemapBounds(cells, prevIcons, tile);
|
|
308
|
+
const nextBounds = tilemapBounds(cells, nextIcons, tile);
|
|
309
|
+
if (target.created) {
|
|
310
|
+
// Freshly created (blank) tilemap: commit as an add so undo deletes it and
|
|
311
|
+
// redo re-adds it (updateShape on a deleted id would no-op).
|
|
312
|
+
const finalShape = { ...shape, icons: nextIcons, ...nextBounds };
|
|
313
|
+
ctx.store.deleteShape(id);
|
|
314
|
+
ctx.commands.execute(createAddShapeCommand(ctx.store, finalShape));
|
|
276
315
|
return;
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
316
|
+
}
|
|
317
|
+
const command = {
|
|
318
|
+
execute: () => ctx.store.updateShape(id, { icons: nextIcons, ...nextBounds }),
|
|
319
|
+
undo: () => ctx.store.updateShape(id, { icons: prevIcons, ...prevBounds }),
|
|
320
|
+
};
|
|
321
|
+
ctx.commands.execute(command);
|
|
280
322
|
}
|
|
281
323
|
return {
|
|
282
324
|
icon: MapToolIcon,
|
|
@@ -286,7 +328,7 @@ export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
|
286
328
|
onPointerDown(ctx, event) {
|
|
287
329
|
const { mode } = toolStateStore.get();
|
|
288
330
|
if (mode === "stamp") {
|
|
289
|
-
|
|
331
|
+
stampIcon(ctx, event);
|
|
290
332
|
return;
|
|
291
333
|
}
|
|
292
334
|
if (mode === "generate") {
|
|
@@ -297,11 +339,8 @@ export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
|
297
339
|
return;
|
|
298
340
|
}
|
|
299
341
|
if (mode === "base") {
|
|
300
|
-
// Base mode: click a
|
|
301
|
-
//
|
|
302
|
-
const iconId = findMapIconAt(ctx, event.worldPoint.x, event.worldPoint.y);
|
|
303
|
-
if (!iconId)
|
|
304
|
-
return; // only meaningful when clicking on an icon
|
|
342
|
+
// Base mode: click a CELL to make it the active base's beacon. The
|
|
343
|
+
// territory is derived from the beacon cell + terrain (see territory.ts).
|
|
305
344
|
const deps = { store: ctx.store, commands: ctx.commands, tile };
|
|
306
345
|
let baseId = baseStateStore.get().activeBaseId;
|
|
307
346
|
// Auto-create a base on first use so a single click "just works".
|
|
@@ -310,23 +349,18 @@ export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
|
310
349
|
baseId = createBase(deps, `拠点${n + 1}`, BASE_PALETTE[n % BASE_PALETTE.length]);
|
|
311
350
|
baseStateStore.set({ activeBaseId: baseId });
|
|
312
351
|
}
|
|
313
|
-
|
|
352
|
+
const [c, r] = worldToCell(event.worldPoint.x, event.worldPoint.y, tile);
|
|
353
|
+
setBeacon(deps, cellKey(c, r), baseId);
|
|
314
354
|
return;
|
|
315
355
|
}
|
|
316
|
-
//
|
|
317
|
-
if (mode === "eraser") {
|
|
318
|
-
const iconId = findMapIconAt(ctx, event.worldPoint.x, event.worldPoint.y);
|
|
319
|
-
if (iconId) {
|
|
320
|
-
ctx.commands.execute(createDeleteWithChildrenCommand(ctx.store, iconId));
|
|
321
|
-
return;
|
|
322
|
-
}
|
|
323
|
-
}
|
|
356
|
+
// brush / eraser / fill / region all edit the tilemap grid via a stroke.
|
|
324
357
|
const target = resolveTilemap(ctx.store, tile);
|
|
325
358
|
stroke = {
|
|
326
359
|
tilemapId: target.id,
|
|
327
360
|
created: target.created,
|
|
328
361
|
prevCells: currentCells(ctx, target.id),
|
|
329
362
|
prevHandPaint: currentHandPaint(ctx, target.id),
|
|
363
|
+
prevIcons: currentIcons(ctx, target.id),
|
|
330
364
|
};
|
|
331
365
|
lastKey = "";
|
|
332
366
|
if (mode === "fill")
|
|
@@ -383,14 +417,15 @@ export function createMapToolDefinition(tile = DEFAULT_TILE) {
|
|
|
383
417
|
// the stroke started (delete a tilemap created this stroke; restore the
|
|
384
418
|
// previous cells of an edited one), then clear.
|
|
385
419
|
if (stroke) {
|
|
386
|
-
const { tilemapId, created, prevCells } = stroke;
|
|
420
|
+
const { tilemapId, created, prevCells, prevIcons } = stroke;
|
|
387
421
|
if (created) {
|
|
388
422
|
ctx.store.deleteShape(tilemapId);
|
|
389
423
|
}
|
|
390
424
|
else {
|
|
391
425
|
ctx.store.updateShape(tilemapId, {
|
|
392
426
|
cells: prevCells,
|
|
393
|
-
|
|
427
|
+
icons: prevIcons,
|
|
428
|
+
...tilemapBounds(prevCells, prevIcons, tile),
|
|
394
429
|
});
|
|
395
430
|
}
|
|
396
431
|
stroke = null;
|
package/dist/map-tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-tool.js","sourceRoot":"","sources":["../src/map-tool.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map-tool.js","sourceRoot":"","sources":["../src/map-tool.tsx"],"names":[],"mappings":"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"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { UsketchPlugin } from "@edv4h/usketch-shared";
|
|
2
|
+
import { type TerritoryStyle } from "./base/territory-style.js";
|
|
2
3
|
import type { ColorMode } from "./palette.js";
|
|
3
4
|
import { type LineStyle } from "./render-config.js";
|
|
4
5
|
import { type TerrainKey } from "./terrain.js";
|
|
@@ -13,6 +14,12 @@ export interface MapPluginOptions {
|
|
|
13
14
|
* HUD "空きマス" setting.
|
|
14
15
|
*/
|
|
15
16
|
emptyTerrain?: TerrainKey;
|
|
17
|
+
/**
|
|
18
|
+
* Appearance of the base "territory" (領域) overlay — fill / border / ring /
|
|
19
|
+
* label, plus whether to show it only while editing bases (`"base-mode"`,
|
|
20
|
+
* default) or always. Merges over the defaults; omit for the stock look.
|
|
21
|
+
*/
|
|
22
|
+
territory?: TerritoryStyle;
|
|
16
23
|
}
|
|
17
24
|
export declare function createMapPlugin(options?: MapPluginOptions): UsketchPlugin;
|
|
18
25
|
//# sourceMappingURL=plugin.d.ts.map
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI1E,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAcvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,WAAW,gBAAgB;IAChC,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B;;;;OAIG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC3B;AAOD,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,aAAa,CA2L7E"}
|
package/dist/plugin.js
CHANGED
|
@@ -2,10 +2,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { BaseAreaLayer } from "./base/base-layer.js";
|
|
3
3
|
import { BASE_MAP_TYPE, createBaseMapShapeDefinition } from "./base/base-map-shape.js";
|
|
4
4
|
import { EnterBanner } from "./base/enter-banner.js";
|
|
5
|
+
import { resolveTerritoryStyle } from "./base/territory-style.js";
|
|
5
6
|
import { genStateStore } from "./gen-state.js";
|
|
6
7
|
import { registerMapHud } from "./hud/register-map-hud.js";
|
|
7
8
|
import { disableInfiniteTerrain, enableInfiniteTerrain, getInfiniteSeed, isInfiniteTerrainEnabled, } from "./infinite-terrain.js";
|
|
8
|
-
import {
|
|
9
|
+
import { MapIconGridLayer } from "./map-icon-layer.js";
|
|
9
10
|
import { MapTerrainLayer } from "./map-layer.js";
|
|
10
11
|
import { createMapApi, mapService } from "./map-service.js";
|
|
11
12
|
import { createMapToolDefinition } from "./map-tool.js";
|
|
@@ -16,9 +17,11 @@ import { TERRAINS } from "./terrain.js";
|
|
|
16
17
|
import { createTileMapShapeDefinition, DEFAULT_TILE, TILEMAP_TYPE } from "./tilemap-shape.js";
|
|
17
18
|
const TERRAIN_LAYER_ID = "usketch-map:terrain";
|
|
18
19
|
const BASE_LAYER_ID = "usketch-map:base";
|
|
20
|
+
const ICON_LAYER_ID = "usketch-map:icons";
|
|
19
21
|
const ENTER_BANNER_ID = "usketch-map:enter-banner";
|
|
20
22
|
export function createMapPlugin(options = {}) {
|
|
21
23
|
const tile = options.tile ?? DEFAULT_TILE;
|
|
24
|
+
const territoryStyle = resolveTerritoryStyle(options.territory);
|
|
22
25
|
if (options.defaultColorMode || options.defaultLineStyle || options.emptyTerrain) {
|
|
23
26
|
renderConfigStore.set({
|
|
24
27
|
colorMode: options.defaultColorMode,
|
|
@@ -30,10 +33,11 @@ export function createMapPlugin(options = {}) {
|
|
|
30
33
|
id: "usketch-plugin-map",
|
|
31
34
|
name: "RPG マップ",
|
|
32
35
|
setup(ctx) {
|
|
33
|
-
// ── Shapes (tilemap + base-map = data-only substrates
|
|
36
|
+
// ── Shapes (tilemap + base-map = data-only substrates). World-layer icons
|
|
37
|
+
// are NOT shapes: they live as grid cells on the tilemap and render via
|
|
38
|
+
// the MapIconGridLayer below (so Select can't grab them). ──
|
|
34
39
|
ctx.shapes.register(TILEMAP_TYPE, createTileMapShapeDefinition(tile));
|
|
35
40
|
ctx.shapes.register(BASE_MAP_TYPE, createBaseMapShapeDefinition(tile));
|
|
36
|
-
ctx.shapes.register(MAP_ICON_TYPE, mapIconShapeDefinition);
|
|
37
41
|
// ── Terrain MapLayer (behind all shapes) ──
|
|
38
42
|
ctx.layers.register({
|
|
39
43
|
id: TERRAIN_LAYER_ID,
|
|
@@ -46,7 +50,16 @@ export function createMapPlugin(options = {}) {
|
|
|
46
50
|
id: BASE_LAYER_ID,
|
|
47
51
|
order: 42,
|
|
48
52
|
fixed: true,
|
|
49
|
-
render: (lctx) => _jsx(BaseAreaLayer, { store: ctx.store, renderMode: lctx.renderMode }),
|
|
53
|
+
render: (lctx) => (_jsx(BaseAreaLayer, { store: ctx.store, renderMode: lctx.renderMode, style: territoryStyle })),
|
|
54
|
+
});
|
|
55
|
+
// ── World-layer icons (grid data on the tilemap). Order 44: above terrain
|
|
56
|
+
// (40) and base areas (42), below host resource shapes (DOM shapes=50) —
|
|
57
|
+
// the "world layer sits under interactive resources" split (#955). ──
|
|
58
|
+
ctx.layers.register({
|
|
59
|
+
id: ICON_LAYER_ID,
|
|
60
|
+
order: 44,
|
|
61
|
+
fixed: true,
|
|
62
|
+
render: (lctx) => (_jsx(MapIconGridLayer, { store: ctx.store, renderMode: lctx.renderMode, tile: tile })),
|
|
50
63
|
});
|
|
51
64
|
ctx.layers.register({
|
|
52
65
|
id: ENTER_BANNER_ID,
|
|
@@ -173,11 +186,12 @@ export function createMapPlugin(options = {}) {
|
|
|
173
186
|
// Provided LAST, after every throw-prone registration above, so a setup
|
|
174
187
|
// failure can't leak the service (createApp only rolls back a returned
|
|
175
188
|
// teardown). ──
|
|
176
|
-
const unprovideService = mapService.provide(ctx.services, createMapApi(ctx.store));
|
|
189
|
+
const unprovideService = mapService.provide(ctx.services, createMapApi(ctx.store, tile));
|
|
177
190
|
return () => {
|
|
178
191
|
unprovideService();
|
|
179
192
|
ctx.layers.unregister(TERRAIN_LAYER_ID);
|
|
180
193
|
ctx.layers.unregister(BASE_LAYER_ID);
|
|
194
|
+
ctx.layers.unregister(ICON_LAYER_ID);
|
|
181
195
|
ctx.layers.unregister(ENTER_BANNER_ID);
|
|
182
196
|
unregisterMapHud();
|
|
183
197
|
unregisterHud();
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"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"}
|
package/dist/tilemap-shape.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BoundingBox, ShapeData, ShapeDefinition } from "@edv4h/usketch-shared";
|
|
2
|
-
import { type Cells } from "./autotile.js";
|
|
2
|
+
import { type Cells, type IconCells } from "./autotile.js";
|
|
3
3
|
import type { BaseGenParams } from "./base-terrain.js";
|
|
4
4
|
export declare const TILEMAP_TYPE = "tilemap";
|
|
5
5
|
export declare const DEFAULT_TILE = 40;
|
|
@@ -28,8 +28,22 @@ export interface TileMapShapeData extends ShapeData {
|
|
|
28
28
|
* older seeded shape means v1 (see `resolveBaseGen`). Paired with `baseSeed`.
|
|
29
29
|
*/
|
|
30
30
|
baseGen?: BaseGenParams;
|
|
31
|
+
/**
|
|
32
|
+
* World-layer icons as GRID DATA: `cellKey("c,r") → iconKey` (one icon per
|
|
33
|
+
* cell). Like `cells`, this lives on the substrate shape — so placed icons
|
|
34
|
+
* are part of the protected world layer: the generic Select tool can't grab
|
|
35
|
+
* them (they aren't shapes), while the Map tool (stamp / eraser) edits them
|
|
36
|
+
* directly. Persists + syncs + undoes through the shape store. Sparse.
|
|
37
|
+
*/
|
|
38
|
+
icons?: IconCells;
|
|
31
39
|
}
|
|
32
40
|
export declare function isTileMap(shape: ShapeData): shape is TileMapShapeData;
|
|
41
|
+
/**
|
|
42
|
+
* Bounds patch keeping x/y/width/height in sync with BOTH painted cells and placed
|
|
43
|
+
* icons — an icon-only cell outside the painted area still counts, so the box
|
|
44
|
+
* encloses everything the tilemap owns.
|
|
45
|
+
*/
|
|
46
|
+
export declare function tilemapBounds(cells: Cells, icons: IconCells | undefined, tile: number): BoundingBox;
|
|
33
47
|
/**
|
|
34
48
|
* The tilemap that owns the infinite-terrain seed, chosen **deterministically**
|
|
35
49
|
* (lowest `id`) so every synced client resolves the same seed even if several
|
|
@@ -47,7 +61,5 @@ export declare function seededTilemap(shapes: Iterable<ShapeData>): TileMapShape
|
|
|
47
61
|
export declare function lowestTilemap(shapes: Iterable<ShapeData>): TileMapShapeData | null;
|
|
48
62
|
/** Create a new empty tilemap (locked substrate). */
|
|
49
63
|
export declare function makeTileMap(tile: number): TileMapShapeData;
|
|
50
|
-
/** Bounds patch to keep x/y/width/height in sync with the painted cells. */
|
|
51
|
-
export declare function boundsPatch(cells: Cells, tile: number): BoundingBox;
|
|
52
64
|
export declare function createTileMapShapeDefinition(tile?: number): ShapeDefinition;
|
|
53
65
|
//# sourceMappingURL=tilemap-shape.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tilemap-shape.d.ts","sourceRoot":"","sources":["../src/tilemap-shape.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAErF,OAAO,EAAE,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"tilemap-shape.d.ts","sourceRoot":"","sources":["../src/tilemap-shape.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAErF,OAAO,EAAE,KAAK,KAAK,EAAW,KAAK,SAAS,EAA4B,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAClD,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,gBAAgB,CAErE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,GAAG,SAAS,EAC5B,IAAI,EAAE,MAAM,GACV,WAAW,CAGb;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAgBlF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAIlF;AAED,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAgB1D;AAED,wBAAgB,4BAA4B,CAAC,IAAI,GAAE,MAAqB,GAAG,eAAe,CA+DzF"}
|
package/dist/tilemap-shape.js
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { generateId } from "@edv4h/usketch-shared";
|
|
3
|
-
import { cellKey,
|
|
3
|
+
import { cellKey, keysBounds, parseCellKey } from "./autotile.js";
|
|
4
4
|
export const TILEMAP_TYPE = "tilemap";
|
|
5
5
|
export const DEFAULT_TILE = 40;
|
|
6
6
|
export function isTileMap(shape) {
|
|
7
7
|
return shape.type === TILEMAP_TYPE;
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Bounds patch keeping x/y/width/height in sync with BOTH painted cells and placed
|
|
11
|
+
* icons — an icon-only cell outside the painted area still counts, so the box
|
|
12
|
+
* encloses everything the tilemap owns.
|
|
13
|
+
*/
|
|
14
|
+
export function tilemapBounds(cells, icons, tile) {
|
|
15
|
+
const keys = icons ? [...Object.keys(cells), ...Object.keys(icons)] : Object.keys(cells);
|
|
16
|
+
return keysBounds(keys, tile);
|
|
17
|
+
}
|
|
9
18
|
/**
|
|
10
19
|
* The tilemap that owns the infinite-terrain seed, chosen **deterministically**
|
|
11
20
|
* (lowest `id`) so every synced client resolves the same seed even if several
|
|
@@ -54,14 +63,11 @@ export function makeTileMap(tile) {
|
|
|
54
63
|
style: { fill: "transparent", stroke: "transparent", strokeWidth: 0, opacity: 1 },
|
|
55
64
|
tile,
|
|
56
65
|
cells: {},
|
|
66
|
+
icons: {},
|
|
57
67
|
handPaint: {},
|
|
58
68
|
locked: true,
|
|
59
69
|
};
|
|
60
70
|
}
|
|
61
|
-
/** Bounds patch to keep x/y/width/height in sync with the painted cells. */
|
|
62
|
-
export function boundsPatch(cells, tile) {
|
|
63
|
-
return cellsBounds(cells, tile);
|
|
64
|
-
}
|
|
65
71
|
export function createTileMapShapeDefinition(tile = DEFAULT_TILE) {
|
|
66
72
|
return {
|
|
67
73
|
// Drawing is done by the MapLayer; the shape itself renders nothing.
|
|
@@ -69,7 +75,7 @@ export function createTileMapShapeDefinition(tile = DEFAULT_TILE) {
|
|
|
69
75
|
renderTarget: "svg",
|
|
70
76
|
getBounds: (data) => {
|
|
71
77
|
const d = data;
|
|
72
|
-
return
|
|
78
|
+
return tilemapBounds(d.cells ?? {}, d.icons, d.tile ?? tile);
|
|
73
79
|
},
|
|
74
80
|
// Never selectable via pointer — it is a substrate, not an object.
|
|
75
81
|
hitTest: () => false,
|
|
@@ -79,8 +85,10 @@ export function createTileMapShapeDefinition(tile = DEFAULT_TILE) {
|
|
|
79
85
|
...makeTileMap(tile),
|
|
80
86
|
id: params.id,
|
|
81
87
|
}),
|
|
82
|
-
// Locked, so user-move is not expected; support it anyway by shifting
|
|
83
|
-
//
|
|
88
|
+
// Locked, so user-move is not expected; support it anyway by shifting every
|
|
89
|
+
// grid (cells / icons / handPaint) by the same whole-tile delta so they stay
|
|
90
|
+
// aligned — handPaint keys mirror `cells` and territory expansion keys off it,
|
|
91
|
+
// so it must move too.
|
|
84
92
|
move: (data, dx, dy) => {
|
|
85
93
|
const d = data;
|
|
86
94
|
const t = d.tile ?? tile;
|
|
@@ -88,12 +96,25 @@ export function createTileMapShapeDefinition(tile = DEFAULT_TILE) {
|
|
|
88
96
|
const dr = Math.round(dy / t);
|
|
89
97
|
if (dc === 0 && dr === 0)
|
|
90
98
|
return {};
|
|
91
|
-
const
|
|
92
|
-
for (const [key, terrain] of Object.entries(d.cells)) {
|
|
99
|
+
const shift = (key) => {
|
|
93
100
|
const [c, r] = parseCellKey(key);
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
|
|
101
|
+
return cellKey(c + dc, r + dr);
|
|
102
|
+
};
|
|
103
|
+
const next = {};
|
|
104
|
+
for (const [key, terrain] of Object.entries(d.cells))
|
|
105
|
+
next[shift(key)] = terrain;
|
|
106
|
+
const nextIcons = {};
|
|
107
|
+
for (const [key, iconKey] of Object.entries(d.icons ?? {}))
|
|
108
|
+
nextIcons[shift(key)] = iconKey;
|
|
109
|
+
const nextHandPaint = {};
|
|
110
|
+
for (const key of Object.keys(d.handPaint ?? {}))
|
|
111
|
+
nextHandPaint[shift(key)] = true;
|
|
112
|
+
return {
|
|
113
|
+
cells: next,
|
|
114
|
+
icons: nextIcons,
|
|
115
|
+
handPaint: nextHandPaint,
|
|
116
|
+
...tilemapBounds(next, nextIcons, t),
|
|
117
|
+
};
|
|
97
118
|
},
|
|
98
119
|
serializeForAi: (data) => {
|
|
99
120
|
const d = data;
|
|
@@ -101,12 +122,17 @@ export function createTileMapShapeDefinition(tile = DEFAULT_TILE) {
|
|
|
101
122
|
return {
|
|
102
123
|
kind: "tilemap",
|
|
103
124
|
tileCount: Object.keys(d.cells ?? {}).length,
|
|
125
|
+
iconCount: Object.keys(d.icons ?? {}).length,
|
|
104
126
|
terrains: [...used],
|
|
105
127
|
};
|
|
106
128
|
},
|
|
107
129
|
debugFields: (data) => {
|
|
108
130
|
const d = data;
|
|
109
|
-
return {
|
|
131
|
+
return {
|
|
132
|
+
tile: d.tile,
|
|
133
|
+
cellCount: Object.keys(d.cells ?? {}).length,
|
|
134
|
+
iconCount: Object.keys(d.icons ?? {}).length,
|
|
135
|
+
};
|
|
110
136
|
},
|
|
111
137
|
};
|
|
112
138
|
}
|