@needle-tools/engine 2.37.0-pre → 2.38.0-pre.1

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 (101) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/needle-engine.d.ts +118 -19
  3. package/dist/needle-engine.js +352 -352
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +25 -25
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/engine_addressables.d.ts +3 -1
  8. package/lib/engine/engine_addressables.js +12 -5
  9. package/lib/engine/engine_addressables.js.map +1 -1
  10. package/lib/engine/engine_element.js +3 -2
  11. package/lib/engine/engine_element.js.map +1 -1
  12. package/lib/engine/engine_element_overlay.js +4 -3
  13. package/lib/engine/engine_element_overlay.js.map +1 -1
  14. package/lib/engine/engine_input.d.ts +2 -0
  15. package/lib/engine/engine_input.js +14 -3
  16. package/lib/engine/engine_input.js.map +1 -1
  17. package/lib/engine/engine_physics.d.ts +11 -4
  18. package/lib/engine/engine_physics.js +107 -42
  19. package/lib/engine/engine_physics.js.map +1 -1
  20. package/lib/engine/engine_physics.types.d.ts +7 -0
  21. package/lib/engine/engine_physics.types.js +8 -0
  22. package/lib/engine/engine_physics.types.js.map +1 -1
  23. package/lib/engine/engine_setup.d.ts +12 -6
  24. package/lib/engine/engine_setup.js +30 -22
  25. package/lib/engine/engine_setup.js.map +1 -1
  26. package/lib/engine/engine_types.d.ts +3 -1
  27. package/lib/engine/engine_types.js.map +1 -1
  28. package/lib/engine-components/Animation.d.ts +1 -0
  29. package/lib/engine-components/Animation.js +7 -0
  30. package/lib/engine-components/Animation.js.map +1 -1
  31. package/lib/engine-components/AnimatorController.js +14 -7
  32. package/lib/engine-components/AnimatorController.js.map +1 -1
  33. package/lib/engine-components/Camera.d.ts +2 -0
  34. package/lib/engine-components/Camera.js +24 -6
  35. package/lib/engine-components/Camera.js.map +1 -1
  36. package/lib/engine-components/CharacterController.d.ts +34 -0
  37. package/lib/engine-components/CharacterController.js +179 -0
  38. package/lib/engine-components/CharacterController.js.map +1 -0
  39. package/lib/engine-components/Collider.d.ts +10 -5
  40. package/lib/engine-components/Collider.js +18 -11
  41. package/lib/engine-components/Collider.js.map +1 -1
  42. package/lib/engine-components/Joints.d.ts +15 -0
  43. package/lib/engine-components/Joints.js +42 -0
  44. package/lib/engine-components/Joints.js.map +1 -0
  45. package/lib/engine-components/Light.d.ts +2 -0
  46. package/lib/engine-components/Light.js +13 -2
  47. package/lib/engine-components/Light.js.map +1 -1
  48. package/lib/engine-components/OrbitControls.js +1 -1
  49. package/lib/engine-components/OrbitControls.js.map +1 -1
  50. package/lib/engine-components/Renderer.js +4 -0
  51. package/lib/engine-components/Renderer.js.map +1 -1
  52. package/lib/engine-components/RigidBody.d.ts +6 -1
  53. package/lib/engine-components/RigidBody.js +62 -25
  54. package/lib/engine-components/RigidBody.js.map +1 -1
  55. package/lib/engine-components/SmoothFollow.d.ts +2 -1
  56. package/lib/engine-components/SmoothFollow.js +25 -17
  57. package/lib/engine-components/SmoothFollow.js.map +1 -1
  58. package/lib/engine-components/WebXR.js +3 -4
  59. package/lib/engine-components/WebXR.js.map +1 -1
  60. package/lib/engine-components/codegen/components.d.ts +4 -0
  61. package/lib/engine-components/codegen/components.js +4 -0
  62. package/lib/engine-components/codegen/components.js.map +1 -1
  63. package/package.json +1 -1
  64. package/src/engine/codegen/register_types.js +16 -0
  65. package/src/engine/dist/engine_physics.js +739 -0
  66. package/src/engine/dist/engine_setup.js +777 -0
  67. package/src/engine/engine_addressables.ts +18 -8
  68. package/src/engine/engine_element.ts +3 -2
  69. package/src/engine/engine_element_overlay.ts +4 -3
  70. package/src/engine/engine_input.ts +12 -3
  71. package/src/engine/engine_physics.ts +119 -57
  72. package/src/engine/engine_physics.types.ts +9 -0
  73. package/src/engine/engine_setup.ts +53 -45
  74. package/src/engine/engine_types.ts +4 -1
  75. package/src/engine-components/Animation.ts +8 -0
  76. package/src/engine-components/AnimatorController.ts +16 -11
  77. package/src/engine-components/Camera.ts +25 -5
  78. package/src/engine-components/CharacterController.ts +185 -0
  79. package/src/engine-components/Collider.ts +21 -15
  80. package/src/engine-components/Joints.ts +40 -0
  81. package/src/engine-components/Light.ts +17 -3
  82. package/src/engine-components/OrbitControls.ts +1 -1
  83. package/src/engine-components/Renderer.ts +5 -1
  84. package/src/engine-components/RigidBody.ts +63 -29
  85. package/src/engine-components/SmoothFollow.ts +21 -18
  86. package/src/engine-components/WebXR.ts +3 -4
  87. package/src/engine-components/codegen/components.ts +4 -0
  88. package/src/engine-components/dist/CharacterController.js +123 -0
  89. package/src/engine-components/dist/RigidBody.js +458 -0
  90. package/src/include/console/ConsoleReroute.js +79 -0
  91. package/src/include/draco/draco_decoder.js +48 -0
  92. package/src/include/draco/draco_decoder.wasm +0 -0
  93. package/src/include/ktx2/basis_transcoder.js +21 -0
  94. package/src/include/ktx2/basis_transcoder.wasm +0 -0
  95. package/src/include/three/ARButton.js +208 -0
  96. package/src/include/three/DragControls.js +232 -0
  97. package/src/include/three/EXT_mesh_gpu_instancing_exporter.js +67 -0
  98. package/src/include/three/VRButton.js +196 -0
  99. package/src/include/three-mesh-ui-assets/backspace.png +0 -0
  100. package/src/include/three-mesh-ui-assets/enter.png +0 -0
  101. package/src/include/three-mesh-ui-assets/shift.png +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,27 @@ All notable changes to this package will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.38.0-pre] - 2022-11-02
