babylonjs-editor-tools 5.2.0 → 5.2.1

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 (39) hide show
  1. package/build/index.node.js +1 -1
  2. package/build/src/cinematic/cinematic.js +21 -0
  3. package/build/src/cinematic/cinematic.js.map +1 -0
  4. package/build/src/cinematic/events/event.js +4 -0
  5. package/build/src/cinematic/events/event.js.map +1 -0
  6. package/build/src/cinematic/generate.js +65 -12
  7. package/build/src/cinematic/generate.js.map +1 -1
  8. package/build/src/cinematic/parse.js +34 -32
  9. package/build/src/cinematic/parse.js.map +1 -1
  10. package/build/src/cinematic/tools.js +20 -0
  11. package/build/src/cinematic/tools.js.map +1 -1
  12. package/build/src/index.js +1 -0
  13. package/build/src/index.js.map +1 -1
  14. package/build/src/loading/loader.js +12 -5
  15. package/build/src/loading/loader.js.map +1 -1
  16. package/build/src/loading/shadows.js +26 -16
  17. package/build/src/loading/shadows.js.map +1 -1
  18. package/build/src/loading/sound.js +17 -10
  19. package/build/src/loading/sound.js.map +1 -1
  20. package/build/src/loading/sprite-manager.js +41 -34
  21. package/build/src/loading/sprite-manager.js.map +1 -1
  22. package/build/src/loading/sprite-map.js +46 -39
  23. package/build/src/loading/sprite-map.js.map +1 -1
  24. package/build/src/loading/texture.js +51 -46
  25. package/build/src/loading/texture.js.map +1 -1
  26. package/declaration/src/cinematic/cinematic.d.ts +14 -0
  27. package/declaration/src/cinematic/events/event.d.ts +5 -0
  28. package/declaration/src/cinematic/generate.d.ts +2 -2
  29. package/declaration/src/cinematic/parse.d.ts +2 -1
  30. package/declaration/src/cinematic/tools.d.ts +3 -0
  31. package/declaration/src/cinematic/typings.d.ts +2 -0
  32. package/declaration/src/index.d.ts +1 -0
  33. package/declaration/src/loading/loader.d.ts +12 -7
  34. package/declaration/src/loading/shadows.d.ts +1 -1
  35. package/declaration/src/loading/sound.d.ts +1 -1
  36. package/declaration/src/loading/sprite-manager.d.ts +1 -1
  37. package/declaration/src/loading/sprite-map.d.ts +1 -1
  38. package/declaration/src/loading/texture.d.ts +1 -1
  39. package/package.json +1 -1
@@ -24,4 +24,5 @@ export * from "./cinematic/parse";
24
24
  export * from "./cinematic/typings";
25
25
  export * from "./cinematic/generate";
26
26
  export * from "./cinematic/guards";
27
+ export * from "./cinematic/cinematic";
27
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -8,13 +8,20 @@ import { applyRenderingConfigurationForCamera } from "../rendering/tools";
8
8
  import { configurePhysicsAggregate } from "./physics";
9
9
  import { applyRenderingConfigurations } from "./rendering";
10
10
  import { _applyScriptsForObject, _preloadScriptsAssets } from "./script";
