@needle-tools/engine 4.2.5 → 4.3.0-alpha

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 (31) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/components.needle.json +1 -1
  3. package/dist/needle-engine.bundle.js +2783 -2760
  4. package/dist/needle-engine.bundle.light.js +2774 -2751
  5. package/dist/needle-engine.bundle.light.min.js +62 -62
  6. package/dist/needle-engine.bundle.light.umd.cjs +61 -61
  7. package/dist/needle-engine.bundle.min.js +62 -62
  8. package/dist/needle-engine.bundle.umd.cjs +61 -61
  9. package/dist/three-examples.js +825 -794
  10. package/dist/three-examples.light.js +825 -794
  11. package/dist/three-examples.light.min.js +12 -12
  12. package/dist/three-examples.light.umd.cjs +10 -10
  13. package/dist/three-examples.min.js +12 -12
  14. package/dist/three-examples.umd.cjs +10 -10
  15. package/lib/engine/engine_addressables.d.ts +3 -0
  16. package/lib/engine/engine_addressables.js +18 -0
  17. package/lib/engine/engine_addressables.js.map +1 -1
  18. package/lib/engine/engine_input.d.ts +20 -1
  19. package/lib/engine/engine_input.js.map +1 -1
  20. package/lib/engine-components/SceneSwitcher.d.ts +8 -0
  21. package/lib/engine-components/SceneSwitcher.js +28 -8
  22. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  23. package/lib/engine-components/ui/EventSystem.d.ts +1 -0
  24. package/lib/engine-components/ui/EventSystem.js +8 -5
  25. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  26. package/package.json +1 -1
  27. package/plugins/vite/alias.js +6 -3
  28. package/src/engine/engine_addressables.ts +21 -0
  29. package/src/engine/engine_input.ts +20 -1
  30. package/src/engine-components/SceneSwitcher.ts +30 -8
  31. package/src/engine-components/ui/EventSystem.ts +9 -7
@@ -41,6 +41,7 @@ export class EventSystem extends Behaviour {
41
41
  this.createIfNoneExists(ctx);
42
42
  return ctx.scene.getComponent(EventSystem);
43
43
  }
44
+ /** Get the currently active event system */
44
45
  static get instance() {
45
46
  return this.get(Context.Current);
46
47
  }
@@ -55,7 +56,9 @@ export class EventSystem extends Behaviour {
55
56
  this.raycaster?.splice(i, 1);
56
57
  }
57
58
  }
58
- get hasActiveUI() { return this.currentActiveMeshUIComponents.length > 0; }
59
+ get hasActiveUI() {
60
+ return this.currentActiveMeshUIComponents.length > 0;
61
+ }
59
62
  get isHoveringObjects() { return this.hoveredByID.size > 0; }
