@edv4h/usketch-plugin-map 0.8.0 → 0.10.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.map +1 -1
- package/dist/base/base-layer.js +6 -12
- 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.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 +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -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 +28 -0
- package/dist/map-service.d.ts.map +1 -0
- package/dist/map-service.js +31 -0
- package/dist/map-service.js.map +1 -0
- 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.map +1 -1
- package/dist/plugin.js +23 -3
- 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 +3 -3
- 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/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":";AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACN,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,wBAAwB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAkB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAmB,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAe9F,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAC/C,MAAM,aAAa,GAAG,kBAAkB,CAAC;AACzC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAEnD,MAAM,UAAU,eAAe,CAAC,OAAO,GAAqB,EAAE;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IAC1C,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAClF,iBAAiB,CAAC,GAAG,CAAC;YACrB,SAAS,EAAE,OAAO,CAAC,gBAAgB;YACnC,SAAS,EAAE,OAAO,CAAC,gBAAgB;YACnC,YAAY,EAAE,OAAO,CAAC,YAAY;SAClC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,SAAS;QAEf,KAAK,CAAC,GAAkB;YACvB,2EAA2E;YAC3E,2EAA2E;YAC3E,gEAAgE;YAChE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;YACtE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;YAEvE,6CAA6C;YAC7C,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnB,EAAE,EAAE,gBAAgB;gBACpB,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACjB,KAAC,eAAe,IAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,GAAI,CAC9E;aACD,CAAC,CAAC;YAEH,wEAAwE;YACxE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnB,EAAE,EAAE,aAAa;gBACjB,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,aAAa,IAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,GAAI;aAClF,CAAC,CAAC;YACH,2EAA2E;YAC3E,4EAA4E;YAC5E,yEAAyE;YACzE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnB,EAAE,EAAE,aAAa;gBACjB,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACjB,KAAC,gBAAgB,IAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,GAAI,CAC/E;aACD,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnB,EAAE,EAAE,eAAe;gBACnB,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,WAAW,IAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI;aAC3D,CAAC,CAAC;YAEH,cAAc;YACd,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/D,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,EAAE,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;YAE9E,sEAAsE;YACtE,kEAAkE;YAClE,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEnD,2CAA2C;YAC3C,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBAC9C,EAAE,EAAE,oBAAoB;gBACxB,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE;oBACP;wBACC,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,IAAI;wBACX,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACR,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;4BACjC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;yBAChC;qBACD;oBACD;wBACC,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,GAAG;wBACV,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACR,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;4BACjC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;yBACjC;qBACD;oBACD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;oBACnF;wBACC,IAAI,EAAE,cAAc;wBACpB,KAAK,EAAE,MAAM;wBACb,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACR,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;4BAC9B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;yBACzD;qBACD;oBACD,oEAAoE;oBACpE,8DAA8D;oBAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;oBACpD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;iBAC5E;gBACD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,KAAK,cAAc;wBAAE,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAAC,YAAY,IAAI,MAAM,CAAC;oBACnF,2EAA2E;oBAC3E,oEAAoE;oBACpE,IAAI,IAAI,KAAK,UAAU;wBAAE,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;oBACnE,IAAI,IAAI,KAAK,MAAM;wBAAE,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;oBACnF,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAAC,IAAsD,CAAC,CAAC;gBACxF,CAAC;gBACD,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACpB,IAAI,IAAI,KAAK,aAAa;wBAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yBAC7E,IAAI,IAAI,KAAK,WAAW;wBAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,KAAkB,EAAE,CAAC,CAAC;yBACnF,IAAI,IAAI,KAAK,WAAW;wBAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,KAAkB,EAAE,CAAC,CAAC;yBACnF,IAAI,IAAI,KAAK,cAAc;wBAC/B,iBAAiB,CAAC,GAAG,CAAC;4BACrB,YAAY,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,KAAoB;yBAC7D,CAAC,CAAC;yBACC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;wBAC9B,sEAAsE;wBACtE,uEAAuE;wBACvE,kEAAkE;wBAClE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;4BACxC,qEAAqE;4BACrE,yEAAyE;4BACzE,8DAA8D;4BAC9D,MAAM,OAAO,GACZ,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;4BAC5E,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE;gCAChC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gCACpD,IAAI;6BACJ,CAAC,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACP,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACnC,CAAC;oBACF,CAAC;yBAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC5B,4DAA4D;wBAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAAE,OAAO;wBACnC,wEAAwE;wBACxE,gEAAgE;wBAChE,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5B,IAAI,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC;4BAAE,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrF,CAAC;gBACF,CAAC;gBACD,2EAA2E;gBAC3E,6EAA6E;gBAC7E,4EAA4E;gBAC5E,2EAA2E;gBAC3E,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACvB,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAC1D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC7C,IACC,CAAC,CAAC,IAAI,KAAK,aAAa;4BACxB,CAAC,CAAC,IAAI,KAAK,eAAe;4BAC1B,CAAC,CAAC,IAAI,KAAK,eAAe;4BAE1B,QAAQ,EAAE,CAAC;oBACb,CAAC,CAAC,CAAC;oBACH,OAAO,GAAG,EAAE;wBACX,WAAW,EAAE,CAAC;wBACd,UAAU,EAAE,CAAC;oBACd,CAAC,CAAC;gBACH,CAAC;aACD,CAAC,CAAC;YAEH,yEAAyE;YACzE,uEAAuE;YACvE,2EAA2E;YAC3E,0EAA0E;YAC1E,mBAAmB;YACnB,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAEnF,OAAO,GAAG,EAAE;gBACX,gBAAgB,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACxC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBACrC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBACrC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBACvC,gBAAgB,EAAE,CAAC;gBACnB,aAAa,EAAE,CAAC;YACjB,CAAC,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
|
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
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tilemap-shape.js","sourceRoot":"","sources":["../src/tilemap-shape.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAc,OAAO,
|
|
1
|
+
{"version":3,"file":"tilemap-shape.js","sourceRoot":"","sources":["../src/tilemap-shape.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edv4h/usketch-plugin-map",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@edv4h/usketch-shared": "4.
|
|
16
|
-
"@edv4h/usketch-store": "3.5.
|
|
15
|
+
"@edv4h/usketch-shared": "4.11.0",
|
|
16
|
+
"@edv4h/usketch-store": "3.5.3"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
19
|
"react": ">=19"
|
package/dist/map-icon-shape.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { ShapeData, ShapeDefinition } from "@edv4h/usketch-shared";
|
|
2
|
-
import { type IconCategory } from "./icons.js";
|
|
3
|
-
export declare const MAP_ICON_TYPE = "map-icon";
|
|
4
|
-
export declare const DEFAULT_ICON_SIZE = 48;
|
|
5
|
-
export interface MapIconShapeData extends ShapeData {
|
|
6
|
-
type: "map-icon";
|
|
7
|
-
meta: {
|
|
8
|
-
iconKey: string;
|
|
9
|
-
category: IconCategory;
|
|
10
|
-
/** Set when this icon is a base "beacon" (see setBeacon). The base's radius
|
|
11
|
-
* lives on the base registry, not here. */
|
|
12
|
-
baseId?: string;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
export declare function makeMapIcon(iconKey: string, category: IconCategory, x: number, y: number, size?: number): MapIconShapeData;
|
|
16
|
-
export declare const mapIconShapeDefinition: ShapeDefinition;
|
|
17
|
-
//# sourceMappingURL=map-icon-shape.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"map-icon-shape.d.ts","sourceRoot":"","sources":["../src/map-icon-shape.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIX,SAAS,EACT,eAAe,EACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAM7D,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAClD,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,YAAY,CAAC;QACvB;oDAC4C;QAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACF;AAED,wBAAgB,WAAW,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,SAAoB,GACtB,gBAAgB,CAWlB;AA6ED,eAAO,MAAM,sBAAsB,EAAE,eAsBpC,CAAC"}
|
package/dist/map-icon-shape.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { generateId, withRotation } from "@edv4h/usketch-shared";
|
|
3
|
-
import { ICONS_BY_KEY } from "./icons.js";
|
|
4
|
-
import { WOBBLE_FILTER_ID } from "./map-layer.js";
|
|
5
|
-
import { terrainCssVars } from "./palette.js";
|
|
6
|
-
import { useRenderConfig } from "./render-config.js";
|
|
7
|
-
import { renderSvgNodes } from "./svg-nodes.js";
|
|
8
|
-
export const MAP_ICON_TYPE = "map-icon";
|
|
9
|
-
export const DEFAULT_ICON_SIZE = 48;
|
|
10
|
-
export function makeMapIcon(iconKey, category, x, y, size = DEFAULT_ICON_SIZE) {
|
|
11
|
-
return {
|
|
12
|
-
id: generateId(),
|
|
13
|
-
type: "map-icon",
|
|
14
|
-
x: Math.round(x - size / 2),
|
|
15
|
-
y: Math.round(y - size / 2),
|
|
16
|
-
width: size,
|
|
17
|
-
height: size,
|
|
18
|
-
style: { fill: "transparent", stroke: "transparent", strokeWidth: 0, opacity: 1 },
|
|
19
|
-
meta: { iconKey, category },
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
function parseViewBox(vb) {
|
|
23
|
-
const p = vb.split(/[\s,]+/).map(Number);
|
|
24
|
-
return [p[0] || 0, p[1] || 0, p[2] || 48, p[3] || 48];
|
|
25
|
-
}
|
|
26
|
-
function MapIconBody({ data }) {
|
|
27
|
-
const cfg = useRenderConfig();
|
|
28
|
-
const icon = ICONS_BY_KEY.get(data.meta?.iconKey ?? "");
|
|
29
|
-
if (!icon)
|
|
30
|
-
return _jsx("g", {});
|
|
31
|
-
const [vx, vy, vw, vh] = parseViewBox(icon.viewBox);
|
|
32
|
-
const sx = data.width / vw;
|
|
33
|
-
const sy = data.height / vh;
|
|
34
|
-
const cssVars = terrainCssVars(cfg.colorMode, cfg.strokeScale);
|
|
35
|
-
return (_jsx("g", { style: cssVars, filter: cfg.lineStyle === "wobble" ? `url(#${WOBBLE_FILTER_ID})` : undefined, children: _jsx("g", { transform: `translate(${data.x} ${data.y}) scale(${sx} ${sy}) translate(${-vx} ${-vy})`, children: renderSvgNodes(icon.nodes, `icon-${icon.key}`) }) }));
|
|
36
|
-
}
|
|
37
|
-
function baseHitTest(data, point) {
|
|
38
|
-
return (point.x >= data.x &&
|
|
39
|
-
point.x <= data.x + data.width &&
|
|
40
|
-
point.y >= data.y &&
|
|
41
|
-
point.y <= data.y + data.height);
|
|
42
|
-
}
|
|
43
|
-
function resize(data, handle, delta) {
|
|
44
|
-
let { x, y, width, height } = data;
|
|
45
|
-
switch (handle) {
|
|
46
|
-
case "se":
|
|
47
|
-
width += delta.x;
|
|
48
|
-
height += delta.y;
|
|
49
|
-
break;
|
|
50
|
-
case "nw":
|
|
51
|
-
x += delta.x;
|
|
52
|
-
y += delta.y;
|
|
53
|
-
width -= delta.x;
|
|
54
|
-
height -= delta.y;
|
|
55
|
-
break;
|
|
56
|
-
case "ne":
|
|
57
|
-
y += delta.y;
|
|
58
|
-
width += delta.x;
|
|
59
|
-
height -= delta.y;
|
|
60
|
-
break;
|
|
61
|
-
case "sw":
|
|
62
|
-
x += delta.x;
|
|
63
|
-
width -= delta.x;
|
|
64
|
-
height += delta.y;
|
|
65
|
-
break;
|
|
66
|
-
case "e":
|
|
67
|
-
width += delta.x;
|
|
68
|
-
break;
|
|
69
|
-
case "w":
|
|
70
|
-
x += delta.x;
|
|
71
|
-
width -= delta.x;
|
|
72
|
-
break;
|
|
73
|
-
case "n":
|
|
74
|
-
y += delta.y;
|
|
75
|
-
height -= delta.y;
|
|
76
|
-
break;
|
|
77
|
-
case "s":
|
|
78
|
-
height += delta.y;
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
return { ...data, x, y, width: Math.max(16, width), height: Math.max(16, height) };
|
|
82
|
-
}
|
|
83
|
-
export const mapIconShapeDefinition = {
|
|
84
|
-
render: (data) => _jsx(MapIconBody, { data: data }),
|
|
85
|
-
renderTarget: "svg",
|
|
86
|
-
getBounds: (data) => ({
|
|
87
|
-
x: data.x,
|
|
88
|
-
y: data.y,
|
|
89
|
-
width: data.width,
|
|
90
|
-
height: data.height,
|
|
91
|
-
}),
|
|
92
|
-
hitTest: withRotation(baseHitTest),
|
|
93
|
-
resize,
|
|
94
|
-
minSize: { width: 16, height: 16 },
|
|
95
|
-
createDefault: (params) => makeMapIcon("town", "landmark", params.x, params.y),
|
|
96
|
-
serializeForAi: (data) => {
|
|
97
|
-
const d = data;
|
|
98
|
-
const icon = ICONS_BY_KEY.get(d.meta?.iconKey ?? "");
|
|
99
|
-
return { kind: "map-icon", icon: d.meta?.iconKey, text: icon?.en };
|
|
100
|
-
},
|
|
101
|
-
debugFields: (data) => {
|
|
102
|
-
const d = data;
|
|
103
|
-
return { iconKey: d.meta?.iconKey, category: d.meta?.category };
|
|
104
|
-
},
|
|
105
|
-
};
|
|
106
|
-
//# sourceMappingURL=map-icon-shape.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"map-icon-shape.js","sourceRoot":"","sources":["../src/map-icon-shape.tsx"],"names":[],"mappings":"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"}
|