babylonjs-editor-cli 5.0.2 → 5.3.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 (35) hide show
  1. package/build/index.node.js +62 -47
  2. package/build/package.json +1 -1
  3. package/build/src/export.mjs +1 -0
  4. package/build/src/export.mjs.map +1 -1
  5. package/build/src/pack/assets/assets.mjs +11 -2
  6. package/build/src/pack/assets/assets.mjs.map +1 -1
  7. package/build/src/pack/assets/ktx.mjs +4 -4
  8. package/build/src/pack/assets/ktx.mjs.map +1 -1
  9. package/build/src/pack/assets/particle-system.mjs +2 -2
  10. package/build/src/pack/assets/particle-system.mjs.map +1 -1
  11. package/build/src/pack/assets/process.mjs +2 -2
  12. package/build/src/pack/assets/process.mjs.map +1 -1
  13. package/build/src/pack/assets/texture.mjs +3 -5
  14. package/build/src/pack/assets/texture.mjs.map +1 -1
  15. package/build/src/pack/pack.mjs +31 -8
  16. package/build/src/pack/pack.mjs.map +1 -1
  17. package/build/src/pack/scene.mjs +167 -61
  18. package/build/src/pack/scene.mjs.map +1 -1
  19. package/build/src/pack/scripts.mjs +115 -0
  20. package/build/src/pack/scripts.mjs.map +1 -0
  21. package/build/src/s3/s3.mjs +10 -1
  22. package/build/src/s3/s3.mjs.map +1 -1
  23. package/build/src/tools/cancel.mjs +10 -0
  24. package/build/src/tools/cancel.mjs.map +1 -0
  25. package/build/src/tools/fs.mjs +12 -0
  26. package/build/src/tools/fs.mjs.map +1 -1
  27. package/declaration/src/export.d.mts +1 -0
  28. package/declaration/src/pack/assets/assets.d.mts +2 -3
  29. package/declaration/src/pack/assets/ktx.d.mts +1 -0
  30. package/declaration/src/pack/pack.d.mts +4 -1
  31. package/declaration/src/pack/scripts.d.mts +1 -0
  32. package/declaration/src/tools/cancel.d.mts +5 -0
  33. package/declaration/src/tools/fs.d.mts +6 -0
  34. package/package.json +1 -1
  35. package/.env +0 -5
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylonjs-editor-cli",
3
- "version": "5.2.5",
3
+ "version": "5.3.0",
4
4
  "description": "Babylon.js Editor CLI is a command line interface to help you package your scenes made using the Babylon.js Editor",
5
5
  "productName": "Babylon.js Editor CLI",
