@needle-tools/engine 2.35.3-pre → 2.35.5-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 (63) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/needle-engine.d.ts +58 -34
  3. package/dist/needle-engine.js +394 -343
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +96 -45
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/api.d.ts +3 -0
  8. package/lib/engine/api.js +3 -0
  9. package/lib/engine/api.js.map +1 -1
  10. package/lib/engine/debug/debug.d.ts +3 -0
  11. package/lib/engine/debug/debug.js +8 -0
  12. package/lib/engine/debug/debug.js.map +1 -0
  13. package/lib/engine/debug/debug_overlay.d.ts +7 -0
  14. package/lib/engine/debug/debug_overlay.js +202 -0
  15. package/lib/engine/debug/debug_overlay.js.map +1 -0
  16. package/lib/engine/engine.js +1 -1
  17. package/lib/engine/engine.js.map +1 -1
  18. package/lib/engine/engine_element_loading.js +19 -8
  19. package/lib/engine/engine_element_loading.js.map +1 -1
  20. package/lib/engine/engine_networking.js +4 -0
  21. package/lib/engine/engine_networking.js.map +1 -1
  22. package/lib/engine/engine_networking_utils.d.ts +1 -0
  23. package/lib/engine/engine_networking_utils.js +3 -0
  24. package/lib/engine/engine_networking_utils.js.map +1 -1
  25. package/lib/engine/engine_serialization_core.js +35 -0
  26. package/lib/engine/engine_serialization_core.js.map +1 -1
  27. package/lib/engine/engine_types.d.ts +5 -1
  28. package/lib/engine/engine_types.js.map +1 -1
  29. package/lib/engine/extensions/NEEDLE_render_objects.d.ts +2 -2
  30. package/lib/engine/extensions/NEEDLE_render_objects.js +2 -2
  31. package/lib/engine/extensions/NEEDLE_render_objects.js.map +1 -1
  32. package/lib/engine-components/AudioSource.d.ts +1 -1
  33. package/lib/engine-components/AudioSource.js +2 -2
  34. package/lib/engine-components/AudioSource.js.map +1 -1
  35. package/lib/engine-components/Component.js +4 -2
  36. package/lib/engine-components/Component.js.map +1 -1
  37. package/lib/engine-components/Renderer.d.ts +8 -3
  38. package/lib/engine-components/Renderer.js +9 -1
  39. package/lib/engine-components/Renderer.js.map +1 -1
  40. package/lib/engine-components/WebXRController.js +6 -2
  41. package/lib/engine-components/WebXRController.js.map +1 -1
  42. package/lib/engine-components/js-extensions/ExtensionUtils.js +1 -1
  43. package/lib/engine-components/js-extensions/ExtensionUtils.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/engine/api.ts +3 -0
  46. package/src/engine/debug/debug.ts +9 -0
  47. package/src/engine/debug/debug_overlay.ts +217 -0
  48. package/src/engine/engine.ts +1 -1
  49. package/src/engine/engine_element_loading.ts +20 -9
  50. package/src/engine/engine_networking.ts +7 -3
  51. package/src/engine/engine_networking_utils.ts +4 -0
  52. package/src/engine/engine_serialization_core.ts +34 -0
  53. package/src/engine/engine_types.ts +6 -1
  54. package/src/engine/extensions/NEEDLE_render_objects.ts +4 -4
  55. package/src/engine-components/AudioSource.ts +3 -3
  56. package/src/engine-components/Component.ts +4 -2
  57. package/src/engine-components/Renderer.ts +737 -724
  58. package/src/engine-components/WebXRController.ts +6 -2
  59. package/src/engine-components/js-extensions/ExtensionUtils.ts +1 -1
  60. package/lib/engine/debug/error_overlay.d.ts +0 -1
  61. package/lib/engine/debug/error_overlay.js +0 -114
  62. package/lib/engine/debug/error_overlay.js.map +0 -1
  63. package/src/engine/debug/error_overlay.ts +0 -126
package/CHANGELOG.md CHANGED
@@ -4,6 +4,17 @@ 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.35.5-pre] - 2022-10-24
8
+ - Change: AudioSource exposes ``clip`` field
9
+ - Change: improve error and messaging overlay
10
+ - Change: detect when serialized Object3D and AssetReference are missing ``@serializable`` attribute and show message in overlay
11
+ - Change: add WebXR hands path to controllers
12
+ - Fix: WebXR controllers now use interactable object when grabbing (instead of hit object previously) which fixes interaction with nested hierarchies in XR and DragControls
13
+
14
+ ## [2.35.4-pre] - 2022-10-23
15
+ - Change: Renderer ``material`` is now ``sharedMaterial`` to make it more clear for Unity devs that the material is not being cloned when accessed
16
+ - Fix: When not specifying any explicit networking backend for glitch deployment it now falls back to the current glitch instance for networking
17
+
7
18
  ## [2.35.3-pre] - 2022-10-21
