tilemap-parser 0.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 (191) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +53 -0
  3. package/dist/core/errors.d.ts +13 -0
  4. package/dist/core/errors.d.ts.map +1 -0
  5. package/dist/core/errors.js +13 -0
  6. package/dist/core/errors.js.map +1 -0
  7. package/dist/core/index.d.ts +7 -0
  8. package/dist/core/index.d.ts.map +1 -0
  9. package/dist/core/index.js +7 -0
  10. package/dist/core/index.js.map +1 -0
  11. package/dist/core/loaders.d.ts +19 -0
  12. package/dist/core/loaders.d.ts.map +1 -0
  13. package/dist/core/loaders.js +50 -0
  14. package/dist/core/loaders.js.map +1 -0
  15. package/dist/core/parser/animation.d.ts +35 -0
  16. package/dist/core/parser/animation.d.ts.map +1 -0
  17. package/dist/core/parser/animation.js +178 -0
  18. package/dist/core/parser/animation.js.map +1 -0
  19. package/dist/core/parser/coerce.d.ts +13 -0
  20. package/dist/core/parser/coerce.d.ts.map +1 -0
  21. package/dist/core/parser/coerce.js +109 -0
  22. package/dist/core/parser/coerce.js.map +1 -0
  23. package/dist/core/parser/collision.d.ts +98 -0
  24. package/dist/core/parser/collision.d.ts.map +1 -0
  25. package/dist/core/parser/collision.js +486 -0
  26. package/dist/core/parser/collision.js.map +1 -0
  27. package/dist/core/parser/index.d.ts +7 -0
  28. package/dist/core/parser/index.d.ts.map +1 -0
  29. package/dist/core/parser/index.js +7 -0
  30. package/dist/core/parser/index.js.map +1 -0
  31. package/dist/core/parser/map.d.ts +132 -0
  32. package/dist/core/parser/map.d.ts.map +1 -0
  33. package/dist/core/parser/map.js +416 -0
  34. package/dist/core/parser/map.js.map +1 -0
  35. package/dist/core/parser/node.d.ts +14 -0
  36. package/dist/core/parser/node.d.ts.map +1 -0
  37. package/dist/core/parser/node.js +40 -0
  38. package/dist/core/parser/node.js.map +1 -0
  39. package/dist/core/parser/particle.d.ts +68 -0
  40. package/dist/core/parser/particle.d.ts.map +1 -0
  41. package/dist/core/parser/particle.js +341 -0
  42. package/dist/core/parser/particle.js.map +1 -0
  43. package/dist/core/parser/tileanim.d.ts +31 -0
  44. package/dist/core/parser/tileanim.d.ts.map +1 -0
  45. package/dist/core/parser/tileanim.js +182 -0
  46. package/dist/core/parser/tileanim.js.map +1 -0
  47. package/dist/core/runtime/body.d.ts +27 -0
  48. package/dist/core/runtime/body.d.ts.map +1 -0
  49. package/dist/core/runtime/body.js +105 -0
  50. package/dist/core/runtime/body.js.map +1 -0
  51. package/dist/core/runtime/collision/hit.d.ts +19 -0
  52. package/dist/core/runtime/collision/hit.d.ts.map +1 -0
  53. package/dist/core/runtime/collision/hit.js +87 -0
  54. package/dist/core/runtime/collision/hit.js.map +1 -0
  55. package/dist/core/runtime/collision/index.d.ts +4 -0
  56. package/dist/core/runtime/collision/index.d.ts.map +1 -0
  57. package/dist/core/runtime/collision/index.js +4 -0
  58. package/dist/core/runtime/collision/index.js.map +1 -0
  59. package/dist/core/runtime/collision/manager.d.ts +20 -0
  60. package/dist/core/runtime/collision/manager.d.ts.map +1 -0
  61. package/dist/core/runtime/collision/manager.js +142 -0
  62. package/dist/core/runtime/collision/manager.js.map +1 -0
  63. package/dist/core/runtime/collision/shapes.d.ts +10 -0
  64. package/dist/core/runtime/collision/shapes.d.ts.map +1 -0
  65. package/dist/core/runtime/collision/shapes.js +193 -0
  66. package/dist/core/runtime/collision/shapes.js.map +1 -0
  67. package/dist/core/runtime/collision_cache.d.ts +17 -0
  68. package/dist/core/runtime/collision_cache.d.ts.map +1 -0
  69. package/dist/core/runtime/collision_cache.js +78 -0
  70. package/dist/core/runtime/collision_cache.js.map +1 -0
  71. package/dist/core/runtime/index.d.ts +9 -0
  72. package/dist/core/runtime/index.d.ts.map +1 -0
  73. package/dist/core/runtime/index.js +9 -0
  74. package/dist/core/runtime/index.js.map +1 -0
  75. package/dist/core/runtime/movement/grounded.d.ts +12 -0
  76. package/dist/core/runtime/movement/grounded.d.ts.map +1 -0
  77. package/dist/core/runtime/movement/grounded.js +97 -0
  78. package/dist/core/runtime/movement/grounded.js.map +1 -0
  79. package/dist/core/runtime/movement/index.d.ts +8 -0
  80. package/dist/core/runtime/movement/index.d.ts.map +1 -0
  81. package/dist/core/runtime/movement/index.js +8 -0
  82. package/dist/core/runtime/movement/index.js.map +1 -0
  83. package/dist/core/runtime/movement/platformer.d.ts +15 -0
  84. package/dist/core/runtime/movement/platformer.d.ts.map +1 -0
  85. package/dist/core/runtime/movement/platformer.js +419 -0
  86. package/dist/core/runtime/movement/platformer.js.map +1 -0
  87. package/dist/core/runtime/movement/queries.d.ts +21 -0
  88. package/dist/core/runtime/movement/queries.d.ts.map +1 -0
  89. package/dist/core/runtime/movement/queries.js +326 -0
  90. package/dist/core/runtime/movement/queries.js.map +1 -0
  91. package/dist/core/runtime/movement/rpg.d.ts +10 -0
  92. package/dist/core/runtime/movement/rpg.d.ts.map +1 -0
  93. package/dist/core/runtime/movement/rpg.js +47 -0
  94. package/dist/core/runtime/movement/rpg.js.map +1 -0
  95. package/dist/core/runtime/movement/runner.d.ts +52 -0
  96. package/dist/core/runtime/movement/runner.d.ts.map +1 -0
  97. package/dist/core/runtime/movement/runner.js +220 -0
  98. package/dist/core/runtime/movement/runner.js.map +1 -0
  99. package/dist/core/runtime/movement/slide.d.ts +12 -0
  100. package/dist/core/runtime/movement/slide.d.ts.map +1 -0
  101. package/dist/core/runtime/movement/slide.js +145 -0
  102. package/dist/core/runtime/movement/slide.js.map +1 -0
  103. package/dist/core/runtime/movement/types.d.ts +22 -0
  104. package/dist/core/runtime/movement/types.d.ts.map +1 -0
  105. package/dist/core/runtime/movement/types.js +21 -0
  106. package/dist/core/runtime/movement/types.js.map +1 -0
  107. package/dist/core/runtime/navigation/index.d.ts +4 -0
  108. package/dist/core/runtime/navigation/index.d.ts.map +1 -0
  109. package/dist/core/runtime/navigation/index.js +4 -0
  110. package/dist/core/runtime/navigation/index.js.map +1 -0
  111. package/dist/core/runtime/navigation/nav_grid.d.ts +36 -0
  112. package/dist/core/runtime/navigation/nav_grid.d.ts.map +1 -0
  113. package/dist/core/runtime/navigation/nav_grid.js +245 -0
  114. package/dist/core/runtime/navigation/nav_grid.js.map +1 -0
  115. package/dist/core/runtime/navigation/path_follower.d.ts +19 -0
  116. package/dist/core/runtime/navigation/path_follower.d.ts.map +1 -0
  117. package/dist/core/runtime/navigation/path_follower.js +59 -0
  118. package/dist/core/runtime/navigation/path_follower.js.map +1 -0
  119. package/dist/core/runtime/navigation/pathfinder.d.ts +8 -0
  120. package/dist/core/runtime/navigation/pathfinder.d.ts.map +1 -0
  121. package/dist/core/runtime/navigation/pathfinder.js +114 -0
  122. package/dist/core/runtime/navigation/pathfinder.js.map +1 -0
  123. package/dist/core/runtime/polygon_query.d.ts +13 -0
  124. package/dist/core/runtime/polygon_query.d.ts.map +1 -0
  125. package/dist/core/runtime/polygon_query.js +462 -0
  126. package/dist/core/runtime/polygon_query.js.map +1 -0
  127. package/dist/core/runtime/protocols.d.ts +15 -0
  128. package/dist/core/runtime/protocols.d.ts.map +1 -0
  129. package/dist/core/runtime/protocols.js +2 -0
  130. package/dist/core/runtime/protocols.js.map +1 -0
  131. package/dist/core/runtime/world.d.ts +47 -0
  132. package/dist/core/runtime/world.d.ts.map +1 -0
  133. package/dist/core/runtime/world.js +272 -0
  134. package/dist/core/runtime/world.js.map +1 -0
  135. package/dist/core/utils/geometry.d.ts +25 -0
  136. package/dist/core/utils/geometry.d.ts.map +1 -0
  137. package/dist/core/utils/geometry.js +485 -0
  138. package/dist/core/utils/geometry.js.map +1 -0
  139. package/dist/core/utils/index.d.ts +2 -0
  140. package/dist/core/utils/index.d.ts.map +1 -0
  141. package/dist/core/utils/index.js +2 -0
  142. package/dist/core/utils/index.js.map +1 -0
  143. package/dist/core/vec.d.ts +13 -0
  144. package/dist/core/vec.d.ts.map +1 -0
  145. package/dist/core/vec.js +20 -0
  146. package/dist/core/vec.js.map +1 -0
  147. package/dist/phaser/anim.d.ts +8 -0
  148. package/dist/phaser/anim.d.ts.map +1 -0
  149. package/dist/phaser/anim.js +24 -0
  150. package/dist/phaser/anim.js.map +1 -0
  151. package/dist/phaser/camera.d.ts +29 -0
  152. package/dist/phaser/camera.d.ts.map +1 -0
  153. package/dist/phaser/camera.js +19 -0
  154. package/dist/phaser/camera.js.map +1 -0
  155. package/dist/phaser/images.d.ts +13 -0
  156. package/dist/phaser/images.d.ts.map +1 -0
  157. package/dist/phaser/images.js +40 -0
  158. package/dist/phaser/images.js.map +1 -0
  159. package/dist/phaser/index.d.ts +12 -0
  160. package/dist/phaser/index.d.ts.map +1 -0
  161. package/dist/phaser/index.js +12 -0
  162. package/dist/phaser/index.js.map +1 -0
  163. package/dist/phaser/keys.d.ts +11 -0
  164. package/dist/phaser/keys.d.ts.map +1 -0
  165. package/dist/phaser/keys.js +29 -0
  166. package/dist/phaser/keys.js.map +1 -0
  167. package/dist/phaser/loader.d.ts +9 -0
  168. package/dist/phaser/loader.d.ts.map +1 -0
  169. package/dist/phaser/loader.js +23 -0
  170. package/dist/phaser/loader.js.map +1 -0
  171. package/dist/phaser/objects.d.ts +20 -0
  172. package/dist/phaser/objects.d.ts.map +1 -0
  173. package/dist/phaser/objects.js +56 -0
  174. package/dist/phaser/objects.js.map +1 -0
  175. package/dist/phaser/particles.d.ts +34 -0
  176. package/dist/phaser/particles.d.ts.map +1 -0
  177. package/dist/phaser/particles.js +24 -0
  178. package/dist/phaser/particles.js.map +1 -0
  179. package/dist/phaser/spawns.d.ts +8 -0
  180. package/dist/phaser/spawns.d.ts.map +1 -0
  181. package/dist/phaser/spawns.js +29 -0
  182. package/dist/phaser/spawns.js.map +1 -0
  183. package/dist/phaser/sprites.d.ts +23 -0
  184. package/dist/phaser/sprites.d.ts.map +1 -0
  185. package/dist/phaser/sprites.js +34 -0
  186. package/dist/phaser/sprites.js.map +1 -0
  187. package/dist/phaser/tiles.d.ts +16 -0
  188. package/dist/phaser/tiles.d.ts.map +1 -0
  189. package/dist/phaser/tiles.js +76 -0
  190. package/dist/phaser/tiles.js.map +1 -0
  191. package/package.json +79 -0
