@needle-tools/engine 5.1.0-alpha → 5.1.0-canary.30cc545

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 (166) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/SKILL.md +39 -21
  3. package/components.needle.json +1 -1
  4. package/dist/{gltf-progressive-DJBMx-zB.umd.cjs → gltf-progressive-BmblPzFj.umd.cjs} +4 -4
  5. package/dist/{gltf-progressive-BryRjllq.min.js → gltf-progressive-CN_mbb66.min.js} +2 -2
  6. package/dist/{gltf-progressive-Cl167Vjx.js → gltf-progressive-DUlhxdv4.js} +5 -2
  7. package/dist/{needle-engine.bundle-wM-BWPX9.umd.cjs → needle-engine.bundle-BMlLSACE.umd.cjs} +250 -174
  8. package/dist/{needle-engine.bundle-qDahLTqW.min.js → needle-engine.bundle-BXPPQRer.min.js} +242 -166
  9. package/dist/{needle-engine.bundle-CwhCzjep.js → needle-engine.bundle-d_9mSxN4.js} +12930 -12465
  10. package/dist/needle-engine.d.ts +267 -16
  11. package/dist/needle-engine.js +569 -563
  12. package/dist/needle-engine.min.js +1 -1
  13. package/dist/needle-engine.umd.cjs +1 -1
  14. package/dist/{postprocessing-B_9sKVU7.min.js → postprocessing-B571qGWR.min.js} +34 -34
  15. package/dist/{postprocessing-WDc9WwI3.js → postprocessing-CfrLAbLX.js} +0 -1
  16. package/dist/{postprocessing-B2wb6pzI.umd.cjs → postprocessing-CiGkAeM9.umd.cjs} +17 -17
  17. package/dist/{vendor-CAcsI0eU.js → vendor-BFrMaK9q.js} +8983 -9136
  18. package/dist/vendor-CJmyOrCq.min.js +1116 -0
  19. package/dist/vendor-DkMW3WY4.umd.cjs +1116 -0
  20. package/lib/engine/api.d.ts +12 -0
  21. package/lib/engine/api.js +2 -0
  22. package/lib/engine/api.js.map +1 -1
  23. package/lib/engine/debug/debug_environment.js +1 -1
  24. package/lib/engine/debug/debug_environment.js.map +1 -1
  25. package/lib/engine/engine_application.js +8 -6
  26. package/lib/engine/engine_application.js.map +1 -1
  27. package/lib/engine/engine_components.js +5 -1
  28. package/lib/engine/engine_components.js.map +1 -1
  29. package/lib/engine/engine_constants.js +6 -0
  30. package/lib/engine/engine_constants.js.map +1 -1
  31. package/lib/engine/engine_context.d.ts +25 -0
  32. package/lib/engine/engine_context.js +27 -0
  33. package/lib/engine/engine_context.js.map +1 -1
  34. package/lib/engine/engine_context_registry.js +1 -1
  35. package/lib/engine/engine_context_registry.js.map +1 -1
  36. package/lib/engine/engine_init.js +2 -0
  37. package/lib/engine/engine_init.js.map +1 -1
  38. package/lib/engine/engine_input.d.ts +3 -2
  39. package/lib/engine/engine_input.js +3 -2
  40. package/lib/engine/engine_input.js.map +1 -1
  41. package/lib/engine/engine_license.js +11 -9
  42. package/lib/engine/engine_license.js.map +1 -1
  43. package/lib/engine/engine_networking_blob.d.ts +1 -1
  44. package/lib/engine/engine_networking_blob.js +5 -11
  45. package/lib/engine/engine_networking_blob.js.map +1 -1
  46. package/lib/engine/engine_physics_rapier.d.ts +3 -0
  47. package/lib/engine/engine_physics_rapier.js +13 -10
  48. package/lib/engine/engine_physics_rapier.js.map +1 -1
  49. package/lib/engine/engine_pmrem.js +2 -2
  50. package/lib/engine/engine_pmrem.js.map +1 -1
  51. package/lib/engine/engine_scenedata.d.ts +36 -0
  52. package/lib/engine/engine_scenedata.js +111 -0
  53. package/lib/engine/engine_scenedata.js.map +1 -0
  54. package/lib/engine/engine_ssr.d.ts +16 -0
  55. package/lib/engine/engine_ssr.js +38 -0
  56. package/lib/engine/engine_ssr.js.map +1 -0
  57. package/lib/engine/engine_three_utils.d.ts +14 -7
  58. package/lib/engine/engine_three_utils.js +14 -7
  59. package/lib/engine/engine_three_utils.js.map +1 -1
  60. package/lib/engine/engine_utils.js +4 -2
  61. package/lib/engine/engine_utils.js.map +1 -1
  62. package/lib/engine/engine_utils_hash.d.ts +9 -0
  63. package/lib/engine/engine_utils_hash.js +112 -0
  64. package/lib/engine/engine_utils_hash.js.map +1 -0
  65. package/lib/engine/webcomponents/logo-element.d.ts +2 -1
  66. package/lib/engine/webcomponents/logo-element.js +2 -1
  67. package/lib/engine/webcomponents/logo-element.js.map +1 -1
  68. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +2 -1
  69. package/lib/engine/webcomponents/needle menu/needle-menu.js +2 -1
  70. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  71. package/lib/engine/webcomponents/needle-button.d.ts +2 -1
  72. package/lib/engine/webcomponents/needle-button.js +2 -1
  73. package/lib/engine/webcomponents/needle-button.js.map +1 -1
  74. package/lib/engine/webcomponents/needle-engine.d.ts +2 -1
  75. package/lib/engine/webcomponents/needle-engine.js +2 -1
  76. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  77. package/lib/engine/xr/NeedleXRSession.d.ts +1 -0
  78. package/lib/engine/xr/NeedleXRSession.js +5 -5
  79. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  80. package/lib/engine/xr/events.d.ts +30 -3
  81. package/lib/engine/xr/events.js +38 -0
  82. package/lib/engine/xr/events.js.map +1 -1
  83. package/lib/engine/xr/init.js +1 -7
  84. package/lib/engine/xr/init.js.map +1 -1
  85. package/lib/engine-components/AnimatorController.d.ts +135 -2
  86. package/lib/engine-components/AnimatorController.js +218 -2
  87. package/lib/engine-components/AnimatorController.js.map +1 -1
  88. package/lib/engine-components/GroundProjection.d.ts +1 -0
  89. package/lib/engine-components/GroundProjection.js +184 -48
  90. package/lib/engine-components/GroundProjection.js.map +1 -1
  91. package/lib/engine-components/RigidBody.js +3 -3
  92. package/lib/engine-components/RigidBody.js.map +1 -1
  93. package/lib/engine-components/SceneSwitcher.js +2 -0
  94. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  95. package/lib/engine-components/api.d.ts +1 -0
  96. package/lib/engine-components/api.js +1 -0
  97. package/lib/engine-components/api.js.map +1 -1
  98. package/lib/engine-components/codegen/components.d.ts +1 -0
  99. package/lib/engine-components/codegen/components.js +1 -0
  100. package/lib/engine-components/codegen/components.js.map +1 -1
  101. package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +1 -1
  102. package/lib/engine-components/postprocessing/Effects/Sharpening.js +1 -2
  103. package/lib/engine-components/postprocessing/Effects/Sharpening.js.map +1 -1
  104. package/lib/engine-components/postprocessing/PostProcessingHandler.js +5 -6
  105. package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
  106. package/lib/engine-components/web/ScrollFollow.d.ts +0 -1
  107. package/lib/engine-components/web/ScrollFollow.js +3 -2
  108. package/lib/engine-components/web/ScrollFollow.js.map +1 -1
  109. package/package.json +6 -5
  110. package/plugins/common/logger.js +42 -19
  111. package/plugins/dts-generator/dts.codegen.js +129 -0
  112. package/plugins/dts-generator/dts.scan.js +71 -0
  113. package/plugins/dts-generator/dts.writer.js +59 -0
  114. package/plugins/dts-generator/glb.discovery.js +162 -0
  115. package/plugins/dts-generator/glb.extractor.js +175 -0
  116. package/plugins/dts-generator/glb.reader.js +114 -0
  117. package/plugins/dts-generator/index.js +36 -0
  118. package/plugins/dts-generator/manifest.types.js +174 -0
  119. package/plugins/types/index.d.ts +2 -1
  120. package/plugins/types/needle-bindings.d.ts +19 -0
  121. package/plugins/types/userconfig.d.ts +9 -2
  122. package/plugins/vite/dts-generator.d.ts +7 -0
  123. package/plugins/vite/dts-generator.js +157 -0
  124. package/plugins/vite/index.d.ts +1 -0
  125. package/plugins/vite/index.js +4 -0
  126. package/plugins/vite/logger.client.js +4 -3
  127. package/plugins/vite/logging.js +2 -2
  128. package/plugins/vite/reload.js +2 -1
  129. package/src/engine/api.ts +15 -1
  130. package/src/engine/debug/debug_environment.ts +1 -1
  131. package/src/engine/engine_application.ts +8 -6
  132. package/src/engine/engine_components.ts +7 -4
  133. package/src/engine/engine_constants.ts +11 -6
  134. package/src/engine/engine_context.ts +29 -0
  135. package/src/engine/engine_context_registry.ts +1 -1
  136. package/src/engine/engine_init.ts +2 -0
  137. package/src/engine/engine_input.ts +3 -2
  138. package/src/engine/engine_license.ts +11 -9
  139. package/src/engine/engine_networking_blob.ts +5 -11
  140. package/src/engine/engine_physics_rapier.ts +14 -12
  141. package/src/engine/engine_pmrem.ts +3 -3
  142. package/src/engine/engine_scenedata.ts +110 -0
  143. package/src/engine/engine_ssr.ts +45 -0
  144. package/src/engine/engine_three_utils.ts +15 -7
  145. package/src/engine/engine_utils.ts +3 -2
  146. package/src/engine/engine_utils_hash.ts +65 -0
  147. package/src/engine/webcomponents/logo-element.ts +2 -1
  148. package/src/engine/webcomponents/needle menu/needle-menu.ts +2 -1
  149. package/src/engine/webcomponents/needle-button.ts +2 -1
  150. package/src/engine/webcomponents/needle-engine.ts +2 -1
  151. package/src/engine/xr/NeedleXRSession.ts +6 -6
  152. package/src/engine/xr/events.ts +44 -1
  153. package/src/engine/xr/init.ts +0 -7
  154. package/src/engine-components/AnimatorController.ts +286 -4
  155. package/src/engine-components/GroundProjection.ts +226 -52
  156. package/src/engine-components/RigidBody.ts +3 -3
  157. package/src/engine-components/SceneSwitcher.ts +1 -0
  158. package/src/engine-components/api.ts +1 -0
  159. package/src/engine-components/codegen/components.ts +1 -0
  160. package/src/engine-components/postprocessing/Effects/BloomEffect.ts +1 -1
  161. package/src/engine-components/postprocessing/Effects/Sharpening.ts +1 -2
  162. package/src/engine-components/postprocessing/PostProcessingHandler.ts +4 -8
  163. package/src/engine-components/web/ScrollFollow.ts +2 -2
  164. package/src/vite-env.d.ts +16 -0
  165. package/dist/vendor-CEM38hLE.umd.cjs +0 -1116
  166. package/dist/vendor-HRlxIBga.min.js +0 -1116
