@needle-tools/engine 2.52.0-pre → 2.54.2-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 (220) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/needle-engine.d.ts +3018 -2680
  3. package/dist/needle-engine.js +439 -439
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +41 -41
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/dist/needle-engine.tsbuildinfo +1 -0
  8. package/lib/engine/codegen/register_types.d.ts +1 -0
  9. package/lib/engine/codegen/register_types.js +346 -0
  10. package/lib/engine/codegen/register_types.js.map +1 -0
  11. package/lib/engine/debug/debug.d.ts +1 -0
  12. package/lib/engine/debug/debug.js +4 -0
  13. package/lib/engine/debug/debug.js.map +1 -1
  14. package/lib/engine/debug/debug_console.js +2 -1
  15. package/lib/engine/debug/debug_console.js.map +1 -1
  16. package/lib/engine/debug/debug_overlay.js +3 -1
  17. package/lib/engine/debug/debug_overlay.js.map +1 -1
  18. package/lib/engine/engine_components.js +2 -2
  19. package/lib/engine/engine_components.js.map +1 -1
  20. package/lib/engine/engine_default_parameters.d.ts +2 -2
  21. package/lib/engine/engine_element.js +4 -2
  22. package/lib/engine/engine_element.js.map +1 -1
  23. package/lib/engine/engine_element_loading.d.ts +1 -0
  24. package/lib/engine/engine_element_loading.js +17 -6
  25. package/lib/engine/engine_element_loading.js.map +1 -1
  26. package/lib/engine/engine_element_overlay.js +4 -2
  27. package/lib/engine/engine_element_overlay.js.map +1 -1
  28. package/lib/engine/engine_fileloader.d.ts +3 -0
  29. package/lib/engine/engine_fileloader.js +8 -0
  30. package/lib/engine/engine_fileloader.js.map +1 -0
  31. package/lib/engine/engine_generic_utils.d.ts +1 -0
  32. package/lib/engine/engine_generic_utils.js +14 -0
  33. package/lib/engine/engine_generic_utils.js.map +1 -0
  34. package/lib/engine/engine_input.js +4 -0
  35. package/lib/engine/engine_input.js.map +1 -1
  36. package/lib/engine/engine_networking_instantiate.d.ts +1 -1
  37. package/lib/engine/engine_networking_instantiate.js +3 -0
  38. package/lib/engine/engine_networking_instantiate.js.map +1 -1
  39. package/lib/engine/engine_networking_websocket.d.ts +1 -0
  40. package/lib/engine/engine_networking_websocket.js +1 -1
  41. package/lib/engine/engine_networking_websocket.js.map +1 -1
  42. package/lib/engine/engine_serialization_builtin_serializer.d.ts +6 -0
  43. package/lib/engine/engine_serialization_builtin_serializer.js +35 -7
  44. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  45. package/lib/engine/engine_serialization_core.d.ts +1 -0
  46. package/lib/engine/engine_serialization_core.js +6 -0
  47. package/lib/engine/engine_serialization_core.js.map +1 -1
  48. package/lib/engine/engine_setup.js +2 -2
  49. package/lib/engine/engine_setup.js.map +1 -1
  50. package/lib/engine/engine_texture.d.ts +3 -0
  51. package/lib/engine/engine_texture.js +4 -0
  52. package/lib/engine/engine_texture.js.map +1 -0
  53. package/lib/engine/engine_utils.d.ts +1 -1
  54. package/lib/engine/engine_utils.js +3 -0
  55. package/lib/engine/engine_utils.js.map +1 -1
  56. package/lib/engine/extensions/NEEDLE_components.d.ts +1 -1
  57. package/lib/engine/extensions/NEEDLE_progressive.d.ts +40 -0
  58. package/lib/engine/extensions/NEEDLE_progressive.js +322 -0
  59. package/lib/engine/extensions/NEEDLE_progressive.js.map +1 -0
  60. package/lib/engine/extensions/extensions.js +2 -2
  61. package/lib/engine/extensions/extensions.js.map +1 -1
  62. package/lib/engine-components/Camera.js +17 -2
  63. package/lib/engine-components/Camera.js.map +1 -1
  64. package/lib/engine-components/GroundProjection.d.ts +2 -1
  65. package/lib/engine-components/GroundProjection.js +19 -12
  66. package/lib/engine-components/GroundProjection.js.map +1 -1
  67. package/lib/engine-components/Light.js +1 -0
  68. package/lib/engine-components/Light.js.map +1 -1
  69. package/lib/engine-components/OrbitControls.js +6 -2
  70. package/lib/engine-components/OrbitControls.js.map +1 -1
  71. package/lib/engine-components/ParticleSystemModules.d.ts +1 -1
  72. package/lib/engine-components/ParticleSystemModules.js +48 -44
  73. package/lib/engine-components/ParticleSystemModules.js.map +1 -1
  74. package/lib/engine-components/ReflectionProbe.d.ts +1 -1
  75. package/lib/engine-components/Renderer.d.ts +1 -1
  76. package/lib/engine-components/Renderer.js +4 -9
  77. package/lib/engine-components/Renderer.js.map +1 -1
  78. package/lib/engine-components/Voip.js +13 -4
  79. package/lib/engine-components/Voip.js.map +1 -1
  80. package/lib/engine-components/Volume.js +8 -1
  81. package/lib/engine-components/Volume.js.map +1 -1
  82. package/lib/engine-components/WebXR.d.ts +2 -2
  83. package/lib/engine-components/WebXRAvatar.d.ts +1 -1
  84. package/lib/engine-components/codegen/components.d.ts +99 -95
  85. package/lib/engine-components/codegen/components.js +99 -95
  86. package/lib/engine-components/codegen/components.js.map +1 -1
  87. package/lib/engine-components/export/{GltfExport.d.ts → gltf/GltfExport.d.ts} +2 -2
  88. package/lib/engine-components/export/{GltfExport.js → gltf/GltfExport.js} +7 -7
  89. package/lib/engine-components/export/gltf/GltfExport.js.map +1 -0
  90. package/lib/engine-components/export/usdz/Extension.d.ts +9 -0
  91. package/lib/engine-components/export/usdz/Extension.js +2 -0
  92. package/lib/engine-components/export/usdz/Extension.js.map +1 -0
  93. package/lib/engine-components/export/usdz/USDZExporter.d.ts +26 -0
  94. package/lib/engine-components/export/usdz/USDZExporter.js +209 -0
  95. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -0
  96. package/lib/engine-components/export/usdz/extensions/Animation.d.ts +44 -0
  97. package/lib/engine-components/export/usdz/extensions/Animation.js +264 -0
  98. package/lib/engine-components/export/usdz/extensions/Animation.js.map +1 -0
  99. package/lib/engine-components/export/usdz/types.d.ts +34 -0
  100. package/lib/engine-components/export/usdz/types.js +2 -0
  101. package/lib/engine-components/export/usdz/types.js.map +1 -0
  102. package/lib/engine-components/export/usdz/utils/animationutils.d.ts +3 -0
  103. package/lib/engine-components/export/usdz/utils/animationutils.js +46 -0
  104. package/lib/engine-components/export/usdz/utils/animationutils.js.map +1 -0
  105. package/lib/engine-components/export/usdz/utils/quicklook.d.ts +2 -0
  106. package/lib/engine-components/export/usdz/utils/quicklook.js +36 -0
  107. package/lib/engine-components/export/usdz/utils/quicklook.js.map +1 -0
  108. package/lib/engine-components/export/usdz/utils/timeutils.d.ts +1 -0
  109. package/lib/engine-components/export/usdz/utils/timeutils.js +15 -0
  110. package/lib/engine-components/export/usdz/utils/timeutils.js.map +1 -0
  111. package/lib/engine-components/ui/Button.js +30 -0
  112. package/lib/engine-components/ui/Button.js.map +1 -1
  113. package/lib/engine-components/ui/Graphic.d.ts +2 -0
  114. package/lib/engine-components/ui/Graphic.js +15 -0
  115. package/lib/engine-components/ui/Graphic.js.map +1 -1
  116. package/lib/engine-components/ui/InputField.d.ts +2 -0
  117. package/lib/engine-components/ui/InputField.js +23 -1
  118. package/lib/engine-components/ui/InputField.js.map +1 -1
  119. package/lib/engine-components/ui/Utils.d.ts +4 -1
  120. package/lib/engine-components/ui/Utils.js +15 -12
  121. package/lib/engine-components/ui/Utils.js.map +1 -1
  122. package/lib/engine-components-experimental/Presentation.d.ts +6 -0
  123. package/lib/engine-components-experimental/Presentation.js +11 -0
  124. package/lib/engine-components-experimental/Presentation.js.map +1 -0
  125. package/lib/engine-components-experimental/annotation/LineDrawer.d.ts +18 -0
  126. package/lib/engine-components-experimental/annotation/LineDrawer.js +175 -0
  127. package/lib/engine-components-experimental/annotation/LineDrawer.js.map +1 -0
  128. package/lib/engine-components-experimental/annotation/LinesManager.d.ts +54 -0
  129. package/lib/engine-components-experimental/annotation/LinesManager.js +155 -0
  130. package/lib/engine-components-experimental/annotation/LinesManager.js.map +1 -0
  131. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +26 -0
  132. package/lib/engine-components-experimental/networking/PlayerSync.js +121 -0
  133. package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -0
  134. package/lib/engine-schemes/vec2.d.ts +10 -0
  135. package/lib/engine-schemes/vec2.js +26 -0
  136. package/lib/engine-schemes/vec2.js.map +1 -0
  137. package/lib/include/three/ARButton.d.ts +3 -0
  138. package/lib/include/three/ARButton.js +158 -0
  139. package/lib/include/three/ARButton.js.map +1 -0
  140. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -0
  141. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +46 -0
  142. package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js.map +1 -0
  143. package/lib/include/three/VRButton.d.ts +5 -0
  144. package/lib/include/three/VRButton.js +122 -0
  145. package/lib/include/three/VRButton.js.map +1 -0
  146. package/lib/tsconfig.tsbuildinfo +1 -0
  147. package/package.json +2 -2
  148. package/src/engine/codegen/register_types.js +212 -204
  149. package/src/engine/debug/debug.ts +5 -0
  150. package/src/engine/debug/debug_console.ts +3 -2
  151. package/src/engine/debug/debug_overlay.ts +3 -1
  152. package/src/engine/engine_components.ts +2 -2
  153. package/src/engine/engine_element.ts +4 -2
  154. package/src/engine/engine_element_loading.ts +13 -6
  155. package/src/engine/engine_element_overlay.ts +4 -2
  156. package/src/engine/engine_input.ts +4 -0
  157. package/src/engine/engine_networking_instantiate.ts +4 -1
  158. package/src/engine/engine_networking_websocket.ts +3 -1
  159. package/src/engine/engine_serialization_builtin_serializer.ts +39 -8
  160. package/src/engine/engine_serialization_core.ts +7 -1
  161. package/src/engine/engine_setup.ts +2 -2
  162. package/src/engine/engine_texture.ts +6 -0
  163. package/src/engine/engine_utils.ts +3 -1
  164. package/src/engine/extensions/NEEDLE_progressive.ts +357 -0
  165. package/src/engine/extensions/extensions.ts +2 -2
  166. package/src/engine-components/Camera.ts +17 -3
  167. package/src/engine-components/GroundProjection.ts +18 -12
  168. package/src/engine-components/Light.ts +3 -1
  169. package/src/engine-components/OrbitControls.ts +7 -3
  170. package/src/engine-components/ParticleSystemModules.ts +50 -47
  171. package/src/engine-components/Renderer.ts +6 -10
  172. package/src/engine-components/Voip.ts +14 -4
  173. package/src/engine-components/Volume.ts +8 -1
  174. package/src/engine-components/WebXR.ts +2 -2
  175. package/src/engine-components/codegen/components.ts +99 -95
  176. package/src/engine-components/export/{GltfExport.ts → gltf/GltfExport.ts} +7 -7
  177. package/src/engine-components/export/usdz/Extension.ts +12 -0
  178. package/src/engine-components/export/usdz/USDZExporter.ts +233 -0
  179. package/src/engine-components/export/usdz/extensions/Animation.ts +306 -0
  180. package/src/engine-components/export/usdz/types.ts +39 -0
  181. package/src/engine-components/export/usdz/utils/animationutils.ts +60 -0
  182. package/src/engine-components/export/usdz/utils/quicklook.ts +43 -0
  183. package/src/engine-components/export/usdz/utils/timeutils.ts +20 -0
  184. package/src/engine-components/ui/Button.ts +8 -8
  185. package/src/engine-components/ui/Graphic.ts +15 -1
  186. package/src/engine-components/ui/InputField.ts +25 -2
  187. package/src/engine-components/ui/Utils.ts +17 -14
  188. package/src/engine-components-experimental/annotation/LineDrawer.ts +10 -7
  189. package/src/engine-components-experimental/annotation/LinesManager.ts +6 -6
  190. package/src/engine-components-experimental/networking/PlayerSync.ts +1 -1
  191. package/lib/engine/engine_caching.d.ts +0 -0
  192. package/lib/engine/engine_caching.js +0 -2
  193. package/lib/engine/engine_caching.js.map +0 -1
  194. package/lib/engine/extensions/NEEDLE_deferred_texture.d.ts +0 -18
  195. package/lib/engine/extensions/NEEDLE_deferred_texture.js +0 -194
  196. package/lib/engine/extensions/NEEDLE_deferred_texture.js.map +0 -1
  197. package/lib/engine/tests/simulate_avatars.d.ts +0 -0
  198. package/lib/engine/tests/simulate_avatars.js +0 -3
  199. package/lib/engine/tests/simulate_avatars.js.map +0 -1
  200. package/lib/engine-components/NavMesh.d.ts +0 -0
  201. package/lib/engine-components/NavMesh.js +0 -101
  202. package/lib/engine-components/NavMesh.js.map +0 -1
  203. package/lib/engine-components/ParticleSystemBehaviours.d.ts +0 -0
  204. package/lib/engine-components/ParticleSystemBehaviours.js +0 -2
  205. package/lib/engine-components/ParticleSystemBehaviours.js.map +0 -1
  206. package/lib/engine-components/SpringJoint.d.ts +0 -0
  207. package/lib/engine-components/SpringJoint.js +0 -43
  208. package/lib/engine-components/SpringJoint.js.map +0 -1
  209. package/lib/engine-components/export/GltfExport.js.map +0 -1
  210. package/lib/engine-components/ui/CanvasScaler.d.ts +0 -0
  211. package/lib/engine-components/ui/CanvasScaler.js +0 -17
  212. package/lib/engine-components/ui/CanvasScaler.js.map +0 -1
  213. package/src/engine/dist/engine_three_utils.js +0 -279
  214. package/src/engine/engine_caching.ts +0 -0
  215. package/src/engine/extensions/NEEDLE_deferred_texture.ts +0 -217
  216. package/src/engine/tests/simulate_avatars.ts +0 -2
  217. package/src/engine-components/NavMesh.ts +0 -117
  218. package/src/engine-components/ParticleSystemBehaviours.ts +0 -0
  219. package/src/engine-components/SpringJoint.ts +0 -45
  220. package/src/engine-components/ui/CanvasScaler.ts +0 -21
