@needle-tools/engine 2.36.0-pre → 2.37.0-pre

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 (102) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/needle-engine.d.ts +171 -141
  3. package/dist/needle-engine.js +451 -437
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +82 -82
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/api.d.ts +1 -0
  8. package/lib/engine/api.js +1 -0
  9. package/lib/engine/api.js.map +1 -1
  10. package/lib/engine/debug/debug.d.ts +1 -0
  11. package/lib/engine/debug/debug.js +3 -0
  12. package/lib/engine/debug/debug.js.map +1 -1
  13. package/lib/engine/engine_gameobject.js +2 -1
  14. package/lib/engine/engine_gameobject.js.map +1 -1
  15. package/lib/engine/engine_physics.d.ts +33 -42
  16. package/lib/engine/engine_physics.js +431 -383
  17. package/lib/engine/engine_physics.js.map +1 -1
  18. package/lib/engine/engine_physics.types.d.ts +16 -0
  19. package/lib/engine/engine_physics.types.js +19 -0
  20. package/lib/engine/engine_physics.types.js.map +1 -0
  21. package/lib/engine/engine_serialization_core.d.ts +3 -0
  22. package/lib/engine/engine_serialization_core.js +5 -0
  23. package/lib/engine/engine_serialization_core.js.map +1 -1
  24. package/lib/engine/engine_setup.js +3 -1
  25. package/lib/engine/engine_setup.js.map +1 -1
  26. package/lib/engine/engine_types.d.ts +45 -26
  27. package/lib/engine/engine_types.js +24 -37
  28. package/lib/engine/engine_types.js.map +1 -1
  29. package/lib/engine/engine_util_decorator.d.ts +6 -0
  30. package/lib/engine/engine_util_decorator.js +54 -0
  31. package/lib/engine/engine_util_decorator.js.map +1 -0
  32. package/lib/engine/engine_utils.d.ts +1 -1
  33. package/lib/engine/engine_utils.js +1 -1
  34. package/lib/engine/engine_utils.js.map +1 -1
  35. package/lib/engine/extensions/NEEDLE_gameobject_data.js +2 -0
  36. package/lib/engine/extensions/NEEDLE_gameobject_data.js.map +1 -1
  37. package/lib/engine-components/Animation.d.ts +6 -5
  38. package/lib/engine-components/Animation.js +0 -7
  39. package/lib/engine-components/Animation.js.map +1 -1
  40. package/lib/engine-components/BoxHelperComponent.js +1 -0
  41. package/lib/engine-components/BoxHelperComponent.js.map +1 -1
  42. package/lib/engine-components/Collider.d.ts +7 -2
  43. package/lib/engine-components/Collider.js +27 -15
  44. package/lib/engine-components/Collider.js.map +1 -1
  45. package/lib/engine-components/Component.d.ts +6 -15
  46. package/lib/engine-components/Component.js +7 -112
  47. package/lib/engine-components/Component.js.map +1 -1
  48. package/lib/engine-components/DragControls.js +9 -6
  49. package/lib/engine-components/DragControls.js.map +1 -1
  50. package/lib/engine-components/NavMesh.d.ts +0 -5
  51. package/lib/engine-components/NavMesh.js +100 -10
  52. package/lib/engine-components/NavMesh.js.map +1 -1
  53. package/lib/engine-components/NestedGltf.js +2 -0
  54. package/lib/engine-components/NestedGltf.js.map +1 -1
  55. package/lib/engine-components/RigidBody.d.ts +40 -25
  56. package/lib/engine-components/RigidBody.js +253 -142
  57. package/lib/engine-components/RigidBody.js.map +1 -1
  58. package/lib/engine-components/SpatialTrigger.js +1 -1
  59. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  60. package/lib/engine-components/SpectatorCamera.d.ts +1 -0
  61. package/lib/engine-components/SpectatorCamera.js +9 -2
  62. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  63. package/lib/engine-components/SpringJoint.d.ts +0 -13
  64. package/lib/engine-components/SpringJoint.js +42 -41
  65. package/lib/engine-components/SpringJoint.js.map +1 -1
  66. package/lib/engine-components/VideoPlayer.js.map +1 -1
  67. package/lib/engine-components/WebXR.d.ts +1 -0
  68. package/lib/engine-components/WebXR.js +10 -2
  69. package/lib/engine-components/WebXR.js.map +1 -1
  70. package/lib/engine-components/WebXRController.js +12 -6
  71. package/lib/engine-components/WebXRController.js.map +1 -1
  72. package/lib/engine-components/codegen/components.d.ts +1 -3
  73. package/lib/engine-components/codegen/components.js +1 -3
  74. package/lib/engine-components/codegen/components.js.map +1 -1
  75. package/package.json +3 -4
  76. package/src/engine/api.ts +2 -1
  77. package/src/engine/codegen/register_types.js +4 -12
  78. package/src/engine/debug/debug.ts +4 -0
  79. package/src/engine/engine_gameobject.ts +4 -4
  80. package/src/engine/engine_physics.ts +460 -421
  81. package/src/engine/engine_physics.types.ts +19 -0
  82. package/src/engine/engine_serialization_core.ts +8 -1
  83. package/src/engine/engine_setup.ts +5 -1
  84. package/src/engine/engine_types.ts +82 -56
  85. package/src/engine/engine_util_decorator.ts +69 -0
  86. package/src/engine/engine_utils.ts +3 -3
  87. package/src/engine/extensions/NEEDLE_gameobject_data.ts +2 -0
  88. package/src/engine-components/Animation.ts +10 -12
  89. package/src/engine-components/BoxHelperComponent.ts +1 -0
  90. package/src/engine-components/Collider.ts +29 -29
  91. package/src/engine-components/Component.ts +15 -130
  92. package/src/engine-components/DragControls.ts +9 -5
  93. package/src/engine-components/NavMesh.ts +114 -115
  94. package/src/engine-components/NestedGltf.ts +2 -0
  95. package/src/engine-components/RigidBody.ts +258 -149
  96. package/src/engine-components/SpatialTrigger.ts +1 -1
  97. package/src/engine-components/SpectatorCamera.ts +10 -2
  98. package/src/engine-components/SpringJoint.ts +41 -41
  99. package/src/engine-components/VideoPlayer.ts +1 -2
  100. package/src/engine-components/WebXR.ts +12 -2
  101. package/src/engine-components/WebXRController.ts +16 -7
  102. package/src/engine-components/codegen/components.ts +1 -3