@@ -723,6 +723,7 @@ export class SceneSwitcher extends Behaviour {
723
723
  // unless the user defines that he wants to use the scene name
724
724
  if (this.useSceneName) {
725
725
  if (scene instanceof Object3D) queryParameterValue = scene.name;
726
+ else if (scene instanceof AssetReference && scene.asset?.name) queryParameterValue = scene.asset.name;
726
727
  else if (scene.url) queryParameterValue = sceneUriToName(scene.url);
727
728
  }
728
729
  // save the loaded scene as an url parameter
@@ -35,6 +35,7 @@
35
35
  */
36
36
 
37
37
  export * from "./codegen/components.js";
38
+ export { AnimatorControllerBuilder, type ConditionMode, type StateOptions, type TransitionOptions } from "./AnimatorController.js";
38
39
  export { Collider } from "./Collider.js"; // export abstract type
39
40
  export { Behaviour, Component, GameObject } from "./Component.js";
40
41
 
@@ -6,6 +6,7 @@ export { Animation } from "../Animation.js";
6
6
  export { Keyframe } from "../AnimationCurve.js";
7
7
  export { AnimationCurve } from "../AnimationCurve.js";
8
8
  export { Animator } from "../Animator.js";
9
+ export { AnimatorControllerBuilder } from "../AnimatorController.js";
9
10
  export { AnimatorController } from "../AnimatorController.js";
10
11
  export { AudioListener } from "../AudioListener.js";
11
12
  export { AudioSource } from "../AudioSource.js";
@@ -1,4 +1,4 @@
1
- import { BloomEffect as _BloomEffect, EffectAttribute } from "postprocessing";
1
+ import type { BloomEffect as _BloomEffect } from "postprocessing";
2
2
  import { MathUtils } from "three";
3
3
 
4
4
  import { MODULES } from "../../../engine/engine_modules.js";
@@ -1,4 +1,3 @@
1
- import { EffectAttribute } from "postprocessing";
2
1
  import { Uniform } from "three";
3
2
 
4
3
  import { MODULES } from "../../../engine/engine_modules.js";
@@ -138,7 +137,7 @@ function createSharpeningEffectType() {
138
137
  ["radius", new Uniform(1)],
139
138
  // ["threshold", new Uniform(0)],
140
139
  ]),
