@needle-tools/engine 4.3.0-alpha → 4.3.0-alpha.3

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 (122) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/needle-engine.bundle.js +6683 -5393
  3. package/dist/needle-engine.bundle.light.js +6687 -5397
  4. package/dist/needle-engine.bundle.light.min.js +121 -118
  5. package/dist/needle-engine.bundle.light.umd.cjs +128 -125
  6. package/dist/needle-engine.bundle.min.js +119 -116
  7. package/dist/needle-engine.bundle.umd.cjs +124 -121
  8. package/dist/needle-engine.d.ts +9 -9
  9. package/dist/needle-engine.light.d.ts +9 -9
  10. package/lib/engine/engine_context.js +1 -1
  11. package/lib/engine/engine_context.js.map +1 -1
  12. package/lib/engine/engine_mainloop_utils.js +2 -4
  13. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  14. package/lib/engine/engine_serialization_core.js +1 -1
  15. package/lib/engine/engine_serialization_core.js.map +1 -1
  16. package/lib/engine/engine_types.d.ts +162 -17
  17. package/lib/engine/xr/NeedleXRSession.d.ts +6 -1
  18. package/lib/engine/xr/NeedleXRSession.js +6 -1
  19. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  20. package/lib/engine-components/Animator.d.ts +129 -21
  21. package/lib/engine-components/Animator.js +115 -21
  22. package/lib/engine-components/Animator.js.map +1 -1
  23. package/lib/engine-components/AnimatorController.d.ts +161 -32
  24. package/lib/engine-components/AnimatorController.js +176 -29
  25. package/lib/engine-components/AnimatorController.js.map +1 -1
  26. package/lib/engine-components/AudioListener.d.ts +16 -5
  27. package/lib/engine-components/AudioListener.js +16 -5
  28. package/lib/engine-components/AudioListener.js.map +1 -1
  29. package/lib/engine-components/AudioSource.d.ts +120 -28
  30. package/lib/engine-components/AudioSource.js +121 -40
  31. package/lib/engine-components/AudioSource.js.map +1 -1
  32. package/lib/engine-components/AvatarLoader.d.ts +61 -0
  33. package/lib/engine-components/AvatarLoader.js +61 -1
  34. package/lib/engine-components/AvatarLoader.js.map +1 -1
  35. package/lib/engine-components/AxesHelper.d.ts +19 -1
  36. package/lib/engine-components/AxesHelper.js +19 -1
  37. package/lib/engine-components/AxesHelper.js.map +1 -1
  38. package/lib/engine-components/BoxHelperComponent.d.ts +26 -0
  39. package/lib/engine-components/BoxHelperComponent.js +26 -0
  40. package/lib/engine-components/BoxHelperComponent.js.map +1 -1
  41. package/lib/engine-components/Camera.d.ts +126 -37
  42. package/lib/engine-components/Camera.js +139 -37
  43. package/lib/engine-components/Camera.js.map +1 -1
  44. package/lib/engine-components/CameraUtils.js +20 -0
  45. package/lib/engine-components/CameraUtils.js.map +1 -1
  46. package/lib/engine-components/Collider.d.ts +95 -21
  47. package/lib/engine-components/Collider.js +100 -23
  48. package/lib/engine-components/Collider.js.map +1 -1
  49. package/lib/engine-components/Component.d.ts +554 -106
  50. package/lib/engine-components/Component.js +352 -81
  51. package/lib/engine-components/Component.js.map +1 -1
  52. package/lib/engine-components/DragControls.d.ts +95 -21
  53. package/lib/engine-components/DragControls.js +126 -32
  54. package/lib/engine-components/DragControls.js.map +1 -1
  55. package/lib/engine-components/DropListener.d.ts +99 -16
  56. package/lib/engine-components/DropListener.js +119 -14
  57. package/lib/engine-components/DropListener.js.map +1 -1
  58. package/lib/engine-components/Light.d.ts +102 -5
  59. package/lib/engine-components/Light.js +102 -44
  60. package/lib/engine-components/Light.js.map +1 -1
  61. package/lib/engine-components/NeedleMenu.d.ts +28 -11
  62. package/lib/engine-components/NeedleMenu.js +28 -11
  63. package/lib/engine-components/NeedleMenu.js.map +1 -1
  64. package/lib/engine-components/Networking.d.ts +37 -5
  65. package/lib/engine-components/Networking.js +37 -5
  66. package/lib/engine-components/Networking.js.map +1 -1
  67. package/lib/engine-components/SceneSwitcher.js +44 -0
  68. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  69. package/lib/engine-components/SpatialTrigger.d.ts +66 -1
  70. package/lib/engine-components/SpatialTrigger.js +74 -2
  71. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  72. package/lib/engine-components/SpectatorCamera.d.ts +66 -4
  73. package/lib/engine-components/SpectatorCamera.js +132 -6
  74. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  75. package/lib/engine-components/SyncedTransform.d.ts +45 -6
  76. package/lib/engine-components/SyncedTransform.js +45 -6
  77. package/lib/engine-components/SyncedTransform.js.map +1 -1
  78. package/lib/engine-components/TransformGizmo.d.ts +49 -3
  79. package/lib/engine-components/TransformGizmo.js +49 -3
  80. package/lib/engine-components/TransformGizmo.js.map +1 -1
  81. package/lib/engine-components/particlesystem/ParticleSystem.js +1 -1
  82. package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
  83. package/lib/engine-components/webxr/WebARSessionRoot.d.ts +8 -3
  84. package/lib/engine-components/webxr/WebARSessionRoot.js +30 -9
  85. package/lib/engine-components/webxr/WebARSessionRoot.js.map +1 -1
  86. package/lib/engine-components/webxr/WebXR.d.ts +156 -25
  87. package/lib/engine-components/webxr/WebXR.js +160 -26
  88. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  89. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +82 -9
  90. package/lib/engine-components-experimental/networking/PlayerSync.js +76 -11
  91. package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -1
  92. package/package.json +1 -1
  93. package/src/engine/engine_context.ts +1 -1
  94. package/src/engine/engine_mainloop_utils.ts +2 -4
  95. package/src/engine/engine_serialization_core.ts +1 -1
  96. package/src/engine/engine_types.ts +179 -18
  97. package/src/engine/xr/NeedleXRSession.ts +7 -1
  98. package/src/engine-components/Animator.ts +142 -22
  99. package/src/engine-components/AnimatorController.ts +184 -34
  100. package/src/engine-components/AudioListener.ts +16 -5
  101. package/src/engine-components/AudioSource.ts +127 -39
  102. package/src/engine-components/AvatarLoader.ts +61 -2
  103. package/src/engine-components/AxesHelper.ts +21 -1
  104. package/src/engine-components/BoxHelperComponent.ts +26 -0
  105. package/src/engine-components/Camera.ts +147 -41
  106. package/src/engine-components/CameraUtils.ts +20 -0
  107. package/src/engine-components/Collider.ts +102 -27
  108. package/src/engine-components/Component.ts +605 -129
  109. package/src/engine-components/DragControls.ts +134 -38
  110. package/src/engine-components/DropListener.ts +143 -23
  111. package/src/engine-components/Light.ts +105 -44
  112. package/src/engine-components/NeedleMenu.ts +29 -11
  113. package/src/engine-components/Networking.ts +37 -6
  114. package/src/engine-components/SceneSwitcher.ts +48 -1
  115. package/src/engine-components/SpatialTrigger.ts +80 -3
  116. package/src/engine-components/SpectatorCamera.ts +136 -18
  117. package/src/engine-components/SyncedTransform.ts +50 -7
  118. package/src/engine-components/TransformGizmo.ts +49 -4
  119. package/src/engine-components/particlesystem/ParticleSystem.ts +2 -2
  120. package/src/engine-components/webxr/WebARSessionRoot.ts +31 -8
  121. package/src/engine-components/webxr/WebXR.ts +173 -29
  122. package/src/engine-components-experimental/networking/PlayerSync.ts +85 -13