60
63
  awake() {
61
64
  // We only want ONE eventsystem on the root scene
@@ -725,7 +728,7 @@ class MeshUIHelper {
725
728
  static updateState(intersect, _selectState) {
726
729
  let foundBlock = null;
727
730
  if (intersect) {
728
- foundBlock = this.findBlockInParent(intersect);
731
+ foundBlock = this.findBlockOrTextInParent(intersect);
729
732
  // console.log(intersect, "-- found block:", foundBlock)
730
733
  if (foundBlock && foundBlock !== this.lastSelected) {
731
734
  const interactable = foundBlock["interactable"];
@@ -748,15 +751,15 @@ class MeshUIHelper {
748
751
  return;
749
752
  this.needsUpdate = true;
750
753
  }
751
- static findBlockInParent(elem) {
754
+ static findBlockOrTextInParent(elem) {
752
755
  if (!elem)
753
756
  return null;
754
- if (elem.isBlock) {
757
+ if (elem.isBlock || (elem.isText)) {
755
758
  // @TODO : Replace states managements
756
759
  // if (Object.keys(elem.states).length > 0)
757
760
  return elem;
758
761
  }
759
- return this.findBlockInParent(elem.parent);
762
+ return this.findBlockOrTextInParent(elem.parent);
760
763
  }
761
764
  }
762
765
  //# sourceMappingURL=EventSystem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventSystem.js","sourceRoot":"","sources":["../../../src/engine-components/ui/EventSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventSystem.js","sourceRoot":"","sources":["../../../src/engine-components/ui/EventSystem.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": "4.2.5",
3
+ "version": "4.3.0-alpha",
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": {
@@ -57,6 +57,8 @@ export const needleViteAlias = (command, config, userSettings) => {
57
57
  }
58
58
  if (debug) {
59
59
  const outputFilePath = path.resolve(projectDir, 'node_modules/.vite/needle.alias.log');
60
+ const outputDirectory = path.dirname(outputFilePath);
61
+ if (!existsSync(outputDirectory)) mkdirSync(outputDirectory, { recursive: true });
60
62
  outputDebugFile = createWriteStream(outputFilePath, { flags: "a" });
61
63
  const timestamp = new Date().toISOString();
62
64
  outputDebugFile.write("\n\n\n--------------------------\n");
@@ -68,7 +70,7 @@ export const needleViteAlias = (command, config, userSettings) => {
68
70
  const aliasPlugin = {
69
71
  name: "needle-alias",
70
72
  config(config) {
71
- if (debug) console.log('[needle-alias] ProjectDirectory: ' + projectDir);
73
+ if (debug) console.log('[needle-alias] ProjectDirectory: ' + projectDir);
72
74
  if (!config.resolve) config.resolve = {};
73
75
  if (!config.resolve.alias) config.resolve.alias = {};
74
76
  const aliasDict = config.resolve.alias;
@@ -97,6 +99,7 @@ export const needleViteAlias = (command, config, userSettings) => {
97
99
  let lastImporter = "";
98
100
  /** This plugin logs all imports. This helps to find cases where incorrect folders are found/resolved. */
99
101
 
102
+ /** @type {import("vite").Plugin} */
100
103
  const debuggingPlugin = {
101
104
  name: "needle:alias-debug",
102
105
  // needs to run before regular resolver
@@ -115,9 +118,9 @@ export const needleViteAlias = (command, config, userSettings) => {
115
118
  // verbose logging for all imports
116
119
  if (lastImporter !== importer) {
117
120
  lastImporter = importer;
118
- log('[needle-alias] Resolving: ', importer, "(file)");
121
+ log(`[needle-alias] Resolving: ${importer} (file${options?.ssr ? ", SSR" : ""})`);
119
122
  }
120
- log('[needle-alias] ' + id);
123
+ log(`[needle-alias] ${id}`);
121
124
  return;
122
125
  },
123
126
  }
@@ -164,6 +164,11 @@ export class AssetReference {
164
164
  return this._url;
165
165
  }
166
166
 
167
+ /** The name of the assigned url. This name is deduced from the url and might not reflect the actual name of the asset */
168
+ get urlName(): string {
169
+ return this._urlName;
170
+ };
171
+
167
172
  /**
168
173
  * @returns true if the uri is a valid URL (http, https, blob)
169
174
  */
@@ -180,6 +185,7 @@ export class AssetReference {
180
185
  private _asset: any;
181
186
  private _glbRoot?: Object3D | null;
182
187
  private _url: string;
188
+ private _urlName: string;
183
189
  private _progressListeners: ProgressCallback[] = [];
184
190
 
185
191
  private _hash?: string;
@@ -191,12 +197,27 @@ export class AssetReference {
191
197
  /** @internal */
192
198
  constructor(uri: string, hash?: string, asset: any = null) {
193
199
  this._url = uri;
200
+
201
+ const lastUriPart = uri.lastIndexOf("/");
202
+ if (lastUriPart >= 0) {
203
+ this._urlName = uri.substring(lastUriPart + 1);
204
+ // remove file extension
205
+ const lastDot = this._urlName.lastIndexOf(".");
206
+ if (lastDot >= 0) {
207
+ this._urlName = this._urlName.substring(0, lastDot);
208
+ }
209
+ }
210
+ else {
211
+ this._urlName = uri;
212
+ }
213
+
194
214
  this._hash = hash;
195
215
  if (uri.includes("?v="))
196
216
  this._hashedUri = uri;
197
217
  else
198
218
  this._hashedUri = hash ? uri + "?v=" + hash : uri;
199
219
  if (asset !== null) this.asset = asset;
220
+
200
221
  registerPrefabProvider(this._url, this.onResolvePrefab.bind(this));
201
222
  }
202
223
 
@@ -255,7 +255,26 @@ export class Input implements IInput {
255
255
  /** Adds an event listener for the specified event type. The callback will be called when the event is triggered.
256
256
  * @param type The event type to listen for
257
257
  * @param callback The callback to call when the event is triggered
258
- * @param options The options for adding the event listener
258
+ * @param options The options for adding the event listener.
259
+ * @example Basic usage:
260
+ * ```ts
261
+ * input.addEventListener("pointerdown", (evt) => {
262
+ * console.log("Pointer down", evt.pointerId, evt.pointerType);
263
+ * });
264
+ * ```
265
+ * @example Adding a listener that is called after all other listeners
266
+ * By using a higher value for the queue the listener will be called after other listeners (default queue is 0).
267
+ * ```ts
268
+ * input.addEventListener("pointerdown", (evt) => {
269
+ * console.log("Pointer down", evt.pointerId, evt.pointerType);
270
+ * }, { queue: 10 });
271
+ * ```
272
+ * @example Adding a listener that is only called once
273
+ * ```ts
274
+ * input.addEventListener("pointerdown", (evt) => {
275
+ * console.log("Pointer down", evt.pointerId, evt.pointerType);
276
+ * }, { once: true });
277
+ * ```
259
278
  */
260
279
  addEventListener(type: PointerEventNames, callback: PointerEventListener, options?: EventListenerOptions);
261
280
  addEventListener(type: KeyboardEventNames, callback: KeyboardEventListener, options?: EventListenerOptions);
@@ -46,6 +46,10 @@ export type LoadSceneEvent = {
46
46
  index: number;
47
47
  }
48
48
 
49
+ export type LoadSceneProgressEvent = LoadSceneEvent & {
50
+ progress: number,
51
+ }
52
+
49
53
  /**
50
54
  * The ISceneEventListener is called by the {@link SceneSwitcher} when a scene is loaded or unloaded.
51
55
  * It must be added to the root object of your scene (that is being loaded) or on the same object as the SceneSwitcher
@@ -225,6 +229,15 @@ export class SceneSwitcher extends Behaviour {
225
229
  */
226
230
  get currentlyLoadedScene() { return this._currentScene; }
227
231
 
232
+ /**
233
+ * Called when a scene starts loading
234
+ */
235
+ @serializable(EventList)
236
+ sceneLoadingStart: EventList<LoadSceneEvent> = new EventList();
237
+
238
+ @serializable(EventList)
239
+ sceneLoadingProgress: EventList<ProgressEvent> = new EventList();
240
+
228
241
  /**
229
242
  * The sceneLoaded event is called when a scene/glTF is loaded and added to the scene
230
243
  */
@@ -281,7 +294,7 @@ export class SceneSwitcher extends Behaviour {
281
294
  this._preloadScheduler.maxLoadAhead = this.preloadNext;
282
295
  this._preloadScheduler.maxLoadBehind = this.preloadPrevious;
283
296
  this._preloadScheduler.maxConcurrent = this.preloadConcurrent;
284
- this._preloadScheduler.begin();
297
+ this._preloadScheduler.begin(2000);
285
298
 
286
299
  // Begin loading the loading scene
287
300
  if (this.autoLoadFirstScene && this._currentIndex === -1 && !await this.tryLoadFromQueryParam()) {
@@ -602,11 +615,13 @@ export class SceneSwitcher extends Behaviour {
602
615
 
603
616
  const loadStartEvt = new CustomEvent<LoadSceneEvent>("loadscene-start", { detail: { scene: scene, switcher: this, index: index } })
604
617
  this.dispatchEvent(loadStartEvt);
618
+ this.sceneLoadingStart?.invoke(loadStartEvt.detail);
605
619
  await this.onStartLoading();
606
620
  // start loading and wait for the scene to be loaded
607
621
  await scene.loadAssetAsync((_, prog) => {
608
622
  this._currentLoadingProgress = prog;
609
623
  this.dispatchEvent(prog);
624
+ this.sceneLoadingProgress?.invoke(prog);
610
625
  }).catch(console.error);
611
626
  await this.onEndLoading();
612
627
  const finishedEvt = new CustomEvent<LoadSceneEvent>("loadscene-finished", { detail: { scene: scene, switcher: this, index: index } });
@@ -859,26 +874,30 @@ class PreLoadScheduler {
859
874
  this.maxConcurrent = maxConcurrent;
860
875
  }
861
876
 
862
- begin() {
877
+ begin(delay: number) {
863
878
  if (this._isRunning) return;
864
- if (debug) console.log("Preload begin")
879
+ if (debug) console.log("Preload begin", { delay })
865
880
  this._isRunning = true;
866
- let lastRoom: number = -1;
881
+ let lastRoom: number = -10;
867
882
  let searchDistance: number;
868
883
  let searchCall: number;
869
884
  const array = this._switcher.scenes;
885
+ const startTime = Date.now() + delay;
870
886
  const interval = setInterval(() => {
871
887
  if (this.allLoaded()) {
872
888
  if (debug)
873
- console.log("All scenes loaded");
889
+ console.log("All scenes (pre-)loaded");
874
890
  this.stop();
875
891
  }
876
892
  if (!this._isRunning) {
877
893
  clearInterval(interval);
878
894
  return;
879
895
  }
896
+
897
+ if (Date.now() < startTime) return;
898
+
880
899
  if (this.canLoadNewScene() === false) return;
881
- if (lastRoom !== this._switcher.currentIndex) {
900
+ if (lastRoom === -10 || lastRoom !== this._switcher.currentIndex) {
882
901
  lastRoom = this._switcher.currentIndex;
883
902
  searchCall = 0;
884
903
  searchDistance = 0;
@@ -892,8 +911,11 @@ class PreLoadScheduler {
892
911
  if (roomIndex < 0) return;
893
912
  // if (roomIndex < 0) roomIndex = array.length + roomIndex;
894
913
  if (roomIndex < 0 || roomIndex >= array.length) return;
895
- const scene = array[roomIndex];
896
- new LoadTask(roomIndex, scene, this._loadTasks);
914
+ if (!this._loadTasks.some(t => t.index === roomIndex)) {
915
+ const scene = array[roomIndex];
916
+ if (debug) console.log("Preload scene", { roomIndex, searchForward, lastRoom, currentIndex: this._switcher.currentIndex, tasks: this._loadTasks.length }, scene?.url);
917
+ new LoadTask(roomIndex, scene, this._loadTasks);
918
+ }
897
919
  }, 200);
898
920
  }
899
921
 
@@ -59,6 +59,7 @@ export class EventSystem extends Behaviour {
59
59
  return ctx.scene.getComponent(EventSystem);
60
60
  }
61
61
 
62
+ /** Get the currently active event system */
62
63
  static get instance(): EventSystem | null {
63
64
  return this.get(Context.Current);
64
65
  }
@@ -75,7 +76,10 @@ export class EventSystem extends Behaviour {
75
76
  }
76
77
  }
77
78
 
78
- get hasActiveUI() { return this.currentActiveMeshUIComponents.length > 0; }
79
+ get hasActiveUI() {
80
+ return this.currentActiveMeshUIComponents.length > 0;
81
+ }
82
+
79
83
  get isHoveringObjects() { return this.hoveredByID.size > 0; }
80
84
 
81
85
  awake(): void {
@@ -424,7 +428,6 @@ export class EventSystem extends Behaviour {
424
428
  const res = UIRaycastUtils.isInteractable(actualGo, this.out);
425
429
  if (!res) return false;
426
430
  canvasGroup = this.out.canvasGroup ?? null;
427
-
428
431
  const handled = this.handleMeshUIIntersection(object, pressedOrClicked);
429
432
  if (!clicked && handled) {
430
433
  // return true;
@@ -753,7 +756,6 @@ export class EventSystem extends Behaviour {
753
756
  }
754
757
 
755
758
  private resetMeshUIStates() {
756
-
757
759
  if (this.context.input.getPointerPressedCount() > 0) {
758
760
  MeshUIHelper.resetLastSelected();
759
761
  }
@@ -816,7 +818,7 @@ class MeshUIHelper {
816
818
  let foundBlock: Object3D | null = null;
817
819
 
818
820
  if (intersect) {
819
- foundBlock = this.findBlockInParent(intersect);
821
+ foundBlock = this.findBlockOrTextInParent(intersect);
820
822
  // console.log(intersect, "-- found block:", foundBlock)
821
823
  if (foundBlock && foundBlock !== this.lastSelected) {
822
824
  const interactable = foundBlock["interactable"];
@@ -840,13 +842,13 @@ class MeshUIHelper {
840
842
  this.needsUpdate = true;
841
843
  }
842
844
 
843
- static findBlockInParent(elem: any): Object3D | null {
845
+ static findBlockOrTextInParent(elem: any): Object3D | null {
844
846
  if (!elem) return null;
845
- if (elem.isBlock) {
847
+ if (elem.isBlock || (elem.isText)) {
846
848
  // @TODO : Replace states managements
847
849
  // if (Object.keys(elem.states).length > 0)
848
850
  return elem;
849
851
  }
850
- return this.findBlockInParent(elem.parent);
852
+ return this.findBlockOrTextInParent(elem.parent);
851
853
  }
852
854
  }