babylonjs-editor-tools 0.0.1 → 0.0.2
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/loader.js +11 -12
- package/declaration/loader.d.ts +8 -2
- package/package.json +1 -1
package/build/loader.js
CHANGED
|
@@ -2,33 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.loadScriptsFor = exports.loadScene = void 0;
|
|
4
4
|
const sceneLoader_1 = require("@babylonjs/core/Loading/sceneLoader");
|
|
5
|
-
async function loadScene(rootUrl, sceneFilename, scene) {
|
|
5
|
+
async function loadScene(rootUrl, sceneFilename, scene, scriptsMap) {
|
|
6
6
|
await sceneLoader_1.SceneLoader.AppendAsync(rootUrl, sceneFilename, scene);
|
|
7
|
-
loadScriptsFor(scene, scene);
|
|
8
|
-
scene.transformNodes.forEach((transformNode) => loadScriptsFor(scene, transformNode));
|
|
9
|
-
scene.meshes.forEach((mesh) => loadScriptsFor(scene, mesh));
|
|
10
|
-
scene.lights.forEach((light) => loadScriptsFor(scene, light));
|
|
11
|
-
scene.cameras.forEach((camera) => loadScriptsFor(scene, camera));
|
|
7
|
+
loadScriptsFor(scene, scene, scriptsMap);
|
|
8
|
+
scene.transformNodes.forEach((transformNode) => loadScriptsFor(scene, transformNode, scriptsMap));
|
|
9
|
+
scene.meshes.forEach((mesh) => loadScriptsFor(scene, mesh, scriptsMap));
|
|
10
|
+
scene.lights.forEach((light) => loadScriptsFor(scene, light, scriptsMap));
|
|
11
|
+
scene.cameras.forEach((camera) => loadScriptsFor(scene, camera, scriptsMap));
|
|
12
12
|
}
|
|
13
13
|
exports.loadScene = loadScene;
|
|
14
|
-
function loadScriptsFor(scene, object) {
|
|
14
|
+
function loadScriptsFor(scene, object, scriptsMap) {
|
|
15
15
|
if (!object.metadata) {
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
18
|
-
const map = require("@/scripts").scriptsMap;
|
|
19
18
|
object.metadata.scripts?.forEach((script) => {
|
|
20
19
|
if (!script.enabled) {
|
|
21
20
|
return;
|
|
22
21
|
}
|
|
23
|
-
const exports =
|
|
22
|
+
const exports = scriptsMap[script.key];
|
|
24
23
|
if (!exports) {
|
|
25
24
|
return;
|
|
26
25
|
}
|
|
27
26
|
if (exports.default) {
|
|
28
27
|
const instance = new exports.default(object);
|
|
29
|
-
|
|
30
|
-
instance.onStart
|
|
31
|
-
}
|
|
28
|
+
if (instance.onStart) {
|
|
29
|
+
scene.onBeforeRenderObservable.add(() => instance.onStart());
|
|
30
|
+
}
|
|
32
31
|
if (instance.onUpdate) {
|
|
33
32
|
scene.onBeforeRenderObservable.add(() => instance.onUpdate());
|
|
34
33
|
}
|
package/declaration/loader.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import { Scene } from "@babylonjs/core/scene";
|
|
2
|
-
export
|
|
3
|
-
|
|
2
|
+
export type ScriptMap = Record<string, {
|
|
3
|
+
default?: new (object: any) => {
|
|
4
|
+
onStart?(): void;
|
|
5
|
+
onUpdate?(): void;
|
|
6
|
+
};
|
|
7
|
+
}>;
|
|
8
|
+
export declare function loadScene(rootUrl: string, sceneFilename: string, scene: Scene, scriptsMap: ScriptMap): Promise<void>;
|
|
9
|
+
export declare function loadScriptsFor(scene: Scene, object: any, scriptsMap: ScriptMap): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "babylonjs-editor-tools",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
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": {
|