11
- import "./sound";
12
- import "./texture";
13
- import "./shadows";
14
- import "./sprite-map";
15
- import "./sprite-manager";
11
+ import { registerAudioParser } from "./sound";
12
+ import { registerTextureParser } from "./texture";
13
+ import { registerShadowGeneratorParser } from "./shadows";
14
+ import { registerSpriteMapParser } from "./sprite-map";
15
+ import { registerSpriteManagerParser } from "./sprite-manager";
16
16
  export async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, options) {
17
17
  scene.loadingQuality = options?.quality ?? "high";
18
+ scene.loadingTexturesQuality = options?.texturesQuality ?? scene.loadingQuality;
19
+ scene.loadingShadowsQuality = options?.shadowsQuality ?? scene.loadingQuality;
20
+ registerAudioParser();
21
+ registerTextureParser();
22
+ registerShadowGeneratorParser();
23
+ registerSpriteMapParser();
24
+ registerSpriteManagerParser();
18
25
  await AppendSceneAsync(`${rootUrl}${sceneFilename}`, scene, {
19
26
  pluginExtension: ".babylon",
20
27
  onProgress: (event) => {
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/loading/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/loading/loader.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,31 @@
1
1
  import { SceneComponentConstants } from "@babylonjs/core/sceneComponent";
2
2
  import { GetParser, AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
3
3
  import { getPowerOfTwoUntil } from "../tools/scalar";
4
- const shadowsGeneratorParser = GetParser(SceneComponentConstants.NAME_SHADOWGENERATOR);
5
- AddParser(SceneComponentConstants.NAME_SHADOWGENERATOR, (parsedData, scene, container, rootUrl) => {
6
- if (scene.loadingQuality !== "high") {
7
- parsedData.shadowGenerators?.forEach((shadowGenerator) => {
8
- switch (scene.loadingQuality) {
9
- case "medium":
10
- shadowGenerator.mapSize = shadowGenerator.mapSize * 0.5;
11
- break;
12
- case "low":
13
- shadowGenerator.mapSize = shadowGenerator.mapSize * 0.25;
14
- break;
15
- }
16
- shadowGenerator.mapSize = Math.max(128, getPowerOfTwoUntil(shadowGenerator.mapSize));
17
- });
4
+ let registered = false;
5
+ export function registerShadowGeneratorParser() {
6
+ if (registered) {
7
+ return;
18
8
  }
19
- shadowsGeneratorParser?.(parsedData, scene, container, rootUrl);
20
- });
9
+ registered = true;
10
+ const shadowsGeneratorParser = GetParser(SceneComponentConstants.NAME_SHADOWGENERATOR);
11
+ AddParser("ShadowGeneratorEditorPlugin", (parsedData, scene, container, rootUrl) => {
12
+ if (scene.loadingShadowsQuality !== "high") {
13
+ parsedData.shadowGenerators?.forEach((shadowGenerator) => {
14
+ switch (scene.loadingShadowsQuality) {
15
+ case "medium":
16
+ shadowGenerator.mapSize = shadowGenerator.mapSize * 0.5;
17
+ break;
18
+ case "low":
19
+ shadowGenerator.mapSize = shadowGenerator.mapSize * 0.25;
20
+ break;
21
+ case "very-low":
22
+ shadowGenerator.mapSize = shadowGenerator.mapSize * 0.125;
23
+ break;
24
+ }
25
+ shadowGenerator.mapSize = Math.max(128, getPowerOfTwoUntil(shadowGenerator.mapSize));
26
+ });
27
+ }
28
+ shadowsGeneratorParser?.(parsedData, scene, container, rootUrl);
29
+ });
30
+ }
21
31
  //# sourceMappingURL=shadows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadows.js","sourceRoot":"","sources":["../../../src/loading/shadows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,sBAAsB,GAAG,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;AAEvF,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;IACrI,IAAI,KAAK,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QACrC,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,eAAoB,EAAE,EAAE;YAC7D,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC9B,KAAK,QAAQ;oBACZ,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,GAAG,CAAC;oBACxD,MAAM;gBAEP,KAAK,KAAK;oBACT,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;oBACzD,MAAM;YACR,CAAC;YAED,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,sBAAsB,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"shadows.js","sourceRoot":"","sources":["../../../src/loading/shadows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,6BAA6B;IAC5C,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IAED,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,sBAAsB,GAAG,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;IAEvF,SAAS,CAAC,6BAA6B,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;QACtH,IAAI,KAAK,CAAC,qBAAqB,KAAK,MAAM,EAAE,CAAC;YAC5C,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,eAAoB,EAAE,EAAE;gBAC7D,QAAQ,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBACrC,KAAK,QAAQ;wBACZ,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,GAAG,CAAC;wBACxD,MAAM;oBAEP,KAAK,KAAK;wBACT,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;wBACzD,MAAM;oBAEP,KAAK,UAAU;wBACd,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;wBAC1D,MAAM;gBACR,CAAC;gBAED,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,sBAAsB,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,14 +1,21 @@
1
1
  import { SceneComponentConstants } from "@babylonjs/core/sceneComponent";
2
2
  import { GetParser, AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
3
- const audioParser = GetParser(SceneComponentConstants.NAME_AUDIO);
4
- AddParser(SceneComponentConstants.NAME_AUDIO, (parsedData, scene, container, rootUrl) => {
5
- audioParser?.(parsedData, scene, container, rootUrl);
6
- parsedData.sounds?.forEach((sound) => {
7
- const instance = container.sounds?.find((s) => s.name === sound.name);
8
- if (instance) {
9
- instance.id = sound.id;
10
- instance.uniqueId = sound.uniqueId;
11
- }
3
+ let registered = false;
4
+ export function registerAudioParser() {
5
+ if (registered) {
6
+ return;
7
+ }
8
+ registered = true;
9
+ const audioParser = GetParser(SceneComponentConstants.NAME_AUDIO);
10
+ AddParser("AudioEditorPlugin", (parsedData, scene, container, rootUrl) => {
11
+ audioParser?.(parsedData, scene, container, rootUrl);
12
+ parsedData.sounds?.forEach((sound) => {
13
+ const instance = container.sounds?.find((s) => s.name === sound.name);
14
+ if (instance) {
15
+ instance.id = sound.id;
16
+ instance.uniqueId = sound.uniqueId;
17
+ }
18
+ });
12
19
  });
13
- });
20
+ }
14
21
  //# sourceMappingURL=sound.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../src/loading/sound.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,MAAM,WAAW,GAAG,SAAS,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;AAElE,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;IAC3H,WAAW,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAErD,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACpC,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../src/loading/sound.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,mBAAmB;IAClC,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IAED,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,WAAW,GAAG,SAAS,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAElE,SAAS,CAAC,mBAAmB,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;QAC5G,WAAW,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAErD,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;YACtE,IAAI,QAAQ,EAAE,CAAC;gBACd,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YACpC,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -28,44 +28,51 @@ function parseSerializedSpriteManager(spriteManager, parsedSpriteManager) {
28
28
  sprite.metadata = parsedSprite.metadata;
29
29
  }
30
30
  }
31
- AddParser("SpriteManagerNode", (parsedData, scene, container, rootUrl) => {
32
- parsedData.transformNodes?.forEach((transformNode) => {
33
- if (!transformNode.isSpriteManager) {
34
- return;
35
- }
36
- const instance = container.transformNodes?.find((t) => t.id === transformNode.id);
37
- if (!instance) {
38
- return;
39
- }
40
- instance.isSpriteManager = transformNode.isSpriteManager;
41
- if (transformNode.atlasJsonRelativePath) {
42
- const atlasJsonAbsolutePath = `${rootUrl}${transformNode.atlasJsonRelativePath}`;
43
- scene.addPendingData(atlasJsonAbsolutePath);
44
- const atlasRequest = new WebRequest();
45
- atlasRequest.open("GET", atlasJsonAbsolutePath);
46
- atlasRequest.send();
47
- atlasRequest.addEventListener("load", () => {
48
- scene.removePendingData(atlasJsonAbsolutePath);
49
- const atlasJson = JSON.parse(atlasRequest.responseText);
50
- const imagePath = `${Tools.GetFolderPath(atlasJsonAbsolutePath)}${atlasJson.meta.image}`;
51
- const spriteManager = new SpriteManager(instance.name, imagePath, 1000, 64, scene, undefined, undefined, true, atlasJson);
31
+ let registered = false;
32
+ export function registerSpriteManagerParser() {
33
+ if (registered) {
34
+ return;
35
+ }
36
+ registered = true;
37
+ AddParser("SpriteManagerNode", (parsedData, scene, container, rootUrl) => {
38
+ parsedData.transformNodes?.forEach((transformNode) => {
39
+ if (!transformNode.isSpriteManager) {
40
+ return;
41
+ }
42
+ const instance = container.transformNodes?.find((t) => t.id === transformNode.id);
43
+ if (!instance) {
44
+ return;
45
+ }
46
+ instance.isSpriteManager = transformNode.isSpriteManager;
47
+ if (transformNode.atlasJsonRelativePath) {
48
+ const atlasJsonAbsolutePath = `${rootUrl}${transformNode.atlasJsonRelativePath}`;
49
+ scene.addPendingData(atlasJsonAbsolutePath);
50
+ const atlasRequest = new WebRequest();
51
+ atlasRequest.open("GET", atlasJsonAbsolutePath);
52
+ atlasRequest.send();
53
+ atlasRequest.addEventListener("load", () => {
54
+ scene.removePendingData(atlasJsonAbsolutePath);
55
+ const atlasJson = JSON.parse(atlasRequest.responseText);
56
+ const imagePath = `${Tools.GetFolderPath(atlasJsonAbsolutePath)}${atlasJson.meta.image}`;
57
+ const spriteManager = new SpriteManager(instance.name, imagePath, 1000, 64, scene, undefined, undefined, true, atlasJson);
58
+ instance.spriteManager = spriteManager;
59
+ if (transformNode.spriteManager) {
60
+ parseSerializedSpriteManager(spriteManager, transformNode.spriteManager);
61
+ }
62
+ });
63
+ }
64
+ else if (transformNode.spriteManager?.textureUrl) {
65
+ const imagePath = `${rootUrl}${transformNode.spriteManager.textureUrl}`;
66
+ const spriteManager = new SpriteManager(instance.name, imagePath, 1000, {
67
+ width: transformNode.spriteManager.cellWidth,
68
+ height: transformNode.spriteManager.cellHeight,
69
+ }, scene, undefined, undefined, false);
52
70
  instance.spriteManager = spriteManager;
53
71
  if (transformNode.spriteManager) {
54
72
  parseSerializedSpriteManager(spriteManager, transformNode.spriteManager);
55
73
  }
56
- });
57
- }
58
- else if (transformNode.spriteManager?.textureUrl) {
59
- const imagePath = `${rootUrl}${transformNode.spriteManager.textureUrl}`;
60
- const spriteManager = new SpriteManager(instance.name, imagePath, 1000, {
61
- width: transformNode.spriteManager.cellWidth,
62
- height: transformNode.spriteManager.cellHeight,
63
- }, scene, undefined, undefined, false);
64
- instance.spriteManager = spriteManager;
65
- if (transformNode.spriteManager) {
66
- parseSerializedSpriteManager(spriteManager, transformNode.spriteManager);
67
74
  }
68
- }
75
+ });
69
76
  });
70
- });
77
+ }
71
78
  //# sourceMappingURL=sprite-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sprite-manager.js","sourceRoot":"","sources":["../../../src/loading/sprite-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sprite-manager.js","sourceRoot":"","sources":["../../../src/loading/sprite-manager.ts"],"names":[],"mappings":"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"}
@@ -6,47 +6,54 @@ import { Texture } from "@babylonjs/core/Materials/Textures/texture";
6
6
  import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
7
7
  import { AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
8
8
  import { normalizeAtlasJson } from "../tools/sprite";
9
- AddParser("SpriteMapNode", (parsedData, scene, container, rootUrl) => {
10
- parsedData.transformNodes?.forEach((transformNode) => {
11
- if (!transformNode.isSpriteMap) {
12
- return;
13
- }
14
- const instance = container.transformNodes?.find((t) => t.id === transformNode.id);
15
- if (!instance) {
16
- return;
17
- }
18
- instance.isSpriteMap = transformNode.isSpriteMap;
19
- const atlasJsonAbsolutePath = `${rootUrl}${transformNode.atlasJsonRelativePath}`;
20
- scene.addPendingData(atlasJsonAbsolutePath);
21
- const atlasRequest = new WebRequest();
22
- atlasRequest.open("GET", atlasJsonAbsolutePath);
23
- atlasRequest.send();
24
- atlasRequest.addEventListener("load", () => {
25
- scene.removePendingData(atlasJsonAbsolutePath);
26
- const atlasJson = JSON.parse(atlasRequest.responseText);
27
- normalizeAtlasJson(atlasJson);
28
- const imagePath = `${Tools.GetFolderPath(atlasJsonAbsolutePath)}${atlasJson.meta.image}`;
29
- const spritesheet = new Texture(imagePath, scene, false, false, Texture.NEAREST_NEAREST, null, null, null, false, Engine.TEXTUREFORMAT_RGBA);
30
- const spriteMap = new SpriteMap(instance.name, atlasJson, spritesheet, {
31
- layerCount: transformNode.options.layerCount,
32
- stageSize: Vector2.FromArray(transformNode.options.stageSize ?? [10, 1]),
33
- outputSize: Vector2.FromArray(transformNode.options.outputSize ?? [100, 100]),
34
- colorMultiply: Vector3.FromArray(transformNode.options.colorMultiply ?? [1, 1, 1]),
35
- flipU: true,
36
- }, scene);
37
- transformNode.tiles.forEach((tile) => {
38
- for (let x = 0, lenX = tile.repeatCount.x + 1; x < lenX; ++x) {
39
- for (let y = 0, lenY = tile.repeatCount.y + 1; y < lenY; ++y) {
40
- const offsetX = x * (tile.repeatOffset.x + 1);
41
- const offsetY = y * (tile.repeatOffset.y + 1);
42
- spriteMap.changeTiles(tile.layer, new Vector2(tile.position.x + offsetX, (spriteMap.options.stageSize?.y ?? 0) - 1 - tile.position.y - offsetY), tile.tile);
9
+ let registered = false;
10
+ export function registerSpriteMapParser() {
11
+ if (registered) {
12
+ return;
13
+ }
14
+ registered = true;
15
+ AddParser("SpriteMapNode", (parsedData, scene, container, rootUrl) => {
16
+ parsedData.transformNodes?.forEach((transformNode) => {
17
+ if (!transformNode.isSpriteMap) {
18
+ return;
19
+ }
20
+ const instance = container.transformNodes?.find((t) => t.id === transformNode.id);
21
+ if (!instance) {
22
+ return;
23
+ }
24
+ instance.isSpriteMap = transformNode.isSpriteMap;
25
+ const atlasJsonAbsolutePath = `${rootUrl}${transformNode.atlasJsonRelativePath}`;
26
+ scene.addPendingData(atlasJsonAbsolutePath);
27
+ const atlasRequest = new WebRequest();
28
+ atlasRequest.open("GET", atlasJsonAbsolutePath);
29
+ atlasRequest.send();
30
+ atlasRequest.addEventListener("load", () => {
31
+ scene.removePendingData(atlasJsonAbsolutePath);
32
+ const atlasJson = JSON.parse(atlasRequest.responseText);
33
+ normalizeAtlasJson(atlasJson);
34
+ const imagePath = `${Tools.GetFolderPath(atlasJsonAbsolutePath)}${atlasJson.meta.image}`;
35
+ const spritesheet = new Texture(imagePath, scene, false, false, Texture.NEAREST_NEAREST, null, null, null, false, Engine.TEXTUREFORMAT_RGBA);
36
+ const spriteMap = new SpriteMap(instance.name, atlasJson, spritesheet, {
37
+ layerCount: transformNode.options.layerCount,
38
+ stageSize: Vector2.FromArray(transformNode.options.stageSize ?? [10, 1]),
39
+ outputSize: Vector2.FromArray(transformNode.options.outputSize ?? [100, 100]),
40
+ colorMultiply: Vector3.FromArray(transformNode.options.colorMultiply ?? [1, 1, 1]),
41
+ flipU: true,
42
+ }, scene);
43
+ transformNode.tiles.forEach((tile) => {
44
+ for (let x = 0, lenX = tile.repeatCount.x + 1; x < lenX; ++x) {
45
+ for (let y = 0, lenY = tile.repeatCount.y + 1; y < lenY; ++y) {
46
+ const offsetX = x * (tile.repeatOffset.x + 1);
47
+ const offsetY = y * (tile.repeatOffset.y + 1);
48
+ spriteMap.changeTiles(tile.layer, new Vector2(tile.position.x + offsetX, (spriteMap.options.stageSize?.y ?? 0) - 1 - tile.position.y - offsetY), tile.tile);
49
+ }
43
50
  }
44
- }
51
+ });
52
+ const outputPlane = spriteMap["_output"];
53
+ outputPlane.parent = instance;
54
+ instance.spriteMap = spriteMap;
45
55
  });
46
- const outputPlane = spriteMap["_output"];
47
- outputPlane.parent = instance;
48
- instance.spriteMap = spriteMap;
49
56
  });
50
57
  });
51
- });
58
+ }
52
59
  //# sourceMappingURL=sprite-map.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sprite-map.js","sourceRoot":"","sources":["../../../src/loading/sprite-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sprite-map.js","sourceRoot":"","sources":["../../../src/loading/sprite-map.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,4CAA4C,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAEvF,OAAO,EAAE,kBAAkB,EAAiB,MAAM,iBAAiB,CAAC;AAEpE,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,uBAAuB;IACtC,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IAED,UAAU,GAAG,IAAI,CAAC;IAElB,SAAS,CAAC,eAAe,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;QACxG,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,aAAkB,EAAE,EAAE;YACzD,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;gBAChC,OAAO;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAAkB,CAAC;YACnG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO;YACR,CAAC;YAED,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;YAEjD,MAAM,qBAAqB,GAAG,GAAG,OAAO,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAEjF,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YAE5C,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;YAChD,YAAY,CAAC,IAAI,EAAE,CAAC;YAEpB,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC1C,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;gBAE/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBACxD,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAE9B,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAEzF,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBAE7I,MAAM,SAAS,GAAG,IAAI,SAAS,CAC9B,QAAQ,CAAC,IAAI,EACb,SAAS,EACT,WAAW,EACX;oBACC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,UAAU;oBAC5C,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBACxE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC7E,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClF,KAAK,EAAE,IAAI;iBACX,EACD,KAAK,CACL,CAAC;gBAEF,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;oBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;wBAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;4BAC9D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC9C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAE9C,SAAS,CAAC,WAAW,CACpB,IAAI,CAAC,KAAK,EACV,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,EAC7G,IAAI,CAAC,IAAI,CACT,CAAC;wBACH,CAAC;oBACF,CAAC;gBACF,CAAC,CAAC,CAAC;gBAEH,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAS,CAAC;gBACjD,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC;gBAE9B,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YAChC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,51 +1,56 @@
1
1
  import { SerializationHelper } from "@babylonjs/core/Misc/decorators.serialization";
2
2
  import { getPowerOfTwoUntil } from "../tools/scalar";
3
- /**
4
- * Defines the reference to the original texture parser function.
5
- */
6
- const textureParser = SerializationHelper._TextureParser;
7
- SerializationHelper._TextureParser = (sourceProperty, scene, rootUrl) => {
8
- if (scene.loadingQuality === "high" || !sourceProperty.metadata?.baseSize) {
9
- return textureParser(sourceProperty, scene, rootUrl);
10
- }
11
- const width = sourceProperty.metadata.baseSize.width;
12
- const height = sourceProperty.metadata.baseSize.height;
13
- const isPowerOfTwo = width === getPowerOfTwoUntil(width) || height === getPowerOfTwoUntil(height);
14
- let suffix = "";
15
- switch (scene.loadingQuality) {
16
- case "medium":
17
- let midWidth = (width * 0.66) >> 0;
18
- let midHeight = (height * 0.66) >> 0;
19
- if (isPowerOfTwo) {
20
- midWidth = getPowerOfTwoUntil(midWidth);
21
- midHeight = getPowerOfTwoUntil(midHeight);
22
- }
23
- suffix = `_${midWidth}_${midHeight}`;
24
- break;
25
- case "low":
26
- let lowWidth = (width * 0.33) >> 0;
27
- let lowHeight = (height * 0.33) >> 0;
28
- if (isPowerOfTwo) {
29
- lowWidth = getPowerOfTwoUntil(lowWidth);
30
- lowHeight = getPowerOfTwoUntil(lowHeight);
31
- }
32
- suffix = `_${lowWidth}_${lowHeight}`;
33
- break;
3
+ let registered = false;
4
+ export function registerTextureParser() {
5
+ if (registered) {
6
+ return;
34
7
  }
35
- const name = sourceProperty.name;
36
- if (!name || !suffix) {
8
+ registered = true;
9
+ const textureParser = SerializationHelper._TextureParser;
10
+ SerializationHelper._TextureParser = (sourceProperty, scene, rootUrl) => {
11
+ if (scene.loadingTexturesQuality === "high" || !sourceProperty.metadata?.baseSize) {
12
+ return textureParser(sourceProperty, scene, rootUrl);
13
+ }
14
+ const width = sourceProperty.metadata.baseSize.width;
15
+ const height = sourceProperty.metadata.baseSize.height;
16
+ const isPowerOfTwo = width === getPowerOfTwoUntil(width) || height === getPowerOfTwoUntil(height);
17
+ let suffix = "";
18
+ switch (scene.loadingTexturesQuality) {
19
+ case "medium":
20
+ let midWidth = (width * 0.66) >> 0;
21
+ let midHeight = (height * 0.66) >> 0;
22
+ if (isPowerOfTwo) {
23
+ midWidth = getPowerOfTwoUntil(midWidth);
24
+ midHeight = getPowerOfTwoUntil(midHeight);
25
+ }
26
+ suffix = `_${midWidth}_${midHeight}`;
27
+ break;
28
+ case "low":
29
+ case "very-low":
30
+ let lowWidth = (width * 0.33) >> 0;
31
+ let lowHeight = (height * 0.33) >> 0;
32
+ if (isPowerOfTwo) {
33
+ lowWidth = getPowerOfTwoUntil(lowWidth);
34
+ lowHeight = getPowerOfTwoUntil(lowHeight);
35
+ }
36
+ suffix = `_${lowWidth}_${lowHeight}`;
37
+ break;
38
+ }
39
+ const name = sourceProperty.name;
40
+ if (!name || !suffix) {
41
+ return textureParser(sourceProperty, scene, rootUrl);
42
+ }
43
+ const finalUrl = name.split("/");
44
+ const filename = finalUrl.pop();
45
+ if (!filename) {
46
+ return textureParser(sourceProperty, scene, rootUrl);
47
+ }
48
+ const extension = filename.split(".").pop();
49
+ const baseFilename = filename.replace(`.${extension}`, "");
50
+ const newFilename = `${baseFilename}${suffix}.${extension}`;
51
+ finalUrl.push(newFilename);
52
+ sourceProperty.name = finalUrl.join("/");
37
53
  return textureParser(sourceProperty, scene, rootUrl);
38
- }
39
- const finalUrl = name.split("/");
40
- const filename = finalUrl.pop();
41
- if (!filename) {
42
- return textureParser(sourceProperty, scene, rootUrl);
43
- }
44
- const extension = filename.split(".").pop();
45
- const baseFilename = filename.replace(`.${extension}`, "");
46
- const newFilename = `${baseFilename}${suffix}.${extension}`;
47
- finalUrl.push(newFilename);
48
- sourceProperty.name = finalUrl.join("/");
49
- return textureParser(sourceProperty, scene, rootUrl);
50
- };
54
+ };
55
+ }
51
56
  //# sourceMappingURL=texture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/loading/texture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/loading/texture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Observable } from "@babylonjs/core/Misc/observable";
2
+ import { AnimationGroup } from "@babylonjs/core/Animations/animationGroup";
3
+ export declare class Cinematic extends AnimationGroup {
4
+ /**
5
+ * Defines the observable used to notify observers when an event is raised during the cinematic playback.
6
+ */
7
+ onEventObservable: Observable<string>;
8
+ /**
9
+ * Registers and calls the given callback on the provided event name is emitted during the cinematic playback.
10
+ * @param eventName defines the name of the event to listen to
11
+ * @param callback defines the callback to call when the event is raised
12
+ */
13
+ onEvent(eventName: string, callback: () => void): void;
14
+ }
@@ -0,0 +1,5 @@
1
+ import { Cinematic } from "../cinematic";
2
+ export type EventType = {
3
+ eventName: string;
4
+ };
5
+ export declare function handleApplyEvent(cinematic: Cinematic, eventData: EventType): void;
@@ -1,6 +1,6 @@
1
1
  import { Scene } from "@babylonjs/core/scene";
2
- import { AnimationGroup } from "@babylonjs/core/Animations/animationGroup";
3
2
  import { ICinematic } from "./typings";
3
+ import { Cinematic } from "./cinematic";
4
4
  export type GenerateCinematicAnimationGroupOptions = {
5
5
  /**
6
6
  * Defines wether or not sounds should be ignored when generating the animation group.
@@ -15,4 +15,4 @@ export type GenerateCinematicAnimationGroupOptions = {
15
15
  * @param scene defines the reference to the scene where to retrieve the animated objects.
16
16
  * @param options defines the options to use when generating the animation group.
17
17
  */
18
- export declare function generateCinematicAnimationGroup(cinematic: ICinematic, scene: Scene, options?: GenerateCinematicAnimationGroupOptions): AnimationGroup;
18
+ export declare function generateCinematicAnimationGroup(cinematic: ICinematic, scene: Scene, options?: GenerateCinematicAnimationGroupOptions): Cinematic;
@@ -1,5 +1,5 @@
1
1
  import { Scene } from "@babylonjs/core/scene";
2
- import { ICinematic } from "./typings";
2
+ import { ICinematic, ICinematicKey, ICinematicKeyCut } from "./typings";
3
3
  /**
4
4
  * Parses the given JSON data and returns a new cinematic object.
5
5
  * @param data defines the JSON data of the cinematic to parse.
@@ -13,3 +13,4 @@ export declare function parseCinematic(data: ICinematic, scene: Scene): ICinemat
13
13
  * @example [0, 0, 0] with type Animation.ANIMATIONTYPE_VECTOR3 will return a new Vector3(0, 0, 0) object.
14
14
  */
15
15
  export declare function parseCinematicKeyValue(value: any, type: number): any;
16
+ export declare function parseKeyFrameAnimations(keyFrameAnimations: (ICinematicKey | ICinematicKeyCut)[], animationType: number): (ICinematicKey | ICinematicKeyCut)[];
@@ -1,4 +1,6 @@
1
+ import { Scene } from "@babylonjs/core/scene";
1
2
  import { IAnimationKey } from "@babylonjs/core/Animations/animationKey";
3
+ import { Cinematic } from "./cinematic";
2
4
  export declare function cloneKey(dataType: number, key: IAnimationKey): IAnimationKey;
3
5
  /**
4
6
  * Returns the current value of the given property of the given object.
@@ -8,3 +10,4 @@ export declare function cloneKey(dataType: number, key: IAnimationKey): IAnimati
8
10
  * @example getPropertyValue(scene, "ambientColor.r");
9
11
  */
10
12
  export declare function getPropertyValue(object: any, property: string): any;
13
+ export declare function registerAfterAnimationCallback(cinematic: Cinematic, scene: Scene, callback: () => void): void;
@@ -9,10 +9,12 @@ export interface ICinematicTrack {
9
9
  _id?: string;
10
10
  animationGroup?: any;
11
11
  animationGroups?: ICinematicAnimationGroup[];
12
+ animationGroupWeight?: (ICinematicKey | ICinematicKeyCut)[];
12
13
  node?: any;
13
14
  defaultRenderingPipeline?: boolean;
14
15
  sound?: any;
15
16
  sounds?: ICinematicSound[];
17
+ soundVolume?: (ICinematicKey | ICinematicKeyCut)[];
16
18
  propertyPath?: string;
17
19
  keyFrameAnimations?: (ICinematicKey | ICinematicKeyCut)[];
18
20
  keyFrameEvents?: ICinematicKeyEvent[];
@@ -24,3 +24,4 @@ export * from "./cinematic/parse";
24
24
  export * from "./cinematic/typings";
25
25
  export * from "./cinematic/generate";
26
26
  export * from "./cinematic/guards";
27
+ export * from "./cinematic/cinematic";