@@ -17,39 +17,66 @@ import { OrbitControls } from "./OrbitControls.js";
17
17
  import { SmoothFollow } from "./SmoothFollow.js";
18
18
  import { AvatarMarker } from "./webxr/WebXRAvatar.js";
19
19
  import { XRStateFlag } from "./webxr/XRFlag.js";
20
+ /**
21
+ * Defines the viewing perspective in spectator mode
22
+ */
20
23
  export var SpectatorMode;
21
24
  (function (SpectatorMode) {
25
+ /** View from the perspective of the followed player */
22
26
  SpectatorMode[SpectatorMode["FirstPerson"] = 0] = "FirstPerson";
27
+ /** Freely view from a third-person perspective */
23
28
  SpectatorMode[SpectatorMode["ThirdPerson"] = 1] = "ThirdPerson";
24
29
  })(SpectatorMode || (SpectatorMode = {}));
25
30
  const debug = getParam("debugspectator");
26
31
  /**
32
+ * Provides functionality to follow and spectate other users in a networked environment.
33
+ * Handles camera switching, following behavior, and network synchronization for spectator mode.
34
+ *
35
+ * Debug mode can be enabled with the URL parameter `?debugspectator`, which provides additional console output.
36
+ *
27
37
  * @category Networking
28
38
  * @group Components
29
39
  */