@@ -0,0 +1,98 @@
1
+ import type { Vec2 } from "../vec.js";
2
+ export type ShapeKind = "rectangle" | "circle" | "capsule" | "polygon";
3
+ export declare class CollisionPolygon {
4
+ readonly kind: "polygon";
5
+ readonly vertices: Vec2[];
6
+ readonly oneWay: boolean;
7
+ constructor(vertices: Vec2[], oneWay?: boolean);
8
+ transform(tileX: number, tileY: number, scale?: number): CollisionPolygon;
9
+ scaled(scale: number): CollisionPolygon;
10
+ isValid(): boolean;
11
+ }
12
+ export declare class RectangleShape {
13
+ readonly kind: "rectangle";
14
+ readonly width: number;
15
+ readonly height: number;
16
+ readonly offset: Vec2;
17
+ constructor(width: number, height: number, offset?: Vec2);
18
+ getBounds(x: number, y: number): readonly [number, number, number, number];
19
+ scaled(scale: number): RectangleShape;
20
+ }
21
+ export declare class CircleShape {
22
+ readonly kind: "circle";
23
+ readonly radius: number;
24
+ readonly offset: Vec2;
25
+ constructor(radius: number, offset?: Vec2);
26
+ getCenter(x: number, y: number): Vec2;
27
+ scaled(scale: number): CircleShape;
28
+ }
29
+ export declare class CapsuleShape {
30
+ readonly kind: "capsule";
31
+ readonly radius: number;
32
+ readonly height: number;
33
+ readonly offset: Vec2;
34
+ constructor(radius: number, height: number, offset?: Vec2);
35
+ getTopCenter(x: number, y: number): Vec2;
36
+ getBottomCenter(x: number, y: number): Vec2;
37
+ scaled(scale: number): CapsuleShape;
38
+ }
39
+ export type CharacterShape = RectangleShape | CircleShape | CapsuleShape | CollisionPolygon;
40
+ export type SpriteShape = RectangleShape | CircleShape | CapsuleShape;
41
+ export declare function isSpriteShape(shape: CharacterShape): shape is SpriteShape;
42
+ export declare function flipCharacterShape(shape: CharacterShape, spriteSize: readonly [number, number], options?: {
43
+ flipH?: boolean;
44
+ flipV?: boolean;
45
+ }): CharacterShape;
46
+ export declare class TileCollisionData {
47
+ readonly tileId: number;
48
+ readonly shapes: CollisionPolygon[];
49
+ readonly collisionLayer: number;
50
+ readonly collisionMask: number;
51
+ constructor(tileId: number, shapes?: CollisionPolygon[], collisionLayer?: number, collisionMask?: number);
52
+ hasCollision(): boolean;
53
+ }
54
+ export declare class TilesetCollision {
55
+ readonly tilesetName: string;
56
+ readonly tileSize: Vec2;
57
+ readonly tiles: Map<number, TileCollisionData>;
58
+ constructor(tilesetName: string, tileSize: Vec2, tiles?: Map<number, TileCollisionData>);
59
+ getTileCollision(tileId: number): TileCollisionData | null;
60
+ hasCollision(tileId: number): boolean;
61
+ getWorldShapes(tileId: number, tileX: number, tileY: number, scale?: number): CollisionPolygon[];
62
+ static merge(collisions: TilesetCollision[], firstgids: number[]): TilesetCollision;
63
+ }
64
+ export declare class CharacterCollision {
65
+ readonly name: string;
66
+ readonly shape: CharacterShape;
67
+ readonly properties: Record<string, unknown>;
68
+ readonly collisionLayer: number;
69
+ readonly collisionMask: number;
70
+ constructor(name: string, shape: CharacterShape, properties?: Record<string, unknown>, collisionLayer?: number, collisionMask?: number);
71
+ scaled(scale: number): CharacterCollision;
72
+ }
73
+ export declare class ObjectCollisionRegionData {
74
+ readonly regionId: string;
75
+ readonly name: string;
76
+ readonly regionRect: readonly [number, number, number, number];
77
+ readonly shapes: CollisionPolygon[];
78
+ readonly collisionLayer: number;
79
+ readonly collisionMask: number;
80
+ readonly properties: Record<string, unknown>;
81
+ constructor(regionId: string, name: string, regionRect: readonly [number, number, number, number], shapes?: CollisionPolygon[], collisionLayer?: number, collisionMask?: number, properties?: Record<string, unknown>);
82
+ hasCollision(): boolean;
83
+ getWorldShapes(worldX: number, worldY: number): CollisionPolygon[];
84
+ }
85
+ export declare class ObjectCollisionData {
86
+ readonly tilesetName: string;
87
+ readonly regions: Map<string, ObjectCollisionRegionData>;
88
+ constructor(tilesetName: string, regions?: Map<string, ObjectCollisionRegionData>);
89
+ getRegion(regionId: string): ObjectCollisionRegionData | null;
90
+ hasCollision(regionId: string): boolean;
91
+ }
92
+ export declare function parseTilesetCollisionDict(data: unknown): TilesetCollision;
93
+ export declare function parseTilesetCollisionJson(text: string): TilesetCollision;
94
+ export declare function parseCharacterCollisionDict(data: unknown, renderScale?: number): CharacterCollision;
95
+ export declare function parseCharacterCollisionJson(text: string, renderScale?: number): CharacterCollision;
96
+ export declare function parseObjectCollisionDict(data: unknown): ObjectCollisionData;
97
+ export declare function parseObjectCollisionJson(text: string): ObjectCollisionData;
98
+ //# sourceMappingURL=collision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collision.d.ts","sourceRoot":"","sources":["../../../src/core/parser/collision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,486 @@
1
+ import { CollisionParseError } from "../errors.js";
2
+ function toInt(value) {
3
+ if (typeof value === "boolean")
4
+ return value ? 1 : 0;
5
+ if (typeof value === "number") {
6
+ if (!Number.isFinite(value))
7
+ throw new TypeError(`not an int: ${String(value)}`);
8
+ return Math.trunc(value);
9
+ }
10
+ if (typeof value === "string") {
11
+ const t = value.trim();
12
+ if (/^[+-]?\d+$/.test(t)) {
13
+ const n = Number(t);
14
+ if (Number.isSafeInteger(n))
15
+ return n;
16
+ }
17
+ throw new TypeError(`not an int: ${JSON.stringify(value)}`);
18
+ }
19
+ throw new TypeError(`not an int: ${typeof value}`);
20
+ }
21
+ function toPair(raw) {
22
+ if (!Array.isArray(raw) || raw.length < 2) {
23
+ throw new TypeError("expected [x, y] pair");
24
+ }
25
+ return [Number(raw[0]), Number(raw[1])];
26
+ }
27
+ function toFloat(value) {
28
+ if (typeof value === "boolean")
29
+ return value ? 1 : 0;
30
+ if (typeof value === "number")
31
+ return value;
32
+ if (typeof value === "string") {
33
+ const t = value.trim();
34
+ const lower = t.toLowerCase();
35
+ if (lower === "nan" || lower === "+nan" || lower === "-nan")
36
+ return NaN;
37
+ if (lower === "inf" ||
38
+ lower === "+inf" ||
39
+ lower === "infinity" ||
40
+ lower === "+infinity") {
41
+ return Infinity;
42
+ }
43
+ if (lower === "-inf" || lower === "-infinity")
44
+ return -Infinity;
45
+ if (/^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/.test(t)) {
46
+ return Number(t);
47
+ }
48
+ }
49
+ throw new TypeError(`not a number: ${JSON.stringify(value)}`);
50
+ }
51
+ function parsePolygonVertices(raw) {
52
+ if (!Array.isArray(raw))
53
+ throw new TypeError("vertices must be an array");
54
+ return raw.map((v) => toPair(v));
55
+ }
56
+ export class CollisionPolygon {
57
+ kind = "polygon";
58
+ vertices;
59
+ oneWay;
60
+ constructor(vertices, oneWay = false) {
61
+ this.vertices = vertices;
62
+ this.oneWay = oneWay;
63
+ }
64
+ transform(tileX, tileY, scale = 1.0) {
65
+ return new CollisionPolygon(this.vertices.map(([vx, vy]) => [tileX + vx * scale, tileY + vy * scale]), this.oneWay);
66
+ }
67
+ scaled(scale) {
68
+ return new CollisionPolygon(this.vertices.map(([vx, vy]) => [vx * scale, vy * scale]), this.oneWay);
69
+ }
70
+ isValid() {
71
+ return this.vertices.length >= 3;
72
+ }
73
+ }
74
+ export class RectangleShape {
75
+ kind = "rectangle";
76
+ width;
77
+ height;
78
+ offset;
79
+ constructor(width, height, offset = [0.0, 0.0]) {
80
+ this.width = width;
81
+ this.height = height;
82
+ this.offset = offset;
83
+ }
84
+ getBounds(x, y) {
85
+ const left = x + this.offset[0];
86
+ const top = y + this.offset[1];
87
+ return [left, top, left + this.width, top + this.height];
88
+ }
89
+ scaled(scale) {
90
+ return new RectangleShape(this.width * scale, this.height * scale, [
91
+ this.offset[0] * scale,
92
+ this.offset[1] * scale,
93
+ ]);
94
+ }
95
+ }
96
+ export class CircleShape {
97
+ kind = "circle";
98
+ radius;
99
+ offset;
100
+ constructor(radius, offset = [0.0, 0.0]) {
101
+ this.radius = radius;
102
+ this.offset = offset;
103
+ }
104
+ getCenter(x, y) {
105
+ return [x + this.offset[0], y + this.offset[1]];
106
+ }
107
+ scaled(scale) {
108
+ return new CircleShape(this.radius * scale, [
109
+ this.offset[0] * scale,
110
+ this.offset[1] * scale,
111
+ ]);
112
+ }
113
+ }
114
+ export class CapsuleShape {
115
+ kind = "capsule";
116
+ radius;
117
+ height;
118
+ offset;
119
+ constructor(radius, height, offset = [0.0, 0.0]) {
120
+ this.radius = radius;
121
+ this.height = height;
122
+ this.offset = offset;
123
+ }
124
+ getTopCenter(x, y) {
125
+ return [x + this.offset[0], y + this.offset[1]];
126
+ }
127
+ getBottomCenter(x, y) {
128
+ return [x + this.offset[0], y + this.offset[1] + this.height];
129
+ }
130
+ scaled(scale) {
131
+ return new CapsuleShape(this.radius * scale, this.height * scale, [
132
+ this.offset[0] * scale,
133
+ this.offset[1] * scale,
134
+ ]);
135
+ }
136
+ }
137
+ export function isSpriteShape(shape) {
138
+ return shape.kind !== "polygon";
139
+ }
140
+ export function flipCharacterShape(shape, spriteSize, options = {}) {
141
+ const { flipH = true, flipV = false } = options;
142
+ const w = Number(spriteSize[0]);
143
+ const h = Number(spriteSize[1]);
144
+ if (!Number.isFinite(w) || !Number.isFinite(h) || w <= 0 || h <= 0) {
145
+ throw new RangeError(`sprite_size must be finite and positive, got ${JSON.stringify(spriteSize)}`);
146
+ }
147
+ if (shape instanceof RectangleShape) {
148
+ const [ox, oy] = shape.offset;
149
+ return new RectangleShape(shape.width, shape.height, [
150
+ flipH && ox !== undefined ? w - (ox + shape.width) : ox,
151
+ flipV && oy !== undefined ? h - (oy + shape.height) : oy,
152
+ ]);
153
+ }
154
+ if (shape instanceof CircleShape) {
155
+ const [ox, oy] = shape.offset;
156
+ return new CircleShape(shape.radius, [
157
+ flipH ? w - ox : ox,
158
+ flipV ? h - oy : oy,
159
+ ]);
160
+ }
161
+ if (shape instanceof CapsuleShape) {
162
+ const [ox, oy] = shape.offset;
163
+ return new CapsuleShape(shape.radius, shape.height, [
164
+ flipH ? w - ox : ox,
165
+ flipV ? h - (oy + shape.height) : oy,
166
+ ]);
167
+ }
168
+ if (shape instanceof CollisionPolygon) {
169
+ let verts = shape.vertices.map(([x, y]) => [(flipH ? w - x : x), y]);
170
+ verts = verts.map(([x, y]) => [x, (flipV ? h - y : y)]);
171
+ return new CollisionPolygon(verts, shape.oneWay);
172
+ }
173
+ throw new TypeError(`Cannot flip unknown shape type: ${shape.kind ?? typeof shape}`);
174
+ }
175
+ export class TileCollisionData {
176
+ tileId;
177
+ shapes;
178
+ collisionLayer;
179
+ collisionMask;
180
+ constructor(tileId, shapes = [], collisionLayer = 1, collisionMask = 0xffffffff) {
181
+ this.tileId = tileId;
182
+ this.shapes = shapes;
183
+ this.collisionLayer = collisionLayer;
184
+ this.collisionMask = collisionMask;
185
+ }
186
+ hasCollision() {
187
+ return this.shapes.some((s) => s.isValid());
188
+ }
189
+ }
190
+ export class TilesetCollision {
191
+ tilesetName;
192
+ tileSize;
193
+ tiles;
194
+ constructor(tilesetName, tileSize, tiles = new Map()) {
195
+ this.tilesetName = tilesetName;
196
+ this.tileSize = tileSize;
197
+ this.tiles = tiles;
198
+ }
199
+ getTileCollision(tileId) {
200
+ return this.tiles.get(tileId) ?? null;
201
+ }
202
+ hasCollision(tileId) {
203
+ const data = this.getTileCollision(tileId);
204
+ return data !== null && data.hasCollision();
205
+ }
206
+ getWorldShapes(tileId, tileX, tileY, scale = 1.0) {
207
+ const data = this.getTileCollision(tileId);
208
+ if (!data)
209
+ return [];
210
+ return data.shapes.map((s) => s.transform(tileX, tileY, scale));
211
+ }
212
+ static merge(collisions, firstgids) {
213
+ if (collisions.length === 0) {
214
+ return new TilesetCollision("merged", [0, 0]);
215
+ }
216
+ if (collisions.length !== firstgids.length) {
217
+ throw new CollisionParseError(`merge needs one firstgid per collision (got ${collisions.length} collisions, ${firstgids.length} firstgids)`);
218
+ }
219
+ const first = collisions[0];
220
+ if (first === undefined) {
221
+ return new TilesetCollision("merged", [0, 0]);
222
+ }
223
+ const merged = new Map();
224
+ collisions.forEach((coll, i) => {
225
+ const offset = firstgids[i];
226
+ if (offset === undefined) {
227
+ throw new CollisionParseError(`missing firstgid at index ${i}`);
228
+ }
229
+ for (const [localId, data] of coll.tiles) {
230
+ const gid = offset + localId;
231
+ merged.set(gid, new TileCollisionData(gid, [...data.shapes], data.collisionLayer, data.collisionMask));
232
+ }
233
+ });
234
+ return new TilesetCollision("merged", first.tileSize, merged);
235
+ }
236
+ }
237
+ export class CharacterCollision {
238
+ name;
239
+ shape;
240
+ properties;
241
+ collisionLayer;
242
+ collisionMask;
243
+ constructor(name, shape, properties = {}, collisionLayer = 1, collisionMask = 0xffffffff) {
244
+ this.name = name;
245
+ this.shape = shape;
246
+ this.properties = properties;
247
+ this.collisionLayer = collisionLayer;
248
+ this.collisionMask = collisionMask;
249
+ }
250
+ scaled(scale) {
251
+ return new CharacterCollision(this.name, this.shape.scaled(scale), { ...this.properties }, this.collisionLayer, this.collisionMask);
252
+ }
253
+ }
254
+ export class ObjectCollisionRegionData {
255
+ regionId;
256
+ name;
257
+ regionRect;
258
+ shapes;
259
+ collisionLayer;
260
+ collisionMask;
261
+ properties;
262
+ constructor(regionId, name, regionRect, shapes = [], collisionLayer = 1, collisionMask = 0xffffffff, properties = {}) {
263
+ this.regionId = regionId;
264
+ this.name = name;
265
+ this.regionRect = regionRect;
266
+ this.shapes = shapes;
267
+ this.collisionLayer = collisionLayer;
268
+ this.collisionMask = collisionMask;
269
+ this.properties = properties;
270
+ }
271
+ hasCollision() {
272
+ return this.shapes.some((s) => s.isValid());
273
+ }
274
+ getWorldShapes(worldX, worldY) {
275
+ const ox = worldX + this.regionRect[0];
276
+ const oy = worldY + this.regionRect[1];
277
+ return this.shapes.map((s) => s.transform(ox, oy));
278
+ }
279
+ }
280
+ export class ObjectCollisionData {
281
+ tilesetName;
282
+ regions;
283
+ constructor(tilesetName, regions = new Map()) {
284
+ this.tilesetName = tilesetName;
285
+ this.regions = regions;
286
+ }
287
+ getRegion(regionId) {
288
+ return this.regions.get(regionId) ?? null;
289
+ }
290
+ hasCollision(regionId) {
291
+ const region = this.getRegion(regionId);
292
+ return region !== null && region.hasCollision();
293
+ }
294
+ }
295
+ function parsePolygonShape(shapeData) {
296
+ return new CollisionPolygon(parsePolygonVertices(shapeData["vertices"]), Boolean(shapeData["one_way"] ?? false));
297
+ }
298
+ function parseTilesetCollisionRecord(data) {
299
+ try {
300
+ const tilesetName = data["tileset_name"];
301
+ if (typeof tilesetName !== "string")
302
+ throw new TypeError("tileset_name must be a string");
303
+ const tileSizeRaw = data["tile_size"];
304
+ if (!Array.isArray(tileSizeRaw))
305
+ throw new TypeError("tile_size must be a pair");
306
+ const tileSize = [toInt(tileSizeRaw[0]), toInt(tileSizeRaw[1])];
307
+ const tiles = new Map();
308
+ const tilesData = (data["tiles"] ?? {});
309
+ if (typeof tilesData !== "object" ||
310
+ tilesData === null ||
311
+ Array.isArray(tilesData)) {
312
+ throw new TypeError("tiles must be an object");
313
+ }
314
+ for (const [tileIdStr, tileDataRaw] of Object.entries(tilesData)) {
315
+ const tileId = toInt(tileIdStr);
316
+ const tileData = tileDataRaw;
317
+ const shapesRaw = tileData["shapes"] ?? [];
318
+ if (!Array.isArray(shapesRaw))
319
+ throw new TypeError(`tile ${tileId} shapes must be an array`);
320
+ const shapes = shapesRaw.map((s) => parsePolygonShape(s));
321
+ const propsRaw = tileData["properties"];
322
+ const props = propsRaw === undefined ? {} : propsRaw;
323
+ if (typeof props !== "object" || props === null || Array.isArray(props)) {
324
+ throw new TypeError(`tile ${tileId} properties must be an object`);
325
+ }
326
+ const propsRecord = props;
327
+ tiles.set(tileId, new TileCollisionData(tileId, shapes, toInt(propsRecord["collision_layer"] ?? 1), toInt(propsRecord["collision_mask"] ?? 0xffffffff)));
328
+ }
329
+ return new TilesetCollision(tilesetName, tileSize, tiles);
330
+ }
331
+ catch (err) {
332
+ if (err instanceof CollisionParseError) {
333
+ throw new CollisionParseError(`Invalid tileset collision data: ${err.message}`);
334
+ }
335
+ throw new CollisionParseError(`Invalid tileset collision data: ${err instanceof Error ? err.message : String(err)}`);
336
+ }
337
+ }
338
+ export function parseTilesetCollisionDict(data) {
339
+ if (typeof data !== "object" || data === null || Array.isArray(data)) {
340
+ throw new CollisionParseError("Invalid tileset collision data: expected object");
341
+ }
342
+ return parseTilesetCollisionRecord(data);
343
+ }
344
+ export function parseTilesetCollisionJson(text) {
345
+ let payload;
346
+ try {
347
+ payload = JSON.parse(text);
348
+ }
349
+ catch (err) {
350
+ throw new CollisionParseError(`Invalid JSON: ${err instanceof Error ? err.message : String(err)}`);
351
+ }
352
+ return parseTilesetCollisionDict(payload);
353
+ }
354
+ function parseShapeRecord(shapeData) {
355
+ const shapeType = shapeData["type"];
356
+ const offsetRaw = shapeData["offset"] ?? [0.0, 0.0];
357
+ const offset = toPair(offsetRaw);
358
+ if (shapeType === "rectangle") {
359
+ return new RectangleShape(toFloat(shapeData["width"]), toFloat(shapeData["height"]), offset);
360
+ }
361
+ if (shapeType === "circle") {
362
+ return new CircleShape(toFloat(shapeData["radius"]), offset);
363
+ }
364
+ if (shapeType === "capsule") {
365
+ return new CapsuleShape(toFloat(shapeData["radius"]), toFloat(shapeData["height"]), offset);
366
+ }
367
+ if (shapeType === "polygon") {
368
+ const verticesRaw = shapeData["vertices"];
369
+ if (verticesRaw === null || verticesRaw === undefined) {
370
+ throw new CollisionParseError("Polygon shape missing 'vertices' field");
371
+ }
372
+ const vertices = parsePolygonVertices(verticesRaw);
373
+ if (vertices.length < 3) {
374
+ throw new CollisionParseError(`Polygon must have at least 3 vertices, got ${vertices.length}`);
375
+ }
376
+ return new CollisionPolygon(vertices, Boolean(shapeData["one_way"] ?? false));
377
+ }
378
+ throw new CollisionParseError(`Unknown shape type: ${String(shapeType)}`);
379
+ }
380
+ export function parseCharacterCollisionDict(data, renderScale = 1.0) {
381
+ if (typeof renderScale !== "number" ||
382
+ !Number.isFinite(renderScale) ||
383
+ renderScale <= 0) {
384
+ throw new CollisionParseError(`render_scale must be finite and > 0, got ${JSON.stringify(renderScale)}`);
385
+ }
386
+ if (typeof data !== "object" || data === null || Array.isArray(data)) {
387
+ throw new CollisionParseError("Invalid character collision data: expected object");
388
+ }
389
+ try {
390
+ const record = data;
391
+ const name = record["name"];
392
+ if (typeof name !== "string")
393
+ throw new TypeError("name must be a string");
394
+ const shapeRaw = record["shape"];
395
+ if (typeof shapeRaw !== "object" ||
396
+ shapeRaw === null ||
397
+ Array.isArray(shapeRaw)) {
398
+ throw new TypeError("shape must be an object");
399
+ }
400
+ const shape = parseShapeRecord(shapeRaw);
401
+ const propertiesRaw = record["properties"] ?? {};
402
+ const properties = typeof propertiesRaw === "object" &&
403
+ propertiesRaw !== null &&
404
+ !Array.isArray(propertiesRaw)
405
+ ? propertiesRaw
406
+ : {};
407
+ return new CharacterCollision(name, shape, properties, toInt(properties["collision_layer"] ?? 1), toInt(properties["collision_mask"] ?? 0xffffffff)).scaled(renderScale);
408
+ }
409
+ catch (err) {
410
+ if (err instanceof CollisionParseError) {
411
+ throw new CollisionParseError(`Invalid character collision data: ${err.message}`);
412
+ }
413
+ throw new CollisionParseError(`Invalid character collision data: ${err instanceof Error ? err.message : String(err)}`);
414
+ }
415
+ }
416
+ export function parseCharacterCollisionJson(text, renderScale = 1.0) {
417
+ let payload;
418
+ try {
419
+ payload = JSON.parse(text);
420
+ }
421
+ catch (err) {
422
+ throw new CollisionParseError(`Invalid JSON: ${err instanceof Error ? err.message : String(err)}`);
423
+ }
424
+ return parseCharacterCollisionDict(payload, renderScale);
425
+ }
426
+ export function parseObjectCollisionDict(data) {
427
+ if (typeof data !== "object" || data === null || Array.isArray(data)) {
428
+ throw new CollisionParseError("Invalid object collision data: expected object");
429
+ }
430
+ try {
431
+ const record = data;
432
+ const tilesetName = record["tileset_name"];
433
+ if (typeof tilesetName !== "string")
434
+ throw new TypeError("tileset_name must be a string");
435
+ const regions = new Map();
436
+ const regionsData = (record["regions"] ?? {});
437
+ if (typeof regionsData !== "object" ||
438
+ regionsData === null ||
439
+ Array.isArray(regionsData)) {
440
+ throw new TypeError("regions must be an object");
441
+ }
442
+ for (const [regionId, regionRaw] of Object.entries(regionsData)) {
443
+ const regionData = regionRaw;
444
+ const rectRaw = regionData["region_rect"];
445
+ if (!Array.isArray(rectRaw))
446
+ throw new TypeError(`region ${regionId} region_rect must be an array`);
447
+ const regionRect = [
448
+ toInt(rectRaw[0]),
449
+ toInt(rectRaw[1]),
450
+ toInt(rectRaw[2]),
451
+ toInt(rectRaw[3]),
452
+ ];
453
+ const shapesRaw = regionData["shapes"] ?? [];
454
+ if (!Array.isArray(shapesRaw))
455
+ throw new TypeError(`region ${regionId} shapes must be an array`);
456
+ const shapes = shapesRaw.map((s) => parsePolygonShape(s));
457
+ const propsRaw = regionData["properties"] ?? {};
458
+ const props = typeof propsRaw === "object" &&
459
+ propsRaw !== null &&
460
+ !Array.isArray(propsRaw)
461
+ ? propsRaw
462
+ : {};
463
+ regions.set(regionId, new ObjectCollisionRegionData(regionId, typeof regionData["name"] === "string"
464
+ ? regionData["name"]
465
+ : "", regionRect, shapes, toInt(props["collision_layer"] ?? 1), toInt(props["collision_mask"] ?? 0xffffffff), props));
466
+ }
467
+ return new ObjectCollisionData(tilesetName, regions);
468
+ }
469
+ catch (err) {
470
+ if (err instanceof CollisionParseError) {
471
+ throw new CollisionParseError(`Invalid object collision data: ${err.message}`);
472
+ }
473
+ throw new CollisionParseError(`Invalid object collision data: ${err instanceof Error ? err.message : String(err)}`);
474
+ }
475
+ }
476
+ export function parseObjectCollisionJson(text) {
477
+ let payload;
478
+ try {
479
+ payload = JSON.parse(text);
480
+ }
481
+ catch (err) {
482
+ throw new CollisionParseError(`Invalid JSON: ${err instanceof Error ? err.message : String(err)}`);
483
+ }
484
+ return parseObjectCollisionDict(payload);
485
+ }
486
+ //# sourceMappingURL=collision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collision.js","sourceRoot":"","sources":["../../../src/core/parser/collision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from "./animation.js";
2
+ export * from "./collision.js";
3
+ export * from "./map.js";
4
+ export * from "./node.js";
5
+ export * from "./particle.js";
6
+ export * from "./tileanim.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/parser/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./animation.js";
2
+ export * from "./collision.js";
3
+ export * from "./map.js";
4
+ export * from "./node.js";
5
+ export * from "./particle.js";
6
+ export * from "./tileanim.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/parser/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}