@jolly-pixel/engine 2.3.0 → 2.5.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 (77) hide show
  1. package/README.md +1 -1
  2. package/dist/audio/AudioLibrary.d.ts +3 -3
  3. package/dist/audio/AudioLibrary.d.ts.map +1 -1
  4. package/dist/audio/AudioLibrary.js.map +1 -1
  5. package/dist/components/renderers/index.d.ts +3 -6
  6. package/dist/components/renderers/index.d.ts.map +1 -1
  7. package/dist/components/renderers/index.js +0 -3
  8. package/dist/components/renderers/index.js.map +1 -1
  9. package/dist/components/renderers/model/loader.d.ts +1 -1
  10. package/dist/components/renderers/model/loader.d.ts.map +1 -1
  11. package/dist/components/renderers/text/loader.d.ts +1 -1
  12. package/dist/components/renderers/text/loader.d.ts.map +1 -1
  13. package/dist/components/script/BehaviorDecorators.d.ts +2 -2
  14. package/dist/components/script/BehaviorDecorators.d.ts.map +1 -1
  15. package/dist/components/script/BehaviorDecorators.js.map +1 -1
  16. package/dist/components/types.d.ts +1 -1
  17. package/dist/components/types.d.ts.map +1 -1
  18. package/dist/systems/Logger.d.ts +97 -0
  19. package/dist/systems/Logger.d.ts.map +1 -0
  20. package/dist/systems/Logger.js +223 -0
  21. package/dist/systems/Logger.js.map +1 -0
  22. package/dist/systems/Scene.d.ts +7 -0
  23. package/dist/systems/Scene.d.ts.map +1 -1
  24. package/dist/systems/Scene.js +11 -0
  25. package/dist/systems/Scene.js.map +1 -1
  26. package/dist/systems/SceneManager.d.ts.map +1 -1
  27. package/dist/systems/SceneManager.js +12 -0
  28. package/dist/systems/SceneManager.js.map +1 -1
  29. package/dist/systems/World.d.ts +13 -1
  30. package/dist/systems/World.d.ts.map +1 -1
  31. package/dist/systems/World.js +20 -0
  32. package/dist/systems/World.js.map +1 -1
  33. package/dist/systems/asset/Base.d.ts +7 -5
  34. package/dist/systems/asset/Base.d.ts.map +1 -1
  35. package/dist/systems/asset/Base.js.map +1 -1
  36. package/dist/systems/asset/Manager.d.ts +5 -3
  37. package/dist/systems/asset/Manager.d.ts.map +1 -1
  38. package/dist/systems/asset/Manager.js +43 -11
  39. package/dist/systems/asset/Manager.js.map +1 -1
  40. package/dist/systems/asset/Registry.d.ts +3 -3
  41. package/dist/systems/asset/Registry.d.ts.map +1 -1
  42. package/dist/systems/asset/Registry.js.map +1 -1
  43. package/dist/systems/index.d.ts +1 -0
  44. package/dist/systems/index.d.ts.map +1 -1
  45. package/dist/systems/index.js +1 -0
  46. package/dist/systems/index.js.map +1 -1
  47. package/dist/systems/rendering/ThreeRenderer.d.ts.map +1 -1
  48. package/dist/systems/rendering/ThreeRenderer.js.map +1 -1
  49. package/dist/ui/UIRenderer.d.ts +1 -0
  50. package/dist/ui/UIRenderer.d.ts.map +1 -1
  51. package/dist/ui/UIRenderer.js +2 -4
  52. package/dist/ui/UIRenderer.js.map +1 -1
  53. package/package.json +1 -1
  54. package/dist/components/renderers/tiled/TileLayer.d.ts +0 -13
  55. package/dist/components/renderers/tiled/TileLayer.d.ts.map +0 -1
  56. package/dist/components/renderers/tiled/TileLayer.js +0 -34
  57. package/dist/components/renderers/tiled/TileLayer.js.map +0 -1
  58. package/dist/components/renderers/tiled/TileMapRenderer.d.ts +0 -15
  59. package/dist/components/renderers/tiled/TileMapRenderer.d.ts.map +0 -1
  60. package/dist/components/renderers/tiled/TileMapRenderer.js +0 -59
  61. package/dist/components/renderers/tiled/TileMapRenderer.js.map +0 -1
  62. package/dist/components/renderers/tiled/TileObject.d.ts +0 -18
  63. package/dist/components/renderers/tiled/TileObject.d.ts.map +0 -1
  64. package/dist/components/renderers/tiled/TileObject.js +0 -59
  65. package/dist/components/renderers/tiled/TileObject.js.map +0 -1
  66. package/dist/components/renderers/tiled/TileSet.d.ts +0 -27
  67. package/dist/components/renderers/tiled/TileSet.d.ts.map +0 -1
  68. package/dist/components/renderers/tiled/TileSet.js +0 -116
  69. package/dist/components/renderers/tiled/TileSet.js.map +0 -1
  70. package/dist/components/renderers/tiled/loader.d.ts +0 -13
  71. package/dist/components/renderers/tiled/loader.d.ts.map +0 -1
  72. package/dist/components/renderers/tiled/loader.js +0 -39
  73. package/dist/components/renderers/tiled/loader.js.map +0 -1
  74. package/dist/components/renderers/tiled/types.d.ts +0 -325
  75. package/dist/components/renderers/tiled/types.d.ts.map +0 -1
  76. package/dist/components/renderers/tiled/types.js +0 -18
  77. package/dist/components/renderers/tiled/types.js.map +0 -1
