@needle-tools/engine 5.1.0-alpha.2 → 5.1.0-canary.244f23e

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 (42) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/dist/{needle-engine.bundle-B-5Q2CpC.min.js → needle-engine.bundle-CJmix0Oo.min.js} +135 -135
  3. package/dist/{needle-engine.bundle-dit3f1l5.js → needle-engine.bundle-CcPGKcD_.js} +5403 -5396
  4. package/dist/{needle-engine.bundle-qZfVf_v-.umd.cjs → needle-engine.bundle-rcR8UYgV.umd.cjs} +135 -135
  5. package/dist/needle-engine.d.ts +16 -17
  6. package/dist/needle-engine.js +188 -186
  7. package/dist/needle-engine.min.js +1 -1
  8. package/dist/needle-engine.umd.cjs +1 -1
  9. package/lib/engine/debug/debug_spatial_console.d.ts +2 -0
  10. package/lib/engine/debug/debug_spatial_console.js +10 -7
  11. package/lib/engine/debug/debug_spatial_console.js.map +1 -1
  12. package/lib/engine/engine_addressables.d.ts +2 -0
  13. package/lib/engine/engine_addressables.js +6 -3
  14. package/lib/engine/engine_addressables.js.map +1 -1
  15. package/lib/engine/engine_gameobject.js +2 -2
  16. package/lib/engine/engine_gameobject.js.map +1 -1
  17. package/lib/engine/engine_init.js +10 -0
  18. package/lib/engine/engine_init.js.map +1 -1
  19. package/lib/engine/engine_scenedata.d.ts +2 -0
  20. package/lib/engine/engine_scenedata.js +2 -0
  21. package/lib/engine/engine_scenedata.js.map +1 -1
  22. package/lib/engine/engine_serialization_builtin_serializer.d.ts +10 -16
  23. package/lib/engine/engine_serialization_builtin_serializer.js +28 -41
  24. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  25. package/lib/engine-components/AnimatorController.d.ts +2 -0
  26. package/lib/engine-components/AnimatorController.js +4 -1
  27. package/lib/engine-components/AnimatorController.js.map +1 -1
  28. package/lib/engine-components/ReflectionProbe.js +2 -0
  29. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  30. package/lib/engine-components/postprocessing/VolumeParameter.d.ts +2 -0
  31. package/lib/engine-components/postprocessing/VolumeParameter.js +4 -1
  32. package/lib/engine-components/postprocessing/VolumeParameter.js.map +1 -1
  33. package/package.json +2 -2
  34. package/src/engine/debug/debug_spatial_console.ts +10 -7
  35. package/src/engine/engine_addressables.ts +6 -3
  36. package/src/engine/engine_gameobject.ts +2 -2
  37. package/src/engine/engine_init.ts +10 -0
  38. package/src/engine/engine_scenedata.ts +2 -0
  39. package/src/engine/engine_serialization_builtin_serializer.ts +32 -43
  40. package/src/engine-components/AnimatorController.ts +4 -1
  41. package/src/engine-components/ReflectionProbe.ts +2 -0
  42. package/src/engine-components/postprocessing/VolumeParameter.ts +4 -1
@@ -133,5 +133,8 @@ class VolumeParameterSerializer extends TypeSerializer {
133
133
  return parameter;
134
134
  }
135
135
  }
136
- new VolumeParameterSerializer();
136
+ /** @internal */
137
+ export function initVolumeParameterSerializer() {
138
+ new VolumeParameterSerializer();
139
+ }
137
140
  //# sourceMappingURL=VolumeParameter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VolumeParameter.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/VolumeParameter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VolumeParameter.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/VolumeParameter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "5.1.0-alpha.2",
3
+ "version": "5.1.0-canary.244f23e",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
5
5
  "main": "dist/needle-engine.min.js",
6
6
  "exports": {
@@ -207,4 +207,4 @@
207
207
  "module": "lib/needle-engine.js",
208
208
  "typings": "lib/needle-engine.d.ts",
209
209
  "types": "lib/needle-engine.d.ts"
210
- }
210
+ }
@@ -12,13 +12,16 @@ import { onError } from "./debug_overlay.js";
12
12
 
