@rpgjs/tiledmap 5.0.0-beta.2 → 5.0.0-beta.4

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.
@@ -1,72 +1,15 @@
1
- import { MapClass } from "./index3.js";
2
- const TILED_HITBOX_ID_PREFIX = "__tiled_collision__:";
3
- function prepareTiledPhysicsData(mapData, map) {
4
- if (!mapData?.parsedMap) {
5
- return;
6
- }
7
- const tiledMap = new MapClass(mapData.parsedMap);
8
- map.tiled = tiledMap;
9
- const tiledHitboxes = collectBlockedTileHitboxes(tiledMap);
10
- mapData.hitboxes = mergeTiledHitboxes(mapData.hitboxes, tiledHitboxes);
11
- mapData.width = tiledMap.widthPx;
12
- mapData.height = tiledMap.heightPx;
13
- }
14
- function applyTiledPointEvents(mapData) {
15
- const objects = mapData?.parsedMap?.objects;
16
- if (!Array.isArray(objects) || !Array.isArray(mapData?.events)) {
17
- return;
18
- }
19
- for (const obj of objects) {
20
- if (!obj?.point) {
21
- continue;
22
- }
23
- mapData.events = mapData.events.map((eventEntry) => {
24
- if (eventEntry?.name === obj.name) {
25
- return {
26
- event: eventEntry,
27
- x: obj.x,
28
- y: obj.y
29
- };
30
- }
31
- return eventEntry;
32
- }).filter((eventEntry) => eventEntry !== null);
33
- }
34
- }
35
- function collectBlockedTileHitboxes(tiledMap) {
36
- const hitboxes = [];
37
- const mapWidth = tiledMap.width;
38
- const mapHeight = tiledMap.height;
39
- const tileWidth = tiledMap.tilewidth;
40
- const tileHeight = tiledMap.tileheight;
41
- for (let y = 0; y < mapHeight; y++) {
42
- for (let x = 0; x < mapWidth; x++) {
43
- const tileInfo = tiledMap.getTileByPosition(x * tileWidth, y * tileHeight, [0, 0], {
44
- populateTiles: true
45
- });
46
- if (tileInfo.hasCollision) {
47
- hitboxes.push({
48
- id: createTiledHitboxId(x, y),
49
- x: x * tileWidth,
50
- y: y * tileHeight,
51
- width: tileWidth,
52
- height: tileHeight
53
- });
54
- }
55
- }
56
- }
57
- return hitboxes;
58
- }
59
- function mergeTiledHitboxes(existingHitboxes, tiledHitboxes) {
60
- const preservedHitboxes = Array.isArray(existingHitboxes) ? existingHitboxes.filter((hitbox) => !isGeneratedTiledHitbox(hitbox)) : [];
61
- return [...preservedHitboxes, ...tiledHitboxes];
62
- }
63
- function isGeneratedTiledHitbox(hitbox) {
64
- return typeof hitbox?.id === "string" && hitbox.id.startsWith(TILED_HITBOX_ID_PREFIX);
65
- }
66
- function createTiledHitboxId(x, y) {
67
- return `${TILED_HITBOX_ID_PREFIX}${x},${y}`;
68
- }
69
- export {
70
- applyTiledPointEvents,
71
- prepareTiledPhysicsData
72
- };
1
+ import { applyTiledPointEvents, prepareTiledPhysicsData } from "./index3.js";
2
+ import { defineModule } from "@rpgjs/common";
3
+ //#region src/server.ts
4
+ var server_default = defineModule({ map: {
5
+ onBeforeUpdate(mapData, map) {
6
+ prepareTiledPhysicsData(mapData, map);
7
+ applyTiledPointEvents(mapData);
8
+ return map;
9
+ },
10
+ onPhysicsInit(map, context) {
11
+ prepareTiledPhysicsData(context?.mapData, map);
12
+ }
13
+ } });
14
+ //#endregion
15
+ export { server_default as default };
package/dist/server.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { RpgMap } from '@rpgjs/server';
1
+ import { RpgMap, RpgServer } from '@rpgjs/server';
2
2
  import { MapClass } from '@canvasengine/tiled';
3
3
  declare module "@rpgjs/server" {
4
4
  interface RpgMap {
@@ -8,5 +8,5 @@ declare module "@rpgjs/server" {
8
8
  export interface RpgTiledMap extends RpgMap {
9
9
  tiled: MapClass;
10
10
  }
11
- declare const _default: any;
11
+ declare const _default: RpgServer;
12
12
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpgjs/tiledmap",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {
@@ -23,23 +23,23 @@
23
23
  "description": "RPGJS is a framework for creating RPG/MMORPG games",
24
24
  "peerDependencies": {
25
25
  "@canvasengine/presets": "*",
26
- "@rpgjs/client": "5.0.0-beta.2",
27
- "@rpgjs/common": "5.0.0-beta.2",
28
- "@rpgjs/server": "5.0.0-beta.2",
29
- "@rpgjs/vite": "5.0.0-beta.2",
26
+ "@rpgjs/client": "5.0.0-beta.4",
27
+ "@rpgjs/common": "5.0.0-beta.4",
28
+ "@rpgjs/server": "5.0.0-beta.4",
29
+ "@rpgjs/vite": "5.0.0-beta.4",
30
30
  "canvasengine": "*"
31
31
  },
32
32
  "publishConfig": {
33
33
  "access": "public"
34
34
  },
35
35
  "devDependencies": {
36
- "@canvasengine/compiler": "^2.0.0-beta.44",
37
- "vite": "^7.3.0",
36
+ "@canvasengine/compiler": "^2.0.0-beta.58",
37
+ "vite": "^8.0.10",
38
38
  "vite-plugin-dts": "^4.5.4"
39
39
  },
40
40
  "type": "module",
41
41
  "dependencies": {
42
- "@canvasengine/tiled": "^2.0.0-beta.44"
42
+ "@canvasengine/tiled": "^2.0.0-beta.58"
43
43
  },
44
44
  "scripts": {
45
45
  "dev": "vite build --watch",