@@ -1,15 +0,0 @@
1
- import { Actor, ActorComponent } from "../../../actor/index.ts";
2
- export type TiledMapOrientation = "top-down" | "platformer";
3
- export interface TiledMapRendererOptions {
4
- assetPath: string;
5
- /**
6
- * @default "platformer"
7
- */
8
- orientation?: TiledMapOrientation;
9
- }
10
- export declare class TiledMapRenderer extends ActorComponent<any> {
11
- #private;
12
- constructor(actor: Actor<any>, options: TiledMapRendererOptions);
13
- awake(): void;
14
- }
15
- //# sourceMappingURL=TileMapRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TileMapRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/renderers/tiled/TileMapRenderer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAMhE,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE5D,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,GAAG,CAAC;;gBAKrD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,uBAAuB;IAgBlC,KAAK;CAwBN"}
@@ -1,59 +0,0 @@
1
- // Import Third-party Dependencies
2
- import * as THREE from "three";
3
- // Import Internal Dependencies
4
- import * as Systems from "../../../systems/index.js";
5
- import { Actor, ActorComponent } from "../../../actor/index.js";
6
- import { TileSet } from "./TileSet.js";
7
- import { TileObject } from "./TileObject.js";
8
- import { TileLayer } from "./TileLayer.js";
9
- import { tiledMap } from "./loader.js";
10
- export class TiledMapRenderer extends ActorComponent {
11
- #map;
12
- #orientation;
13
- constructor(actor, options) {
14
- const { assetPath, orientation = "platformer" } = options;
15
- super({
16
- actor,
17
- typeName: "TiledMapRenderer"
18
- });
19
- this.#map = tiledMap(assetPath);
20
- this.#orientation = orientation;
21
- }
22
- awake() {
23
- const { tilemap, tilesets: rawTileSets } = this.#map.get();
24
- const tilesets = [...rawTileSets.values()].map(({ tileset, texture }) => new TileSet(tileset, texture));
25
- for (const layer of TileLayer.fromTileMap(tilemap)) {
26
- for (const { tileId, position } of layer) {
27
- const texture = TileSet.find(tilesets, tileId)?.getTileTexture(tileId) ?? null;
28
- const cube = new TileMapCube(texture);
29
- cube.position.set(position.x, position.y, position.z);
30
- this.actor.object3D.add(cube);
31
- }
32
- }
33
- for (const layer of TileObject.fromTileMap(tilemap)) {
34
- layer.createActors(this.actor);
35
- }
36
- if (this.#orientation === "top-down") {
37
- this.actor.object3D.rotateX(-Math.PI / 2);
38
- }
39
- }
40
- }
41
- class TileMapCube extends THREE.Mesh {
42
- static SIZE = 1;
43
- constructor(texture) {
44
- super();
45
- if (texture) {
46
- this.material = new THREE.MeshPhongMaterial({
47
- map: texture
48
- });
49
- this.material.transparent = true;
50
- }
51
- else {
52
- this.material = new THREE.MeshBasicMaterial({
53
- color: new THREE.Color(0xffffff)
54
- });
55
- }
56
- this.geometry = new THREE.BoxGeometry(TileMapCube.SIZE, TileMapCube.SIZE, TileMapCube.SIZE);
57
- }
58
- }
59
- //# sourceMappingURL=TileMapRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TileMapRenderer.js","sourceRoot":"","sources":["../../../../src/components/renderers/tiled/TileMapRenderer.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { Actor } from "../../../actor/Actor.ts";
2
- import type { TiledMap, TiledObjectLayer } from "./types.ts";
3
- export interface TileObjectOptions {
4
- zIndex: number;
5
- width: number;
6
- height: number;
7
- }
8
- export declare class TileObject {
9
- #private;
10
- static fromTileMap(map: TiledMap): Generator<TileObject, void, unknown>;
11
- layer: TiledObjectLayer;
12
- zIndex: number;
13
- width: number;
14
- height: number;
15
- constructor(layer: TiledObjectLayer, options: TileObjectOptions);
16
- createActors(parent: Actor<any>): void;
17
- }
18
- //# sourceMappingURL=TileObject.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TileObject.d.ts","sourceRoot":"","sources":["../../../../src/components/renderers/tiled/TileObject.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,KAAK,EACV,QAAQ,EAER,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,UAAU;;IACrB,MAAM,CAAE,WAAW,CACjB,GAAG,EAAE,QAAQ;IAaf,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;gBAGb,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,iBAAiB;IAQ5B,YAAY,CACV,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC;CAiDrB"}
@@ -1,59 +0,0 @@
1
- // Import Third-party Dependencies
2
- import * as THREE from "three";
3
- // Import Internal Dependencies
4
- import { Actor } from "../../../actor/Actor.js";
5
- export class TileObject {
6
- static *fromTileMap(map) {
7
- for (const layer of map.layers) {
8
- if (layer.type === "objectgroup") {
9
- yield new TileObject(layer, {
10
- zIndex: 1,
11
- width: map.tilewidth,
12
- height: map.tileheight
13
- });
14
- }
15
- }
16
- }
17
- layer;
18
- zIndex;
19
- width;
20
- height;
21
- constructor(layer, options) {
22
- this.layer = layer;
23
- this.zIndex = options.zIndex;
24
- this.width = options.width;
25
- this.height = options.height;
26
- }
27
- createActors(parent) {
28
- for (const object of this.layer.objects) {
29
- const childrenActor = new Actor(parent.world, {
30
- name: object.name,
31
- parent
32
- });
33
- childrenActor.object3D.position.set(object.x / this.width, object.y / this.height, this.zIndex);
34
- if (object.rotation !== 0) {
35
- const rotationRadians = (object.rotation * Math.PI) / 180;
36
- childrenActor.object3D.rotation.z = -rotationRadians;
37
- }
38
- if (object.width > 0 && object.height > 0) {
39
- const visualBox = this.#createObjectVisualization(object);
40
- childrenActor.object3D.add(visualBox);
41
- }
42
- }
43
- }
44
- #createObjectVisualization(object) {
45
- const width = object.width / this.width;
46
- const height = object.height / this.height;
47
- const geometry = new THREE.BoxGeometry(width, height, 0.1);
48
- const material = new THREE.MeshBasicMaterial({
49
- color: 0x00ff00,
50
- transparent: true,
51
- opacity: 1,
52
- wireframe: true
53
- });
54
- const box = new THREE.Mesh(geometry, material);
55
- box.position.set(width / 2, height / 2, 0);
56
- return box;
57
- }
58
- }
59
- //# sourceMappingURL=TileObject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TileObject.js","sourceRoot":"","sources":["../../../../src/components/renderers/tiled/TileObject.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,+BAA+B;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAahD,MAAM,OAAO,UAAU;IACrB,MAAM,CAAA,CAAE,WAAW,CACjB,GAAa;QAEb,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE;oBAC1B,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE,GAAG,CAAC,SAAS;oBACpB,MAAM,EAAE,GAAG,CAAC,UAAU;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAmB;IACxB,MAAM,CAAS;IACf,KAAK,CAAS;IACd,MAAM,CAAS;IAEf,YACE,KAAuB,EACvB,OAA0B;QAE1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,YAAY,CACV,MAAkB;QAElB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC5C,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM;aACP,CAAC,CAAC;YACH,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CACjC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EACrB,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EACtB,IAAI,CAAC,MAAM,CACZ,CAAC;YAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;gBAC1D,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;YACvD,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;gBAC1D,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,0BAA0B,CACxB,MAAmB;QAEnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3C,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,WAAW,CACpC,KAAK,EACL,MAAM,EACN,GAAG,CACJ,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC;YAC3C,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3C,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -1,27 +0,0 @@
1
- import * as THREE from "three";
2
- import type { TiledMapTileset } from "./types.ts";
3
- export interface TileProps {
4
- coords: THREE.Vector2Like;
5
- uv: {
6
- size: THREE.Vector2Like;
7
- offset: THREE.Vector2Like;
8
- };
9
- flippedX: boolean;
10
- flippedY: boolean;
11
- flippedAD: boolean;
12
- }
13
- export declare class TileSet {
14
- #private;
15
- static find(tilesets: TileSet[], tileId: number): TileSet | null;
16
- constructor(tiledset: TiledMapTileset, texture: THREE.Texture<HTMLImageElement>);
17
- get firstgid(): number;
18
- get lastgid(): number;
19
- get tilewidth(): number;
20
- get tileheight(): number;
21
- containsGid(gid: number): boolean;
22
- containsLocalId(index: number): boolean;
23
- getTileLocalId(gid: number): number;
24
- getTileProperties(gid: number): TileProps | null;
25
- getTileTexture(gid: number): THREE.Texture | null;
26
- }
27
- //# sourceMappingURL=TileSet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TileSet.d.ts","sourceRoot":"","sources":["../../../../src/components/renderers/tiled/TileSet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAWlD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC1B,EAAE,EAAE;QACF,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;QACxB,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,OAAO;;IAClB,MAAM,CAAC,IAAI,CACT,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,GAAG,IAAI;gBAUf,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAM1C,IAAI,QAAQ,WAEX;IAED,IAAI,OAAO,WAEV;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,UAAU,WAEb;IAED,WAAW,CACT,GAAG,EAAE,MAAM,GACV,OAAO;IAIV,eAAe,CACb,KAAK,EAAE,MAAM;IAKf,cAAc,CACZ,GAAG,EAAE,MAAM;IAKb,iBAAiB,CACf,GAAG,EAAE,MAAM,GACV,SAAS,GAAG,IAAI;IAgCnB,cAAc,CACZ,GAAG,EAAE,MAAM,GACV,KAAK,CAAC,OAAO,GAAG,IAAI;CAoBxB"}
@@ -1,116 +0,0 @@
1
- // Import Third-party Dependencies
2
- import * as THREE from "three";
3
- // CONSTANTS
4
- const kFlippedAntiDiagonal = 0x20000000;
5
- const kFlippedVertical = 0x40000000;
6
- const kFlippedHorizontal = 0x80000000;
7
- const kTiledFlippedFlags = kFlippedHorizontal |
8
- kFlippedVertical |
9
- kFlippedAntiDiagonal;
10
- export class TileSet {
11
- static find(tilesets, tileId) {
12
- return tilesets
13
- .sort((a, b) => a.firstgid - b.firstgid)
14
- .find((tileSet) => tileSet.containsGid(tileId)) ?? null;
15
- }
16
- #metadata;
17
- #texture;
18
- constructor(tiledset, texture) {
19
- this.#metadata = tiledset;
20
- this.#texture = texture;
21
- }
22
- get firstgid() {
23
- return this.#metadata.firstgid;
24
- }
25
- get lastgid() {
26
- return this.#metadata.firstgid + this.#metadata.tilecount - 1;
27
- }
28
- get tilewidth() {
29
- return this.#metadata.tilewidth;
30
- }
31
- get tileheight() {
32
- return this.#metadata.tileheight;
33
- }
34
- containsGid(gid) {
35
- return this.containsLocalId(this.getTileLocalId(gid));
36
- }
37
- containsLocalId(index) {
38
- return index >= 0 && index < this.#metadata.tilecount;
39
- }
40
- getTileLocalId(gid) {
41
- return (gid & ~kTiledFlippedFlags) - this.#metadata.firstgid;
42
- }
43
- getTileProperties(gid) {
44
- const localId = this.getTileLocalId(gid);
45
- if (!this.containsLocalId(localId)) {
46
- return null;
47
- }
48
- const coords = {
49
- x: localId % this.#metadata.columns,
50
- y: Math.floor(localId / this.#metadata.columns)
51
- };
52
- const uvX = (coords.x * this.tilewidth) / this.#texture.image.width;
53
- const uvY = 1.0 - (((coords.y + 1) * this.tileheight) / this.#texture.image.height);
54
- return {
55
- coords,
56
- uv: {
57
- size: {
58
- x: this.tilewidth / this.#texture.image.width,
59
- y: this.tileheight / this.#texture.image.height
60
- },
61
- offset: {
62
- x: uvX,
63
- y: uvY
64
- }
65
- },
66
- flippedX: (gid & kFlippedHorizontal) !== 0,
67
- flippedY: (gid & kFlippedVertical) !== 0,
68
- flippedAD: (gid & kFlippedAntiDiagonal) !== 0
69
- };
70
- }
71
- getTileTexture(gid) {
72
- const properties = this.getTileProperties(gid);
73
- if (!properties) {
74
- return null;
75
- }
76
- const texture = this.#texture.clone();
77
- texture.needsUpdate = true;
78
- texture.colorSpace = THREE.SRGBColorSpace;
79
- texture.wrapS = THREE.ClampToEdgeWrapping;
80
- texture.wrapT = THREE.ClampToEdgeWrapping;
81
- applyTextureTransformations(texture, properties);
82
- texture.magFilter = THREE.NearestFilter;
83
- texture.minFilter = THREE.NearestFilter;
84
- texture.generateMipmaps = false;
85
- return texture;
86
- }
87
- }
88
- function applyTextureTransformations(texture, tileProperties) {
89
- let { x: offsetX, y: offsetY } = tileProperties.uv.offset;
90
- let { x: repeatX, y: repeatY } = tileProperties.uv.size;
91
- // Gère le flip horizontal
92
- if (tileProperties.flippedX) {
93
- repeatX = -repeatX;
94
- offsetX += tileProperties.uv.size.x;
95
- }
96
- // Gère le flip vertical
97
- if (tileProperties.flippedY) {
98
- repeatY = -repeatY;
99
- offsetY += tileProperties.uv.size.y;
100
- }
101
- // Gère le flip anti-diagonal (rotation 90° + flip horizontal)
102
- if (tileProperties.flippedAD) {
103
- // Pour l'anti-diagonal, on doit échanger les axes et ajuster
104
- const tempRepeat = repeatX;
105
- repeatX = repeatY;
106
- repeatY = tempRepeat;
107
- const tempOffset = offsetX;
108
- offsetX = offsetY;
109
- offsetY = tempOffset;
110
- // Ajustement supplémentaire pour l'anti-diagonal
111
- offsetX += tileProperties.uv.size.y;
112
- }
113
- texture.offset.set(offsetX, offsetY);
114
- texture.repeat.set(repeatX, repeatY);
115
- }
116
- //# sourceMappingURL=TileSet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TileSet.js","sourceRoot":"","sources":["../../../../src/components/renderers/tiled/TileSet.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import * as THREE from "three";
2
- import { type Asset } from "../../../systems/index.ts";
3
- import type { TiledMap, TiledMapTileset } from "./types.ts";
4
- export interface TiledSetAsset {
5
- tileset: TiledMapTileset;
6
- texture: THREE.Texture<HTMLImageElement>;
7
- }
8
- export interface TiledMapAsset {
9
- tilemap: TiledMap;
10
- tilesets: Map<string, TiledSetAsset>;
11
- }
12
- export declare const tiledMap: (assetOrPath: Asset | string) => import("../../../systems/index.ts").LazyAsset<TiledMapAsset>;
13
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/components/renderers/tiled/loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAEL,KAAK,KAAK,EAEX,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACtC;AAgBD,eAAO,MAAM,QAAQ,+FAAmC,CAAC"}
@@ -1,39 +0,0 @@
1
- // Import Third-party Dependencies
2
- import * as THREE from "three";
3
- // Import Internal Dependencies
4
- import { Assets } from "../../../systems/index.js";
5
- import { loadJSON, pathUtils } from "../../../utils/index.js";
6
- Assets.registry.loader({
7
- extensions: [".tmj"],
8
- type: "tilemap"
9
- }, (asset, context) => {
10
- switch (asset.ext) {
11
- case ".tmj":
12
- return tmjLoader(asset, context);
13
- default:
14
- throw new Error(`Unsupported model type: ${asset.ext}`);
15
- }
16
- });
17
- export const tiledMap = Assets.lazyLoad();
18
- async function tmjLoader(asset, context) {
19
- const tilemap = await loadJSON(asset.path + asset.basename);
20
- const textureLoader = new THREE.TextureLoader(context.manager);
21
- const tilesets = new Map();
22
- for (const tileset of tilemap.tilesets) {
23
- if (tileset.source) {
24
- const fileName = pathUtils.parse(tileset.source).name;
25
- const texture = await textureLoader.loadAsync(asset.path + fileName + ".png");
26
- texture.magFilter = THREE.NearestFilter;
27
- texture.minFilter = THREE.NearestFilter;
28
- tilesets.set(tileset.name ?? fileName, {
29
- tileset,
30
- texture
31
- });
32
- }
33
- }
34
- return {
35
- tilemap,
36
- tilesets
37
- };
38
- }
39
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../src/components/renderers/tiled/loader.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,+BAA+B;AAC/B,OAAO,EACL,MAAM,EAGP,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAgB9D,MAAM,CAAC,QAAQ,CAAC,MAAM,CACpB;IACE,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS;CAChB,EACD,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACjB,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnC;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC,CACF,CAAC;AACF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAiB,CAAC;AAEzD,KAAK,UAAU,SAAS,CACtB,KAAY,EACZ,OAA2B;IAE3B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAW,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtE,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAElD,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;YAC9E,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;YACxC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;YAExC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,EAAE;gBACrC,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC"}