@needle-tools/engine 4.5.0-alpha.3 → 4.5.0-alpha.4

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 (29) hide show
  1. package/CHANGELOG.md +22 -2
  2. package/dist/{needle-engine.bundle-ef2b8438.umd.cjs → needle-engine.bundle-1ea82d1b.umd.cjs} +74 -73
  3. package/dist/{needle-engine.bundle-9fe9a394.light.umd.cjs → needle-engine.bundle-5799046c.light.umd.cjs} +74 -73
  4. package/dist/{needle-engine.bundle-1b8f44f4.js → needle-engine.bundle-613ac05e.js} +923 -936
  5. package/dist/{needle-engine.bundle-d710d96f.light.js → needle-engine.bundle-82027067.light.js} +923 -936
  6. package/dist/{needle-engine.bundle-56f095f1.light.min.js → needle-engine.bundle-cb8d3ee9.light.min.js} +74 -73
  7. package/dist/{needle-engine.bundle-baacde19.min.js → needle-engine.bundle-e8936122.min.js} +74 -73
  8. package/dist/needle-engine.js +24 -24
  9. package/dist/needle-engine.light.js +24 -24
  10. package/dist/needle-engine.light.min.js +1 -1
  11. package/dist/needle-engine.light.umd.cjs +1 -1
  12. package/dist/needle-engine.min.js +1 -1
  13. package/dist/needle-engine.umd.cjs +1 -1
  14. package/lib/engine/engine_components.js +6 -14
  15. package/lib/engine/engine_components.js.map +1 -1
  16. package/lib/engine/engine_loaders.callbacks.d.ts +43 -9
  17. package/lib/engine/engine_loaders.callbacks.js +42 -12
  18. package/lib/engine/engine_loaders.callbacks.js.map +1 -1
  19. package/lib/engine/engine_loaders.js +18 -15
  20. package/lib/engine/engine_loaders.js.map +1 -1
  21. package/lib/engine/engine_utils_format.d.ts +5 -5
  22. package/lib/engine/engine_utils_format.js +31 -31
  23. package/lib/engine/engine_utils_format.js.map +1 -1
  24. package/package.json +1 -1
  25. package/plugins/vite/dependencies.js +1 -1
  26. package/src/engine/engine_components.ts +4 -12
  27. package/src/engine/engine_loaders.callbacks.ts +63 -17
  28. package/src/engine/engine_loaders.ts +17 -15
  29. package/src/engine/engine_utils_format.ts +45 -34
