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.
- package/build/index.node.js +1 -1
- package/build/src/cinematic/cinematic.js +21 -0
- package/build/src/cinematic/cinematic.js.map +1 -0
- package/build/src/cinematic/events/event.js +4 -0
- package/build/src/cinematic/events/event.js.map +1 -0
- package/build/src/cinematic/generate.js +65 -12
- package/build/src/cinematic/generate.js.map +1 -1
- package/build/src/cinematic/parse.js +34 -32
- package/build/src/cinematic/parse.js.map +1 -1
- package/build/src/cinematic/tools.js +20 -0
- package/build/src/cinematic/tools.js.map +1 -1
- package/build/src/index.js +1 -0
- package/build/src/index.js.map +1 -1
- package/build/src/loading/loader.js +12 -5
- package/build/src/loading/loader.js.map +1 -1
- package/build/src/loading/shadows.js +26 -16
- package/build/src/loading/shadows.js.map +1 -1
- package/build/src/loading/sound.js +17 -10
- package/build/src/loading/sound.js.map +1 -1
- package/build/src/loading/sprite-manager.js +41 -34
- package/build/src/loading/sprite-manager.js.map +1 -1
- package/build/src/loading/sprite-map.js +46 -39
- package/build/src/loading/sprite-map.js.map +1 -1
- package/build/src/loading/texture.js +51 -46
- package/build/src/loading/texture.js.map +1 -1
- package/declaration/src/cinematic/cinematic.d.ts +14 -0
- package/declaration/src/cinematic/events/event.d.ts +5 -0
- package/declaration/src/cinematic/generate.d.ts +2 -2
- package/declaration/src/cinematic/parse.d.ts +2 -1
- package/declaration/src/cinematic/tools.d.ts +3 -0
- package/declaration/src/cinematic/typings.d.ts +2 -0
- package/declaration/src/index.d.ts +1 -0
- package/declaration/src/loading/loader.d.ts +12 -7
- package/declaration/src/loading/shadows.d.ts +1 -1
- package/declaration/src/loading/sound.d.ts +1 -1
- package/declaration/src/loading/sprite-manager.d.ts +1 -1
- package/declaration/src/loading/sprite-map.d.ts +1 -1
- package/declaration/src/loading/texture.d.ts +1 -1
- package/package.json +1 -1
package/build/src/index.js
CHANGED
package/build/src/index.js.map
CHANGED
|
@@ -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":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAItG,OAAO,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEzE,OAAO,SAAS,CAAC;
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
if (
|
|
7
|
-
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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;
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const
|
|
51
|
-
|
|
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":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAIvF,SAAS,4BAA4B,CAAC,aAA4B,EAAE,mBAAwB;IAC3F,IAAI,mBAAmB,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QACnD,aAAa,CAAC,UAAU,GAAG,mBAAmB,EAAE,UAAU,CAAC;IAC5D,CAAC;IACD,IAAI,mBAAmB,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QAClD,aAAa,CAAC,SAAS,GAAG,mBAAmB,EAAE,SAAS,CAAC;IAC1D,CAAC;IACD,IAAI,mBAAmB,EAAE,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1D,aAAa,CAAC,iBAAiB,GAAG,mBAAmB,EAAE,iBAAiB,CAAC;IAC1E,CAAC;IACD,IAAI,mBAAmB,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;QACrD,aAAa,CAAC,YAAY,GAAG,mBAAmB,EAAE,YAAY,CAAC;IAChE,CAAC;IACD,IAAI,mBAAmB,EAAE,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC5D,aAAa,CAAC,mBAAmB,GAAG,mBAAmB,EAAE,mBAAmB,CAAC;IAC9E,CAAC;IAED,IAAI,mBAAmB,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjD,aAAa,CAAC,QAAQ,GAAG,mBAAmB,EAAE,QAAQ,CAAC;IACxD,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,mBAAmB,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QACxC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IACzC,CAAC;AACF,CAAC;AAED,SAAS,CAAC,mBAAmB,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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":"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,SAAS,CAAC,eAAe,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"sprite-map.js","sourceRoot":"","sources":["../../../src/loading/sprite-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +1,56 @@
|
|
|
1
1
|
import { SerializationHelper } from "@babylonjs/core/Misc/decorators.serialization";
|
|
2
2
|
import { getPowerOfTwoUntil } from "../tools/scalar";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
36
|
-
|
|
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
|
-
|
|
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":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD
|
|
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
|
+
}
|
|
@@ -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):
|
|
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[];
|