babylonjs-editor-tools 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.applyDecorators = void 0;
4
- function applyDecorators(scene, object, instance) {
4
+ const advancedDynamicTexture_1 = require("@babylonjs/gui/2D/advancedDynamicTexture");
5
+ function applyDecorators(scene, object, instance, rootUrl) {
5
6
  const ctor = instance.constructor;
6
7
  if (!ctor) {
7
8
  return;
@@ -15,6 +16,27 @@ function applyDecorators(scene, object, instance) {
15
16
  const descendant = object.getDescendants?.(params.directDescendantsOnly, (node) => node.name === params.nodeName)[0];
16
17
  instance[params.propertyKey.toString()] = descendant ?? null;
17
18
  });
19
+ // soundFromScene
20
+ ctor._SoundsFromScene?.forEach((params) => {
21
+ const sound = scene.getSoundByName?.(params.soundName);
22
+ instance[params.propertyKey.toString()] = sound ?? null;
23
+ });
24
+ // @guiFromAsset
25
+ ctor._GuiFromAsset?.forEach(async (params) => {
26
+ const guiUrl = `${rootUrl}assets/${params.pathInAssets}`;
27
+ try {
28
+ const response = await fetch(guiUrl);
29
+ const data = await response.json();
30
+ const gui = advancedDynamicTexture_1.AdvancedDynamicTexture.CreateFullscreenUI(data.name, true, scene);
31
+ gui.parseSerializedObject(data.content, false);
32
+ instance[params.propertyKey.toString()] = gui;
33
+ params.onGuiCreated?.(instance, gui);
34
+ }
35
+ catch (e) {
36
+ console.error(`Failed to load GUI from asset: ${guiUrl}`);
37
+ throw e;
38
+ }
39
+ });
18
40
  }
19
41
  exports.applyDecorators = applyDecorators;
20
42
  //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/decorators/apply.ts"],"names":[],"mappings":";;;AAGA,qFAAkF;AAgClF,SAAgB,eAAe,CAAC,KAAY,EAAE,MAAW,EAAE,QAAa,EAAE,OAAe;IACrF,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAkC,CAAC;IACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO;IACX,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAI,MAAwB,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACxI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,iBAAiB;IACjB,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvD,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,gBAAgB;IAChB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,GAAG,OAAO,UAAU,MAAM,CAAC,YAAY,EAAE,CAAC;QAEzD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEnC,MAAM,GAAG,GAAG,+CAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9E,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAE/C,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC;YAC9C,MAAM,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;YAC1D,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAzCD,0CAyCC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.guiFromAsset = void 0;
4
+ /**
5
+ * Makes the decorated property linked to the GUI created from the given asset file.
6
+ * Once the script is instantiated, the reference to the gui texture is created from the asset file
7
+ * and assigned to the property. Gui link cant' be used in constructor and its creation is asynchronous.
8
+ * @param pathInAssets defines the relative path (as it is in the assets browser in the editor) to the .gui file.
9
+ * @param onGuiCreated defines the optional callback that is called when the GUI is created.
10
+ * @example
11
+ * @guiFromAsset<MyScriptClass>("ui.gui", (instance, gui) => instance._onGuiLoaded(gui))
12
+ * private _ui!: AdvancedDynamicTexture;
13
+ */
14
+ function guiFromAsset(pathInAssets, onGuiCreated) {
15
+ return function (target, propertyKey) {
16
+ const ctor = target.constructor;
17
+ ctor._GuiFromAsset ??= [];
18
+ ctor._GuiFromAsset.push({ propertyKey, pathInAssets, onGuiCreated });
19
+ };
20
+ }
21
+ exports.guiFromAsset = guiFromAsset;
22
+ //# sourceMappingURL=gui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gui.js","sourceRoot":"","sources":["../../src/decorators/gui.ts"],"names":[],"mappings":";;;AAIA;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAI,YAAoB,EAAE,YAAoE;IACtH,OAAO,UAAU,MAAW,EAAE,WAA4B;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAkC,CAAC;QAEvD,IAAI,CAAC,aAAa,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC;AACN,CAAC;AAPD,oCAOC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../src/decorators/scene.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,QAAgB;IAC1C,OAAO,UAAU,MAAW,EAAE,WAA4B;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAkC,CAAC;QAEvD,IAAI,CAAC,eAAe,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC;AACN,CAAC;AAPD,sCAOC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,QAAgB,EAAE,wBAAiC,KAAK;IACxF,OAAO,UAAU,MAAW,EAAE,WAA4B;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAkC,CAAC;QAEvD,IAAI,CAAC,qBAAqB,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC;AACN,CAAC;AAPD,kDAOC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.soundFromScene = void 0;
4
+ /**
5
+ * Makes the decorated property linked to the sound that has the given name.
6
+ * Once the script is instantiated, the reference to the sound is retrieved from the scene
7
+ * and assigned to the property. Node link cant' be used in constructor.
8
+ * This can be used only by scripts using Classes.
9
+ * @param soundName defines the name of the sound to retrieve in scene.
10
+ */
11
+ function soundFromScene(soundName) {
12
+ return function (target, propertyKey) {
13
+ const ctor = target.constructor;
14
+ ctor._SoundsFromScene ??= [];
15
+ ctor._SoundsFromScene.push({ propertyKey, soundName });
16
+ };
17
+ }
18
+ exports.soundFromScene = soundFromScene;
19
+ //# sourceMappingURL=sound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound.js","sourceRoot":"","sources":["../../src/decorators/sound.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,SAAiB;IAC5C,OAAO,UAAU,MAAW,EAAE,WAA4B;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAkC,CAAC;QAEvD,IAAI,CAAC,gBAAgB,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC;AACN,CAAC;AAPD,wCAOC"}
package/build/guards.js CHANGED
@@ -1,14 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTexture = exports.isMesh = void 0;
3
+ exports.isTexture = exports.isGroundMesh = exports.isMesh = void 0;
4
4
  /**
5
5
  * Returns wether or not the given object is a Mesh.
6
6
  * @param object defines the reference to the object to test its class name.
7
7
  */
8
8
  function isMesh(object) {
9
- return object.getClassName?.() === "Mesh";
9
+ switch (object.getClassName?.()) {
10
+ case "Mesh":
11
+ case "GroundMesh":
12
+ return true;
13
+ }
14
+ return false;
10
15
  }
11
16
  exports.isMesh = isMesh;
17
+ /**
18
+ * Returns wether or not the given object is a GroundMesh.
19
+ * @param object defines the reference to the object to test its class name.
20
+ */
21
+ function isGroundMesh(object) {
22
+ return object.getClassName?.() === "GroundMesh";
23
+ }
24
+ exports.isGroundMesh = isGroundMesh;
12
25
  /**
13
26
  * Returns wether or not the given object is a Texture.
14
27
  * @param object defines the reference to the object to test its class name.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":";;;AAIA;;;GAGG;AACH,SAAgB,MAAM,CAAC,MAAW;IAC9B,QAAQ,MAAM,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC;QACZ,KAAK,YAAY;YACb,OAAO,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AARD,wBAQC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,MAAW;IACpC,OAAO,MAAM,CAAC,YAAY,EAAE,EAAE,KAAK,YAAY,CAAC;AACpD,CAAC;AAFD,oCAEC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,MAAW;IACjC,OAAO,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,SAAS,CAAC;AAClD,CAAC;AAFD,8BAEC"}
package/build/index.js CHANGED
@@ -20,4 +20,7 @@ __exportStar(require("./rendering/ssr"), exports);
20
20
  __exportStar(require("./rendering/motion-blur"), exports);
21
21
  __exportStar(require("./rendering/default-pipeline"), exports);
22
22
  __exportStar(require("./decorators/scene"), exports);
23
+ __exportStar(require("./decorators/gui"), exports);
24
+ __exportStar(require("./decorators/sound"), exports);
25
+ __exportStar(require("./script"), exports);
23
26
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AAEzB,mDAAiC;AACjC,kDAAgC;AAChC,0DAAwC;AACxC,+DAA6C;AAE7C,qDAAmC;AACnC,mDAAiC;AACjC,qDAAmC;AAEnC,2CAAyB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light.js","sourceRoot":"","sources":["../src/light.ts"],"names":[],"mappings":";;;AACA,mEAA4D;AAC5D,gGAA6F;AAE7F,SAAgB,qCAAqC,CAAC,KAAY;IAC9D,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO;QACX,CAAC;QAED,SAAS,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,qBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAC3F,OAAO,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAZD,sFAYC;AAEM,KAAK,UAAU,6BAA6B,CAAC,KAAY;IAC5D,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE;QACxB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,CAAC;YAC7D,IAAI,SAAS,EAAE,CAAC;gBACZ,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,WAAW,IAAI,yCAAmB,CAAC,+BAA+B,CAAC;YAC/G,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AATD,sEASC"}
package/build/loader.js CHANGED
@@ -7,11 +7,16 @@ const ssao_1 = require("./rendering/ssao");
7
7
  const motion_blur_1 = require("./rendering/motion-blur");
8
8
  const default_pipeline_1 = require("./rendering/default-pipeline");
9
9
  const apply_1 = require("./decorators/apply");
10
+ const physics_1 = require("./physics");
10
11
  const light_1 = require("./light");
11
12
  require("./texture");
12
13
  async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, quality = "high") {
13
14
  scene.loadingQuality = quality;
14
15
  await sceneLoader_1.SceneLoader.AppendAsync(rootUrl, sceneFilename, scene, null, ".babylon");
16
+ // Wait until scene is ready.
17
+ while (!scene.isReady()) {
18
+ await new Promise((resolve) => setTimeout(resolve, 150));
19
+ }
15
20
  (0, light_1.configureShadowMapRenderListPredicate)(scene);
16
21
  (0, light_1.configureShadowMapRefreshRate)(scene);
17
22
  if (scene.metadata?.rendering) {
@@ -29,14 +34,23 @@ async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, quality = "h
29
34
  (0, default_pipeline_1.parseDefaultRenderingPipeline)(scene, camera, scene.metadata.rendering.defaultRenderingPipeline);
30
35
  }
31
36
  }
32
- loadScriptsFor(scene, scene, scriptsMap);
33
- scene.transformNodes.forEach((transformNode) => loadScriptsFor(scene, transformNode, scriptsMap));
34
- scene.meshes.forEach((mesh) => loadScriptsFor(scene, mesh, scriptsMap));
35
- scene.lights.forEach((light) => loadScriptsFor(scene, light, scriptsMap));
36
- scene.cameras.forEach((camera) => loadScriptsFor(scene, camera, scriptsMap));
37
+ loadScriptsFor(scene, scene, scriptsMap, rootUrl);
38
+ scene.transformNodes.forEach((transformNode) => {
39
+ loadScriptsFor(scene, transformNode, scriptsMap, rootUrl);
40
+ });
41
+ scene.meshes.forEach((mesh) => {
42
+ (0, physics_1.configurePhysicsAggregate)(mesh);
43
+ loadScriptsFor(scene, mesh, scriptsMap, rootUrl);
44
+ });
45
+ scene.lights.forEach((light) => {
46
+ loadScriptsFor(scene, light, scriptsMap, rootUrl);
47
+ });
48
+ scene.cameras.forEach((camera) => {
49
+ loadScriptsFor(scene, camera, scriptsMap, rootUrl);
50
+ });
37
51
  }
38
52
  exports.loadScene = loadScene;
39
- function loadScriptsFor(scene, object, scriptsMap) {
53
+ function loadScriptsFor(scene, object, scriptsMap, rootUrl) {
40
54
  if (!object.metadata) {
41
55
  return;
42
56
  }
@@ -50,7 +64,7 @@ function loadScriptsFor(scene, object, scriptsMap) {
50
64
  }
51
65
  if (exports.default) {
52
66
  const instance = new exports.default(object);
53
- (0, apply_1.applyDecorators)(scene, object, instance);
67
+ (0, apply_1.applyDecorators)(scene, object, instance, rootUrl);
54
68
  if (instance.onStart) {
55
69
  scene.onBeforeRenderObservable.addOnce(() => instance.onStart());
56
70
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configurePhysicsAggregate = void 0;
4
+ const math_vector_1 = require("@babylonjs/core/Maths/math.vector");
5
+ const physicsAggregate_1 = require("@babylonjs/core/Physics/v2/physicsAggregate");
6
+ const guards_1 = require("./guards");
7
+ /**
8
+ * Parses and loads the physics aggregate data for the given mesh.
9
+ * @param mesh defines the reference to the mesh object.
10
+ */
11
+ function configurePhysicsAggregate(mesh) {
12
+ const data = mesh.metadata?.physicsAggregate;
13
+ if (!data) {
14
+ return;
15
+ }
16
+ const shapeType = data.shape.type;
17
+ const aggregate = new physicsAggregate_1.PhysicsAggregate(mesh, shapeType, {
18
+ mass: data.massProperties.mass,
19
+ mesh: (0, guards_1.isMesh)(mesh) ? mesh : undefined,
20
+ });
21
+ aggregate.body.setMassProperties({
22
+ mass: data.massProperties.mass,
23
+ inertia: data.massProperties.inertia ? math_vector_1.Vector3.FromArray(data.massProperties.inertia) : undefined,
24
+ centerOfMass: data.massProperties.centerOfMass ? math_vector_1.Vector3.FromArray(data.massProperties.centerOfMass) : undefined,
25
+ inertiaOrientation: data.massProperties.inertiaOrientation ? math_vector_1.Quaternion.FromArray(data.massProperties.inertiaOrientation) : undefined,
26
+ });
27
+ aggregate.shape.density = data.shape.density;
28
+ aggregate.body.setMotionType(data.body.motionType);
29
+ aggregate.shape.material = data.material;
30
+ mesh.metadata.physicsAggregate = undefined;
31
+ }
32
+ exports.configurePhysicsAggregate = configurePhysicsAggregate;
33
+ //# sourceMappingURL=physics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physics.js","sourceRoot":"","sources":["../src/physics.ts"],"names":[],"mappings":";;;AACA,mEAAwE;AACxE,kFAA+E;AAE/E,qCAAkC;AAElC;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,IAAkB;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO;IACX,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAElC,MAAM,SAAS,GAAG,IAAI,mCAAgB,CAAC,IAAI,EAAE,SAAS,EAAE;QACpD,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;QAC9B,IAAI,EAAE,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KACxC,CAAC,CAAC;IAEH,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;QAC9B,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QACjG,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QAChH,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,wBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS;KACxI,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC7C,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEzC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,SAAS,CAAC;AAC/C,CAAC;AAzBD,8DAyBC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-pipeline.js","sourceRoot":"","sources":["../../src/rendering/default-pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion-blur.js","sourceRoot":"","sources":["../../src/rendering/motion-blur.ts"],"names":[],"mappings":";;;AAEA,+FAA4F;AAE5F,IAAI,qBAAqB,GAAiC,IAAI,CAAC;AAE/D,SAAgB,wBAAwB;IACpC,OAAO,qBAAqB,CAAC;AACjC,CAAC;AAFD,4DAEC;AAED,SAAgB,4BAA4B;IACxC,IAAI,qBAAqB,EAAE,CAAC;QACxB,qBAAqB,CAAC,OAAO,EAAE,CAAC;QAChC,qBAAqB,GAAG,IAAI,CAAC;IACjC,CAAC;AACL,CAAC;AALD,oEAKC;AAED,SAAgB,2BAA2B,CAAC,KAAY,EAAE,MAAc;IACpE,qBAAqB,GAAG,IAAI,6CAAqB,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/F,qBAAqB,CAAC,cAAc,GAAG,GAAG,CAAC;IAC3C,qBAAqB,CAAC,aAAa,GAAG,IAAI,CAAC;IAE3C,OAAO,qBAAqB,CAAC;AACjC,CAAC;AAND,kEAMC;AAED,SAAgB,8BAA8B;IAC1C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,aAAa,EAAE,qBAAqB,CAAC,aAAa;QAClD,cAAc,EAAE,qBAAqB,CAAC,cAAc;QACpD,iBAAiB,EAAE,qBAAqB,CAAC,iBAAiB;KAC7D,CAAC;AACN,CAAC;AAVD,wEAUC;AAED,SAAgB,0BAA0B,CAAC,KAAY,EAAE,MAAc,EAAE,IAAS;IAC9E,IAAI,qBAAqB,EAAE,CAAC;QACxB,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,MAAM,WAAW,GAAG,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE/D,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC/C,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IACjD,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAEvD,OAAO,WAAW,CAAC;AACvB,CAAC;AAZD,gEAYC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssao.js","sourceRoot":"","sources":["../../src/rendering/ssao.ts"],"names":[],"mappings":";;;AAEA,0HAAuH;AAEvH,IAAI,qBAAqB,GAAkC,IAAI,CAAC;AAEhE,SAAgB,yBAAyB;IACrC,OAAO,qBAAqB,CAAC;AACjC,CAAC;AAFD,8DAEC;AAED,SAAgB,6BAA6B;IACzC,IAAI,qBAAqB,EAAE,CAAC;QACxB,qBAAqB,CAAC,OAAO,EAAE,CAAC;QAChC,qBAAqB,GAAG,IAAI,CAAC;IACjC,CAAC;AACL,CAAC;AALD,sEAKC;AAED,SAAgB,4BAA4B,CAAC,KAAY,EAAE,MAAc;IACrE,qBAAqB,GAAG,IAAI,+CAAsB,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACnG,qBAAqB,CAAC,OAAO,GAAG,CAAC,CAAC;IAElC,OAAO,qBAAqB,CAAC;AACjC,CAAC;AALD,oEAKC;AAED,SAAgB,+BAA+B;IAC3C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,MAAM,EAAE,qBAAqB,CAAC,MAAM;QACpC,aAAa,EAAE,qBAAqB,CAAC,aAAa;QAClD,OAAO,EAAE,qBAAqB,CAAC,OAAO;QACtC,IAAI,EAAE,qBAAqB,CAAC,IAAI;QAChC,UAAU,EAAE,qBAAqB,CAAC,UAAU;QAC5C,OAAO,EAAE,qBAAqB,CAAC,OAAO;QACtC,cAAc,EAAE,qBAAqB,CAAC,cAAc;QACpD,UAAU,EAAE,qBAAqB,CAAC,UAAU;QAC5C,gBAAgB,EAAE,qBAAqB,CAAC,gBAAgB;QACxD,eAAe,EAAE,qBAAqB,CAAC,eAAe;QACtD,kBAAkB,EAAE,qBAAqB,CAAC,kBAAkB;QAC5D,aAAa,EAAE,qBAAqB,CAAC,aAAa;KACrD,CAAC;AACN,CAAC;AAnBD,0EAmBC;AAED,SAAgB,2BAA2B,CAAC,KAAY,EAAE,MAAc,EAAE,IAAS;IAC/E,IAAI,qBAAqB,EAAE,CAAC;QACxB,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,MAAM,QAAQ,GAAG,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE7D,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC5C,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC1B,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC9C,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAClD,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAChD,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACtD,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAE5C,OAAO,QAAQ,CAAC;AACpB,CAAC;AArBD,kEAqBC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssr.js","sourceRoot":"","sources":["../../src/rendering/ssr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":""}
package/build/texture.js CHANGED
@@ -12,16 +12,25 @@ decorators_serialization_1.SerializationHelper._TextureParser = (sourceProperty,
12
12
  }
13
13
  const width = sourceProperty.metadata.baseSize.width;
14
14
  const height = sourceProperty.metadata.baseSize.height;
15
+ const isPowerOfTwo = width === (0, scalar_1.getPowerOfTwoUntil)(width) || height === (0, scalar_1.getPowerOfTwoUntil)(height);
15
16
  let suffix = "";
16
17
  switch (scene.loadingQuality) {
17
18
  case "medium":
18
- const midWidth = (0, scalar_1.getPowerOfTwoUntil)(width * 0.66);
19
- const midHeight = (0, scalar_1.getPowerOfTwoUntil)(height * 0.66);
19
+ let midWidth = (width * 0.66) >> 0;
20
+ let midHeight = (height * 0.66) >> 0;
21
+ if (isPowerOfTwo) {
22
+ midWidth = (0, scalar_1.getPowerOfTwoUntil)(midWidth);
23
+ midHeight = (0, scalar_1.getPowerOfTwoUntil)(midHeight);
24
+ }
20
25
  suffix = `_${midWidth}_${midHeight}`;
21
26
  break;
22
27
  case "low":
23
- const lowWidth = (0, scalar_1.getPowerOfTwoUntil)(width * 0.33);
24
- const lowHeight = (0, scalar_1.getPowerOfTwoUntil)(height * 0.33);
28
+ let lowWidth = (width * 0.33) >> 0;
29
+ let lowHeight = (height * 0.33) >> 0;
30
+ if (isPowerOfTwo) {
31
+ lowWidth = (0, scalar_1.getPowerOfTwoUntil)(lowWidth);
32
+ lowHeight = (0, scalar_1.getPowerOfTwoUntil)(lowHeight);
33
+ }
25
34
  suffix = `_${lowWidth}_${lowHeight}`;
26
35
  break;
27
36
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texture.js","sourceRoot":"","sources":["../src/texture.ts"],"names":[],"mappings":";;AAGA,4FAAoF;AAEpF,2CAAoD;AAEpD;;GAEG;AACH,MAAM,aAAa,GAAG,8CAAmB,CAAC,cAAc,CAAC;AAEzD,8CAAmB,CAAC,cAAc,GAAG,CAAC,cAAmB,EAAE,KAAY,EAAE,OAAe,EAAyB,EAAE;IAC/G,IAAI,KAAK,CAAC,cAAc,KAAK,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxE,OAAO,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;IACrD,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;IAEvD,MAAM,YAAY,GAAG,KAAK,KAAK,IAAA,2BAAkB,EAAC,KAAK,CAAC,IAAI,MAAM,KAAK,IAAA,2BAAkB,EAAC,MAAM,CAAC,CAAC;IAElG,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3B,KAAK,QAAQ;YACT,IAAI,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,SAAS,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,YAAY,EAAE,CAAC;gBACf,QAAQ,GAAG,IAAA,2BAAkB,EAAC,QAAQ,CAAC,CAAC;gBACxC,SAAS,GAAG,IAAA,2BAAkB,EAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,GAAG,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YACrC,MAAM;QAEV,KAAK,KAAK;YACN,IAAI,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,SAAS,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,YAAY,EAAE,CAAC;gBACf,QAAQ,GAAG,IAAA,2BAAkB,EAAC,QAAQ,CAAC,CAAC;gBACxC,SAAS,GAAG,IAAA,2BAAkB,EAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,GAAG,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YACrC,MAAM;IACd,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,IAAc,CAAC;IAE3C,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,GAAG,YAAY,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;IAE5D,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE3B,cAAc,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzC,OAAO,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scalar.js","sourceRoot":"","sources":["../../src/tools/scalar.ts"],"names":[],"mappings":";;;AAAA,SAAgB,kBAAkB,CAAC,KAAa;IAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,OAAO,IAAI,IAAI,KAAK,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,CAAC;IACf,CAAC;IAED,OAAO,IAAI,IAAI,CAAC,CAAC;AACrB,CAAC;AARD,gDAQC"}
@@ -1,4 +1,5 @@
1
1
  import { Scene } from "@babylonjs/core/scene";
2
+ import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
2
3
  export interface ISceneDecoratorData {
3
4
  _NodesFromScene: {
4
5
  nodeName: string;
@@ -9,5 +10,14 @@ export interface ISceneDecoratorData {
9
10
  propertyKey: string | Symbol;
10
11
  directDescendantsOnly: boolean;
11
12
  }[];
13
+ _SoundsFromScene: {
14
+ soundName: string;
15
+ propertyKey: string | Symbol;
16
+ }[];
17
+ _GuiFromAsset: {
18
+ pathInAssets: string;
19
+ onGuiCreated?: (instance: unknown, gui: AdvancedDynamicTexture) => unknown;
20
+ propertyKey: string | Symbol;
21
+ }[];
12
22
  }
13
- export declare function applyDecorators(scene: Scene, object: any, instance: any): void;
23
+ export declare function applyDecorators(scene: Scene, object: any, instance: any, rootUrl: string): void;
@@ -0,0 +1,12 @@
1
+ import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
2
+ /**
3
+ * Makes the decorated property linked to the GUI created from the given asset file.
4
+ * Once the script is instantiated, the reference to the gui texture is created from the asset file
5
+ * and assigned to the property. Gui link cant' be used in constructor and its creation is asynchronous.
6
+ * @param pathInAssets defines the relative path (as it is in the assets browser in the editor) to the .gui file.
7
+ * @param onGuiCreated defines the optional callback that is called when the GUI is created.
8
+ * @example
9
+ * @guiFromAsset<MyScriptClass>("ui.gui", (instance, gui) => instance._onGuiLoaded(gui))
10
+ * private _ui!: AdvancedDynamicTexture;
11
+ */
12
+ export declare function guiFromAsset<T>(pathInAssets: string, onGuiCreated?: (instance: T, gui: AdvancedDynamicTexture) => unknown): (target: any, propertyKey: string | Symbol) => void;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Makes the decorated property linked to the sound that has the given name.
3
+ * Once the script is instantiated, the reference to the sound is retrieved from the scene
4
+ * and assigned to the property. Node link cant' be used in constructor.
5
+ * This can be used only by scripts using Classes.
6
+ * @param soundName defines the name of the sound to retrieve in scene.
7
+ */
8
+ export declare function soundFromScene(soundName: string): (target: any, propertyKey: string | Symbol) => void;
@@ -1,10 +1,16 @@
1
1
  import { Mesh } from "@babylonjs/core/Meshes/mesh";
2
+ import { GroundMesh } from "@babylonjs/core/Meshes/groundMesh";
2
3
  import { Texture } from "@babylonjs/core/Materials/Textures/texture";
3
4
  /**
4
5
  * Returns wether or not the given object is a Mesh.
5
6
  * @param object defines the reference to the object to test its class name.
6
7
  */
7
8
  export declare function isMesh(object: any): object is Mesh;
9
+ /**
10
+ * Returns wether or not the given object is a GroundMesh.
11
+ * @param object defines the reference to the object to test its class name.
12
+ */
13
+ export declare function isGroundMesh(object: any): object is GroundMesh;
8
14
  /**
9
15
  * Returns wether or not the given object is a Texture.
10
16
  * @param object defines the reference to the object to test its class name.
@@ -4,3 +4,6 @@ export * from "./rendering/ssr";
4
4
  export * from "./rendering/motion-blur";
5
5
  export * from "./rendering/default-pipeline";
6
6
  export * from "./decorators/scene";
7
+ export * from "./decorators/gui";
8
+ export * from "./decorators/sound";
9
+ export * from "./script";
@@ -28,4 +28,4 @@ declare module "@babylonjs/core/scene" {
28
28
  }
29
29
  }
30
30
  export declare function loadScene(rootUrl: string, sceneFilename: string, scene: Scene, scriptsMap: ScriptMap, quality?: SceneLoaderQualitySelector): Promise<void>;
31
- export declare function loadScriptsFor(scene: Scene, object: any, scriptsMap: ScriptMap): void;
31
+ export declare function loadScriptsFor(scene: Scene, object: any, scriptsMap: ScriptMap, rootUrl: string): void;
@@ -0,0 +1,6 @@
1
+ import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh";
2
+ /**
3
+ * Parses and loads the physics aggregate data for the given mesh.
4
+ * @param mesh defines the reference to the mesh object.
5
+ */
6
+ export declare function configurePhysicsAggregate(mesh: AbstractMesh): void;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Defines the interface that can be implemented by scripts attached to nodes in the editor.
3
+ */
4
+ export interface IScript {
5
+ /**
6
+ * Method called when the script starts. This method is called only once.
7
+ */
8
+ onStart?(): void;
9
+ /**
10
+ * Method called on each frame.
11
+ */
12
+ onUpdate?(): void;
13
+ }
package/package.json CHANGED
@@ -1,16 +1,18 @@
1
1
  {
2
2
  "name": "babylonjs-editor-tools",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Babylon.js Editor Tools is a set of tools to help you create, edit and manage your Babylon.js scenes made using the Babylon.JS Editor",
5
5
  "productName": "Babylon.js Editor Tools",
6
6
  "scripts": {
7
+ "build": "tsc -p .",
7
8
  "watch": "tsc -p . --watch"
8
9
  },
9
10
  "main": "build/index.js",
10
11
  "typings": "declaration/index.ts",
11
12
  "license": "(Apache-2.0)",
12
13
  "devDependencies": {
13
- "@babylonjs/core": "7.0.0",
14
+ "@babylonjs/core": "7.44.0",
15
+ "@babylonjs/gui": "7.44.0",
14
16
  "typescript": "5.3.3"
15
17
  },
16
18
  "dependencies": {}