8
+ - Add ``context.isInAR`` and ``context.isInVR`` properties
9
+ - Add physics capsule collider support
10
+ - Add basic character controller implementation (experimental)
11
+ - Add ``context.input.getMouseWheelDeltaY()``
12
+ - Add: SmoothFollow option to restrict following on certain axes only for position
13
+ - Add: ``Rigidbody.teleport`` method to properly reset internal state
14
+ - Add: load glbs using build hash (appended as ``?v=123``)
15
+ - Change: Collision event args now exposes contacts array
16
+ - Fix Exit AR (X) button not showing up
17
+ - Fix physics collider center offset
18
+ - Fix removing colliders and rigidbodies throwing error (when trying to access properties for already removed bodies)
19
+ - Fix bug in AnimatorController causing broken animations when the same clip is used in multiple states (caused by ``mixer.uncacheCip``)
20
+ - Fix rigidbody friction allowing for physical bodies being transported on e.g. platforms
21
+ - Fix ``onTriggerStay`` being invoked with the correct collider argument
22
+ - Fix AnimatorController exit time not being used properly
23
+ - Fix AnimatorController not checking all possible transitions if one transition did match conditions but could not be made due to exit time setting
24
+ - Fix ``Renderer.sharedMaterials`` not handling SkinnedMeshRenderer
25
+ - Fix environment blend mode for mozilla XR browser on iOS
26
+ - Fix: Camera now removing self from being set as currently rendering in ``onDisable``
27
+
7
28
  ## [2.37.0-pre] - 2022-10-28