13
13
  let _isActive = false;
14
14
 
15
- // enable the spatial console if we receive an error while in dev session and in XR
16
- onError((...args: any[]) => {
17
- if (isDevEnvironment() && ContextRegistry.Current?.isInXR) {
18
- enableSpatialConsole(true);
19
- onLog("error", ...args);
20
- }
21
- })
15
+ /** @internal */
16
+ export function initSpatialConsole() {
17
+ // enable the spatial console if we receive an error while in dev session and in XR
18
+ onError((...args: any[]) => {
19
+ if (isDevEnvironment() && ContextRegistry.Current?.isInXR) {
20
+ enableSpatialConsole(true);
21
+ onLog("error", ...args);
22
+ }
23
+ });
24
+ }
22
25
 
23
26
 
24
27
  /** Enable a spatial debug console that follows the camera */
@@ -567,7 +567,6 @@ class AddressableSerializer extends TypeSerializer {
567
567
  }
568
568
 
569
569
  }
570
- new AddressableSerializer();
571
570
 
572
571
 
573
572
 
@@ -703,7 +702,6 @@ export class ImageReferenceSerializer extends TypeSerializer {
703
702
  return undefined;
704
703
  }
705
704
  }
706
- new ImageReferenceSerializer();
707
705
 
708
706
 
709
707
 
@@ -772,4 +770,9 @@ export class FileReferenceSerializer extends TypeSerializer {
772
770
  return undefined;
773
771
  }
774
772
  }
775
- new FileReferenceSerializer();
773
+ /** @internal */
774
+ export function initAddressableSerializers() {
775
+ new AddressableSerializer();
776
+ new ImageReferenceSerializer();
777
+ new FileReferenceSerializer();
778
+ }
@@ -212,8 +212,8 @@ function internalDestroy(instance: Object3D | Component, recursive: boolean = tr
212
212
  if (comp[$isDontDestroy]) return;
213
213
  destroyed_components.push(comp);
214
214
  const go = comp.gameObject;
215
- comp.__internalDisable();
216
- comp.__internalDestroy();
215
+ comp.__internalDisable?.();
216
+ comp.__internalDestroy?.();
217
217
  comp.gameObject = go;
218
218
  return;
219
219
  }
@@ -1,10 +1,14 @@
1
+ import { initAnimatorControllerSerializer } from "../engine-components/AnimatorController.js";
1
2
  import { initAnimationAutoplay } from "../engine-components/AnimationUtilsAutoplay.js";
2
3
  import { initCameraUtils } from "../engine-components/CameraUtils.js";
4
+ import { initVolumeParameterSerializer } from "../engine-components/postprocessing/VolumeParameter.js";
3
5
  import { initSceneSwitcherAttributes } from "../engine-components/SceneSwitcher.js";
4
6
  import { initSkyboxAttributes } from "../engine-components/Skybox.js";
7
+ import { initAddressableSerializers } from "./engine_addressables.js";
5
8
  import { initBuiltinTypes } from "./codegen/register_types.js";
6
9
  import { ensureAudioContextIsResumed } from "./engine_audio.js";
7
10
  import { initNeedleLoader } from "./engine_loaders.js";
11
+ import { initBuiltinSerializers } from "./engine_serialization_builtin_serializer.js";
8
12
  import { initShims } from "./engine_shims.js";
9
13
  import { patchTonemapping } from "./engine_tonemapping.js";
10
14
  import { initCameraExtensions } from "./js-extensions/Camera.js";
@@ -15,6 +19,7 @@ import { SSR } from "./engine_ssr.js";
15
19
  import { initLicense } from "./engine_license.js";
16
20
  import { initWebComponents } from "./webcomponents/init.js";
17
21
  import { initPhysics } from "./engine_physics_rapier.js";
22
+ import { initSpatialConsole } from "./debug/debug_spatial_console.js";
18
23
  import { initXR } from "./xr/init.js";
19
24
 
20
25
  let initialized = false;
