mudlet-map-renderer 1.0.0 → 1.1.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.
Files changed (106) hide show
  1. package/README.md +520 -0
  2. package/dist/AreaMapRenderer.d.ts +125 -0
  3. package/dist/CullingManager.d.ts +15 -0
  4. package/dist/ExitRenderer.d.ts +109 -0
  5. package/dist/InteractionHandler.d.ts +47 -0
  6. package/dist/MapGraph.d.ts +28 -0
  7. package/dist/MapReader-mU_4JWv_.js +224 -0
  8. package/dist/MapReader-mU_4JWv_.js.map +1 -0
  9. package/dist/MapState.d.ts +110 -0
  10. package/dist/PathData.d.ts +18 -0
  11. package/dist/PathFinder.d.ts +12 -0
  12. package/dist/ScenePipeline.d.ts +226 -0
  13. package/dist/SvgTypes.d.ts +21 -0
  14. package/dist/TypedEventEmitter.d.ts +17 -0
  15. package/dist/binary/BinaryMapReader.d.ts +36 -0
  16. package/dist/binary/index.d.ts +2 -0
  17. package/dist/binary.mjs +34 -0
  18. package/dist/binary.mjs.map +1 -0
  19. package/dist/camera/Camera.d.ts +106 -0
  20. package/dist/coord/CoordFn.d.ts +13 -0
  21. package/dist/directions.d.ts +25 -0
  22. package/dist/draw/DrawCommand.d.ts +104 -0
  23. package/dist/draw/DrawCommandBuilder.d.ts +19 -0
  24. package/dist/export/CanvasExporter.d.ts +71 -0
  25. package/dist/export/Exporter.d.ts +58 -0
  26. package/dist/export/PngExporter.d.ts +23 -0
  27. package/dist/export/SvgExporter.d.ts +19 -0
  28. package/dist/export/canvasToBytes.d.ts +19 -0
  29. package/dist/export/clipSceneToViewport.d.ts +48 -0
  30. package/dist/export/flushSceneShapes.d.ts +21 -0
  31. package/dist/export/sceneBounds.d.ts +24 -0
  32. package/dist/hit/HitTester.d.ts +101 -0
  33. package/dist/index.d.ts +61 -0
  34. package/dist/index.mjs +6656 -0
  35. package/dist/index.mjs.map +1 -0
  36. package/dist/lens/ExplorationLens.d.ts +29 -0
  37. package/dist/lens/RoomLens.d.ts +47 -0
  38. package/dist/lens/composeLenses.d.ts +31 -0
  39. package/dist/lens/index.d.ts +5 -0
  40. package/dist/overlay/AmbientLightOverlay.d.ts +32 -0
  41. package/dist/overlay/LiveEffect.d.ts +33 -0
  42. package/dist/overlay/SceneOverlay.d.ts +68 -0
  43. package/dist/reader/Area.d.ts +63 -0
  44. package/dist/reader/Exit.d.ts +15 -0
  45. package/dist/reader/MapReader.d.ts +34 -0
  46. package/dist/reader/Plane.d.ts +33 -0
  47. package/dist/render/CanvasRenderer.d.ts +17 -0
  48. package/dist/render/RecordingLayer.d.ts +158 -0
  49. package/dist/render/SvgRenderer.d.ts +7 -0
  50. package/dist/render/shapeToRecording.d.ts +3 -0
  51. package/dist/rendering/KonvaRenderBackend.d.ts +122 -0
  52. package/dist/rendering/MapRenderer.d.ts +213 -0
  53. package/dist/rendering/SceneManager.d.ts +54 -0
  54. package/dist/scene/AmbientLightStyle.d.ts +29 -0
  55. package/dist/scene/GridStyle.d.ts +21 -0
  56. package/dist/scene/InnerExitStyle.d.ts +24 -0
  57. package/dist/scene/OverlayStyle.d.ts +47 -0
  58. package/dist/scene/RoomStyle.d.ts +32 -0
  59. package/dist/scene/Shape.d.ts +151 -0
  60. package/dist/scene/SpecialExitStyle.d.ts +37 -0
  61. package/dist/scene/StubStyle.d.ts +15 -0
  62. package/dist/scene/elements/ExitLayout.d.ts +22 -0
  63. package/dist/scene/elements/GridLayout.d.ts +24 -0
  64. package/dist/scene/elements/LabelLayout.d.ts +11 -0
  65. package/dist/scene/elements/OverlayLayout.d.ts +14 -0
  66. package/dist/scene/elements/RoomLayout.d.ts +19 -0
  67. package/dist/scene/elements/SpecialExitLayout.d.ts +19 -0
  68. package/dist/scene/elements/StubLayout.d.ts +19 -0
  69. package/dist/style/Style.d.ts +60 -0
  70. package/dist/style/applyStyle.d.ts +3 -0
  71. package/dist/style/index.d.ts +21 -0
  72. package/dist/style/shape/BlueprintStyle.d.ts +11 -0
  73. package/dist/style/shape/ConstructionStyle.d.ts +17 -0
  74. package/dist/style/shape/IsometricStyle.d.ts +32 -0
  75. package/dist/style/shape/NeonStyle.d.ts +17 -0
  76. package/dist/style/shape/ParchmentStyle.d.ts +13 -0
  77. package/dist/style/shape/SciFiStyle.d.ts +16 -0
  78. package/dist/style/shape/SketchyStyle.d.ts +22 -0
  79. package/dist/style/shape/index.d.ts +25 -0
  80. package/dist/style/shape/paintMap.d.ts +25 -0
  81. package/dist/style/shape/wobble.d.ts +24 -0
  82. package/{src/types/MapData.ts → dist/types/MapData.d.ts} +70 -90
  83. package/dist/types/Settings.d.ts +206 -0
  84. package/dist/utils/color.d.ts +12 -0
  85. package/dist/utils/textMeasure.d.ts +38 -0
  86. package/package.json +67 -37
  87. package/demo/colors.json +0 -1
  88. package/demo/index.html +0 -102
  89. package/demo/main.ts +0 -389
  90. package/demo/mapExport.json +0 -1
  91. package/demo/tsconfig.json +0 -11
  92. package/src/ExitRenderer.ts +0 -275
  93. package/src/PathFinder.ts +0 -93
  94. package/src/PathRenderer.ts +0 -129
  95. package/src/Renderer.ts +0 -374
  96. package/src/directions.ts +0 -66
  97. package/src/index.ts +0 -4
  98. package/src/reader/Area.ts +0 -96
  99. package/src/reader/Exit.ts +0 -36
  100. package/src/reader/ExplorationArea.ts +0 -132
  101. package/src/reader/MapReader.ts +0 -123
  102. package/src/reader/Plane.ts +0 -42
  103. package/tsconfig.json +0 -17
  104. package/vercel.json +0 -5
  105. package/vite.config.ts +0 -29
  106. package/vite.demo.config.ts +0 -15