@@ -14,7 +14,7 @@ import { ControllerEvents, WebXRController } from "../../engine-components/WebXR
14
14
  class LineState {
15
15
  isDrawing: boolean;
16
16
  lastHit: Vector3;
17
- currentHandle: LineHandle;
17
+ currentHandle: LineHandle | null;
18
18
  maxDistance: number;
19
19
  prevDistance: number;
20
20
  lastParent: THREE.Object3D | null;
@@ -31,7 +31,7 @@ class LineState {
31
31
 
32
32
  export class LinesDrawer extends Behaviour {
33
33
 
34
- lines: LinesManager;
34
+ lines!: LinesManager;
35
35
  colliders?: THREE.Object3D[];
36
36
  alignToSurface: boolean = true;
37
37
  addToPaintedObject: boolean = true;
@@ -40,7 +40,7 @@ export class LinesDrawer extends Behaviour {
40
40
 
41
41
  start() {
42
42
  if (!this.lines) {
43
- this.lines = GameObject.getComponent(this.gameObject, LinesManager);
43
+ this.lines = GameObject.getComponent(this.gameObject, LinesManager)!;
44
44
  if (!this.lines)
45
45
  this.lines = GameObject.addNewComponent(this.gameObject, LinesManager);
46
46
  }
@@ -72,9 +72,11 @@ export class LinesDrawer extends Behaviour {
72
72
  if (this.orbit && this._states["mouse"]) {
73
73
  if (this.orbit) this.orbit.enabled = !this._states["mouse"].isDrawing;
74
74
  }
75
+ if (!this.context.mainCamera) return;
75
76
 
76
77
  const multi = this.context.input.getPointerPressedCount() > 1;
77
78
  const sp = this.context.input.getPointerPositionRC(0);
79
+ if (!sp) return;
78
80
  LinesDrawer._raycaster.setFromCamera(sp, this.context.mainCamera);
79
81
  const ray = LinesDrawer._raycaster.ray;
80
82
  this.updateLine("mouse", ray,
@@ -110,14 +112,15 @@ export class LinesDrawer extends Behaviour {
110
112
  state.maxDistance = hit.distance;
111
113
  }
112
114
  pt = hit.point;
113
- pt.add(hit.face.normal.multiplyScalar(0.01));
115
+ if (hit.face)
116
+ pt.add(hit.face.normal.multiplyScalar(0.01));
114
117
  state.prevDistance = hit.distance;
115
118
  }
116
119
  else if (state.maxDistance > 0) {
117
120
  let dist = state.maxDistance;
118
121
  // if we start drawing in thin air:
119
122
  if (!state.currentHandle && state.lastHit) {
120
- const wp = getWorldPosition(this.context.mainCamera);
123
+ const wp = getWorldPosition(this.context.mainCamera!);
121
124
  dist = state.lastHit.distanceTo(wp);
122
125
  }
123
126
  pt = ray.origin.add(ray.direction.multiplyScalar(state.maxDistance));
@@ -165,8 +168,8 @@ export class LinesDrawer extends Behaviour {
165
168
  this._raycastOptions.ray = ray;
166
169
  const hits = this.context.physics.raycast(this._raycastOptions);
167
170
  if (hits.length > 0) {
168
- for(const hit of hits) {
169
- if(!GameObject.isActiveInHierarchy(hit.object)) {
171
+ for (const hit of hits) {
172
+ if (!GameObject.isActiveInHierarchy(hit.object)) {
170
173
  continue;
171
174
  }
172
175
  return hit;
@@ -120,7 +120,7 @@ export class LinesManager extends Behaviour {
120
120
 
121
121
  public endLine(handle: LineHandle, send: boolean = true): LineInstanceHandler | undefined {
122
122
  const line = this.inFlight[handle.id];
123
- if (!line) return;
123
+ if (!line) return undefined;
124
124
  this.finished.push(line);
125
125
  delete this.inFlight[handle.id];
126
126
 
@@ -173,16 +173,16 @@ export class LinesManager extends Behaviour {
173
173
  });
174
174
  }
175
175
 
176
- private onEnsureLine(lineId: number, parentGuid: string): LineInstanceHandler {
176
+ private onEnsureLine(lineId: number, parentGuid: string): LineInstanceHandler | null {
177
177
  if (this.inFlight[lineId]) return this.inFlight[lineId];
178
178
  let obj = GameObject.findByGuid(parentGuid, this.context.scene);
179
179
  if (!obj) {
180
- return;
180
+ return null;
181
181
  }
182
182
  this.internalStartLine(obj as THREE.Object3D, lineId, false);
183
183
  return this.inFlight[lineId];
184
184
  }
185
- private internalStartLine(parent: THREE.Object3D, id: number, send: boolean = true, options?: LineOptions): LineHandle {
185
+ private internalStartLine(parent: THREE.Object3D | null | undefined, id: number, send: boolean = true, options?: LineOptions): LineHandle {
186
186
  const line = new LineInstanceHandler(parent ?? this.context.scene, options);
187
187
  line.id = id;
188
188
  this.inFlight[id] = line;
@@ -197,14 +197,14 @@ export class LinesManager extends Behaviour {
197
197
  }
198
198
 
199
199
  private sendLineStart(instance: LineInstanceHandler) {
200
- const parent = instance.mesh.parent;
200
+ const parent = instance.mesh!.parent;
201
201
  this.context.connection.send("line-start", { id: instance.id, parentGuid: parent ? parent["guid"] : undefined })
202
202
  }
203
203
 
204
204
  private sendLineUpdate(instance: LineInstanceHandler, finished: boolean, startIndex?: number, points?: Array<any>) {
205
205
  if (instance) {
206
206
  const model: LineModel = {
207
- parentGuid: instance.mesh.parent["guid"],
207
+ parentGuid: instance.mesh!.parent!["guid"],
208
208
  guid: instance.id,
209
209
  points: points ? [...points] : instance.points,
210
210
  width: instance.material!.lineWidth,
@@ -47,7 +47,7 @@ export class PlayerSync extends Behaviour {
47
47
  }
48
48
 
49
49
  private watchTabVisible() {
50
- window.addEventListener("visibilitychange", s => {
50
+ window.addEventListener("visibilitychange", _ => {
51
51
  if (document.visibilityState === "visible") {
52
52
  for (let i = PlayerState.all.length - 1; i >= 0; i--) {
53
53
  const pl = PlayerState.all[i];
File without changes
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=engine_caching.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine_caching.js","sourceRoot":"","sources":["../../../engine/engine_caching.ts"],"names":[],"mappings":""}
@@ -1,18 +0,0 @@
1
- import { Material } from "three";
2
- import { GLTF, GLTFLoaderPlugin, GLTFParser } from "three/examples/jsm/loaders/GLTFLoader";
3
- import { SourceIdentifier } from "../engine_types";
4
- import { Context } from "../engine_setup";
5
- export declare const EXTENSION_NAME = "NEEDLE_deferred_texture";
6
- export declare class NEEDLE_deferred_texture implements GLTFLoaderPlugin {
7
- static assignTextureLOD(context: Context, source: SourceIdentifier | undefined, material: Material, level?: number): void;
8
- get name(): string;
9
- private parser;
10
- private sourceId;
11
- private context;
12
- constructor(parser: GLTFParser, sourceId: SourceIdentifier, context: Context);
13
- private _loading;
14
- afterRoot(gltf: GLTF): null;
15
- private static cache;
16
- private static resolved;
17
- private static getOrLoadTexture;
18
- }
@@ -1,194 +0,0 @@
1
- import { TextureLoader } from "three";
2
- import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
3
- import { addDracoAndKTX2Loaders } from "../engine_loaders";
4
- import { getParam, getPath } from "../engine_utils";
5
- export const EXTENSION_NAME = "NEEDLE_deferred_texture";
6
- const debug = getParam("debugprogressive");
7
- const debug_toggle_maps = new Map();
8
- let show_lod0 = false;
9
- if (debug) {
10
- window.addEventListener("keyup", evt => {
11
- if (evt.key === "p") {
12
- debug_toggle_maps.forEach((map, material) => {
13
- Object.entries(map).forEach(([key, value]) => {
14
- if (show_lod0) {
15
- material[key] = value.lod0;
16
- }
17
- else {
18
- material[key] = value.original;
19
- }
20
- material.needsUpdate = true;
21
- });
22
- });
23
- show_lod0 = !show_lod0;
24
- }
25
- });
26
- }
27
- export class NEEDLE_deferred_texture {
28
- static assignTextureLOD(context, source, material, level = 0) {
29
- if (!material)
30
- return;
31
- for (let slot of Object.keys(material)) {
32
- const val = material[slot];
33
- if (val?.isTexture === true) {
34
- if (debug)
35
- console.log("-----------\n", "FIND", material.name, slot, val?.name, val?.userData, val, material);
36
- NEEDLE_deferred_texture.getOrLoadTexture(context, source, material, slot, val, level).then(t => {
37
- if (t?.isTexture === true) {
38
- if (debug)
39
- console.log("Assign LOD", material.name, slot, t.name, t["guid"], material, "Prev:", val, "Now:", t, "\n--------------");
40
- material[slot] = t;
41
- t.needsUpdate = true;
42
- material.needsUpdate = true;
43
- if (debug) {
44
- let debug_map = debug_toggle_maps.get(material);
45
- if (!debug_map) {
46
- debug_map = {};
47
- debug_toggle_maps.set(material, debug_map);
48
- }
49
- let entry = debug_map[slot];
50
- if (!entry) {
51
- entry = debug_map[slot] = { original: val, lod0: t };
52
- }
53
- entry.lod0 = t;
54
- }
55
- }
56
- });
57
- }
58
- }
59
- }
60
- get name() {
61
- return EXTENSION_NAME;
62
- }
63
- parser;
64
- sourceId;
65
- context;
66
- constructor(parser, sourceId, context) {
67
- this.parser = parser;
68
- this.sourceId = sourceId;
69
- this.context = context;
70
- }
71
- _loading = [];
72
- // beforeRoot(): null {
73
- // console.log("BEFORE ROOT", this.parser);
74
- // return null;
75
- // }
76
- // loadTexture(index: number): Promise<Texture> | null {
77
- // console.log(index, this._loading);
78
- // if (this._loading.includes(index)) return null;
79
- // const textureInfo = this.parser.json.textures[index];
80
- // if (debug)
81
- // console.log(index, textureInfo);
82
- // return null;
83
- // }
84
- afterRoot(gltf) {
85
- if (debug)
86
- console.log("AFTER", this.sourceId, gltf);
87
- this.parser.json.textures?.forEach((textureInfo, index) => {
88
- if (textureInfo?.extensions) {
89
- const ext = textureInfo?.extensions[EXTENSION_NAME];
90
- if (ext) {
91
- const prom = this.parser.getDependency("texture", index);
92
- this._loading.splice(this._loading.indexOf(index), 1);
93
- prom.then(t => {
94
- if (debug)
95
- console.log("register texture", t.name, t.uuid, ext);
96
- t.userData.deferred = ext;
97
- NEEDLE_deferred_texture.cache.set(t.uuid, ext);
98
- });
99
- }
100
- }
101
- });
102
- return null;
103
- }
104
- static cache = new Map();
105
- static resolved = {};
106
- static async getOrLoadTexture(context, source, material, slot, current, _level) {
107
- const key = current.uuid;
108
- const ext = NEEDLE_deferred_texture.cache.get(key); // || current.userData.deferred;
109
- if (ext) {
110
- if (debug)
111
- console.log(key, ext.uri, ext.guid);
112
- const uri = getPath(source, ext.uri);
113
- if (uri.endsWith(".glb") || uri.endsWith(".gltf")) {
114
- if (!ext.guid) {
115
- console.warn("missing pointer for glb/gltf texture", ext);
116
- return null;
117
- }
118
- const resolveKey = uri + "_" + ext.guid;
119
- if (this.resolved[resolveKey]) {
120
- if (debug)
121
- console.log("Texture has already been loaded: " + resolveKey, material.name, slot, current.name);
122
- return this.resolved[resolveKey];
123
- }
124
- const loader = new GLTFLoader();
125
- addDracoAndKTX2Loaders(loader, context);
126
- if (debug)
127
- console.log("Load " + uri, material.name, slot, ext.guid);
128
- const gltf = await loader.loadAsync(uri);
129
- const parser = gltf.parser;
130
- if (debug)
131
- console.log("Loading finished " + uri, material.name, slot, ext.guid);
132
- let index = -1;
133
- let found = false;
134
- for (const tex of gltf.parser.json.textures) {
135
- index++;
136
- if (tex?.extensions) {
137
- const other = tex?.extensions[EXTENSION_NAME];
138
- if (other?.guid) {
139
- if (other.guid === ext.guid) {
140
- found = true;
141
- break;
142
- // if (debug)
143
- // console.log(material.name, slot, "change \"" + current.name + "\" → \"" + tex.name + "\"", uri, index, tex, material);
144
- // this.resolved[resolveKey] = tex as Texture;
145
- // return tex;
146
- }
147
- }
148
- }
149
- }
150
- if (!found)
151
- return null;
152
- // const index = Number.parseInt(ext.pointer.substring("textures/".length));
153
- const tex = await parser.getDependency("texture", index);
154
- tex.encoding = current.encoding;
155
- if (tex) {
156
- tex.guid = ext.guid;
157
- }
158
- this.resolved[resolveKey] = tex;
159
- if (debug)
160
- console.log(material.name, slot, "change \"" + current.name + "\" → \"" + tex.name + "\"", uri, index, tex, material, resolveKey);
161
- return tex;
162
- }
163
- else {
164
- if (debug)
165
- console.log("Load texture from uri: " + uri);
166
- const loader = new TextureLoader();
167
- const loaded = await loader.loadAsync(uri);
168
- if (loaded && debug) {
169
- console.log(ext, loaded);
170
- }
171
- else
172
- console.warn("failed loading", uri);
173
- return loaded;
174
- }
175
- // loader.then((h: Texture) => {
176
- // // console.log(t, h);
177
- // // t.image = h.image;
178
- // // // this.context.renderer.copyTextureToTexture(new Vector2(0, 0), h, t);
179
- // // // console.log(h);
180
- // // // t.source = h.source;
181
- // // // t.version++;
182
- // // t.width = h.width;
183
- // // t.height = h.height;
184
- // // t.needsUpdate = true;
185
- // });
186
- }
187
- else {
188
- if (debug)
189
- console.warn("unknown uuid", current.name, current.uuid, current);
190
- }
191
- return null;
192
- }
193
- }
194
- //# sourceMappingURL=NEEDLE_deferred_texture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NEEDLE_deferred_texture.js","sourceRoot":"","sources":["../../../../engine/extensions/NEEDLE_deferred_texture.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1,3 +0,0 @@
1
- "use strict";
2
- // TODO
3
- //# sourceMappingURL=simulate_avatars.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulate_avatars.js","sourceRoot":"","sources":["../../../../engine/tests/simulate_avatars.ts"],"names":[],"mappings":";AACA,OAAO"}
File without changes
@@ -1,101 +0,0 @@
1
- "use strict";
2
- // import { Behaviour, GameObject } from "./Component";
3
- // /*
4
- // import { Pathfinding, PathfindingHelper } from 'three-pathfinding';
5
- // import * as THREE from 'three';
6
- // import { mergeBufferGeometries } from 'three/examples/jsm/utils/BufferGeometryUtils'
7
- // */
8
- // export class NavMesh extends Behaviour {
9
- // /*
10
- // public meshes: THREE.Object3D[] = [];
11
- // private pathfinding: Pathfinding | null = null;
12
- // private zones: string[] = [];
13
- // onEnable(): void {
14
- // this.pathfinding = new Pathfinding();
15
- // const ZONE = 'zone';
16
- // const geometries : THREE.BufferGeometry[] = [];
17
- // if (this.meshes && this.meshes.length > 0) {
18
- // for (let i = 0; i < this.meshes.length; i++) {
19
- // const obj = this.meshes[i] as THREE.Mesh;
20
- // if (!obj) continue;
21
- // const geo = obj.geometry;
22
- // if (!geo) continue;
23
- // const copy : THREE.BufferGeometry = {...geo};
24
- // // const copy = geo;
25
- // const attributesCopy = {...copy.attributes};
26
- // copy.attributes = attributesCopy;
27
- // if(attributesCopy.uv2) delete attributesCopy.uv2;
28
- // // copy.applyMatrix4(obj.matrixWorld);
29
- // geometries.push(copy);
30
- // // obj.updateMatrixWorld();
31
- // // singleGeometry.merge(geo);
32
- // // console.log(singleGeometry, geo);
33
- // }
34
- // }
35
- // const mesh = mergeBufferGeometries(geometries);
36
- // const zone = Pathfinding.createZone(mesh);
37
- // const name = ZONE;
38
- // this.zones.push(name);
39
- // this.pathfinding.setZoneData(name, zone);
40
- // // const target = new THREE.Vector3(2, 0, 2);
41
- // // const groupID = this.pathfinding.getGroup(ZONE, target);
42
- // // const path = this.pathfinding.findPath(this.worldPosition, target, ZONE, groupID);
43
- // // console.log(path, this.pathfinding);
44
- // }
45
- // public tryFindPath(from: THREE.Vector3, to: THREE.Vector3): THREE.Vector3[] | null {
46
- // const zone = this.zones[0];
47
- // const groupId = this.pathfinding.getGroup(zone, to);
48
- // const path = this.pathfinding.findPath(from, to, zone, groupId);
49
- // return path;
50
- // }
51
- // */
52
- // }
53
- // // import { input } from "../engine/engine_input";
54
- // import { Physics, RaycastOptions } from "../engine/engine_physics"
55
- // // import { time } from "../engine/engine_time";
56
- // // import { scene } from "../engine/engine_setup";
57
- // import {SyncedTransform} from "./SyncedTransform";
58
- // export class NavMeshAgent extends Behaviour {
59
- // /*
60
- // public navMesh: NavMesh | null = null;
61
- // private currentPath: THREE.Vector3[] | null = null;
62
- // private helper : PathfindingHelper | null = null;
63
- // onEnable(): void {
64
- // this.helper = new PathfindingHelper();
65
- // scene.add(this.helper);
66
- // }
67
- // update(): void {
68
- // if (input.mouseClick) {
69
- // if (this.navMesh) {
70
- // const from = this.worldPosition;
71
- // const opts = new RaycastOptions();
72
- // opts.setMask(RaycastOptions.AllLayers);
73
- // const hits = Physics.raycast(opts);
74
- // if (hits.length > 0) {
75
- // const to = hits[0].point;
76
- // this.helper.setPlayerPosition(from);
77
- // this.helper.setTargetPosition(to);
78
- // this.currentPath = this.navMesh.tryFindPath(from, to);
79
- // this.helper.setPath(this.currentPath);
80
- // // console.log(...this.currentPath);
81
- // const sync = GameObject.getComponent(this.gameObject, SyncedTransform);
82
- // if(sync) sync.requestOwnership();
83
- // }
84
- // }
85
- // }
86
- // if (this.currentPath && this.currentPath.length > 0) {
87
- // const wp = this.worldPosition;
88
- // const target = this.currentPath[0];
89
- // this.worldPosition = wp.lerp(target, time.deltaTime*2);
90
- // this.gameObject.lookAt(target);
91
- // // const vec = target.clone().sub(wp);
92
- // // const wr = this.worldQuaternion;
93
- // // wr.slerp(rot, time.deltaTime*5);
94
- // // this.worldQuaternion = wr;
95
- // if (wp.distanceTo(this.currentPath[0]) < 0.1)
96
- // this.currentPath.shift();
97
- // }
98
- // }
99
- // */
100
- // }
101
- //# sourceMappingURL=NavMesh.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavMesh.js","sourceRoot":"","sources":["../../../engine-components/NavMesh.ts"],"names":[],"mappings":";AACA,uDAAuD;AACvD,KAAK;AACL,sEAAsE;AACtE,kCAAkC;AAClC,uFAAuF;AACvF,KAAK;AACL,2CAA2C;AAC3C,KAAK;AACL,4CAA4C;AAE5C,sDAAsD;AACtD,oCAAoC;AAEpC,yBAAyB;AAEzB,gDAAgD;AAChD,+BAA+B;AAC/B,0DAA0D;AAC1D,uDAAuD;AACvD,6DAA6D;AAC7D,4DAA4D;AAC5D,sCAAsC;AACtC,4CAA4C;AAC5C,sCAAsC;AACtC,gEAAgE;AAChE,uCAAuC;AACvC,+DAA+D;AAC/D,oDAAoD;AACpD,oEAAoE;AACpE,yDAAyD;AACzD,yCAAyC;AACzC,8CAA8C;AAC9C,gDAAgD;AAChD,uDAAuD;AACvD,gBAAgB;AAChB,YAAY;AACZ,0DAA0D;AAC1D,qDAAqD;AACrD,6BAA6B;AAC7B,iCAAiC;AACjC,oDAAoD;AAEpD,wDAAwD;AACxD,sEAAsE;AACtE,gGAAgG;AAChG,kDAAkD;AAClD,QAAQ;AAER,2FAA2F;AAC3F,sCAAsC;AACtC,+DAA+D;AAC/D,2EAA2E;AAC3E,uBAAuB;AACvB,QAAQ;AACR,SAAS;AACT,IAAI;AAEJ,qDAAqD;AACrD,qEAAqE;AACrE,mDAAmD;AACnD,qDAAqD;AACrD,qDAAqD;AAErD,gDAAgD;AAChD,SAAS;AACT,6CAA6C;AAE7C,0DAA0D;AAC1D,wDAAwD;AAExD,yBAAyB;AACzB,iDAAiD;AACjD,kCAAkC;AAClC,QAAQ;AAER,uBAAuB;AACvB,kCAAkC;AAClC,kCAAkC;AAClC,mDAAmD;AACnD,qDAAqD;AACrD,0DAA0D;AAC1D,sDAAsD;AACtD,yCAAyC;AACzC,gDAAgD;AAChD,2DAA2D;AAC3D,yDAAyD;AACzD,6EAA6E;AAC7E,6DAA6D;AAC7D,2DAA2D;AAE3D,8FAA8F;AAC9F,wDAAwD;AACxD,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AAEZ,iEAAiE;AAEjE,6CAA6C;AAC7C,kDAAkD;AAClD,sEAAsE;AAEtE,8CAA8C;AAC9C,qDAAqD;AACrD,kDAAkD;AAClD,kDAAkD;AAClD,4CAA4C;AAE5C,4DAA4D;AAC5D,4CAA4C;AAG5C,YAAY;AACZ,QAAQ;AACR,SAAS;AACT,IAAI"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=ParticleSystemBehaviours.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ParticleSystemBehaviours.js","sourceRoot":"","sources":["../../../engine-components/ParticleSystemBehaviours.ts"],"names":[],"mappings":""}
File without changes
@@ -1,43 +0,0 @@
1
- "use strict";
2
- // import { Behaviour, GameObject } from "./Component";
3
- // import { Rigidbody } from "./RigidBody";
4
- // import * as CANNON from 'cannon-es'
5
- // import { Vector3 } from "three";
6
- // export class SpringJoint extends Behaviour {
7
- // anchor: Vector3 | null = null;
8
- // connectedBody: Rigidbody | null = null;
9
- // connectedAnchor: Vector3 | null = null;
10
- // spring: number = 10;
11
- // damper: number = .2;
12
- // private rb : Rigidbody | null = null;
13
- // awake(): void {
14
- // this.rb = GameObject.getComponent(this.gameObject, Rigidbody);
15
- // if(!this.connectedBody || !this.connectedBody.body || !this.rb || !this.rb.body) return;
16
- // this.connectedBody.body.mass = Math.min(this.rb.body.mass*.99, this.connectedBody.body.mass);
17
- // const spring = new CANNON.Spring(this.rb.body, this.connectedBody.body, {
18
- // // localAnchorA: new CANNON.Vec3(-1, 1, 0),
19
- // // localAnchorB: new CANNON.Vec3(0, 0, 0),
20
- // // restLength: -.1,
21
- // // stiffness: 10,
22
- // // damping: .2,
23
- // restLength: 0.01,
24
- // stiffness: this.spring*.5,
25
- // damping: this.damper,
26
- // // localAnchorA: new CANNON.Vec3(this.anchor.x, this.anchor.y, this.anchor.z),
27
- // // localAnchorB: new CANNON.Vec3(
28
- // // this.connectedAnchor.x,
29
- // // this.connectedAnchor.y,
30
- // // this.connectedAnchor.z
31
- // // ),
32
- // });
33
- // this.context.physics.addPostStepListener(_ => {
34
- // // const wp = this.connectedBody.worldPosition;
35
- // // console.log(wp.y, this.connectedBody.body.position.y, this.rb.body.position.y);
36
- // spring.applyForce();
37
- // });
38
- // }
39
- // update(): void {
40
- // // console.log(this.worldPosition.y)
41
- // }
42
- // }
43
- //# sourceMappingURL=SpringJoint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpringJoint.js","sourceRoot":"","sources":["../../../engine-components/SpringJoint.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,2CAA2C;AAC3C,sCAAsC;AACtC,mCAAmC;AAEnC,+CAA+C;AAC/C,qCAAqC;AACrC,8CAA8C;AAC9C,8CAA8C;AAC9C,2BAA2B;AAC3B,2BAA2B;AAE3B,6CAA6C;AAE7C,sBAAsB;AACtB,yEAAyE;AACzE,mGAAmG;AACnG,wGAAwG;AACxG,oFAAoF;AACpF,0DAA0D;AAC1D,yDAAyD;AACzD,kCAAkC;AAClC,gCAAgC;AAChC,8BAA8B;AAC9B,gCAAgC;AAChC,yCAAyC;AACzC,oCAAoC;AACpC,6FAA6F;AAC7F,gDAAgD;AAChD,6CAA6C;AAC7C,6CAA6C;AAC7C,4CAA4C;AAC5C,oBAAoB;AACpB,cAAc;AACd,0DAA0D;AAC1D,8DAA8D;AAC9D,iGAAiG;AACjG,mCAAmC;AACnC,cAAc;AACd,QAAQ;AAER,uBAAuB;AACvB,+CAA+C;AAC/C,QAAQ;AACR,IAAI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GltfExport.js","sourceRoot":"","sources":["../../../../engine-components/export/GltfExport.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1,17 +0,0 @@
1
- "use strict";
2
- // import { serializable } from "../../engine/engine_serialization";
3
- // import { Behaviour } from "../Component";
4
- // export class CanvasScaler extends Behaviour {
5
- // private _dynamicPixelsPerUnit: number = 1;
6
- // @serializable()
7
- // get dynamicPixelsPerUnit(): number {
8
- // return this._dynamicPixelsPerUnit;
9
- // }
10
- // private set dynamicPixelsPerUnit(val: number) {
11
- // this._dynamicPixelsPerUnit = val;
12
- // }
13
- // awake() {
14
- // console.log(this);
15
- // }
16
- // }
17
- //# sourceMappingURL=CanvasScaler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CanvasScaler.js","sourceRoot":"","sources":["../../../../engine-components/ui/CanvasScaler.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,4CAA4C;AAG5C,gDAAgD;AAEhD,iDAAiD;AAEjD,sBAAsB;AACtB,2CAA2C;AAC3C,6CAA6C;AAC7C,QAAQ;AAER,sDAAsD;AACtD,4CAA4C;AAC5C,QAAQ;AAER,gBAAgB;AAChB,6BAA6B;AAC7B,QAAQ;AACR,IAAI"}