@@ -2,12 +2,14 @@ import { BoxHelper, BufferGeometry, Color, Euler, Group, Intersection, Layers, L
2
2
  import { OculusHandModel } from 'three/examples/jsm/webxr/OculusHandModel.js';
3
3
  import { OculusHandPointerModel } from 'three/examples/jsm/webxr/OculusHandPointerModel.js';
4
4
  import { XRControllerModel, XRControllerModelFactory } from 'three/examples/jsm/webxr/XRControllerModelFactory.js';
5
+ import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'
5
6
 
6
7
  import { InstancingUtil } from "../engine/engine_instancing";
7
8
  import { Mathf } from "../engine/engine_math";
8
9
  import { RaycastOptions } from "../engine/engine_physics";
9
10
  import { getWorldPosition, getWorldQuaternion, setWorldPosition, setWorldQuaternion } from "../engine/engine_three_utils";
10
11
  import { getParam, getPath } from "../engine/engine_utils";
12
+ import { addDracoAndKTX2Loaders } from "../engine/engine_loaders";
11
13
 
12
14
  import { Avatar_POI } from "./avatar/Avatar_Brain_LookAt";
13
15
  import { Behaviour, GameObject } from "./Component";
@@ -79,9 +81,14 @@ export class WebXRController extends Behaviour {
79
81
  ctrl.controllerGrip.add(ctrl.controllerModel);
80
82
 
81
83
  ctrl.hand = context.renderer.xr.getHand(index);
82
- const hand = new OculusHandModel(ctrl.hand);
84
+
85
+ const loader = new GLTFLoader();
86
+ addDracoAndKTX2Loaders(loader, context);
83
87
  if (ctrl.webXR.handModelPath && ctrl.webXR.handModelPath !== "")
84
- hand["path"] = "/" + getPath(owner.sourceId, ctrl.webXR.handModelPath);
88
+ loader.setPath("/" + getPath(owner.sourceId, ctrl.webXR.handModelPath));
89
+ //@ts-ignore
90
+ const hand = new OculusHandModel(ctrl.hand, loader);
91
+
85
92
  ctrl.hand.add(hand);
86
93
  ctrl.hand.traverse(x => x.layers.set(2));
87
94
 
@@ -738,7 +745,7 @@ export class WebXRController extends Behaviour {
738
745
 
739
746
  if (debug) {
740
747
  if (!this.closeGrabBoundingBoxHelper && overlapCenter) {
741
- this.closeGrabBoundingBoxHelper = new BoxHelper( overlapCenter, 0xffff00 );
748
+ this.closeGrabBoundingBoxHelper = new BoxHelper(overlapCenter, 0xffff00);
742
749
  this.scene.add(this.closeGrabBoundingBoxHelper);
743
750
  }
744
751
 
@@ -825,7 +832,7 @@ export class AttachedObject {
825
832
  return null;
826
833
  }
827
834
  else candidate = interactable.gameObject;
828
-
835
+
829
836
 
830
837
  let objectToAttach = candidate;
831
838
  const sync = GameObject.getComponentInParent(candidate, SyncedTransform);
@@ -981,12 +988,11 @@ export class AttachedObject {
981
988
  this.sync = null;
982
989
 
983
990
 
984
- // TODO: this doesnt work yet
991
+ // TODO: make throwing work again
985
992
  if (this.rigidbodies) {
986
993
  for (const rb of this.rigidbodies) {
987
994
  rb.wakeUp();
988
- if (!rb.smoothedVelocity) continue;
989
- rb.setVelocity(rb.smoothedVelocity.x, rb.smoothedVelocity.y, rb.smoothedVelocity.z);
995
+ rb.setVelocity(rb.smoothedVelocity);
990
996
  }
991
997
  }
992
998
  this.rigidbodies = null;
@@ -1039,6 +1045,9 @@ export class AttachedObject {
1039
1045
  }
1040
1046
 
1041
1047
  public update() {
1048
+ if (this.rigidbodies)
1049
+ for (const rb of this.rigidbodies)
1050
+ rb.resetVelocities();
1042
1051
  // TODO: add/use sync lost ownership event
1043
1052
  if (this.sync && this.controller && this.controller.context.connection.isInRoom) {
1044
1053
  const td = this.controller.context.time.time - this.grabTime;
@@ -16,6 +16,7 @@ export { Camera } from "../Camera";
16
16
  export { Collider } from "../Collider";
17
17
  export { SphereCollider } from "../Collider";
18
18
  export { BoxCollider } from "../Collider";
19
+ export { MeshCollider } from "../Collider";
19
20
  export { DeleteBox } from "../DeleteBox";
20
21
  export { Deletable } from "../DeleteBox";
21
22
  export { DeviceFlag } from "../DeviceFlag";
@@ -38,8 +39,6 @@ export { Light } from "../Light";
38
39
  export { LODModel } from "../LODGroup";
39
40
  export { LODGroup } from "../LODGroup";
40
41
  export { LookAtConstraint } from "../LookAtConstraint";
41
- export { NavMesh } from "../NavMesh";
42
- export { NavMeshAgent } from "../NavMesh";
43
42
  export { NestedGltf } from "../NestedGltf";
44
43
  export { Networking } from "../Networking";
45
44
  export { OffsetConstraint } from "../OffsetConstraint";
@@ -64,7 +63,6 @@ export { SmoothFollow } from "../SmoothFollow";
64
63
  export { SpatialTriggerReceiver } from "../SpatialTrigger";
65
64
  export { SpatialTrigger } from "../SpatialTrigger";
66
65
  export { SpectatorCamera } from "../SpectatorCamera";
67
- export { SpringJoint } from "../SpringJoint";
68
66
  export { Sprite } from "../SpriteRenderer";
69
67
  export { SpriteRenderer } from "../SpriteRenderer";
70
68
  export { SyncedCamera } from "../SyncedCamera";