8
19
  - Add: Screenshare component ``share`` method now takes optional options to configure device and MediaStreamConstraints for starting the stream
9
20
  - Fix: WebXR should show EnterVR button when enabled in Unity
@@ -100,8 +100,12 @@ declare module "engine/engine_types" {
100
100
  intensity: number;
101
101
  color: Color;
102
102
  }
103
+ export interface ISharedMaterials {
104
+ [num: number]: Material;
105
+ }
103
106
  export interface IRenderer extends IComponent {
104
- material: Material;
107
+ sharedMaterial: Material;
108
+ get sharedMaterials(): ISharedMaterials;
105
109
  }
106
110
  export interface ICollider extends IComponent {
107
111
  get isCollider(): any;
@@ -210,6 +214,45 @@ declare module "engine/extensions/NEEDLE_persistent_assets" {
210
214
  resolve(parser: GLTFParser, path: string): Promise<void> | null | any;
211
215
  }
212
216
  }
217
+ declare module "engine/engine_networking_utils" {
218
+ export function isLocalNetwork(hostname?: string): boolean;
219
+ export function isHostedOnGlitch(): boolean;
220
+ }
221
+ declare module "engine/engine_element_overlay" {
222
+ import { Context } from "engine/engine_setup";
223
+ export const arContainerClassName = "ar";
224
+ export const quitARClassName = "quit-ar";
225
+ export class AROverlayHandler {
226
+ get ARContainer(): HTMLElement | null;
227
+ constructor();
228
+ private arContainer;
229
+ closeARCallback: any;
230
+ currentSession: THREE.XRSession | null;
231
+ registeredCloseEventElements: Element[];
232
+ private _createdAROnlyElements;
233
+ private _reparentedObjects;
234
+ requestEndAR(): void;
235
+ onBegin(context: Context, overlayContainer: HTMLElement, session: THREE.XRSession): void;
236
+ onEnd(_context: Context): void;
237
+ findOrCreateARContainer(element: HTMLElement): HTMLElement;
238
+ private onRequestedEndAR;
239
+ private createFallbackCloseARButton;
240
+ }
241
+ }
242
+ declare module "engine/debug/debug_overlay" {
243
+ export enum LogType {
244
+ Log = 0,
245
+ Warn = 1,
246
+ Error = 2
247
+ }
248
+ export function makeErrorsVisibleForDevelopment(): void;
249
+ export function addLog(type: LogType, message: string | any[], _file?: string | null, _line?: number | null): void;
250
+ }
251
+ declare module "engine/debug/debug" {
252
+ import { LogType } from "engine/debug/debug_overlay";
253
+ export { LogType };
254
+ export function showBalloonMessage(text: string, logType?: LogType): void;
255
+ }
213
256
  declare module "engine/engine_serialization_core" {
214
257
  import { GLTF } from "three/examples/jsm/loaders/GLTFLoader";
215
258
  import { Object3D } from "three";
@@ -1700,27 +1743,6 @@ declare module "engine/engine_setup" {
1700
1743
  private executeCoroutines;
1701
1744
  }
1702
1745
  }