@@ -1,123 +0,0 @@
1
- import Area from "./Area";
2
- import ExplorationArea from "./ExplorationArea";
3
-
4
- interface Color {
5
- rgb: number[];
6
- rgbValue: string;
7
- symbolColor: number[];
8
- symbolColorValue: string,
9
- }
10
-
11
- const defaultColor: Color = {
12
- rgb: [114, 1, 0],
13
- rgbValue: 'rgb(114, 1, 0)',
14
- symbolColor: [225, 225, 225],
15
- symbolColorValue: 'rgb(225,225,225)'
16
- }
17
-
18
- function calculateLuminance(rgb: number[]) {
19
- const rn = rgb[0] / 255;
20
- const gn = rgb[1] / 255;
21
- const bn = rgb[2] / 255;
22
-
23
- const max = Math.max(rn, gn, bn);
24
- const min = Math.min(rn, gn, bn);
25
-
26
- return (max + min) / 2;
27
- }
28
-
29
- export default class MapReader {
30
-
31
- private rooms: Record<number, MapData.Room> = {};
32
- private areas: Record<number, Area> = {};
33
- private areaSources: Record<number, MapData.Area> = {};
34
- private visitedRooms?: Set<number>;
35
- private explorationEnabled = false;
36
- private colors: Record<number, Color> = {};
37
-
38
- constructor(map: MapData.Map, envs: MapData.Env[]) {
39
- map.forEach(area => {
40
- area.rooms.forEach(room => {
41
- room.y = -room.y;
42
- this.rooms[room.id] = room;
43
- })
44
- const areaId = parseInt(area.areaId);
45
- this.areas[areaId] = new Area(area);
46
- this.areaSources[areaId] = area;
47
- })
48
- this.colors = envs.reduce((acc, c) => ({
49
- ...acc,
50
- [c.envId]: {
51
- rgb: c.colors,
52
- rgbValue: `rgb(${c.colors.join(',')}`,
53
- symbolColor: calculateLuminance(c.colors) > 0.41 ? [25, 25, 25] : [225, 255, 255],
54
- symbolColorValue: calculateLuminance(c.colors) > 0.41 ? 'rgb(25,25,25)' : 'rgb(225,255,255)'
55
- }
56
- }), {});
57
- }
58
-
59
- getArea(areaId: number) {
60
- return this.areas[areaId];
61
- }
62
-
63
- getExplorationArea(areaId: number) {
64
- const area = this.areas[areaId];
65
- if (area instanceof ExplorationArea) {
66
- return area;
67
- }
68
- return undefined;
69
- }
70
-
71
- getAreas() {
72
- return Object.values(this.areas);
73
- }
74
-
75
- getRooms() {
76
- return Object.values(this.rooms);
77
- }
78
-
79
- getRoom(roomId: number) {
80
- return this.rooms[roomId];
81
- }
82
-
83
- decorateWithExploration(visitedRooms?: Iterable<number> | Set<number>) {
84
- this.visitedRooms = visitedRooms instanceof Set ? visitedRooms : new Set(visitedRooms ?? []);
85
- Object.entries(this.areaSources).forEach(([id, area]) => {
86
- const numericId = parseInt(id, 10);
87
- this.areas[numericId] = new ExplorationArea(area, this.visitedRooms!);
88
- });
89
- this.explorationEnabled = true;
90
- return this.visitedRooms;
91
- }
92
-
93
- getVisitedRooms() {
94
- return this.visitedRooms;
95
- }
96
-
97
- clearExplorationDecoration() {
98
- Object.entries(this.areaSources).forEach(([id, area]) => {
99
- const numericId = parseInt(id, 10);
100
- this.areas[numericId] = new Area(area);
101
- });
102
- this.explorationEnabled = false;
103
- }
104
-
105
- isExplorationEnabled() {
106
- return this.explorationEnabled;
107
- }
108
-
109
- getColorValue(envId: number): string {
110
- return this.colors[envId]?.rgbValue ?? defaultColor.rgbValue;
111
- }
112
-
113
- getSymbolColor(envId: number, opacity?: number): string {
114
- const color = this.colors[envId]?.symbolColor ?? defaultColor.symbolColor;
115
- const normalizedOpacity = Math.min(Math.max(opacity ?? 1, 0), 1);
116
- const value = color.join(',');
117
- if (normalizedOpacity != 1) {
118
- return `rgba(${value}, ${normalizedOpacity})`;
119
- }
120
- return `rgba(${value})`;
121
- }
122
-
123
- }
@@ -1,42 +0,0 @@
1
- export default class Plane {
2
-
3
- private readonly bounds: { minX: number, maxX: number, minY: number, maxY: number }
4
- private readonly rooms: MapData.Room[] = [];
5
- private readonly labels: MapData.Label[] = [];
6
-
7
- constructor(rooms: MapData.Room[], labels: MapData.Label[]) {
8
- this.rooms = rooms
9
- this.bounds = this.createBounds();
10
- this.labels = labels
11
- }
12
-
13
- getRooms() {
14
- return this.rooms;
15
- }
16
-
17
- getLabels() {
18
- return this.labels;
19
- }
20
-
21
- getBounds() {
22
- return this.bounds;
23
- }
24
-
25
- private createBounds() {
26
- return this.rooms.reduce(
27
- (acc, r) => ({
28
- minX: Math.min(acc.minX, r.x),
29
- maxX: Math.max(acc.maxX, r.x),
30
- minY: Math.min(acc.minY, r.y),
31
- maxY: Math.max(acc.maxY, r.y),
32
- }),
33
- {
34
- minX: Number.POSITIVE_INFINITY,
35
- maxX: Number.NEGATIVE_INFINITY,
36
- minY: Number.POSITIVE_INFINITY,
37
- maxY: Number.NEGATIVE_INFINITY,
38
- }
39
- );
40
- }
41
-
42
- }
package/tsconfig.json DELETED
@@ -1,17 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2021",
4
- "lib": ["ES2021", "DOM"],
5
- "module": "ES2020",
6
- "moduleResolution": "Bundler",
7
- "declaration": true,
8
- "declarationDir": "dist",
9
- "outDir": "dist",
10
- "strict": true,
11
- "esModuleInterop": true,
12
- "skipLibCheck": true,
13
- "resolveJsonModule": true,
14
- "sourceMap": true,
15
- },
16
- "include": ["src"]
17
- }
package/vercel.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "buildCommand": "yarn demo:build",
3
- "outputDirectory": "demo/dist",
4
- "devCommand": "yarn demo:dev"
5
- }
package/vite.config.ts DELETED
@@ -1,29 +0,0 @@
1
- import { defineConfig } from 'vite';
2
- import dts from 'vite-plugin-dts';
3
-
4
- export default defineConfig(({ command }) => ({
5
- root: command === 'serve' ? 'demo' : '.',
6
- plugins: [
7
- dts({
8
- include: ['src'],
9
- outDir: 'dist'
10
- })
11
- ],
12
- build: {
13
- lib: {
14
- entry: 'src/index.ts',
15
- name: 'mudlet-map-renderer',
16
- fileName: (format) => (format === 'es' ? 'index.mjs' : 'index.cjs'),
17
- formats: ['es', 'cjs']
18
- },
19
- rollupOptions: {
20
- external: ['konva', 'canvas']
21
- },
22
- sourcemap: true,
23
- emptyOutDir: true
24
- },
25
- server: {
26
- open: true,
27
- port: 5173
28
- }
29
- }));
@@ -1,15 +0,0 @@
1
- import { defineConfig } from 'vite';
2
- import path from 'node:path';
3
-
4
- export default defineConfig({
5
- root: 'demo',
6
- resolve: {
7
- alias: {
8
- '@src': path.resolve(__dirname, 'src')
9
- }
10
- },
11
- build: {
12
- outDir: 'dist',
13
- emptyOutDir: true
14
- }
15
- });