@@ -35,6 +40,10 @@ export function initEngine() {
35
40
 
36
41
  initWebComponents();
37
42
  initShims();
43
+ initBuiltinSerializers();
44
+ initAddressableSerializers();
45
+ initAnimatorControllerSerializer();
46
+ initVolumeParameterSerializer();
38
47
  patchTonemapping();
39
48
  patchLayers();
40
49
  initCameraExtensions();
@@ -49,5 +58,6 @@ export function initEngine() {
49
58
  initSceneSwitcherAttributes();
50
59
  initPhysics();
51
60
  initXR();
61
+ initSpatialConsole();
52
62
  initLicense();
53
63
  }
@@ -13,6 +13,8 @@ import { ContextRegistry } from "./engine_context_registry.js";
13
13
  * Safe to import at module level, including in SSR environments.
14
14
  * For pages with multiple `<needle-engine>` elements, use `ctx` directly instead.
15
15
  *
16
+ * @experimental This API may change in future releases.
17
+ *
16
18
  * @example
17
19
  * import { needle } from "@needle-tools/engine";
18
20
  * button.onclick = () => {
@@ -11,24 +11,6 @@ import { IComponent } from "./engine_types.js";
11
11
  import { resolveUrl } from "./engine_utils.js";
12
12
  import { RGBAColor } from "./js-extensions/index.js";
13
13
 
14
- // export class SourcePath {
15
- // src?:string
16
- // };
17
-
18
- // class SourcePathSerializer extends TypeSerializer{
19
- // constructor(){
20
- // super(SourcePath);
21
- // }
22
- // onDeserialize(data: any, _context: SerializationContext) {
23
- // if(data.src && typeof data.src === "string"){
24
- // return data.src;
25
- // }
26
- // }
27
- // onSerialize(_data: any, _context: SerializationContext) {
28
-
29
- // }
30
- // }
31
- // new SourcePathSerializer();
32
14
 
33
15
  class ColorSerializer extends TypeSerializer {
34
16
  constructor() {
@@ -52,7 +34,6 @@ class ColorSerializer extends TypeSerializer {
52
34
  return { r: data.r, g: data.g, b: data.b }
53
35
  }
54
36
  }
55
- export const colorSerializer = new ColorSerializer();
56
37
 
57
38
  class EulerSerializer extends TypeSerializer {
58
39
  constructor() {
@@ -72,7 +53,6 @@ class EulerSerializer extends TypeSerializer {
72
53
  return { x: data.x, y: data.y, z: data.z, order: data.order };
73
54
  }
74
55
  }
75
- export const euler = new EulerSerializer();
76
56
 
77
57
  declare type ObjectData = {
78
58
  node?: number;
@@ -107,16 +87,6 @@ class ObjectSerializer extends TypeSerializer {
107
87
  console.warn(`Wrong usage of @serializable detected in your script \"${scriptname}\"\n\nIt looks like you used @serializable(Object3D) or @serializable(GameObject) for a prefab or scene reference which is exported to a separate glTF file.\n\nTo fix this please change your code to:\n\n@serializable(AssetReference)\n${context.path}! : AssetReference;\n\0`);
108
88
  }
109
89
  // ACTUALLY: this is already handled by the extension_utils where we resolve json pointers recursively
110
- // if(data.startsWith("/nodes/")){
111
- // const node = parseInt(data.substring("/nodes/".length));
112
- // if (context.nodeToObject) {
113
- // const res = context.nodeToObject[node];
114
- // if (debugExtension)
115
- // console.log("Deserialized object reference?", data, res, context?.nodeToObject);
116
- // if (!res) console.warn("Did not find node: " + data, context.nodeToObject, context.object);
117
- // return res;
118
- // }
119
- // }
120
90
  return undefined;
121
91
  }
122
92
 
@@ -166,7 +136,6 @@ class ObjectSerializer extends TypeSerializer {
166
136
  return undefined;
167
137
  }
168
138
  }
169
- export const objectSerializer = new ObjectSerializer();
170
139
 
171
140
 
172
141
  class ComponentSerializer extends TypeSerializer {
@@ -241,7 +210,6 @@ class ComponentSerializer extends TypeSerializer {
241
210
  }
242
211
  }
243
212
  }
244
- export const componentSerializer = new ComponentSerializer();
245
213
 
246
214
 
247
215
  declare class EventListData {
@@ -396,21 +364,12 @@ class EventListSerializer extends TypeSerializer {
396
364
  // };
397
365
  // }
398
366
  }
399
- export const eventListSerializer = new EventListSerializer();
400
367
 
401
368
 
402
369
  /** Map<Clone, Original> texture. This is used for compressed textures (or when the GLTFLoader is cloning RenderTextures)
403
370
  * It's a weak map so we don't have to worry about memory leaks
404
371
  */
405
372
  const cloneOriginalMap = new WeakMap<Texture, Texture>();
406
- const textureClone = Texture.prototype.clone;
407
- Texture.prototype.clone = function () {
408
- const clone = textureClone.call(this);
409
- if (!cloneOriginalMap.has(clone)) {
410
- cloneOriginalMap.set(clone, this);
411
- }
412
- return clone;
413
- }
414
373
 
415
374
  export class RenderTextureSerializer extends TypeSerializer {
416
375
  constructor() {
@@ -452,7 +411,6 @@ export class RenderTextureSerializer extends TypeSerializer {
452
411
  return undefined;
453
412
  }
454
413
  }
455
- new RenderTextureSerializer();
456
414
 
457
415
 
458
416
  export class UriSerializer extends TypeSerializer {
@@ -471,4 +429,35 @@ export class UriSerializer extends TypeSerializer {
471
429
  return undefined;
472
430
  }
473
431
  }
474
- new UriSerializer();
432
+
433
+
434
+ // Module-level references used by EventListSerializer internally
435
+ export let colorSerializer: ColorSerializer;
436
+ export let objectSerializer: ObjectSerializer;
437
+ export let componentSerializer: ComponentSerializer;
438
+ export let eventListSerializer: EventListSerializer;
439
+
440
+ /** Register all builtin serializers and prototype patches.
441
+ * Must be called from {@link initEngine} so the registrations survive tree-shaking
442
+ * when the package declares `sideEffects: false`.
443
+ */
444
+ export function initBuiltinSerializers() {
445
+ // Prototype patches
446
+ const textureClone = Texture.prototype.clone;
447
+ Texture.prototype.clone = function () {
448
+ const clone = textureClone.call(this);
449
+ if (!cloneOriginalMap.has(clone)) {
450
+ cloneOriginalMap.set(clone, this);
451
+ }
452
+ return clone;
453
+ }
454
+
455
+ // Register all serializers
456
+ colorSerializer = new ColorSerializer();
457
+ new EulerSerializer();
458
+ objectSerializer = new ObjectSerializer();
459
+ componentSerializer = new ComponentSerializer();
460
+ eventListSerializer = new EventListSerializer();
461
+ new RenderTextureSerializer();
462
+ new UriSerializer();
463
+ }
@@ -1586,4 +1586,7 @@ class AnimatorControllerSerializator extends TypeSerializer {
1586
1586
  return undefined;
1587
1587
  }
1588
1588
  }
1589
- new AnimatorControllerSerializator(AnimatorController);
1589
+ /** @internal */
1590
+ export function initAnimatorControllerSerializer() {
1591
+ new AnimatorControllerSerializator(AnimatorController);
1592
+ }
@@ -290,6 +290,8 @@ export class ReflectionProbe extends Behaviour {
290
290
  const current = block.getOverride("envMap")?.value;
291
291
  if (current === this.texture) {
292
292
  block.removeOveride("envMap");
293
+ block.removeOveride("envMapRotation");
294
+ block.removeOveride("envMapIntensity");
293
295
  }
294
296
  }
295
297
  }
@@ -156,4 +156,7 @@ class VolumeParameterSerializer extends TypeSerializer {
156
156
  return parameter;
157
157
  }
158
158
  }
159
- new VolumeParameterSerializer();
159
+ /** @internal */
160
+ export function initVolumeParameterSerializer() {
161
+ new VolumeParameterSerializer();
162
+ }