8
29
  - Add: rapier physics backend and overall improved physics system like constraint support, fixed physics collider updates and synchronization between rendering and physics world or animation of physical bodies
9
30
  - Remove: cannon-es
@@ -40,6 +40,13 @@ declare module "engine/engine_physics.types" {
40
40
  FreezeRotation = 112,
41
41
  FreezeAll = 126
42
42
  }
43
+ export enum Axes {
44
+ None = 0,
45
+ X = 2,
46
+ Y = 4,
47
+ Z = 8,
48
+ All = -1
49
+ }
43
50
  }
44
51
  declare module "engine/engine_types" {
45
52
  import { Camera, Color, Material, Object3D, Vector3, Quaternion } from "three";
@@ -73,6 +80,7 @@ declare module "engine/engine_types" {
73
80
  get name(): string;
74
81
  get layer(): number;
75
82
  get destroyed(): boolean;
83
+ get tag(): string;
76
84
  context: any;
77
85
  get activeAndEnabled(): boolean;
78
86
  __internalNewInstanceCreated(): any;
@@ -105,6 +113,7 @@ declare module "engine/engine_types" {
105
113
  get worldQuaternion(): Quaternion;
106
114
  }
107
115
  export interface ICamera extends IComponent {
116
+ get isCamera(): boolean;
108
117
  applyClearFlagsIfIsActiveCamera(): unknown;
109
118
  buildCamera(): any;
110
119
  get cam(): Camera;
@@ -167,7 +176,7 @@ declare module "engine/engine_types" {
167
176
  constructor(localPt: Vec3, dist: number, normal: Vec3);
168
177
  }
169
178
  export class Collision {
170
- private readonly contacts;
179
+ readonly contacts: ContactPoint[];
171
180
  constructor(obj: Object3D, otherCollider: ICollider, contacts: ContactPoint[]);
172
181
  readonly me: Object3D;
173
182
  private _collider;
@@ -423,6 +432,7 @@ declare module "engine/engine_input" {
423
432
  getIsTouch(i: number): boolean;
424
433
  getTouchesPressedCount(): number;
425
434
  getMouseWheelChanged(i?: number): boolean;
435
+ getMouseWheelDeltaY(i?: number): number;
426
436
  getPointerEvent(i: number): Event | undefined;
427
437
  private context;
428
438
  private _pointerDown;
@@ -440,6 +450,7 @@ declare module "engine/engine_input" {
440
450
  private _pointerIds;
441
451
  private _pointerTypes;
442
452
  private _mouseWheelChanged;
453
+ private _mouseWheelDeltaY;
443
454
  private _pointerEvent;
444
455
  getKeyDown(): string | null;
445
456
  getKeyPressed(): string | null;
@@ -768,6 +779,7 @@ declare module "engine/engine_physics" {
768
779
  raycast(options?: RaycastOptions | null): Array<Intersection>;
769
780
  private _tempPosition;
770
781
  private _tempQuaternion;
782
+ private _tempScale;
771
783
  private _tempMatrix;
772
784
  private static _didLoadPhysicsEngine;
773
785
  private _isUpdatingPhysicsWorld;
@@ -779,10 +791,13 @@ declare module "engine/engine_physics" {
779
791
  private collisionHandler?;
780
792
  private objects;
781
793
  private bodies;
794
+ private _meshCache;
782
795
  constructor(context: Context);
783
796
  createWorld(): Promise<void>;
797
+ clearCaches(): void;
784
798
  addBoxCollider(collider: ICollider, center: Vector3, size: Vector3): void;
785
799
  addSphereCollider(collider: ICollider, center: Vector3, radius: number): void;
800
+ addCapsuleCollider(collider: ICollider, center: Vector3, height: number, radius: number): void;
786
801
  addMeshCollider(collider: ICollider, mesh: Mesh, convex: boolean): void;
787
802
  private createCollider;
788
803
  private getRigidbody;
@@ -800,11 +815,14 @@ declare module "engine/engine_physics" {
800
815
  private syncPhysicsBody;
801
816
  private static _matricesBuffer;
802
817
  private getRigidbodyRelativeMatrix;
818
+ private static centerConnectionPos;
819
+ private static centerConnectionRot;
820
+ addFixedJoint(body1: IRigidbody, body2: IRigidbody, rel: {
821
+ x: number;
822
+ y: number;
823
+ z: number;
824
+ }): void;
803
825
  }
804
- export interface IColliderProvider {
805
- getCollider(obj: Object3D): ICollider;
806
- }
807
- export function registerColliderProvider(prov: IColliderProvider): void;
808
826
  }
809
827
  declare module "engine/engine_time" {
810
828
  export class Time {
@@ -1563,9 +1581,11 @@ declare module "engine/engine_addressables" {
1563
1581
  private _glbRoot?;
1564
1582
  private _uri;
1565
1583
  private _progressListeners;
1584
+ private _hash?;
1585
+ private _hashedUri;
1566
1586
  private _isLoadingRawBinary;
1567
1587
  private _rawBinary?;
1568
- constructor(uri: string);
1588
+ constructor(uri: string, hash?: string);
1569
1589
  private onResolvePrefab;
1570
1590
  private get mustLoad();
1571
1591
  isLoaded(): boolean | ArrayBuffer;
@@ -1643,7 +1663,7 @@ declare module "engine/engine_setup" {
1643
1663
  import { Application } from "engine/engine_application";
1644
1664
  import { ILightDataRegistry } from "engine/engine_lightdata";
1645
1665
  import { PlayerViewManager } from "engine/engine_playerview";
1646
- import { ICamera as Camera, IComponent, ILight as Light } from "engine/engine_types";
1666
+ import { ICamera, IComponent, ILight } from "engine/engine_types";
1647
1667
  export const build_scene_functions: {
1648
1668
  [name: string]: (context: Context) => Promise<void>;
1649
1669
  };
@@ -1666,6 +1686,7 @@ declare module "engine/engine_setup" {
1666
1686
  alias: string | undefined | null;
1667
1687
  domElement: HTMLElement | null;
1668
1688
  renderer?: THREE.WebGLRenderer;
1689
+ hash?: string;
1669
1690
  constructor(domElement: HTMLElement | null);
1670
1691
  }
1671
1692
  export enum FrameEvent {
@@ -1674,7 +1695,8 @@ declare module "engine/engine_setup" {
1674
1695
  LateUpdate = 2,
1675
1696
  OnBeforeRender = 3,
1676
1697
  OnAfterRender = 4,
1677
- PhysicsStep = 10
1698
+ PrePhysicsStep = 9,
1699
+ PostPhysicsStep = 10
1678
1700
  }
1679
1701
  export enum XRSessionMode {
1680
1702
  ImmersiveVR = "immersive-vr",
@@ -1689,6 +1711,8 @@ declare module "engine/engine_setup" {
1689
1711
  name: string;
1690
1712
  alias: string | undefined | null;
1691
1713
  isManagedExternally: boolean;
1714
+ /** used to append to loaded assets */
1715
+ hash?: string;
1692
1716
  domElement: HTMLElement;
1693
1717
  get resolutionScaleFactor(): number;
1694
1718
  /** use to scale the resolution up or down of the renderer. default is 1 */
@@ -1700,6 +1724,8 @@ declare module "engine/engine_setup" {
1700
1724
  get domY(): number;
1701
1725
  get isInXR(): boolean;
1702
1726
  xrSessionMode: XRSessionMode | undefined;
1727
+ get isInVR(): boolean;
1728
+ get isInAR(): boolean;
1703
1729
  get xrSession(): THREE.XRSession | null;
1704
1730
  get arOverlayElement(): HTMLElement;
1705
1731
  scene: THREE.Scene;
@@ -1716,7 +1742,7 @@ declare module "engine/engine_setup" {
1716
1742
  [FrameEvent: number]: Array<CoroutineData>;
1717
1743
  };
1718
1744
  get mainCamera(): THREE.Camera | null;
1719
- mainCameraComponent: Camera | undefined;
1745
+ mainCameraComponent: ICamera | undefined;
1720
1746
  post_setup_callbacks: Function[];
1721
1747
  pre_update_callbacks: Function[];
1722
1748
  pre_render_callbacks: Function[];
@@ -1734,7 +1760,7 @@ declare module "engine/engine_setup" {
1734
1760
  * @deprecated AssetDataBase is deprecated
1735
1761
  */
1736
1762
  assets: AssetDatabase;
1737
- mainLight: Light | null;
1763
+ mainLight: ILight | null;
1738
1764
  rendererData: RendererData;
1739
1765
  addressables: Addressables;
1740
1766
  lightmaps: ILightDataRegistry;
@@ -1751,8 +1777,8 @@ declare module "engine/engine_setup" {
1751
1777
  unregisterCoroutineUpdate(coroutine: Generator, evt: FrameEvent): void;
1752
1778
  stopAllCoroutinesFrom(script: IComponent): void;
1753
1779
  private _cameraStack;
1754
- setCurrentCamera(cam: Camera): void;
1755
- removeCamera(cam?: Camera | null): void;
1780
+ setCurrentCamera(cam: ICamera): void;
1781
+ removeCamera(cam?: ICamera | null): void;
1756
1782
  private _onBeforeRenderListeners;
1757
1783
  /** use this to subscribe to onBeforeRender events on threejs objects */
1758
1784
  addBeforeRenderListener(target: THREE.Object3D, callback: OnBeforeRenderCallback): void;
@@ -2070,6 +2096,7 @@ declare module "engine-components/Animation" {
2070
2096
  start(): void;
2071
2097
  update(): void;
2072
2098
  getAction(name: string): THREE.AnimationAction | undefined | null;
2099
+ get isPlaying(): boolean;
2073
2100
  play(clipOrNumber: AnimationClip | number | string, options?: PlayOptions): Promise<AnimationAction> | void;
2074
2101
  internalOnPlay(action: AnimationAction, options?: PlayOptions): Promise<AnimationAction>;
2075
2102
  private tryFindHandle;
@@ -2455,6 +2482,7 @@ declare module "engine-components/Camera" {
2455
2482
  Uninitialized = 4
2456
2483
  }
2457
2484
  export class Camera extends Behaviour implements ICamera {
2485
+ get isCamera(): boolean;
2458
2486
  get aspect(): number;
2459
2487
  get fieldOfView(): number;
2460
2488
  set fieldOfView(val: number);
@@ -2479,6 +2507,7 @@ declare module "engine-components/Camera" {
2479
2507
  get cam(): THREE.PerspectiveCamera | THREE.OrthographicCamera;
2480
2508
  awake(): void;
2481
2509
  onEnable(): void;
2510
+ onDisable(): void;
2482
2511
  buildCamera(): void;
2483
2512
  applyClearFlagsIfIsActiveCamera(): void;
2484
2513
  private environmentIsTransparent;
@@ -2599,8 +2628,13 @@ declare module "engine-components/RigidBody" {
2599
2628
  onDisable(): void;
2600
2629
  onDestroy(): void;
2601
2630
  onValidate(): void;
2602
- earlyUpdate(): void;
2631
+ beforePhysics(): Generator<undefined, void, unknown>;
2603
2632
  private get body();
2633
+ teleport(pt: {
2634
+ x: number;
2635
+ y: number;
2636
+ z: number;
2637
+ }, localspace?: boolean): void;
2604
2638
  resetForces(): void;
2605
2639
  resetTorques(): void;
2606
2640
  resetVelocities(): void;
@@ -2628,7 +2662,7 @@ declare module "engine-components/RigidBody" {
2628
2662
  declare module "engine-components/Collider" {
2629
2663
  import { Behaviour } from "engine-components/Component";
2630
2664
  import { Rigidbody } from "engine-components/RigidBody";
2631
- import { Mesh } from "three";
2665
+ import { Mesh, Vector3 } from "three";
2632
2666
  import { ICollider } from "engine/engine_types";
2633
2667
  export class Collider extends Behaviour implements ICollider {
2634
2668
  get isCollider(): any;
@@ -2641,21 +2675,62 @@ declare module "engine-components/Collider" {
2641
2675
  }
2642
2676
  export class SphereCollider extends Collider {
2643
2677
  radius: number;
2644
- center: THREE.Vector3;
2678
+ center: Vector3;
2645
2679
  onEnable(): void;
2646
2680
  }
2647
2681
  export class BoxCollider extends Collider {
2648
- size: THREE.Vector3;
2649
- center: THREE.Vector3;
2682
+ size: Vector3;
2683
+ center: Vector3;
2650
2684
  onEnable(): void;
2651
2685
  }
2652
2686
  export class MeshCollider extends Collider {
2653
2687
  sharedMesh?: Mesh;
2654
2688
  convex: boolean;
2655
- awake(): void;
2689
+ onEnable(): void;
2690
+ }
2691
+ export class CapsuleCollider extends Collider {
2692
+ center: Vector3;
2693
+ radius: number;
2694
+ height: number;
2656
2695
  onEnable(): void;
2657
2696
  }
2658
2697
  }
2698
+ declare module "engine-components/CharacterController" {
2699
+ import { Vector3 } from "three";
2700
+ import { Collision } from "engine/engine_types";
2701
+ import { Behaviour } from "engine-components/Component";
2702
+ import { Rigidbody } from "engine-components/RigidBody";
2703
+ import { Animator } from "engine-components/Animator";
2704
+ export class CharacterController extends Behaviour {
2705
+ center: Vector3;
2706
+ radius: number;
2707
+ height: number;
2708
+ private _rigidbody;
2709
+ get rigidbody(): Rigidbody;
2710
+ onEnable(): void;
2711
+ move(vec: Vector3): void;
2712
+ private _activeGroundCollisions;
2713
+ onCollisionEnter(col: Collision): void;
2714
+ onCollisionExit(col: Collision): void;
2715
+ get isGrounded(): boolean;
2716
+ }
2717
+ export class CharacterControllerInput extends Behaviour {
2718
+ controller?: CharacterController;
2719
+ movementSpeed: number;
2720
+ rotationSpeed: number;
2721
+ jumpForce: number;
2722
+ animator?: Animator;
2723
+ lookForward: boolean;
2724
+ private _currentSpeed;
2725
+ private _currentAngularSpeed;
2726
+ private _temp;
2727
+ private _jumpCount;
2728
+ private _currentRotation;
2729
+ awake(): void;
2730
+ update(): void;
2731
+ private _raycastOptions;
2732
+ }
2733
+ }
2659
2734
  declare module "engine-components/ui/PointerEvents" {
2660
2735
  export interface IInputEventArgs {
2661
2736
  get used(): boolean;
@@ -3834,6 +3909,23 @@ declare module "engine-components/GroundProjection" {
3834
3909
  updateProjection(): void;
3835
3910
  }
3836
3911
  }
3912
+ declare module "engine-components/Joints" {
3913
+ import { Vector3 } from "three";
3914
+ import { Behaviour } from "engine-components/Component";
3915
+ import { Rigidbody } from "engine-components/RigidBody";
3916
+ export abstract class Joint extends Behaviour {
3917
+ connectedBody?: Rigidbody;
3918
+ get rigidBody(): Rigidbody | null;
3919
+ private _rigidBody;
3920
+ connectedAnchor?: Vector3;
3921
+ onEnable(): void;
3922
+ private create;
3923
+ protected abstract createJoint(self: Rigidbody, other: Rigidbody): any;
3924
+ }
3925
+ export class FixedJoint extends Joint {
3926
+ protected createJoint(self: Rigidbody, other: Rigidbody): void;
3927
+ }
3928
+ }
3837
3929
  declare module "engine-components/Light" {
3838
3930
  import { Behaviour } from "engine-components/Component";
3839
3931
  import * as THREE from "three";
@@ -3871,6 +3963,8 @@ declare module "engine-components/Light" {
3871
3963
  set shadowNormalBias(val: number);
3872
3964
  get shadowNormalBias(): number;
3873
3965
  private _shadowNormalBias;
3966
+ /** when enabled this will remove the multiplication when setting the shadow bias settings initially */
3967
+ private _overrideShadowBiasSettings;
3874
3968
  set shadows(val: LightShadows);
3875
3969
  get shadows(): LightShadows;
3876
3970
  private _shadows;
@@ -4308,14 +4402,15 @@ declare module "engine-components/Skybox" {
4308
4402
  declare module "engine-components/SmoothFollow" {
4309
4403
  import { Behaviour } from "engine-components/Component";
4310
4404
  import * as THREE from "three";
4405
+ import { Axes } from "engine/engine_physics.types";
4311
4406
  export class SmoothFollow extends Behaviour {
4312
4407
  target: THREE.Object3D | null;
4313
4408
  followFactor: number;
4314
4409
  rotateFactor: number;
4410
+ positionAxes: Axes;
4315
4411
  flipForward: boolean;
4316
4412
  private static _invertForward;
4317
4413
  private _firstUpdate;
4318
- onEnable(): void;
4319
4414
  onBeforeRender(): void;
4320
4415
  updateNow(hard: boolean): void;
4321
4416
  }
@@ -5332,10 +5427,13 @@ declare module "engine-components/codegen/components" {
5332
5427
  export { BasicIKConstraint } from "engine-components/BasicIKConstraint";
5333
5428
  export { BoxHelperComponent } from "engine-components/BoxHelperComponent";
5334
5429
  export { Camera } from "engine-components/Camera";
5430
+ export { CharacterController } from "engine-components/CharacterController";
5431
+ export { CharacterControllerInput } from "engine-components/CharacterController";
5335
5432
  export { Collider } from "engine-components/Collider";
5336
5433
  export { SphereCollider } from "engine-components/Collider";
5337
5434
  export { BoxCollider } from "engine-components/Collider";
5338
5435
  export { MeshCollider } from "engine-components/Collider";
5436
+ export { CapsuleCollider } from "engine-components/Collider";
5339
5437
  export { DeleteBox } from "engine-components/DeleteBox";
5340
5438
  export { Deletable } from "engine-components/DeleteBox";
5341
5439
  export { DeviceFlag } from "engine-components/DeviceFlag";
@@ -5354,6 +5452,7 @@ declare module "engine-components/codegen/components" {
5354
5452
  export { GroundProjectedEnv } from "engine-components/GroundProjection";
5355
5453
  export { Interactable } from "engine-components/Interactable";
5356
5454
  export { UsageMarker } from "engine-components/Interactable";
5455
+ export { FixedJoint } from "engine-components/Joints";
5357
5456
  export { Light } from "engine-components/Light";
5358
5457
  export { LODModel } from "engine-components/LODGroup";
5359
5458
  export { LODGroup } from "engine-components/LODGroup";