141
- attributes: EffectAttribute.CONVOLUTION
140
+ attributes: MODULES.POSTPROCESSING.MODULE.EffectAttribute.CONVOLUTION
142
141
  });
143
142
  }
144
143
  }
@@ -14,10 +14,6 @@ import { threeToneMappingToEffectMode } from "./Effects/Tonemapping.utils.js";
14
14
  import { PostProcessingEffect, PostProcessingEffectContext } from "./PostProcessingEffect.js";
15
15
  import { orderEffects, PostprocessingEffectData, PostProcessingEffectOrder } from "./utils.js";
16
16
 
17
- declare const NEEDLE_USE_POSTPROCESSING: boolean;
18
- globalThis["NEEDLE_USE_POSTPROCESSING"] = globalThis["NEEDLE_USE_POSTPROCESSING"] !== undefined ? globalThis["NEEDLE_USE_POSTPROCESSING"] : true;
19
-
20
-
21
17
  const debug = getParam("debugpost");
22
18
 
23
19
  const activeKey = Symbol("needle:postprocessing-handler");
@@ -58,13 +54,13 @@ export class PostProcessingHandler implements IPostProcessingHandler {
58
54
 
59
55
  apply(components: PostProcessingEffect[]): Promise<void> {
60
56
  if ("env" in import.meta && (import.meta as any /* webpack support */ ).env.VITE_NEEDLE_USE_POSTPROCESSING === "false") {
61
- if (debug) console.warn("Postprocessing is disabled via vite env setting");
62
- else console.debug("Postprocessing is disabled via vite env setting");
57
+ if (debug) console.warn("POSTPROCESSING is disabled via vite env setting");
58
+ else console.debug("POSTPROCESSING is disabled via vite env setting");
63
59
  return Promise.resolve();
64
60
  }
65
61
  if (!NEEDLE_USE_POSTPROCESSING) {
66
- if (debug) console.warn("Postprocessing is disabled via global vite define setting");
67
- else console.debug("Postprocessing is disabled via vite define");
62
+ if (debug || isDevEnvironment()) console.warn("POSTPROCESSING is disabled via global vite define setting");
63
+ else console.debug("POSTPROCESSING is disabled via vite define");
68
64
  return Promise.resolve();
69
65
  }
70
66
 
@@ -1,5 +1,5 @@
1
- // For firefox ViewTimeline support
2
- import "scroll-timeline-polyfill/dist/scroll-timeline.js";
1
+ // For firefox ViewTimeline support — dynamic import to avoid SSR crashes (polyfill accesses window at module level)
2
+ if (typeof window !== "undefined") import("scroll-timeline-polyfill/dist/scroll-timeline.js");
3
3
 
4
4
  import { Box3, Object3D } from "three";
5
5
 
@@ -0,0 +1,16 @@
1
+ // Vite global defines — see plugins/vite/defines.js
2
+ // declare const entries here are picked up globally (ambient, no import/export).
3
+ // Vite sets these as globals in dev and statically replaces them at build time.
4
+ // Webpack DefinePlugin replaces them at build time too.
5
+ // The globalThis fallbacks for vanilla JS are in engine_constants.ts.
6
+
7
+ declare const NEEDLE_ENGINE_VERSION: string;
8
+ declare const NEEDLE_ENGINE_GENERATOR: string;
9
+ declare const NEEDLE_PROJECT_BUILD_TIME: string;
10
+ declare const NEEDLE_PUBLIC_KEY: string;
11
+
12
+ // #region treeshake flags
13
+ // declare var (not const) so globalThis["NEEDLE_USE_*"] access is also type-safe
14
+ declare var NEEDLE_USE_RAPIER: boolean;
15
+ declare var NEEDLE_USE_POSTPROCESSING: boolean;
16
+ // #endregion treeshake flags