1703
- declare module "engine/engine_element_overlay" {
1704
- import { Context } from "engine/engine_setup";
1705
- export const arContainerClassName = "ar";
1706
- export const quitARClassName = "quit-ar";
1707
- export class AROverlayHandler {
1708
- get ARContainer(): HTMLElement | null;
1709
- constructor();
1710
- private arContainer;
1711
- closeARCallback: any;
1712
- currentSession: THREE.XRSession | null;
1713
- registeredCloseEventElements: Element[];
1714
- private _createdAROnlyElements;
1715
- private _reparentedObjects;
1716
- requestEndAR(): void;
1717
- onBegin(context: Context, overlayContainer: HTMLElement, session: THREE.XRSession): void;
1718
- onEnd(_context: Context): void;
1719
- findOrCreateARContainer(element: HTMLElement): HTMLElement;
1720
- private onRequestedEndAR;
1721
- private createFallbackCloseARButton;
1722
- }
1723
- }
1724
1746
  declare module "engine/engine_element_loading" {
1725
1747
  import { LoadingProgressArgs } from "engine/engine_setup";
1726
1748
  export class LoadingElementOptions {
@@ -2077,10 +2099,10 @@ declare module "engine/extensions/NEEDLE_gameobject_data" {
2077
2099
  declare module "engine/extensions/NEEDLE_render_objects" {
2078
2100
  import { SourceIdentifier } from "engine/engine_types";
2079
2101
  import { GLTF, GLTFLoaderPlugin, GLTFParser } from "three/examples/jsm/loaders/GLTFLoader";
2080
- import { IRenderer as Renderer } from "engine/engine_types";
2102
+ import { IRenderer } from "engine/engine_types";
2081
2103
  export class NEEDLE_render_objects implements GLTFLoaderPlugin {
2082
2104
  private static stencils;
2083
- static applyStencil(obj?: Renderer | null): void;
2105
+ static applyStencil(obj?: IRenderer | null): void;
2084
2106
  private parser;
2085
2107
  private source;
2086
2108
  constructor(parser: GLTFParser, source: SourceIdentifier);
@@ -2284,6 +2306,9 @@ declare module "engine/api" {
2284
2306
  export { InstancingUtil } from "engine/engine_instancing";
2285
2307
  export * from "engine/engine_gameobject";
2286
2308
  export * from "engine/engine_components";
2309
+ export { AssetReference } from "engine/engine_addressables";
2310
+ export { FrameEvent } from "engine/engine_setup";
2311
+ export * from "engine/debug/debug";
2287
2312
  }
2288
2313
  declare module "engine-components/AlignmentConstraint" {
2289
2314
  import { Behaviour } from "engine-components/Component";
@@ -2328,7 +2353,7 @@ declare module "engine-components/AudioSource" {
2328
2353
  static registerWaitForAllowAudio(cb: Function): void;
2329
2354
  private static _userInteractionRegistered;
2330
2355
  private static _beginWaitForUserInteraction;
2331
- private clip;
2356
+ clip: string;
2332
2357
  playOnAwake: boolean;
2333
2358
  get loop(): boolean;
2334
2359
  set loop(val: boolean);
@@ -3108,7 +3133,7 @@ declare module "engine-components/Renderer" {
3108
3133
  import { Behaviour } from "engine-components/Component";
3109
3134
  import * as THREE from "three";
3110
3135
  import { Mesh, Texture } from "three";
3111
- import { IRenderer } from "engine/engine_types";
3136
+ import { IRenderer, ISharedMaterials } from "engine/engine_types";
3112
3137
  export { InstancingUtil } from "engine/engine_instancing";
3113
3138
  export class FieldWithDefault {
3114
3139
  path: string | null;
@@ -3120,7 +3145,8 @@ declare module "engine-components/Renderer" {
3120
3145
  Back = 1,
3121
3146
  Front = 2
3122
3147
  }
3123
- class SharedMaterialArray {
3148
+ class SharedMaterialArray implements ISharedMaterials {
3149
+ [num: number]: THREE.Material;
3124
3150
  private _renderer;
3125
3151
  private _targets;
3126
3152
  is(renderer: Renderer): boolean;
@@ -3138,8 +3164,12 @@ declare module "engine-components/Renderer" {
3138
3164
  renderOrder: number[] | undefined;
3139
3165
  allowOcclusionWhenDynamic: boolean;
3140
3166
  private _lightmaps?;
3141
- get mesh(): Mesh | undefined;
3167
+ get sharedMesh(): Mesh | undefined;
3168
+ get sharedMaterial(): THREE.Material;
3169
+ set sharedMaterial(mat: THREE.Material);
3170
+ /**@deprecated please use sharedMaterial */
3142
3171
  get material(): THREE.Material;
3172
+ /**@deprecated please use sharedMaterial */
3143
3173
  set material(mat: THREE.Material);
3144
3174
  private _sharedMaterials;
3145
3175
  get sharedMaterials(): SharedMaterialArray;
@@ -3543,9 +3573,6 @@ declare module "engine-components/DragControls" {
3543
3573
  private onDragEnd;
3544
3574
  }
3545
3575
  }
3546
- declare module "engine/engine_networking_utils" {
3547
- export function isLocalNetwork(hostname?: string): boolean;
3548
- }
3549
3576
  declare module "engine-components/Networking" {
3550
3577
  import { INetworkingWebsocketUrlProvider } from "engine/engine_networking";
3551
3578
  import { Behaviour } from "engine-components/Component";
@@ -5359,9 +5386,6 @@ declare module "needle-engine" {
5359
5386
  export * from "engine-components/codegen/components";
5360
5387
  export * from "engine-components/js-extensions/Object3D";
5361
5388
  }
5362
- declare module "engine/debug/error_overlay" {
5363
- export function makeErrorsVisibleForDevelopment(): void;
5364
- }
5365
5389
  declare module "engine/engine" {
5366
5390
  import * as engine_setup from "engine/engine_setup";
5367
5391
  import * as engine_scenetools from "engine/engine_scenetools";