30
40
  export class SpectatorCamera extends Behaviour {
41
+ /** Reference to the Camera component on this GameObject */
31
42
  cam = null;
32
- /** when enabled pressing F will send a request to all connected users to follow me, ESC to stop */
43
+ /**
44
+ * When enabled, pressing F will send a request to all connected users to follow the local player.
45
+ * Pressing ESC will stop spectating.
46
+ */
33
47
  useKeys = true;
34
48
  _mode = SpectatorMode.FirstPerson;
49
+ /** Gets the current spectator perspective mode */
35
50
  get mode() { return this._mode; }
51
+ /** Sets the current spectator perspective mode */
36
52
  set mode(val) {
37
53
  this._mode = val;
38
54
  }
39
- /** if this user is currently spectating someone else */
55
+ /** Returns whether this user is currently spectating another user */
40
56
  get isSpectating() {
41
57
  return this._handler?.currentTarget !== undefined;
42
58
  }
59
+ /**
60
+ * Checks if this instance is spectating the user with the given ID
61
+ * @param userId The user ID to check
62
+ * @returns True if spectating the specified user, false otherwise
63
+ */
43
64
  isSpectatingUser(userId) {
44
65
  return this.target?.userId === userId;
45
66
  }
67
+ /**
68
+ * Checks if the user with the specified ID is following this user
69
+ * @param userId The user ID to check
70
+ * @returns True if the specified user is following this user, false otherwise
71
+ */
46
72
  isFollowedBy(userId) {
47
73
  return this.followers?.includes(userId);
48
74
  }
49
- /** list of other users that are following me */
75
+ /** List of user IDs that are currently following the user */
50
76
  get followers() {
51
77
  return this._networking.followers;
52
78
  }
79
+ /** Stops the current spectating session */
53
80
  stopSpectating() {
54
81
  if (this.context.isInXR) {
55
82
  this.followSelf();
@@ -57,10 +84,14 @@ export class SpectatorCamera extends Behaviour {
57
84
  }
58
85
  this.target = undefined;
59
86
  }
87
+ /** Gets the local player's connection ID */
60
88
  get localId() {
61
89
  return this.context.connection.connectionId ?? "local";
62
90
  }
63
- /** player view to follow */
91
+ /**
92
+ * Sets the player view to follow
93
+ * @param target The PlayerView to follow, or undefined to stop spectating
94
+ */
64
95
  set target(target) {
65
96
  if (this._handler) {
66
97
  // if (this.target?.userId) {
@@ -91,12 +122,15 @@ export class SpectatorCamera extends Behaviour {
91
122
  }
92
123
  }
93
124
  }
125
+ /** Gets the currently followed player view */
94
126
  get target() {
95
127
  return this._handler?.currentTarget;
96
128
  }
129
+ /** Sends a network request for all users to follow this player */
97
130
  requestAllFollowMe() {
98
131
  this._networking.onRequestFollowMe();
99
132
  }
133
+ /** Determines if the camera is spectating the local player */
100
134
  get isSpectatingSelf() {
101
135
  return this.isSpectating && this.target?.currentObject === this.context.players.getPlayerView(this.localId)?.currentObject;
102
136
  }
@@ -129,17 +163,29 @@ export class SpectatorCamera extends Behaviour {
129
163
  this._handler?.destroy();
130
164
  this._networking?.destroy();
131
165
  }
166
+ /**
167
+ * Checks if the current platform supports spectator mode
168
+ * @returns True if the platform is supported, false otherwise
169
+ */
132
170
  isSupportedPlatform() {
133
171
  const ua = window.navigator.userAgent;
134
172
  const standalone = /Windows|MacOS/.test(ua);
135
173
  const isHololens = /Windows NT/.test(ua) && /Edg/.test(ua) && !/Win64/.test(ua);
136
174
  return standalone && !isHololens;
137
175
  }
176
+ /**
177
+ * Called before entering WebXR mode
178
+ * @param _evt The WebXR event
179
+ */
138
180
  onBeforeXR(_evt) {
139
181
  if (!this.isSupportedPlatform())
140
182
  return;
141
183
  GameObject.setActive(this.gameObject, true);
142
184
  }
185
+ /**
186
+ * Called when entering WebXR mode
187
+ * @param _evt The WebXR event
188
+ */
143
189
  onEnterXR(_evt) {
144
190
  if (!this.isSupportedPlatform())
145
191
  return;
@@ -149,6 +195,10 @@ export class SpectatorCamera extends Behaviour {
149
195
  this.followSelf();
150
196
  }
151
197
  }
198
+ /**
199
+ * Called when exiting WebXR mode
200
+ * @param _evt The WebXR event
201
+ */
152
202
  onLeaveXR(_evt) {
153
203
  this.context.removeCamera(this.cam);
154
204
  GameObject.setActive(this.gameObject, false);
@@ -159,6 +209,9 @@ export class SpectatorCamera extends Behaviour {
159
209
  if (this.isSpectatingSelf)
160
210
  this.stopSpectating();
161
211
  }
212
+ /**
213
+ * Sets the target to follow the local player
214
+ */
162
215
  followSelf() {
163
216
  this.target = this.context.players.getPlayerView(this.context.connection.connectionId);
164
217
  if (!this.target) {
@@ -171,6 +224,9 @@ export class SpectatorCamera extends Behaviour {
171
224
  // TODO: only show Spectator cam for DesktopVR;
172
225
  // don't show for AR, don't show on Quest
173
226
  // TODO: properly align cameras on enter/exit VR, seems currently spectator cam breaks alignment
227
+ /**
228
+ * Called after the main rendering pass to render the spectator view
229
+ */
174
230
  onAfterRender() {
175
231
  if (!this.cam)
176
232
  return;
@@ -236,6 +292,9 @@ export class SpectatorCamera extends Behaviour {
236
292
  webglState.bindXRFramebuffer(oldFramebuffer);
237
293
  this.resetAvatarFlags();
238
294
  }
295
+ /**
296
+ * Updates avatar visibility flags for rendering in spectator mode
297
+ */
239
298
  setAvatarFlagsBeforeRender() {
240
299
  const isFirstPersonMode = this._mode === SpectatorMode.FirstPerson;
241
300
  for (const av of AvatarMarker.instances) {
@@ -252,6 +311,9 @@ export class SpectatorCamera extends Behaviour {
252
311
  }
253
312
  }
254
313
  }
314
+ /**
315
+ * Restores avatar visibility flags after spectator rendering
316
+ */
255
317
  resetAvatarFlags() {
256
318
  for (const av of AvatarMarker.instances) {
257
319
  if (av.avatar && "flags" in av.avatar) {
@@ -273,6 +335,9 @@ export class SpectatorCamera extends Behaviour {
273
335
  __decorate([
274
336
  serializable()
275
337
  ], SpectatorCamera.prototype, "useKeys", void 0);
338
+ /**
339
+ * Handles the smooth following behavior for the spectator camera
340
+ */
276
341
  class SpectatorHandler {
277
342
  context;
278
343
  cam;
@@ -281,6 +346,7 @@ class SpectatorHandler {
281
346
  target;
282
347
  view;
283
348
  currentObject;
349
+ /** Gets the currently targeted player view */
284
350
  get currentTarget() {
285
351
  return this.view;
286
352
  }
@@ -289,6 +355,10 @@ class SpectatorHandler {
289
355
  this.cam = cam;
290
356
  this.spectator = spectator;
291
357
  }
358
+ /**
359
+ * Sets the target player view to follow
360
+ * @param view The PlayerView to follow
361
+ */
292
362
  set(view) {
293
363
  const followObject = view?.currentObject;
294
364
  if (!followObject) {
@@ -315,6 +385,7 @@ class SpectatorHandler {
315
385
  else
316
386
  this.context.removeCamera(this.cam);
317
387
  }
388
+ /** Disables the spectator following behavior */
318
389
  disable() {
319
390
  if (debug)
320
391
  console.log("STOP FOLLOW", this.currentObject);
@@ -324,11 +395,16 @@ class SpectatorHandler {
324
395
  if (this.follow)
325
396
  this.follow.enabled = false;
326
397
  }
398
+ /** Cleans up resources used by the handler */
327
399
  destroy() {
328
400
  this.target?.removeFromParent();
329
401
  if (this.follow)
330
402
  GameObject.destroy(this.follow);
331
403
  }
404
+ /**
405
+ * Updates the camera position and orientation based on the spectator mode
406
+ * @param mode The current spectator mode (first or third person)
407
+ */
332
408
  update(mode) {
333
409
  if (this.currentTarget?.isConnected === false || this.currentTarget?.removed === true) {
334
410
  if (debug)
@@ -382,6 +458,9 @@ class SpectatorHandler {
382
458
  }
383
459
  }
384
460
  const _inverseYQuat = new Quaternion().setFromAxisAngle(new Vector3(0, 1, 0), Math.PI);
461
+ /**
462
+ * Handles user input for selecting targets to spectate
463
+ */
385
464
  class SpectatorSelectionController {
386
465
  context;
387
466
  spectator;
@@ -410,6 +489,9 @@ class SpectatorSelectionController {
410
489
  this.trySelectObject();
411
490
  });
412
491
  }
492
+ /**
493
+ * Attempts to select an avatar to spectate through raycasting
494
+ */
413
495
  trySelectObject() {
414
496
  const opts = new RaycastOptions();
415
497
  opts.setMask(0xffffff);
@@ -435,12 +517,16 @@ class SpectatorSelectionController {
435
517
  }
436
518
  }
437
519
  }
520
+ /**
521
+ * Network model for communicating follower changes
522
+ */
438
523
  class SpectatorFollowerChangedEventModel {
439
- /** the user that is following */
524
+ /** The user ID that is following */
440
525
  guid;
441
526
  dontSave = true;
442
- /** the user being followed */
527
+ /** The user ID being followed */
443
528
  targetUserId;
529
+ /** Indicates if the user stopped following */
444
530
  stoppedFollowing;
445
531
  constructor(connectionId, userId, stoppedFollowing) {
446
532
  this.guid = connectionId;
@@ -448,6 +534,9 @@ class SpectatorFollowerChangedEventModel {
448
534
  this.stoppedFollowing = stoppedFollowing;
449
535
  }
450
536
  }
537
+ /**
538
+ * Network model for requesting users to follow a specific player
539
+ */
451
540
  class SpectatorFollowEventModel {
452
541
  guid;
453
542
  userId;
@@ -456,7 +545,11 @@ class SpectatorFollowEventModel {
456
545
  this.userId = userId;
457
546
  }
458
547
  }
548
+ /**
549
+ * Handles network communication for spectator functionality
550
+ */
459
551
  class SpectatorCamNetworking {
552
+ /** List of user IDs currently following this player */
460
553
  followers = [];
461
554
  context;
462
555
  spectator;
@@ -470,6 +563,9 @@ class SpectatorCamNetworking {
470
563
  this._requestFollowMethod = this.onRequestFollowEvent.bind(this);
471
564
  this._joinedRoomMethod = this.onUserJoinedRoom.bind(this);
472
565
  }
566
+ /**
567
+ * Initializes network event listeners
568
+ */
473
569
  awake() {
474
570
  this.context.connection.beginListen("spectator-follower-changed", this._followerEventMethod);
475
571
  this.context.connection.beginListen("spectator-request-follow", this._requestFollowMethod);
@@ -485,11 +581,19 @@ class SpectatorCamNetworking {
485
581
  }
486
582
  });
487
583
  }
584
+ /**
585
+ * Removes network event listeners
586
+ */
488
587
  destroy() {
489
588
  this.context.connection.stopListen("spectator-follower-changed", this._followerEventMethod);
490
589
  this.context.connection.stopListen("spectator-request-follow", this._requestFollowMethod);
491
590
  this.context.connection.stopListen(RoomEvents.JoinedRoom, this._joinedRoomMethod);
492
591
  }
592
+ /**
593
+ * Notifies other users about spectating target changes
594
+ * @param target The new target being spectated
595
+ * @param _prevId The previous target's user ID
596
+ */
493
597
  onSpectatedObjectChanged(target, _prevId) {
494
598
  if (debug)
495
599
  console.log(this.context.connection.connectionId, "onSpectatedObjectChanged", target, _prevId);
@@ -500,6 +604,10 @@ class SpectatorCamNetworking {
500
604
  this.context.connection.send("spectator-follower-changed", evt);
501
605
  }
502
606
  }
607
+ /**
608
+ * Requests other users to follow this player or stop following
609
+ * @param stop Whether to request users to stop following
610
+ */
503
611
  onRequestFollowMe(stop = false) {
504
612
  if (debug)
505
613
  console.log("Request follow", this.context.connection.connectionId);
@@ -510,11 +618,18 @@ class SpectatorCamNetworking {
510
618
  this.context.connection.send("spectator-request-follow", model);
511
619
  }
512
620
  }
621
+ /**
622
+ * Handles room join events
623
+ */
513
624
  onUserJoinedRoom() {
514
625
  if (getParam("followme")) {
515
626
  this.onRequestFollowMe();
516
627
  }
517
628
  }
629
+ /**
630
+ * Processes follower status change events from the network
631
+ * @param evt The follower change event data
632
+ */
518
633
  onFollowerEvent(evt) {
519
634
  const userBeingFollowed = evt.targetUserId;
520
635
  const userThatIsFollowing = evt.guid;
@@ -538,6 +653,9 @@ class SpectatorCamNetworking {
538
653
  }
539
654
  }
540
655
  }
656
+ /**
657
+ * Removes followers that are no longer connected to the room
658
+ */
541
659
  removeDisconnectedFollowers() {
542
660
  for (let i = this.followers.length - 1; i >= 0; i--) {
543
661
  const id = this.followers[i];
@@ -547,6 +665,11 @@ class SpectatorCamNetworking {
547
665
  }
548
666
  }
549
667
  _lastRequestFollowUser;
668
+ /**
669
+ * Handles follow requests from other users
670
+ * @param evt The follow request event
671
+ * @returns True if the request was handled successfully
672
+ */
550
673
  onRequestFollowEvent(evt) {
551
674
  this._lastRequestFollowUser = evt;
552
675
  if (evt.userId === this.context.connection.connectionId) {
@@ -571,6 +694,9 @@ class SpectatorCamNetworking {
571
694
  return true;
572
695
  }
573
696
  _enforceFollowInterval;
697
+ /**
698
+ * Periodically retries following a user if the initial attempt failed
699
+ */
574
700
  enforceFollow() {
575
701
  if (this._enforceFollowInterval)
576
702
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"SpectatorCamera.js","sourceRoot":"","sources":["../../src/engine-components/SpectatorCamera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpectatorCamera.js","sourceRoot":"","sources":["../../src/engine-components/SpectatorCamera.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,29 @@
1
1
  import { Behaviour } from "./Component.js";
2
2
  export declare const SyncedTransformIdentifier = "STRS";
3
- /** Creates a flatbuffer model containing the transform data of a game object. Used by {@link SyncedTransform}
3
+ /**
4
+ * Creates a flatbuffer model containing the transform data of a game object. Used by {@link SyncedTransform}
5
+ * @param guid The unique identifier of the object to sync
6
+ * @param b The behavior component containing transform data
7
+ * @param fast Whether to use fast mode synchronization (syncs more frequently)
8
+ * @returns A Uint8Array containing the serialized transform data
4
9
  */
5
10
  export declare function createTransformModel(guid: string, b: Behaviour, fast?: boolean): Uint8Array;
6
11
  /**
7
- * SyncedTransform is a behaviour that syncs the transform of a game object over the network.
12
+ * SyncedTransform synchronizes the position and rotation of a game object over the network.
13
+ * It handles ownership transfer, interpolation, and network state updates automatically.
8
14
  * @category Networking
9
15
  * @group Components
10
16
  */
11
17
  export declare class SyncedTransform extends Behaviour {
18
+ /** When true, overrides physics behavior when this object is owned by the local user */
12
19
  overridePhysics: boolean;
20
+ /** Whether to smoothly interpolate position changes when receiving updates */
13
21
  interpolatePosition: boolean;
22
+ /** Whether to smoothly interpolate rotation changes when receiving updates */
14
23
  interpolateRotation: boolean;
24
+ /** When true, sends updates at a higher frequency, useful for fast-moving objects */
15
25
  fastMode: boolean;
26
+ /** When true, notifies other clients when this object is destroyed */
16
27
  syncDestroy: boolean;
17
28
  private _model;
18
29
  private _needsUpdate;
@@ -23,9 +34,20 @@ export declare class SyncedTransform extends Behaviour {
23
34
  private _targetRotation;
24
35
  private _receivedFastUpdate;
25
36
  private _shouldRequestOwnership;
26
- /** Request ownership of an object - you need to be connected to a room */
37
+ /**
38
+ * Requests ownership of this object on the network.
39
+ * You need to be connected to a room for this to work.
40
+ */
27
41
  requestOwnership(): void;
42
+ /**
43
+ * Checks if this client has ownership of the object
44
+ * @returns true if this client has ownership, false if not, undefined if ownership state is unknown
45
+ */
28
46
  hasOwnership(): boolean | undefined;
47
+ /**
48
+ * Checks if the object is owned by any client
49
+ * @returns true if the object is owned, false if not, undefined if ownership state is unknown
50
+ */
29
51
  isOwned(): boolean | undefined;
30
52
  private joinedRoomCallback;
31
53
  private receivedDataCallback;
@@ -33,16 +55,33 @@ export declare class SyncedTransform extends Behaviour {
33
55
  awake(): void;
34
56
  /** @internal */
35
57
  onDestroy(): void;
58
+ /**
59
+ * Attempts to retrieve and apply the last known network state for this transform
60
+ */
36
61
  private tryGetLastState;
37
62
  private tempEuler;
63
+ /**
64
+ * Handles incoming network data for this transform
65
+ * @param data The model containing transform information
66
+ */
38
67
  private onReceivedData;
39
- /** @internal */
68
+ /**
69
+ * @internal
70
+ * Initializes tracking of position and rotation when component is enabled
71
+ */
40
72
  onEnable(): void;
41
- /** @internal */
73
+ /**
74
+ * @internal
75
+ * Releases ownership when component is disabled
76
+ */
42
77
  onDisable(): void;
43
78
  private receivedUpdate;
44
79
  private lastWorldPos;
45
80
  private lastWorldRotation;
46
- /** @internal */
81
+ /**
82
+ * @internal
83
+ * Handles transform synchronization before each render frame
84
+ * Sends updates when owner, receives and applies updates when not owner
85
+ */
47
86
  onBeforeRender(): void;
48
87
  }