babylonjs-editor-tools 5.4.2-alpha.2 → 5.4.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.
@@ -15,6 +15,7 @@ export * from "./tools/particle";
15
15
  export * from "./tools/ragdoll";
16
16
  export * from "./tools/mesh";
17
17
  export * from "./tools/node";
18
+ export * from "./tools/navmesh";
18
19
  export * from "./rendering/vls";
19
20
  export * from "./rendering/ssr";
20
21
  export * from "./rendering/taa";
@@ -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,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,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;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAE7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAElC,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;AAEtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,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;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAElC,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;AAEtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC"}
@@ -1,5 +1,6 @@
1
- import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2
- import { CreateNavigationPluginAsync } from "@babylonjs/addons";
1
+ import { CreateNavigationPluginAsync } from "@babylonjs/addons/navigation/factory/factory.single-thread";
2
+ import { getNodeById } from "../../../../tools/scene";
3
+ import { isAbstractMesh } from "../../../../tools/guards";
3
4
  import { loadFile, loadJsonFile } from "../../../../tools/request";
4
5
  import { registerScriptAssetParser } from "../../preload";
5
6
  export async function preloadNavMeshScriptAsset(parameters) {
@@ -9,24 +10,42 @@ export async function preloadNavMeshScriptAsset(parameters) {
9
10
  loadFile(`${parameters.rootUrl}${parameters.key}/tilecache.bin`, "arraybuffer"),
10
11
  ]);
11
12
  const [recastCore, recastGenerators] = await Promise.all([import("@recast-navigation/core"), import("@recast-navigation/generators")]);
12
- const recast = await CreateNavigationPluginAsync({
13
+ const recast = (await CreateNavigationPluginAsync({
13
14
  instance: {
14
15
  ...recastCore,
15
16
  ...recastGenerators,
16
17
  },
17
- });
18
+ }));
18
19
  recast.buildFromNavmeshData(new Uint8Array(navmeshData));
19
20
  recast.buildFromTileCacheData(new Uint8Array(tilesData));
20
- config.obstacleMeshes.forEach((obstacle) => {
21
- switch (obstacle.type) {
22
- case "box":
23
- recast.addBoxObstacle(Vector3.FromArray(obstacle.position), Vector3.FromArray(obstacle.extent), obstacle.angle);
24
- break;
25
- case "cylinder":
26
- recast.addCylinderObstacle(Vector3.FromArray(obstacle.position), obstacle.radius, obstacle.height);
27
- break;
28
- }
29
- });
21
+ const createdObstacles = [];
22
+ recast.refreshObstacles = function () {
23
+ createdObstacles.forEach((obstacle) => recast.removeObstacle(obstacle));
24
+ createdObstacles.splice(0, createdObstacles.length);
25
+ config.obstacleMeshes.forEach((obstacle) => {
26
+ const node = getNodeById(obstacle.id, parameters.scene);
27
+ if (!isAbstractMesh(node)) {
28
+ return;
29
+ }
30
+ const position = node.getAbsolutePosition();
31
+ const boundingBox = node.getBoundingInfo().boundingBox;
32
+ switch (obstacle.type) {
33
+ case "box":
34
+ const boxObstacle = recast.addBoxObstacle(position, boundingBox.extendSizeWorld, obstacle.angle);
35
+ if (boxObstacle) {
36
+ createdObstacles.push(boxObstacle);
37
+ }
38
+ break;
39
+ case "cylinder":
40
+ const cylinderObstacle = recast.addCylinderObstacle(position, boundingBox.extendSizeWorld.x, boundingBox.extendSizeWorld.y);
41
+ if (cylinderObstacle) {
42
+ createdObstacles.push(cylinderObstacle);
43
+ }
44
+ break;
45
+ }
46
+ });
47
+ };
48
+ recast.refreshObstacles();
30
49
  return recast;
31
50
  }
32
51
  registerScriptAssetParser("navmesh", preloadNavMeshScriptAsset);
@@ -1 +1 @@
1
- {"version":3,"file":"navmesh.js","sourceRoot":"","sources":["../../../../../../src/loading/script/preload/plugins/navmesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAgC,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,UAAwC;IACvF,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1D,YAAY,CAAM,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,cAAc,CAAC;QACvE,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,cAAc,EAAE,aAAa,CAAC;QAC7E,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,gBAAgB,EAAE,aAAa,CAAC;KAC/E,CAAC,CAAC;IAEH,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;IAEvI,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC;QAChD,QAAQ,EAAE;YACT,GAAG,UAAU;YACb,GAAG,gBAAgB;SACnB;KACD,CAAC,CAAC;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,MAAM,CAAC,sBAAsB,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;QAC/C,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvB,KAAK,KAAK;gBACT,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChH,MAAM;YAEP,KAAK,UAAU;gBACd,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnG,MAAM;QACR,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,yBAAyB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"navmesh.js","sourceRoot":"","sources":["../../../../../../src/loading/script/preload/plugins/navmesh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This interface is used to define extra properties on RecastNavigationJSPluginV2.
3
+ * For example to update the navmesh in runtime or update all obstacles when they are dynamically changed.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=navmesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navmesh.js","sourceRoot":"","sources":["../../../src/tools/navmesh.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -15,6 +15,7 @@ export * from "./tools/particle";
15
15
  export * from "./tools/ragdoll";
16
16
  export * from "./tools/mesh";
17
17
  export * from "./tools/node";
18
+ export * from "./tools/navmesh";
18
19
  export * from "./rendering/vls";
19
20
  export * from "./rendering/ssr";
20
21
  export * from "./rendering/taa";
@@ -1,2 +1,3 @@
1
+ import { RecastNavigationHelper } from "../../../../tools/navmesh";
1
2
  import { IScriptAssetParserParameters } from "../../preload";
2
- export declare function preloadNavMeshScriptAsset(parameters: IScriptAssetParserParameters): Promise<import("@babylonjs/addons").RecastNavigationJSPluginV2>;
3
+ export declare function preloadNavMeshScriptAsset(parameters: IScriptAssetParserParameters): Promise<RecastNavigationHelper>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This interface is used to define extra properties on RecastNavigationJSPluginV2.
3
+ * For example to update the navmesh in runtime or update all obstacles when they are dynamically changed.
4
+ */
5
+ import { RecastNavigationJSPluginV2 } from "@babylonjs/addons/navigation/plugin/RecastNavigationJSPlugin";
6
+ export interface RecastNavigationHelper extends RecastNavigationJSPluginV2 {
7
+ refreshObstacles(): void;
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylonjs-editor-tools",
3
- "version": "5.4.2-alpha.2",
3
+ "version": "5.4.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": {
@@ -25,9 +25,9 @@
25
25
  "typings": "declaration/src/index.d.ts",
26
26
  "license": "(Apache-2.0)",
27
27
  "devDependencies": {
28
- "@babylonjs/addons": "9.9.1",
29
- "@babylonjs/core": "9.9.1",
30
- "@babylonjs/gui": "9.9.1",
28
+ "@babylonjs/addons": "9.12.1",
29
+ "@babylonjs/core": "9.12.1",
30
+ "@babylonjs/gui": "9.12.1",
31
31
  "@vitest/coverage-v8": "4.0.17",
32
32
  "esbuild": "0.27.2",
33
33
  "typescript": "5.9.3",