6
6
  "scripts": {
@@ -1,4 +1,5 @@
1
1
  export { pack } from "./pack/pack.mjs";
2
2
  export { s3 } from "./s3/s3.mjs";
3
3
  export { overrideWorkerMethods } from "./tools/worker.mjs";
4
+ export { CancellationToken } from "./tools/cancel.mjs";
4
5
  //# sourceMappingURL=export.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.mjs","sourceRoot":"","sources":["../../src/export.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgD,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,EAAE,EAAc,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"export.mjs","sourceRoot":"","sources":["../../src/export.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgD,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,EAAE,EAAc,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -12,13 +12,22 @@ export async function createAssets(options) {
12
12
  const promises = [];
13
13
  const cpusCount = cpus().length;
14
14
  console.log(`Using ${cpusCount} cpus to process assets...`);
15
+ const step = 100 / files.length;
16
+ let currentStep = 0;
15
17
  for (const file of files) {
16
18
  if (promises.length >= cpusCount) {
17
19
  await Promise.all(promises);
18
20
  promises.length = 0;
19
21
  }
20
- promises.push(processAssetFile(file, {
21
- ...options,
22
+ if (options.cancellationToken?.isCanceled) {
23
+ break;
24
+ }
25
+ promises.push(new Promise(async (resolve) => {
26
+ await processAssetFile(file, {
27
+ ...options,
28
+ });
29
+ options.onProgress?.((currentStep += step));
30
+ resolve();
22
31
  }));
23
32
  }
24
33
  await Promise.all(promises);
@@ -1 +1 @@
1
- {"version":3,"file":"assets.mjs","sourceRoot":"","sources":["../../../../src/pack/assets/assets.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAejD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAA6B;IAC/D,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE;QACvE,KAAK,EAAE,IAAI;QACX,MAAM,EAAE;YACP,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ;SACpD;KACD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,SAAS,SAAS,4BAA4B,CAAC,CAAC;IAE5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,QAAQ,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,QAAQ,CAAC,IAAI,CACZ,gBAAgB,CAAC,IAAI,EAAE;YACtB,GAAG,OAAO;SACV,CAAC,CACF,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"assets.mjs","sourceRoot":"","sources":["../../../../src/pack/assets/assets.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAajD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAA6B;IAC/D,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE;QACvE,KAAK,EAAE,IAAI;QACX,MAAM,EAAE;YACP,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ;SACpD;KACD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,SAAS,SAAS,4BAA4B,CAAC,CAAC;IAE5D,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IAChC,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,QAAQ,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;YAC3C,MAAM;QACP,CAAC;QAED,QAAQ,CAAC,IAAI,CACZ,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,MAAM,gBAAgB,CAAC,IAAI,EAAE;gBAC5B,GAAG,OAAO;aACV,CAAC,CAAC;YAEH,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC;YAE5C,OAAO,EAAE,CAAC;QACX,CAAC,CAAC,CACF,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
@@ -61,10 +61,10 @@ export async function compressFileToKtxFormat(absolutePath, options) {
61
61
  const filename = getCompressedTextureFilename(name, options.format);
62
62
  options.destinationFolder ??= dirname(absolutePath);
63
63
  options.destinationFolder = join(options.destinationFolder, filename);
64
- // if (!editor.state.compressedTexturesEnabled) {
65
- // options.exportedAssets?.push(options.destinationFolder);
66
- // return null;
67
- // }
64
+ if (!options.compressedTexturesEnabled) {
65
+ options.exportedAssets?.push(options.destinationFolder);
66
+ return null;
67
+ }
68
68
  if ((await fs.pathExists(options.destinationFolder)) && !options.force) {
69
69
  options.exportedAssets?.push(options.destinationFolder);
70
70
  return options.destinationFolder;
@@ -1 +1 @@
1
- {"version":3,"file":"ktx.mjs","sourceRoot":"","sources":["../../../../src/pack/assets/ktx.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ktx.mjs","sourceRoot":"","sources":["../../../../src/pack/assets/ktx.mts"],"names":[],"mappings":"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"}
@@ -55,7 +55,7 @@ export async function extractNodeParticleSystemSetTextures(particleSystemData, o
55
55
  });
56
56
  if (relativePath) {
57
57
  relativePaths.push(relativePath);
58
- block.url = `/scene/${relativePath}`;
58
+ block.url = relativePath;
59
59
  }
60
60
  }
61
61
  if (block.textureDataUrl?.startsWith("data:")) {
@@ -65,7 +65,7 @@ export async function extractNodeParticleSystemSetTextures(particleSystemData, o
65
65
  if (relativePath) {
66
66
  relativePaths.push(relativePath);
67
67
  delete block.textureDataUrl;
68
- block.url = `/scene/${relativePath}`;
68
+ block.url = relativePath;
69
69
  block.serializedCachedData = false;
70
70
  }
71
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"particle-system.mjs","sourceRoot":"","sources":["../../../../src/pack/assets/particle-system.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"particle-system.mjs","sourceRoot":"","sources":["../../../../src/pack/assets/particle-system.mts"],"names":[],"mappings":"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"}
@@ -51,10 +51,10 @@ export async function processAssetFile(file, options) {
51
51
  message: `Processed asset: ${relativePath}`,
52
52
  });
53
53
  options.exportedAssets.push(finalPath);
54
- if (options.optimize && options.compressedTexturesEnabled) {
54
+ if (options.optimize) {
55
55
  await compressFileToKtx(finalPath, {
56
56
  force: isNewFile,
57
- exportedAssets: options.exportedAssets,
57
+ ...options,
58
58
  });
59
59
  }
60
60
  if (options.optimize) {
@@ -1 +1 @@
1
- {"version":3,"file":"process.mjs","sourceRoot":"","sources":["../../../../src/pack/assets/process.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.mjs","sourceRoot":"","sources":["../../../../src/pack/assets/process.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,oCAAoC,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,yBAAyB,GAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvF,MAAM,+BAA+B,GAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACnE,MAAM,wBAAwB,GAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7E,MAAM,uBAAuB,GAAa,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChG,MAAM,uBAAuB,GAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnE,MAAM,mBAAmB,GAAa;IACrC,GAAG,yBAAyB;IAC5B,GAAG,+BAA+B;IAClC,GAAG,wBAAwB;IAC3B,GAAG,uBAAuB;IAC1B,GAAG,uBAAuB;CAC1B,CAAC;AAUF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAiC;IACrF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAEpD,IAAI,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,OAAO;IACR,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjD,OAAO;IACR,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC;YACJ,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,kBAAkB;QACnB,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEzC,SAAS,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAEjF,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAEvD,IAAI,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE;QACjC,OAAO,EAAE,oBAAoB,YAAY,EAAE;KAC3C,CAAC,CAAC;IAEH,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEvC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,iBAAiB,CAAC,SAAS,EAAE;YAClC,KAAK,EAAE,SAAS;YAChB,GAAG,OAAO;SACV,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,MAAM,sBAAsB,CAAC,SAAS,EAAE;gBACvC,GAAG,OAAO;gBACV,KAAK,EAAE,SAAS;aAChB,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,uBAAuB,CAAC,SAAS,EAAE;gBACxC,GAAG,OAAO;gBACV,KAAK,EAAE,SAAS;aAChB,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAClC,MAAM,oCAAoC,CAAC,SAAS,EAAE;gBACrD,GAAG,OAAO;gBACV,KAAK,EAAE,SAAS;aAChB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;AACF,CAAC"}
@@ -54,11 +54,9 @@ export async function processExportedTexture(absolutePath, options) {
54
54
  console.error(`Failed to export image scaled image "${finalName}"`);
55
55
  }
56
56
  }
57
- if (options.compressedTexturesEnabled) {
58
- await compressFileToKtx(finalPath, {
59
- ...options,
60
- });
61
- }
57
+ await compressFileToKtx(finalPath, {
58
+ ...options,
59
+ });
62
60
  }
63
61
  }
64
62
  //# sourceMappingURL=texture.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"texture.mjs","sourceRoot":"","sources":["../../../../src/pack/assets/texture.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,MAAM,UAAU,6BAA6B,CAAC,SAAiB;IAC9D,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,qCAAqC,CAAC,CAAC;AACzE,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,YAAoB,EAAE,OAAuC;IACzG,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAE5D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC,KAAK,CAAC,qCAAqC,YAAY,+BAA+B,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAE/B,MAAM,YAAY,GAAG,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,IAAI,MAAM,KAAK,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAOlG,MAAM,cAAc,GAA6B,EAAE,CAAC;IAEpD,IAAI,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,SAAS,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,YAAY,EAAE,CAAC;QAClB,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACxC,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,IAAI,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,SAAS,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,YAAY,EAAE,CAAC;QAClB,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACxC,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,GAAG,oBAAoB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QACrF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;QAEzD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAEpF,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAEtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,SAAS,GAAG,CAAC,CAAC;gBAEtD,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE;oBACjC,OAAO,EAAE,4BAA4B,SAAS,GAAG;iBACjD,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,wCAAwC,SAAS,GAAG,CAAC,CAAC;YACrE,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC;YACvC,MAAM,iBAAiB,CAAC,SAAS,EAAE;gBAClC,GAAG,OAAO;aACV,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"texture.mjs","sourceRoot":"","sources":["../../../../src/pack/assets/texture.mts"],"names":[],"mappings":"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"}
@@ -5,8 +5,9 @@ import cliSpinners from "cli-spinners";
5
5
  import { getProjectDir, normalizedGlob } from "../tools/fs.mjs";
6
6
  import { locatePVRTexTool, setPVRTexToolAbsolutePath } from "../tools/ktx.mjs";
7
7
  import { ensureSceneDirectories, readSceneDirectories } from "../tools/scene.mjs";
8
- import { createAssets } from "./assets/assets.mjs";
9
8
  import { createBabylonScene } from "./scene.mjs";
9
+ import { createAssets } from "./assets/assets.mjs";
10
+ import { createScriptsFile } from "./scripts.mjs";
10
11
  import { createGeometryFiles } from "./geometry.mjs";
11
12
  export async function pack(projectDir, options) {
12
13
  projectDir = getProjectDir(projectDir);
@@ -58,6 +59,10 @@ export async function pack(projectDir, options) {
58
59
  baseAssetsDir,
59
60
  outputAssetsDir,
60
61
  exportedAssets,
62
+ onProgress: (progress) => {
63
+ assetsLog.text = `Packing assets... ${progress.toFixed(2)}%`;
64
+ options.onProgress?.(progress);
65
+ },
61
66
  });
62
67
  assetsLog.succeed("Packed assets");
63
68
  options.onStepChanged?.("assets", {
@@ -81,6 +86,9 @@ export async function pack(projectDir, options) {
81
86
  },
82
87
  });
83
88
  for (const sceneFile of sceneFiles) {
89
+ if (options.cancellationToken?.isCanceled) {
90
+ break;
91
+ }
84
92
  const sceneFilename = basename(sceneFile);
85
93
  const sceneName = basename(sceneFile, extname(sceneFile));
86
94
  const sceneLog = ora(`Packing ${sceneFilename}...`);
@@ -126,14 +134,29 @@ export async function pack(projectDir, options) {
126
134
  encoding: "utf-8",
127
135
  spaces: "\t",
128
136
  });
129
- // Clean
130
- const publicFiles = await normalizedGlob(join(publicDir, "**/*"), {
131
- nodir: true,
137
+ // Configure scripts
138
+ const scriptsLog = ora("Collecting scripts...");
139
+ scriptsLog.spinner = cliSpinners.dots14;
140
+ scriptsLog.start();
141
+ options.onStepChanged?.("scripts", {
142
+ message: "Collecting scripts...",
132
143
  });
133
- publicFiles.forEach((file) => {
134
- if (!exportedAssets.includes(file.toString())) {
135
- fs.remove(file);
136
- }
144
+ await createScriptsFile(projectDir);
145
+ scriptsLog.succeed("Collected scripts");
146
+ options.onStepChanged?.("scripts", {
147
+ success: true,
148
+ message: "Collected scripts",
137
149
  });
150
+ // Clean
151
+ if (options.optimize) {
152
+ const publicFiles = await normalizedGlob(join(publicDir, "**/*"), {
153
+ nodir: true,
154
+ });
155
+ publicFiles.forEach((file) => {
156
+ if (!exportedAssets.includes(file.toString())) {
157
+ fs.remove(file);
158
+ }
159
+ });
160
+ }
138
161
  }
139
162
  //# sourceMappingURL=pack.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pack.mjs","sourceRoot":"","sources":["../../../src/pack/pack.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack.mjs","sourceRoot":"","sources":["../../../src/pack/pack.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,WAAW,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAkBrD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAkB,EAAE,OAAqB;IACnE,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAEvC,6BAA6B;IAC7B,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,wBAAwB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;IAE3G,IAAI,oBAAoB,GAAG;QAC1B,yBAAyB,EAAE,KAAK;KAChC,CAAC;IAEF,IAAI,wBAAwB,EAAE,CAAC;QAC9B,oBAAoB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,uBAAuB;IACvB,IAAI,oBAAoB,CAAC,yBAAyB,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACpC,yBAAyB,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACP,MAAM,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAEnD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9B,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAElD,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAEpC,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,IAAI,KAAK,GAA2B,EAAE,CAAC;IACvC,IAAI,CAAC;QACJ,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,kBAAkB;IACnB,CAAC;IAED,cAAc;IACd,MAAM,SAAS,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3C,SAAS,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;IACvC,SAAS,CAAC,KAAK,EAAE,CAAC;IAElB,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE;QACjC,OAAO,EAAE,mBAAmB;KAC5B,CAAC,CAAC;IAEH,MAAM,YAAY,CAAC;QAClB,GAAG,OAAO;QACV,GAAG,oBAAoB;QACvB,KAAK;QACL,UAAU;QACV,SAAS;QACT,aAAa;QACb,eAAe;QACf,cAAc;QACd,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACxB,SAAS,CAAC,IAAI,GAAG,qBAAqB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7D,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;KACD,CAAC,CAAC;IAEH,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACnC,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE;QACjC,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,eAAe;KACxB,CAAC,CAAC;IAEH,qCAAqC;IACrC,IAAI,2BAA2B,GAAG,OAAO,CAAC;IAC1C,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,kDAAkD,CAAC,CAAC,CAAC;QACpG,2BAA2B,GAAG,GAAG,CAAC,OAAO,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,kBAAkB;IACnB,CAAC;IAED,cAAc;IACd,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,GAAG,eAAe,OAAO,EAAE;QAClE,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE;YACP,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,KAAK,QAAQ;SACpF;KACD,CAAC,CAAC;IAEH,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;YAC3C,MAAM;QACP,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,aAAa,KAAK,CAAC,CAAC;QACpD,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;QACtC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEjB,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAExC,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;QAEjE,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE;YACjC,OAAO,EAAE,iBAAiB,SAAS,KAAK;SACxC,CAAC,CAAC;QAEH,MAAM,kBAAkB,CAAC;YACxB,GAAG,OAAO;YACV,GAAG,oBAAoB;YACvB,MAAM;YACN,WAAW;YACX,SAAS;YACT,SAAS;YACT,SAAS;YACT,cAAc;YACd,2BAA2B;SAC3B,CAAC,CAAC;QAEH,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE;YACjC,OAAO,EAAE,iBAAiB,SAAS,gBAAgB;SACnD,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,mBAAmB,CAAC;YACzB,WAAW;YACX,SAAS;YACT,SAAS;YACT,SAAS;YACT,cAAc;YACd,2BAA2B;SAC3B,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,UAAU,aAAa,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE;QACjC,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,eAAe;KACxB,CAAC,CAAC;IAEH,aAAa;IACb,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,2BAA2B,CAAC,EAAE,KAAK,EAAE;QACxE,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,UAAU,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAChD,UAAU,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;IACxC,UAAU,CAAC,KAAK,EAAE,CAAC;IAEnB,OAAO,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE;QAClC,OAAO,EAAE,uBAAuB;KAChC,CAAC,CAAC;IAEH,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEpC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAExC,OAAO,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE;QAClC,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,mBAAmB;KAC5B,CAAC,CAAC;IAEH,QAAQ;IACR,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;YACjE,KAAK,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC/C,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;AACF,CAAC"}
@@ -5,14 +5,22 @@ import { extractNodeMaterialTextures } from "./assets/material.mjs";
5
5
  import { getExtractedTextureOutputPath } from "./assets/texture.mjs";
6
6
  import { extractNodeParticleSystemSetTextures, extractParticleSystemTextures } from "./assets/particle-system.mjs";
7
7
  export async function createBabylonScene(options) {
8
+ const lights = [];
8
9
  const meshes = [];
10
+ const cameras = [];
9
11
  const materials = [];
12
+ const skeletons = [];
10
13
  const transformNodes = [];
14
+ const particleSystems = [];
15
+ const shadowGenerators = [];
11
16
  const morphTargetManagers = [];
12
17
  // Meshes
13
- await Promise.all(options.directories.meshesFiles.map(async (file) => {
18
+ const meshesResult = await Promise.all(options.directories.meshesFiles.map(async (file) => {
14
19
  const data = await fs.readJSON(join(options.sceneFile, "meshes", file));
15
20
  const mesh = data.meshes[0];
21
+ if (mesh.metadata?.doNotSerialize) {
22
+ return null;
23
+ }
16
24
  if (mesh.delayLoadingFile) {
17
25
  mesh.delayLoadingFile = join(options.sceneName, basename(mesh.delayLoadingFile));
18
26
  }
@@ -24,19 +32,37 @@ export async function createBabylonScene(options) {
24
32
  instance.parentId = instance.metadata.parentId;
25
33
  }
26
34
  });
35
+ mesh.instances = mesh.instances?.filter((instance) => {
36
+ if (instance.metadata?.doNotSerialize) {
37
+ return null;
38
+ }
39
+ return instance;
40
+ });
27
41
  if (data.basePoseMatrix) {
28
42
  mesh.basePoseMatrix = data.basePoseMatrix;
29
43
  }
30
- meshes.push(mesh);
44
+ let effectiveMaterial;
31
45
  data.materials?.forEach((material) => {
32
46
  const existingMaterial = materials.find((m) => m.id === material.id);
33
47
  if (!existingMaterial) {
34
- materials.push(material);
48
+ effectiveMaterial = material;
35
49
  }
36
50
  });
51
+ return {
52
+ mesh,
53
+ effectiveMaterial,
54
+ };
37
55
  }));
56
+ meshesResult.forEach((result) => {
57
+ if (result) {
58
+ meshes.push(result.mesh);
59
+ if (result.effectiveMaterial) {
60
+ materials.push(result.effectiveMaterial);
61
+ }
62
+ }
63
+ });
38
64
  // Morph targets
39
- await Promise.all(options.directories.morphTargetManagerFiles.map(async (file) => {
65
+ const morphTargetResult = await Promise.all(options.directories.morphTargetManagerFiles.map(async (file) => {
40
66
  const data = await fs.readJSON(join(options.sceneFile, "morphTargetManagers", file));
41
67
  if (options.babylonjsEditorToolsVersion >= "5.2.6") {
42
68
  data.targets.forEach((target) => {
@@ -77,29 +103,76 @@ export async function createBabylonScene(options) {
77
103
  delete target.uv2sOffset;
78
104
  }));
79
105
  }
80
- morphTargetManagers.push(data);
106
+ return data;
81
107
  }));
108
+ morphTargetManagers.push(...morphTargetResult);
82
109
  // Transform nodes
83
- await Promise.all(options.directories.nodesFiles.map(async (file) => {
110
+ const transformNodesResult = await Promise.all(options.directories.nodesFiles.map(async (file) => {
84
111
  const data = await fs.readJSON(join(options.sceneFile, "nodes", file));
112
+ if (data.metadata?.doNotSerialize) {
113
+ return null;
114
+ }
85
115
  if (data.metadata?.parentId) {
86
116
  data.parentId = data.metadata.parentId;
87
117
  }
88
- transformNodes.push(data);
118
+ return data;
89
119
  }));
90
- await Promise.all(options.directories.spriteManagerFiles.map(async (file) => {
120
+ transformNodes.push(...transformNodesResult.filter((transformNode) => {
121
+ return transformNode !== null;
122
+ }));
123
+ const spriteManagersResult = await Promise.all(options.directories.spriteManagerFiles.map(async (file) => {
91
124
  const data = await fs.readJSON(join(options.sceneFile, "sprite-managers", file));
125
+ if (data.metadata?.doNotSerialize) {
126
+ return null;
127
+ }
92
128
  if (data.metadata?.parentId) {
93
129
  data.parentId = data.metadata.parentId;
94
130
  }
95
- transformNodes.push(data);
131
+ return data;
96
132
  }));
97
- await Promise.all(options.directories.spriteMapFiles.map(async (file) => {
133
+ transformNodes.push(...spriteManagersResult.filter((spriteManager) => {
134
+ return spriteManager !== null;
135
+ }));
136
+ const spriteMapsResult = await Promise.all(options.directories.spriteMapFiles.map(async (file) => {
98
137
  const data = await fs.readJSON(join(options.sceneFile, "sprite-maps", file));
138
+ if (data.metadata?.doNotSerialize) {
139
+ return null;
140
+ }
99
141
  if (data.metadata?.parentId) {
100
142
  data.parentId = data.metadata.parentId;
101
143
  }
102
- transformNodes.push(data);
144
+ return data;
145
+ }));
146
+ transformNodes.push(...spriteMapsResult.filter((spriteMap) => {
147
+ return spriteMap !== null;
148
+ }));
149
+ // Lights
150
+ const lightsResult = await Promise.all(options.directories.lightsFiles.map(async (file) => {
151
+ const data = await fs.readJSON(join(options.sceneFile, "lights", file));
152
+ if (data.metadata?.doNotSerialize) {
153
+ return null;
154
+ }
155
+ if (data.metadata?.parentId) {
156
+ data.parentId = data.metadata.parentId;
157
+ }
158
+ return data;
159
+ }));
160
+ lights.push(...lightsResult.filter((light) => {
161
+ return light !== null;
162
+ }));
163
+ // Cameras
164
+ const camerasResult = await Promise.all(options.directories.cameraFiles.map(async (file) => {
165
+ const data = await fs.readJSON(join(options.sceneFile, "cameras", file));
166
+ if (data.metadata?.doNotSerialize) {
167
+ return null;
168
+ }
169
+ if (data.metadata?.parentId) {
170
+ data.parentId = data.metadata.parentId;
171
+ }
172
+ return data;
173
+ }));
174
+ cameras.push(...camerasResult.filter((camera) => {
175
+ return camera !== null;
103
176
  }));
104
177
  // Extract materials
105
178
  const extractedTexturesOutputPath = getExtractedTextureOutputPath(options.publicDir);
@@ -122,9 +195,12 @@ export async function createBabylonScene(options) {
122
195
  }));
123
196
  }
124
197
  }));
125
- // Particle systems
126
- const particleSystems = await Promise.all(options.directories.particleSystemFiles.map(async (file) => {
198
+ // Extract particle systems
199
+ const particleSystemsResult = await Promise.all(options.directories.particleSystemFiles.map(async (file) => {
127
200
  const data = await fs.readJSON(join(options.sceneFile, "particleSystems", file));
201
+ if (data.metadata?.doNotSerialize) {
202
+ return null;
203
+ }
128
204
  const result = await extractParticleSystemTextures(data, {
129
205
  extractedTexturesOutputPath,
130
206
  });
@@ -141,9 +217,15 @@ export async function createBabylonScene(options) {
141
217
  }
142
218
  return data;
143
219
  }));
144
- // Node particle system sets
145
- await Promise.all(options.directories.nodeParticleSystemSetFiles.map(async (file) => {
220
+ particleSystems.push(...particleSystemsResult.filter((ps) => {
221
+ return ps !== null;
222
+ }));
223
+ // Extract node particle system sets
224
+ const nodeParticleSystemSetsResult = await Promise.all(options.directories.nodeParticleSystemSetFiles.map(async (file) => {
146
225
  const data = await fs.readJSON(join(options.sceneFile, "nodeParticleSystemSets", file));
226
+ if (data.metadata?.doNotSerialize) {
227
+ return null;
228
+ }
147
229
  if (data.metadata?.parentId) {
148
230
  data.parentId = data.metadata.parentId;
149
231
  }
@@ -163,17 +245,62 @@ export async function createBabylonScene(options) {
163
245
  }
164
246
  }));
165
247
  }
166
- meshes.push(data);
248
+ return data;
249
+ }));
250
+ meshes.push(...nodeParticleSystemSetsResult.filter((node) => {
251
+ return node !== null;
252
+ }));
253
+ // Shadow generators
254
+ const shadowGeneratorsResult = await Promise.all(options.directories.shadowGeneratorFiles.map(async (file) => {
255
+ const data = await fs.readJSON(join(options.sceneFile, "shadowGenerators", file));
256
+ const light = lights.find((l) => l.id === data.lightId);
257
+ if (!light) {
258
+ return null;
259
+ }
260
+ return data;
261
+ }));
262
+ shadowGenerators.push(...shadowGeneratorsResult.filter((sg) => {
263
+ return sg !== null;
264
+ }));
265
+ // Skeletons
266
+ const skeletonsResult = await Promise.all(options.directories.skeletonFiles.map(async (file) => {
267
+ const data = await fs.readJSON(join(options.sceneFile, "skeletons", file));
268
+ const mesh = meshes.find((m) => m.skeletonId === data.id);
269
+ if (!mesh) {
270
+ return null;
271
+ }
272
+ return data;
273
+ }));
274
+ skeletons.push(...skeletonsResult.filter((skeleton) => {
275
+ return skeleton !== null;
167
276
  }));
168
277
  const scene = {
169
278
  autoClear: true,
170
- physicsEnabled: true,
279
+ clearColor: options.config.clearColor,
280
+ ambientColor: options.config.ambientColor,
281
+ gravity: options.config.gravity ?? [0, -9.81, 0],
171
282
  collisionsEnabled: true,
172
283
  useRightHandedSystem: false,
284
+ fogMode: options.config.fog.fogMode,
285
+ fogColor: options.config.fog.fogColor,
286
+ fogStart: options.config.fog.fogStart,
287
+ fogEnd: options.config.fog.fogEnd,
288
+ fogDensity: options.config.fog.fogDensity,
289
+ physicsEnabled: true,
290
+ physicsGravity: options.config.physics.gravity,
173
291
  physicsEngine: "HavokPlugin",
174
- iblIntensity: 1,
175
- clearColor: options.config.clearColor,
176
- ambientColor: options.config.ambientColor,
292
+ metadata: options.config.metadata,
293
+ morphTargetManagers,
294
+ lights,
295
+ cameras,
296
+ animations: options.config.animations,
297
+ materials,
298
+ multiMaterials: [],
299
+ environmentTexture: options.config.environment.environmentTexture,
300
+ environmentIntensity: options.config.environment.environmentIntensity,
301
+ iblIntensity: options.config.environment.iblIntensity ?? 1,
302
+ skeletons,
303
+ transformNodes,
177
304
  geometries: {
178
305
  boxes: [],
179
306
  spheres: [],
@@ -184,53 +311,32 @@ export async function createBabylonScene(options) {
184
311
  torusKnots: [],
185
312
  vertexData: [],
186
313
  },
187
- gravity: options.config.gravity ?? [0, -9.81, 0],
188
- fogColor: options.config.fog.fogColor,
189
- fogStart: options.config.fog.fogStart,
190
- fogEnd: options.config.fog.fogEnd,
191
- fogDensity: options.config.fog.fogDensity,
192
- fogMode: options.config.fog.fogMode,
193
- physicsGravity: options.config.physics.gravity,
194
- environmentIntensity: options.config.environment.environmentIntensity,
195
- environmentTexture: options.config.environment.environmentTexture,
196
- metadata: options.config.metadata,
197
- animations: options.config.animations,
198
- postProcesses: [],
199
- multiMaterials: [],
200
- spriteManagers: [],
201
- reflectionProbes: [],
202
314
  meshes,
203
- materials,
204
- morphTargetManagers,
205
- transformNodes,
206
315
  particleSystems,
207
- animationGroups: await Promise.all(options.directories.animationGroupFiles.map(async (file) => {
208
- return fs.readJSON(join(options.sceneFile, "animationGroups", file));
209
- })),
210
- skeletons: await Promise.all(options.directories.skeletonFiles.map(async (file) => {
211
- return fs.readJSON(join(options.sceneFile, "skeletons", file));
212
- })),
213
- cameras: await Promise.all(options.directories.cameraFiles.map(async (file) => {
214
- const data = await fs.readJSON(join(options.sceneFile, "cameras", file));
215
- if (data.metadata?.parentId) {
216
- data.parentId = data.metadata.parentId;
217
- }
218
- return data;
219
- })),
220
- lights: await Promise.all(options.directories.lightsFiles.map(async (file) => {
221
- const data = await fs.readJSON(join(options.sceneFile, "lights", file));
222
- if (data.metadata?.parentId) {
223
- data.parentId = data.metadata.parentId;
224
- }
225
- return data;
226
- })),
227
- shadowGenerators: await Promise.all(options.directories.shadowGeneratorFiles.map(async (file) => {
228
- return fs.readJSON(join(options.sceneFile, "shadowGenerators", file));
229
- })),
230
316
  sounds: await Promise.all(options.directories.soundFiles.map(async (file) => {
231
317
  return fs.readJSON(join(options.sceneFile, "sounds", file));
232
318
  })),
319
+ shadowGenerators,
320
+ animationGroups: await Promise.all(options.directories.animationGroupFiles.map(async (file) => {
321
+ return fs.readJSON(join(options.sceneFile, "animationGroups", file));
322
+ })),
323
+ postProcesses: [],
324
+ spriteManagers: [],
325
+ reflectionProbes: [],
233
326
  };
327
+ // Resolve parenting for mesh instances.
328
+ const allNodes = [...scene.meshes, ...scene.cameras, ...scene.lights, ...scene.transformNodes, ...scene.meshes.map((m) => m.instances ?? []).flat()];
329
+ allNodes.forEach((node) => {
330
+ if (node.parentId !== undefined && node.parentInstanceIndex !== undefined) {
331
+ const effectiveMesh = scene.meshes.find((mesh) => {
332
+ return mesh.instances?.find((instance) => instance.uniqueId === node.parentId);
333
+ });
334
+ if (effectiveMesh) {
335
+ node.parentId = effectiveMesh.uniqueId;
336
+ }
337
+ }
338
+ });
339
+ // Write final scene file.
234
340
  const destination = join(options.publicDir, `${options.sceneName}.babylon`);
235
341
  await fs.writeJSON(destination, scene, {
236
342
  encoding: "utf-8",