@@ -1 +1 @@
1
- {"version":3,"file":"engine_loaders.js","sourceRoot":"","sources":["../../src/engine/engine_loaders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_loaders.js","sourceRoot":"","sources":["../../src/engine/engine_loaders.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * The supported file types that can be determined by the engine. Used in {@link tryDetermineFileTypeFromURL} and {@link tryDetermineFileTypeFromBinary}
2
+ * The supported file types that can be determined by the engine. Used in {@link tryDetermineMimetypeFromURL} and {@link tryDetermineMimetypeFromBinary}
3
3
  */
4
- export declare type FileType = "gltf" | "glb" | "vrm" | "fbx" | "obj" | "usdz" | "usd" | "usda" | "unknown" | ({} & string);
4
+ export type NeedleMimetype = "unknown" | "model/gltf+json" | "model/gltf-binary" | "model/vrm" | "model/vnd.usdz+zip" | "model/vnd.usd+zip" | "model/vnd.usda+zip" | "model/fbx" | "model/vnd.autodesk.fbx" | "model/obj" | `model/${string}` | (string & {});
5
5
  /**
6
6
  * Tries to determine the file type of a file from its URL
7
7
  * This method does perform a range request to the server to get the first few bytes of the file
@@ -14,10 +14,10 @@ export declare type FileType = "gltf" | "glb" | "vrm" | "fbx" | "obj" | "usdz" |
14
14
  * const fileType = await tryDetermineFileTypeFromURL(url);
15
15
  * console.log(fileType); // "glb"
16
16
  */
17
- export declare function tryDetermineFileTypeFromURL(url: string, opts: {
17
+ export declare function tryDetermineMimetypeFromURL(url: string, opts: {
18
18
  useExtension: boolean;
19
- }): Promise<FileType>;
19
+ }): Promise<NeedleMimetype>;
20
20
  /** Attempts to determine the file type of a binary file by looking at the first few bytes of the file.
21
21
  * @hidden
22
22
  */
23
- export declare function tryDetermineFileTypeFromBinary(url: string, data: ArrayBuffer, response: Response): FileType;
23
+ export declare function tryDetermineMimetypeFromBinary(url: string, data: ArrayBuffer, response: Response): NeedleMimetype;
@@ -1,5 +1,5 @@
1
1
  import { isDevEnvironment } from "./debug/index.js";
2
- import { registeredFileTypeCallbacks } from "./engine_loaders.callbacks.js";
2
+ import { registeredMimetypeCallbacks } from "./engine_loaders.callbacks.js";
3
3
  import { getParam } from "./engine_utils.js";
4
4
  const debug = getParam("debugfileformat");
5
5
  /**
@@ -14,7 +14,7 @@ const debug = getParam("debugfileformat");
14
14
  * const fileType = await tryDetermineFileTypeFromURL(url);
15
15
  * console.log(fileType); // "glb"
16
16
  */
17
- export async function tryDetermineFileTypeFromURL(url, opts) {
17
+ export async function tryDetermineMimetypeFromURL(url, opts) {
18
18
  const { useExtension = true } = opts;
19
19
  if (useExtension) {
20
20
  // We want to save on requests so we first check the file extension if there's any
@@ -36,21 +36,21 @@ export async function tryDetermineFileTypeFromURL(url, opts) {
36
36
  console.debug("Use file extension to determine type: " + ext);
37
37
  switch (ext) {
38
38
  case "GLTF":
39
- return "gltf";
39
+ return "model/gltf+json";
40
40
  case "VRM":
41
- return "vrm";
41
+ return "model/vrm";
42
42
  case "GLB":
43
- return "glb";
43
+ return "model/gltf-binary";
44
44
  case "FBX":
45
- return "fbx";
45
+ return "model/fbx";
46
46
  case "USD":
47
- return "usd";
47
+ return "model/vnd.usd+zip";
48
48
  case "USDA":
49
- return "usda";
49
+ return "model/vnd.usda+zip";
50
50
  case "USDZ":
51
- return "usdz";
51
+ return "model/vnd.usdz+zip";
52
52
  case "OBJ":
53
- return "obj";
53
+ return "model/obj";
54
54
  }
55
55
  }
56
56
  // If the URL doesnt contain a filetype we need to check the header
@@ -76,7 +76,7 @@ export async function tryDetermineFileTypeFromURL(url, opts) {
76
76
  });
77
77
  if (header?.ok) {
78
78
  const data = await header.arrayBuffer();
79
- const res = tryDetermineFileTypeFromBinary(originalUrl, data, header);
79
+ const res = tryDetermineMimetypeFromBinary(originalUrl, data, header);
80
80
  if (debug)
81
81
  console.log("Determined file type from header: " + res);
82
82
  return res;
@@ -86,7 +86,7 @@ export async function tryDetermineFileTypeFromURL(url, opts) {
86
86
  /** Attempts to determine the file type of a binary file by looking at the first few bytes of the file.
87
87
  * @hidden
88
88
  */
89
- export function tryDetermineFileTypeFromBinary(url, data, response) {
89
+ export function tryDetermineMimetypeFromBinary(url, data, response) {
90
90
  if (data.byteLength < 4) {
91
91
  return "unknown";
92
92
  }
@@ -94,67 +94,67 @@ export function tryDetermineFileTypeFromBinary(url, data, response) {
94
94
  if (debug) {
95
95
  console.warn("Trying to determine file type from binary data\n", "\"" + new TextDecoder().decode(data) + "\"\n", bytes);
96
96
  }
97
- // GLTF or GLB
98
- if (bytes[0] == 103 && bytes[1] == 108 && bytes[2] == 84 && bytes[3] == 70) {
97
+ // GLTF
98
+ if (bytes[0] == 103 && bytes[1] == 108 && bytes[2] == 84 && bytes[3] == 70 && bytes[4] == 10) {
99
+ // GLTF
99
100
  console.debug("GLTF detected");
100
- return "glb";
101
+ return "model/gltf+json";
102
+ }
103
+ // GLB
104
+ else if (bytes[0] == 103 && bytes[1] == 108 && bytes[2] == 84 && bytes[3] == 70 && bytes[4] == 98) {
105
+ // GLB
106
+ console.debug("GLB detected");
107
+ return "model/gltf-binary";
101
108
  }
102
109
  // USDZ
103
110
  if (bytes[0] == 80 && bytes[1] == 75 && bytes[2] == 3 && bytes[3] == 4) {
104
111
  console.debug("USDZ detected");
105
- return "usdz";
112
+ return "model/vnd.usdz+zip";
106
113
  }
107
114
  // USD
108
115
  if (bytes[0] == 80 && bytes[1] == 88 && bytes[2] == 82 && bytes[3] == 45 && bytes[4] == 85 && bytes[5] == 83 && bytes[6] == 68 && bytes[7] == 67) {
109
116
  console.debug("Binary USD detected");
110
- return "usd";
117
+ return "model/vnd.usd+zip";
111
118
  }
112
119
  // USDA: check if the file starts with #usda
113
120
  else if (bytes[0] == 35 && bytes[1] == 117 && bytes[2] == 115 && bytes[3] == 100 && bytes[4] == 97) {
114
121
  console.debug("ASCII USD detected");
115
- return "usda";
122
+ return "model/vnd.usda+zip";
116
123
  }
117
124
  // FBX
118
125
  if (bytes[0] == 75 && bytes[1] == 97 && bytes[2] == 121 && bytes[3] == 100 && bytes[4] == 97 && bytes[5] == 114 && bytes[6] == 97 && bytes[7] == 32) {
119
126
  console.debug("Binary FBX detected");
120
- return "fbx";
127
+ return "model/fbx";
121
128
  }
122
129
  // ASCII FBX
123
130
  else if (bytes[0] == 59 && bytes[1] == 32 && bytes[2] == 70 && bytes[3] == 66 && bytes[4] == 88 && bytes[5] == 32) {
124
131
  console.debug("ASCII FBX detected");
125
- return "fbx";
132
+ return "model/fbx";
126
133
  }
127
134
  // OBJ - in this case exported from blender it starts with "# Blender" - we only check the first 10 bytes, technically it could still be a different file so we should do this check at the end
128
135
  else if (bytes[0] == 35 && bytes[1] == 32 && bytes[2] == 66 && bytes[3] == 108 && bytes[4] == 101 && bytes[5] == 110 && bytes[6] == 100 && bytes[7] == 101 && bytes[8] == 114 && bytes[9] == 32) {
129
136
  console.debug("OBJ detected");
130
- return "obj";
137
+ return "model/obj";
131
138
  }
132
139
  // Check if it starts "# Alias OBJ"
133
140
  else if (bytes[0] == 35 && bytes[1] == 32 && bytes[2] == 65 && bytes[3] == 108 && bytes[4] == 105 && bytes[5] == 97 && bytes[6] == 115 && bytes[7] == 32 && bytes[8] == 79 && bytes[9] == 66 && bytes[10] == 74) {
134
141
  console.debug("OBJ detected");
135
- return "obj";
142
+ return "model/obj";
136
143
  }
137
144
  else if (response.headers.has("content-type")) {
138
145
  const content_type = response.headers.get("content-type");
139
146
  console.debug("Content-Type: " + content_type);
140
147
  switch (content_type) {
141
148
  case "model/gltf+json":
142
- return "gltf";
143
149
  case "model/gltf-binary":
144
- return "glb";
145
150
  case "model/vrm":
146
- return "vrm";
147
151
  case "model/vnd.usdz+zip":
148
- return "usdz";
149
152
  case "model/vnd.usd+zip":
150
- return "usd";
151
153
  case "model/vnd.usda+zip":
152
- return "usda";
153
154
  case "model/fbx":
154
155
  case "model/vnd.autodesk.fbx":
155
- return "fbx";
156
156
  case "model/obj":
157
- return "obj";
157
+ return content_type;
158
158
  // case "model/stl":
159
159
  // return "stl";
160
160
  case "text/plain":
@@ -185,7 +185,7 @@ export function tryDetermineFileTypeFromBinary(url, data, response) {
185
185
  // else if (text.startsWith("glTF")) {
186
186
  // return "gltf";
187
187
  // }
188
- for (const callback of registeredFileTypeCallbacks) {
188
+ for (const callback of registeredMimetypeCallbacks) {
189
189
  const mimetype = callback({
190
190
  url: url,
191
191
  response: response,
@@ -1 +1 @@
1
- {"version":3,"file":"engine_utils_format.js","sourceRoot":"","sources":["../../src/engine/engine_utils_format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_utils_format.js","sourceRoot":"","sources":["../../src/engine/engine_utils_format.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.5.0-alpha.3",
3
+ "version": "4.5.0-alpha.4",
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": {
@@ -129,7 +129,7 @@ function handleManualChunks(config) {
129
129
  // "assets/..." is the default
130
130
 
131
131
  // this happens if e.g. a glTF or GLB file is link preloaded
132
- if (chunkInfo.name.toLowerCase().includes(".glb") || chunkInfo.name.toLowerCase().includes(".gltf")) {
132
+ if (chunkInfo.name?.toLowerCase().includes(".glb") || chunkInfo.name?.toLowerCase().includes(".gltf")) {
133
133
  return `assets/[name][extname]`;
134
134
  }
135
135
  return `assets/[name].[hash][extname]`;
@@ -219,6 +219,7 @@ export function getComponents<T extends IComponent>(obj: Object3D, componentType
219
219
  * ```
220
220
  */
221
221
  export function getComponentInChildren<T extends IComponent>(obj: Object3D, componentType: Constructor<T>, includeInactive?: boolean): T | null {
222
+ if(includeInactive === false && obj[activeInHierarchyFieldName] === false) return null;
222
223
  const res = getComponent(obj, componentType) as IComponent | null;
223
224
  if (includeInactive === false && res?.enabled === false) return null;
224
225
  if (res) return res as T;
@@ -329,14 +330,8 @@ export function findObjectOfType<T extends IComponent>(type: Constructor<T>, con
329
330
  if (!scene.isScene) scene = (contextOrScene as { scene: Scene })?.scene;
330
331
  if (!scene) return null;
331
332
 
332
- // const scene = contextOrScene.isScene === true || contextOrScene.isObject3D === true ? contextOrScene : contextOrScene?.scene;
333
- for (const i in scene.children) {
334
- const child = scene.children[i];
335
- if (includeInactive === false && child[activeInHierarchyFieldName] === false) continue;
336
- // if (child.constructor == type) return child as T;
337
- const res = getComponentInChildren(child, type);
338
- if (res) return res;
339
- }
333
+ const res = getComponentInChildren(scene, type, includeInactive);
334
+ if(res) return res;
340
335
  return null;
341
336
  }
342
337
 
@@ -367,9 +362,6 @@ export function findObjectsOfType<T extends IComponent>(type: Constructor<T>, ar
367
362
 
368
363
  const scene = contextOrScene;
369
364
  if (!scene) return array;
370
- for (const i in scene.children) {
371
- const child = scene.children[i];
372
- getComponentsInChildren(child, type, array, false);
373
- }
365
+ getComponentsInChildren(scene, type, array, false);
374
366
  return array;
375
367
  }
@@ -1,11 +1,12 @@
1
1
  import { BufferGeometry, Object3D } from "three";
2
2
  import { Context } from "./engine_setup.js";
3
3
  import { CustomModel } from "./engine_types.js";
4
- import { type FileType } from "./engine_utils_format.js";
4
+ import { type NeedleMimetype } from "./engine_utils_format.js";
5
5
 
6
6
  export type ValidLoaderReturnType = CustomModel | Object3D | BufferGeometry;
7
7
 
8
8
 
9
+
9
10
  /** @internal */
10
11
  export type CustomLoader = {
11
12
  /** The name of the loader. This is used for debugging purposes. */
@@ -16,12 +17,12 @@ export type CustomLoader = {
16
17
  parse: (buffer: ArrayBuffer | string, path: string) => ValidLoaderReturnType,
17
18
  };
18
19
 
19
- type CustomLoaderCallback = (args: { context: Context, url: string, filetype: FileType }) => CustomLoader | null | undefined | void;
20
+ type CustomLoaderCallback = (args: { context: Context, url: string, mimetype: NeedleMimetype }) => CustomLoader | Promise<CustomLoader> | null | undefined | void;
20
21
  /** @internal */
21
- export const registeredModelLoaderCallbacks: Array<CustomLoaderCallback> = [];
22
+ export const registeredModelLoaderCallbacks: Array<{ name?: string, priority: number, callback: CustomLoaderCallback }> = [];
22
23
 
23
24
 
24
- type FileTypeCallback = (args: {
25
+ type MimetypeCallback = (args: {
25
26
  /** The URL of the file to load */
26
27
  url: string,
27
28
  /** The response of the range request with the first few bytes of the file (bytes are available in the 'args.bytes' property of this callback) */
@@ -30,22 +31,58 @@ type FileTypeCallback = (args: {
30
31
  contentType: string | null,
31
32
  /** The first few bytes of the file as a Uint8Array */
32
33
  bytes: Uint8Array
33
- }) => FileType | null;
34
+ }) => NeedleMimetype | null;
34
35
  /** @internal */
35
- export const registeredFileTypeCallbacks: Array<FileTypeCallback> = [];
36
+ export const registeredMimetypeCallbacks: Array<MimetypeCallback> = [];
36
37
 
37
38
 
38
39
  /**
39
40
  * NeedleEngineModelLoader is a namespace that provides functions to register custom model loaders and mimetype callbacks.
40
41
  * It allows you to create custom loaders for specific file types and determine the mimetype of files based on their content.
42
+ * @example
43
+ * ```ts
44
+ * import { NeedleEngineModelLoader } from "@needle-tools/engine";
45
+ * import { STLLoader } from "three/examples/jsm/loaders/STLLoader";
46
+ *
47
+ * NeedleEngineModelLoader.onCreateCustomModelLoader(args => {
48
+ * if (args.mimetype === "model/stl") {
49
+ * return new STLLoader();
50
+ * }
51
+ * });
52
+ *
53
+ * NeedleEngineModelLoader.onDetermineModelMimetype((args) => {
54
+ * // detect stl mimetype
55
+ * const bytes = args.bytes;
56
+ * if (bytes[0] === 0x73 && bytes[1] === 0x74 && bytes[2] === 0x6c) {
57
+ * return "model/stl";
58
+ * }
59
+ * return null;
60
+ * });
61
+ * ```
41
62
  */
42
63
  export namespace NeedleEngineModelLoader {
43
64
 
44
- // export type ModelLoaderPlugin = {
45
- // name: string,
46
- // canLoad: (url: string, mimetype: string) => boolean,
65
+ // export type Plugin = {
66
+ // readonly name: string;
67
+ // canLoad: (mimetype: string, url: string) => boolean,
68
+ // createLoader: (url: string, mimetype: string) => Promise<CustomLoader>,
69
+ // }
70
+
71
+ // export function registerLoaderPlugin(plugin: Plugin) {
47
72
  // }
48
-
73
+
74
+
75
+
76
+ type CustomLoaderOptions = {
77
+ /** The name of the loader. This is used for debugging purposes. */
78
+ name?: string,
79
+ /**
80
+ * The priority of the loader. Higher priority loaders will be called first.
81
+ * @default 0
82
+ */
83
+ priority?: number,
84
+ }
85
+
49
86
  /**
50
87
  * Register a custom loader callback. For every file that is requested this callback is called with the url and mimetype. It should return a custom loader or null if it does not want to handle the file.
51
88
  * @param callback The callback to register
@@ -60,10 +97,19 @@ export namespace NeedleEngineModelLoader {
60
97
  * return null;
61
98
  * });
62
99
  */
63
- export function onCreateCustomModelLoader(callback: CustomLoaderCallback) {
64
- registeredModelLoaderCallbacks.push(callback);
100
+ export function onCreateCustomModelLoader(callback: CustomLoaderCallback, opts?: CustomLoaderOptions) {
101
+ const entry = { name: opts?.name, priority: opts?.priority ?? 0, callback };
102
+ registeredModelLoaderCallbacks.push(entry);
103
+
104
+ // sort plugins by priority. Higher priority first
105
+ registeredModelLoaderCallbacks.sort((a, b) => {
106
+ if (a.priority === b.priority) return 0;
107
+ if (a.priority > b.priority) return -1;
108
+ return 1;
109
+ });
110
+
65
111
  return () => {
66
- const index = registeredModelLoaderCallbacks.indexOf(callback);
112
+ const index = registeredModelLoaderCallbacks.indexOf(entry);
67
113
  if (index >= 0) {
68
114
  registeredModelLoaderCallbacks.splice(index, 1);
69
115
  }
@@ -76,12 +122,12 @@ export namespace NeedleEngineModelLoader {
76
122
  * @returns A function to unregister the callback
77
123
  *
78
124
  */
79
- export function onDetermineModelFiletype(callback: FileTypeCallback): (() => void) {
80
- registeredFileTypeCallbacks.push(callback);
125
+ export function onDetermineModelMimetype(callback: MimetypeCallback): (() => void) {
126
+ registeredMimetypeCallbacks.push(callback);
81
127
  return () => {
82
- const index = registeredFileTypeCallbacks.indexOf(callback);
128
+ const index = registeredMimetypeCallbacks.indexOf(callback);
83
129
  if (index >= 0) {
84
- registeredFileTypeCallbacks.splice(index, 1);
130
+ registeredMimetypeCallbacks.splice(index, 1);
85
131
  }
86
132
  }
87
133
  }
@@ -15,7 +15,7 @@ import { Context } from "./engine_setup.js"
15
15
  import { postprocessFBXMaterials } from "./engine_three_utils.js";
16
16
  import { CustomModel, isGLTFModel, Model, type UIDProvider } from "./engine_types.js";
17
17
  import * as utils from "./engine_utils.js";
18
- import { tryDetermineFileTypeFromURL } from "./engine_utils_format.js"
18
+ import { tryDetermineMimetypeFromURL } from "./engine_utils_format.js"
19
19
  import { invokeLoadedImportPluginHooks, registerComponentExtension, registerExtensions } from "./extensions/extensions.js";
20
20
  import { NEEDLE_components } from "./extensions/NEEDLE_components.js";
21
21
 
@@ -45,42 +45,44 @@ const debugFileTypes = utils.getParam("debugfileformat");
45
45
 
46
46
  export async function onCreateLoader(url: string, context: Context): Promise<CustomLoader | GLTFLoader | FBXLoader | USDZLoader | OBJLoader | null> {
47
47
 
48
- const type = await tryDetermineFileTypeFromURL(url, { useExtension: true }) || "unknown";
48
+ const type = await tryDetermineMimetypeFromURL(url, { useExtension: true }) || "unknown";
49
49
  if (debugFileTypes) console.debug(`Determined file type: '${type}' for url '${url}'`);
50
50
 
51
- for (const callback of registeredModelLoaderCallbacks) {
52
- const loader = callback({ context, url, filetype: type });
51
+ for (const entry of registeredModelLoaderCallbacks) {
52
+ const { callback } = entry;
53
+ let loader = callback({ context, url, mimetype: type });
54
+ if (loader instanceof Promise) await loader;
53
55
  if (loader) {
54
- console.debug("Using custom loader");
56
+ console.debug(`Using custom loader (${entry.name}) for url '${url}'`);
55
57
  return loader;
56
58
  }
57
59
  }
58
60
 
59
61
  switch (type) {
60
62
  default:
61
- console.warn(`Unknown file type: ${type}`);
62
63
  case "unknown":
63
64
  {
64
- console.warn("Unknown file type. Assuming glTF:", url);
65
+ console.warn(`Unknown file type (${type}). Needle Engine will fallback to the GLTFLoader - To support more model formats please create a Needle loader plugin.\nUse import { NeedleEngineModelLoader } from \"@needle-tools/engine\" namespace to register your loader.`, url);
65
66
  const loader = new GLTFLoader();
66
67
  await registerExtensions(loader, context, url);
67
68
  return loader;
68
69
  }
69
- case "fbx":
70
+ case "model/fbx":
71
+ case "model/vnd.autodesk.fbx":
70
72
  return new FBXLoader();
71
- case "obj":
73
+ case "model/obj":
72
74
  return new OBJLoader();
73
- case "usd":
74
- case "usda":
75
- case "usdz":
75
+ case "model/vnd.usdz+zip":
76
+ case "model/vnd.usd+zip":
77
+ case "model/vnd.usda+zip":
76
78
  {
77
79
  console.warn(type.toUpperCase() + " files are not supported.");
78
80
  // return new USDZLoader();
79
81
  return null;
80
82
  }
81
- case "gltf":
82
- case "glb":
83
- case "vrm":
83
+ case "model/gltf+json":
84
+ case "model/gltf-binary":
85
+ case "model/vrm":
84
86
  {
85
87
  const loader = new GLTFLoader();
86
88
  await registerExtensions(loader, context, url);