@needle-tools/engine 2.65.2-pre → 2.67.0-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 (289) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/needle-engine.js +34490 -26304
  3. package/dist/needle-engine.umd.cjs +748 -303
  4. package/lib/engine/api.d.ts +4 -0
  5. package/lib/engine/api.js +10 -0
  6. package/lib/engine/api.js.map +1 -1
  7. package/lib/engine/codegen/register_types.js +23 -7
  8. package/lib/engine/codegen/register_types.js.map +1 -1
  9. package/lib/engine/debug/debug_overlay.js +11 -2
  10. package/lib/engine/debug/debug_overlay.js.map +1 -1
  11. package/lib/engine/engine_addressables.js +4 -4
  12. package/lib/engine/engine_addressables.js.map +1 -1
  13. package/lib/engine/engine_assetdatabase.d.ts +17 -51
  14. package/lib/engine/engine_assetdatabase.js +252 -126
  15. package/lib/engine/engine_assetdatabase.js.map +1 -1
  16. package/lib/engine/engine_components.js +13 -1
  17. package/lib/engine/engine_components.js.map +1 -1
  18. package/lib/engine/engine_components_internal.d.ts +8 -0
  19. package/lib/engine/engine_components_internal.js +29 -0
  20. package/lib/engine/engine_components_internal.js.map +1 -0
  21. package/lib/engine/engine_constants.d.ts +1 -0
  22. package/lib/engine/engine_constants.js +1 -0
  23. package/lib/engine/engine_constants.js.map +1 -1
  24. package/lib/engine/engine_context_registry.d.ts +2 -0
  25. package/lib/engine/engine_context_registry.js +6 -0
  26. package/lib/engine/engine_context_registry.js.map +1 -1
  27. package/lib/engine/engine_editor-sync.d.ts +9 -0
  28. package/lib/engine/engine_editor-sync.js +8 -0
  29. package/lib/engine/engine_editor-sync.js.map +1 -0
  30. package/lib/engine/engine_element.d.ts +1 -0
  31. package/lib/engine/engine_element.js +4 -1
  32. package/lib/engine/engine_element.js.map +1 -1
  33. package/lib/engine/engine_element_loading.d.ts +3 -2
  34. package/lib/engine/engine_element_loading.js +19 -15
  35. package/lib/engine/engine_element_loading.js.map +1 -1
  36. package/lib/engine/engine_gameobject.js +21 -23
  37. package/lib/engine/engine_gameobject.js.map +1 -1
  38. package/lib/engine/engine_gizmos.js +3 -1
  39. package/lib/engine/engine_gizmos.js.map +1 -1
  40. package/lib/engine/engine_gltf_builtin_components.d.ts +2 -3
  41. package/lib/engine/engine_gltf_builtin_components.js +23 -6
  42. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  43. package/lib/engine/engine_networking.d.ts +3 -1
  44. package/lib/engine/engine_networking.js +10 -8
  45. package/lib/engine/engine_networking.js.map +1 -1
  46. package/lib/engine/engine_networking_auto.d.ts +1 -0
  47. package/lib/engine/engine_networking_auto.js +42 -9
  48. package/lib/engine/engine_networking_auto.js.map +1 -1
  49. package/lib/engine/engine_patcher.d.ts +8 -0
  50. package/lib/engine/engine_patcher.js +98 -0
  51. package/lib/engine/engine_patcher.js.map +1 -0
  52. package/lib/engine/engine_physics.d.ts +34 -2
  53. package/lib/engine/engine_physics.js +110 -11
  54. package/lib/engine/engine_physics.js.map +1 -1
  55. package/lib/engine/engine_scenetools.js +0 -1
  56. package/lib/engine/engine_scenetools.js.map +1 -1
  57. package/lib/engine/engine_serialization_core.js +4 -0
  58. package/lib/engine/engine_serialization_core.js.map +1 -1
  59. package/lib/engine/engine_setup.d.ts +1 -1
  60. package/lib/engine/engine_setup.js +12 -5
  61. package/lib/engine/engine_setup.js.map +1 -1
  62. package/lib/engine/engine_texture.d.ts +6 -1
  63. package/lib/engine/engine_texture.js +39 -1
  64. package/lib/engine/engine_texture.js.map +1 -1
  65. package/lib/engine/engine_types.d.ts +4 -0
  66. package/lib/engine/engine_types.js.map +1 -1
  67. package/lib/engine/engine_utils.js +3 -2
  68. package/lib/engine/engine_utils.js.map +1 -1
  69. package/lib/engine/extensions/NEEDLE_progressive.d.ts +0 -1
  70. package/lib/engine/extensions/NEEDLE_progressive.js +24 -26
  71. package/lib/engine/extensions/NEEDLE_progressive.js.map +1 -1
  72. package/lib/engine/extensions/NEEDLE_render_objects.js +9 -0
  73. package/lib/engine/extensions/NEEDLE_render_objects.js.map +1 -1
  74. package/lib/engine/extensions/extensions.d.ts +4 -1
  75. package/lib/engine/extensions/extensions.js +16 -0
  76. package/lib/engine/extensions/extensions.js.map +1 -1
  77. package/lib/engine/extensions/usage_tracker.d.ts +12 -0
  78. package/lib/engine/extensions/usage_tracker.js +59 -0
  79. package/lib/engine/extensions/usage_tracker.js.map +1 -0
  80. package/lib/engine-components/Animator.js +0 -1
  81. package/lib/engine-components/Animator.js.map +1 -1
  82. package/lib/engine-components/AnimatorController.js +4 -0
  83. package/lib/engine-components/AnimatorController.js.map +1 -1
  84. package/lib/engine-components/AudioSource.js +2 -1
  85. package/lib/engine-components/AudioSource.js.map +1 -1
  86. package/lib/engine-components/Camera.d.ts +6 -0
  87. package/lib/engine-components/Camera.js +70 -31
  88. package/lib/engine-components/Camera.js.map +1 -1
  89. package/lib/engine-components/CharacterController.d.ts +1 -0
  90. package/lib/engine-components/CharacterController.js +14 -9
  91. package/lib/engine-components/CharacterController.js.map +1 -1
  92. package/lib/engine-components/Collider.js +14 -1
  93. package/lib/engine-components/Collider.js.map +1 -1
  94. package/lib/engine-components/Component.d.ts +52 -0
  95. package/lib/engine-components/Component.js +55 -14
  96. package/lib/engine-components/Component.js.map +1 -1
  97. package/lib/engine-components/Networking.js +19 -0
  98. package/lib/engine-components/Networking.js.map +1 -1
  99. package/lib/engine-components/OrbitControls.d.ts +2 -0
  100. package/lib/engine-components/OrbitControls.js +9 -0
  101. package/lib/engine-components/OrbitControls.js.map +1 -1
  102. package/lib/engine-components/ParticleSystem.d.ts +5 -1
  103. package/lib/engine-components/ParticleSystem.js +52 -7
  104. package/lib/engine-components/ParticleSystem.js.map +1 -1
  105. package/lib/engine-components/ParticleSystemModules.d.ts +2 -0
  106. package/lib/engine-components/ParticleSystemModules.js +26 -0
  107. package/lib/engine-components/ParticleSystemModules.js.map +1 -1
  108. package/lib/engine-components/ParticleSystemSubEmitter.js +5 -2
  109. package/lib/engine-components/ParticleSystemSubEmitter.js.map +1 -1
  110. package/lib/engine-components/ReflectionProbe.js +18 -6
  111. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  112. package/lib/engine-components/Renderer.d.ts +1 -1
  113. package/lib/engine-components/Renderer.js +33 -11
  114. package/lib/engine-components/Renderer.js.map +1 -1
  115. package/lib/engine-components/ScreenCapture.js +3 -3
  116. package/lib/engine-components/ScreenCapture.js.map +1 -1
  117. package/lib/engine-components/Skybox.js +2 -0
  118. package/lib/engine-components/Skybox.js.map +1 -1
  119. package/lib/engine-components/SmoothFollow.js +1 -2
  120. package/lib/engine-components/SmoothFollow.js.map +1 -1
  121. package/lib/engine-components/SpectatorCamera.js +3 -3
  122. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  123. package/lib/engine-components/SyncedCamera.js +1 -1
  124. package/lib/engine-components/SyncedCamera.js.map +1 -1
  125. package/lib/engine-components/SyncedTransform.js +2 -2
  126. package/lib/engine-components/SyncedTransform.js.map +1 -1
  127. package/lib/engine-components/TestRunner.js +1 -1
  128. package/lib/engine-components/TestRunner.js.map +1 -1
  129. package/lib/engine-components/WebARCameraBackground.d.ts +19 -0
  130. package/lib/engine-components/WebARCameraBackground.js +185 -0
  131. package/lib/engine-components/WebARCameraBackground.js.map +1 -0
  132. package/lib/engine-components/WebARSessionRoot.js +3 -2
  133. package/lib/engine-components/WebARSessionRoot.js.map +1 -1
  134. package/lib/engine-components/WebXR.d.ts +4 -0
  135. package/lib/engine-components/WebXR.js +11 -8
  136. package/lib/engine-components/WebXR.js.map +1 -1
  137. package/lib/engine-components/WebXRAvatar.js +1 -0
  138. package/lib/engine-components/WebXRAvatar.js.map +1 -1
  139. package/lib/engine-components/WebXRGrabRendering.js +2 -2
  140. package/lib/engine-components/WebXRGrabRendering.js.map +1 -1
  141. package/lib/engine-components/WebXRSync.js +2 -2
  142. package/lib/engine-components/WebXRSync.js.map +1 -1
  143. package/lib/engine-components/codegen/components.d.ts +14 -6
  144. package/lib/engine-components/codegen/components.js +14 -6
  145. package/lib/engine-components/codegen/components.js.map +1 -1
  146. package/lib/engine-components/js-extensions/Object3D.js +4 -1
  147. package/lib/engine-components/js-extensions/Object3D.js.map +1 -1
  148. package/lib/engine-components/postprocessing/Effects/Antialiasing.d.ts +13 -0
  149. package/lib/engine-components/postprocessing/Effects/Antialiasing.js +46 -0
  150. package/lib/engine-components/postprocessing/Effects/Antialiasing.js.map +1 -0
  151. package/lib/engine-components/postprocessing/Effects/Bloom.d.ts +12 -0
  152. package/lib/engine-components/postprocessing/Effects/Bloom.js +76 -0
  153. package/lib/engine-components/postprocessing/Effects/Bloom.js.map +1 -0
  154. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +8 -0
  155. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +39 -0
  156. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js.map +1 -0
  157. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +12 -0
  158. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +96 -0
  159. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js.map +1 -0
  160. package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +21 -0
  161. package/lib/engine-components/postprocessing/Effects/DepthOfField.js +87 -0
  162. package/lib/engine-components/postprocessing/Effects/DepthOfField.js.map +1 -0
  163. package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +7 -0
  164. package/lib/engine-components/postprocessing/Effects/Pixelation.js +30 -0
  165. package/lib/engine-components/postprocessing/Effects/Pixelation.js.map +1 -0
  166. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.d.ts +11 -0
  167. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js +70 -0
  168. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js.map +1 -0
  169. package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +16 -0
  170. package/lib/engine-components/postprocessing/Effects/Tonemapping.js +52 -0
  171. package/lib/engine-components/postprocessing/Effects/Tonemapping.js.map +1 -0
  172. package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +11 -0
  173. package/lib/engine-components/postprocessing/Effects/Vignette.js +57 -0
  174. package/lib/engine-components/postprocessing/Effects/Vignette.js.map +1 -0
  175. package/lib/engine-components/postprocessing/PostProcessingEffect.d.ts +29 -0
  176. package/lib/engine-components/postprocessing/PostProcessingEffect.js +89 -0
  177. package/lib/engine-components/postprocessing/PostProcessingEffect.js.map +1 -0
  178. package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +13 -0
  179. package/lib/engine-components/postprocessing/PostProcessingHandler.js +119 -0
  180. package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -0
  181. package/lib/engine-components/postprocessing/Volume.d.ts +23 -0
  182. package/lib/engine-components/postprocessing/Volume.js +176 -0
  183. package/lib/engine-components/postprocessing/Volume.js.map +1 -0
  184. package/lib/engine-components/postprocessing/VolumeParameter.d.ts +21 -0
  185. package/lib/engine-components/postprocessing/VolumeParameter.js +75 -0
  186. package/lib/engine-components/postprocessing/VolumeParameter.js.map +1 -0
  187. package/lib/engine-components/postprocessing/VolumeProfile.d.ts +7 -0
  188. package/lib/engine-components/postprocessing/VolumeProfile.js +42 -0
  189. package/lib/engine-components/postprocessing/VolumeProfile.js.map +1 -0
  190. package/lib/engine-components/timeline/TimelineTracks.js +14 -15
  191. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  192. package/lib/engine-components/ui/Text.js +28 -170
  193. package/lib/engine-components/ui/Text.js.map +1 -1
  194. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +18 -0
  195. package/lib/engine-components-experimental/networking/PlayerSync.js +62 -8
  196. package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -1
  197. package/lib/include/three/ARButton.d.ts +1 -1
  198. package/lib/include/three/ARButton.js +11 -19
  199. package/lib/include/three/ARButton.js.map +1 -1
  200. package/lib/include/three/VRButton.js +1 -4
  201. package/lib/include/three/VRButton.js.map +1 -1
  202. package/package.json +3 -2
  203. package/plugins/vite/drop-client.js +77 -0
  204. package/plugins/vite/drop.js +81 -0
  205. package/plugins/vite/editor-connection.js +121 -0
  206. package/plugins/vite/index.js +9 -4
  207. package/plugins/vite/meta.js +3 -0
  208. package/plugins/vite/poster-client.js +6 -4
  209. package/src/engine/api.ts +30 -1
  210. package/src/engine/codegen/register_types.js +25 -9
  211. package/src/engine/debug/debug_overlay.ts +11 -2
  212. package/src/engine/engine_addressables.ts +4 -4
  213. package/src/engine/engine_assetdatabase.ts +291 -184
  214. package/src/engine/engine_components.ts +20 -1
  215. package/src/engine/engine_components_internal.ts +30 -0
  216. package/src/engine/engine_constants.ts +4 -1
  217. package/src/engine/engine_context_registry.ts +7 -0
  218. package/src/engine/engine_editor-sync.ts +21 -0
  219. package/src/engine/engine_element.ts +8 -1
  220. package/src/engine/engine_element_loading.ts +19 -15
  221. package/src/engine/engine_gameobject.ts +579 -583
  222. package/src/engine/engine_gizmos.ts +3 -2
  223. package/src/engine/engine_gltf_builtin_components.ts +30 -15
  224. package/src/engine/engine_networking.ts +10 -8
  225. package/src/engine/engine_networking_auto.ts +48 -11
  226. package/src/engine/engine_patcher.ts +113 -0
  227. package/src/engine/engine_physics.ts +128 -12
  228. package/src/engine/engine_scenetools.ts +0 -1
  229. package/src/engine/engine_serialization_core.ts +6 -0
  230. package/src/engine/engine_setup.ts +15 -5
  231. package/src/engine/engine_texture.ts +54 -5
  232. package/src/engine/engine_types.ts +6 -1
  233. package/src/engine/engine_utils.ts +6 -5
  234. package/src/engine/extensions/NEEDLE_progressive.ts +32 -32
  235. package/src/engine/extensions/NEEDLE_render_objects.ts +10 -1
  236. package/src/engine/extensions/extensions.ts +22 -1
  237. package/src/engine/extensions/usage_tracker.ts +91 -0
  238. package/src/engine-components/Animator.ts +0 -1
  239. package/src/engine-components/AnimatorController.ts +2 -0
  240. package/src/engine-components/AudioSource.ts +1 -1
  241. package/src/engine-components/Camera.ts +77 -37
  242. package/src/engine-components/CharacterController.ts +12 -9
  243. package/src/engine-components/Collider.ts +16 -2
  244. package/src/engine-components/Component.ts +74 -30
  245. package/src/engine-components/Networking.ts +9 -1
  246. package/src/engine-components/OrbitControls.ts +11 -2
  247. package/src/engine-components/ParticleSystem.ts +54 -10
  248. package/src/engine-components/ParticleSystemModules.ts +28 -1
  249. package/src/engine-components/ParticleSystemSubEmitter.ts +5 -3
  250. package/src/engine-components/ReflectionProbe.ts +17 -7
  251. package/src/engine-components/Renderer.ts +36 -16
  252. package/src/engine-components/ScreenCapture.ts +3 -3
  253. package/src/engine-components/Skybox.ts +2 -0
  254. package/src/engine-components/SmoothFollow.ts +4 -4
  255. package/src/engine-components/SpectatorCamera.ts +3 -3
  256. package/src/engine-components/SyncedCamera.ts +1 -1
  257. package/src/engine-components/SyncedTransform.ts +2 -2
  258. package/src/engine-components/TestRunner.ts +1 -1
  259. package/src/engine-components/WebARCameraBackground.ts +215 -0
  260. package/src/engine-components/WebARSessionRoot.ts +3 -2
  261. package/src/engine-components/WebXR.ts +12 -8
  262. package/src/engine-components/WebXRAvatar.ts +1 -1
  263. package/src/engine-components/WebXRGrabRendering.ts +2 -2
  264. package/src/engine-components/WebXRSync.ts +2 -2
  265. package/src/engine-components/codegen/components.ts +14 -6
  266. package/src/engine-components/js-extensions/Object3D.ts +6 -1
  267. package/src/engine-components/postprocessing/Effects/Antialiasing.ts +52 -0
  268. package/src/engine-components/postprocessing/Effects/Bloom.ts +75 -0
  269. package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +36 -0
  270. package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +114 -0
  271. package/src/engine-components/postprocessing/Effects/DepthOfField.ts +90 -0
  272. package/src/engine-components/postprocessing/Effects/Pixelation.ts +28 -0
  273. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.ts +71 -0
  274. package/src/engine-components/postprocessing/Effects/Tonemapping.ts +55 -0
  275. package/src/engine-components/postprocessing/Effects/Vignette.ts +55 -0
  276. package/src/engine-components/postprocessing/PostProcessingEffect.ts +112 -0
  277. package/src/engine-components/postprocessing/PostProcessingHandler.ts +148 -0
  278. package/src/engine-components/postprocessing/Volume.ts +194 -0
  279. package/src/engine-components/postprocessing/VolumeParameter.ts +85 -0
  280. package/src/engine-components/postprocessing/VolumeProfile.ts +40 -0
  281. package/src/engine-components/timeline/TimelineTracks.ts +16 -17
  282. package/src/engine-components/ui/Text.ts +37 -174
  283. package/src/engine-components-experimental/networking/PlayerSync.ts +69 -8
  284. package/src/include/three/ARButton.js +13 -24
  285. package/src/include/three/VRButton.js +1 -7
  286. package/lib/engine-components/Volume.d.ts +0 -34
  287. package/lib/engine-components/Volume.js +0 -140
  288. package/lib/engine-components/Volume.js.map +0 -1
  289. package/src/engine-components/Volume.ts +0 -141
@@ -1,23 +1,7 @@
1
- import * as THREE from 'three';
2
- // import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'
3
- import * as utils from "./engine_utils";
4
- const debug = utils.getParam("debugassets");
5
- class TextureInfo {
6
- name;
7
- sampler;
8
- source;
9
- extras;
10
- }
11
- class ImageInfo {
12
- bufferView;
13
- mimeType;
14
- extras;
15
- }
16
- class GltfJson {
17
- textures;
18
- bufferViews;
19
- }
20
- /** @deprecated */
1
+ import { InternalUsageTrackerPlugin } from "./extensions/usage_tracker";
2
+ import { Bone, BufferAttribute, BufferGeometry, InterleavedBufferAttribute, Material, Mesh, Object3D, Skeleton, SkinnedMesh, Texture, WebGLRenderer } from "three";
3
+ import { addPatch } from "./engine_patcher";
4
+ import { getParam } from "./engine_utils";
21
5
  export class AssetDatabase {
22
6
  constructor() {
23
7
  window.addEventListener('unhandledrejection', (event) => {
@@ -33,118 +17,260 @@ export class AssetDatabase {
33
17
  }
34
18
  });
35
19
  }
36
- texturesLoader = new THREE.TextureLoader();
37
- textures = {};
38
- texturesLoading = {};
39
- /** @deprecated */
40
- async loadTexture(url) {
41
- if (this.textures[url]) {
42
- return this.textures[url];
20
+ }
21
+ const trackUsageParam = getParam("trackusage");
22
+ function autoDispose() {
23
+ return trackUsageParam === "dispose";
24
+ }
25
+ // For testing only track when explictly enabled
26
+ let allowUsageTracking = trackUsageParam !== undefined && trackUsageParam !== false && trackUsageParam !== 0;
27
+ export function setUsageTrackingEnabled(enabled) {
28
+ allowUsageTracking = enabled;
29
+ }
30
+ export function isUsageTrackingEnabled() {
31
+ return allowUsageTracking;
32
+ }
33
+ /** Recursive disposes all referenced resources by this object. Does not traverse children */
34
+ export function disposeObjectResources(obj) {
35
+ if (!obj)
36
+ return;
37
+ if (obj instanceof SkinnedMesh) {
38
+ disposeObjectResources(obj.geometry);
39
+ disposeObjectResources(obj.material);
40
+ disposeObjectResources(obj.skeleton);
41
+ }
42
+ else if (obj instanceof Mesh) {
43
+ disposeObjectResources(obj.geometry);
44
+ disposeObjectResources(obj.material);
45
+ }
46
+ else if (obj instanceof BufferGeometry) {
47
+ free(obj);
48
+ for (const key of Object.keys(obj.attributes)) {
49
+ const value = obj.attributes[key];
50
+ disposeObjectResources(value);
51
+ }
52
+ }
53
+ else if (obj instanceof BufferAttribute || obj instanceof InterleavedBufferAttribute) {
54
+ // Currently not supported by three
55
+ // https://github.com/mrdoob/three.js/issues/15261
56
+ // https://github.com/mrdoob/three.js/pull/17063#issuecomment-737993363
57
+ }
58
+ else if (obj instanceof (Array)) {
59
+ for (const entry of obj) {
60
+ if (entry)
61
+ disposeObjectResources(entry);
43
62
  }
44
- if (this.texturesLoading[url]) {
45
- return await this.texturesLoading[url];
63
+ }
64
+ else if (obj instanceof Material) {
65
+ for (const key of Object.keys(obj)) {
66
+ const value = obj[key];
67
+ if (value instanceof Texture)
68
+ disposeObjectResources(value);
46
69
  }
47
- const loading = this.texturesLoader.loadAsync(url);
48
- this.texturesLoading[url] = loading;
49
- const res = await loading;
50
- delete this.texturesLoading[url];
51
- this.textures[url] = res;
52
- return res;
53
- }
54
- /** @deprecated */
55
- getTexture(guid) {
56
- return this._textures.get(guid) || null;
57
- }
58
- /** @deprecated */
59
- findTexture(name) {
60
- for (const texture of this._textures.values()) {
61
- if (texture.name === name) {
62
- return texture;
63
- }
70
+ free(obj);
71
+ }
72
+ else if (obj instanceof Texture) {
73
+ free(obj);
74
+ if (obj.source?.data instanceof ImageBitmap) {
75
+ free(obj.source.data);
76
+ }
77
+ }
78
+ else if (obj instanceof Skeleton) {
79
+ free(obj.boneTexture);
80
+ }
81
+ else if (obj instanceof Bone) {
82
+ }
83
+ else {
84
+ if (!(obj instanceof Object3D) && debug)
85
+ console.warn("Unknown object type", obj);
86
+ }
87
+ }
88
+ function free(obj) {
89
+ if (debug || autoDispose() || trackUsageParam)
90
+ console.warn("🧨 FREE", obj);
91
+ if (!obj) {
92
+ return;
93
+ }
94
+ if (obj instanceof ImageBitmap) {
95
+ obj.close();
96
+ }
97
+ else {
98
+ obj.dispose();
99
+ }
100
+ }
101
+ export function __internalNotifyObjectDestroyed(obj) {
102
+ if (obj instanceof Mesh || obj instanceof SkinnedMesh) {
103
+ obj.material = null;
104
+ obj.geometry = null;
105
+ }
106
+ }
107
+ const usersBuffer = new Set();
108
+ /**
109
+ * Find all users of an object
110
+ * @param object Object to find users of
111
+ * @param recursive Find users of users
112
+ * @param predicate Filter users
113
+ * @param set Set to add users to, a new one will be created if none is provided
114
+ * @returns a set of users
115
+ */
116
+ export function findUsers(object, recursive, predicate = null, set) {
117
+ if (!set) {
118
+ set = usersBuffer;
119
+ set.clear();
120
+ }
121
+ if (!object)
122
+ return set;
123
+ const users = object[$objectUsersKey];
124
+ if (users) {
125
+ for (const user of users) {
126
+ // Prevent infinite loop if recursive references
127
+ if (set.has(user))
128
+ continue;
129
+ // Allow filtering
130
+ if (predicate?.call(null, user) === false)
131
+ continue;
132
+ set.add(user);
133
+ if (recursive)
134
+ findUsers(user, true, predicate, set);
135
+ }
136
+ }
137
+ return set;
138
+ }
139
+ export function getUserCount(object) {
140
+ return object[$objectUsersCountKey];
141
+ }
142
+ const debug = getParam("debugusers");
143
+ // Should we check if the type has the
144
+ const $objectUsersKey = Symbol("needle-users");
145
+ const $objectUsersCountKey = Symbol("needle-users-count");
146
+ function trackValueChange(prototype, fieldName) {
147
+ addPatch(prototype, fieldName, (obj, oldValue, newValue) => {
148
+ if (allowUsageTracking) {
149
+ updateUsers($objectUsersKey, obj, oldValue, false);
150
+ updateUsers($objectUsersKey, obj, newValue, true);
151
+ }
152
+ });
153
+ }
154
+ // function stopTracking(prototype, fieldName) {
155
+ // const $key = Symbol("needle-using-" + fieldName);
156
+ // const currentValue = prototype[$key];
157
+ // delete prototype[$key];
158
+ // prototype[fieldName] = currentValue;
159
+ // updateUsers($objectUsersKey, fieldName, prototype, currentValue, true);
160
+ // }
161
+ trackValueChange(Mesh.prototype, "material");
162
+ trackValueChange(Mesh.prototype, "geometry");
163
+ trackValueChange(Material.prototype, "map");
164
+ trackValueChange(Material.prototype, "bumpMap");
165
+ trackValueChange(Material.prototype, "alphaMap");
166
+ trackValueChange(Material.prototype, "normalMap");
167
+ trackValueChange(Material.prototype, "displacementMap");
168
+ trackValueChange(Material.prototype, "roughnessMap");
169
+ trackValueChange(Material.prototype, "metalnessMap");
170
+ trackValueChange(Material.prototype, "emissiveMap");
171
+ trackValueChange(Material.prototype, "specularMap");
172
+ trackValueChange(Material.prototype, "envMap");
173
+ trackValueChange(Material.prototype, "lightMap");
174
+ trackValueChange(Material.prototype, "aoMap");
175
+ trackValueChange(Material.prototype, "gradientMap");
176
+ // trackValueChange(Object3D.prototype, "parent");
177
+ // setTimeout(()=>{
178
+ // stopTracking(Mesh.prototype, "material");
179
+ // },100);
180
+ // TODO: patch dispose?
181
+ function onDispose(obj) {
182
+ if (allowUsageTracking === false)
183
+ return;
184
+ const users = obj[$objectUsersKey];
185
+ if (users) {
186
+ for (const user of users) {
187
+ updateUsers($objectUsersKey, user, obj, false);
64
188
  }
65
- return null;
66
189
  }
67
- /** @deprecated */
68
- findMesh(name) {
69
- for (const mesh of this._meshes.values()) {
70
- if (mesh.name === name)
71
- return mesh;
190
+ }
191
+ function trackDispose(prototype, methodName) {
192
+ addPatch(prototype, methodName, (instance) => {
193
+ onDispose(instance);
194
+ });
195
+ }
196
+ trackDispose(Material.prototype, "dispose");
197
+ let noUpdateScope = 0;
198
+ // Main method called by wrapped fields/properties to update the users for an object
199
+ function updateUsers(symbol, user, object, added) {
200
+ // If we are rendering we dont want to update users
201
+ if (noUpdateScope > 0)
202
+ return;
203
+ if (Array.isArray(object)) {
204
+ for (const m of object) {
205
+ updateUsers(symbol, user, m, added);
72
206
  }
73
- return null;
207
+ return;
74
208
  }
75
- /** @deprecated */
76
- findMaterial(name) {
77
- for (const material of this._materials.values()) {
78
- if (material.name === name)
79
- return material;
209
+ if (!object)
210
+ return;
211
+ let users = object[symbol];
212
+ if (!users)
213
+ users = new Set();
214
+ if (added) {
215
+ if (user && !users.has(user)) {
216
+ users.add(user);
217
+ let count = object[$objectUsersCountKey] || 0;
218
+ count += 1;
219
+ object[$objectUsersCountKey] = count;
220
+ if (debug)
221
+ console.warn(`🟢 Added user of "${object["type"]}"`, user, object, count, "users:", users);
80
222
  }
81
- return null;
82
- }
83
- /** @deprecated */
84
- async registerGltf(_gltf) {
85
- // if (debug)
86
- // console.log("register gltf", gltf.scene.name, gltf);
87
- // const parser = gltf.parser;
88
- // const json = parser.json;
89
- // const textures = json.textures;
90
- // const associations = parser.associations;
91
- // const alreadyLoaded = new Set<string>();
92
- // associations.forEach((value, key) => {
93
- // // when minified instanceOf doesnt work but the texture type is 1009
94
- // if (key instanceof THREE.Texture || key.type === 1009) {
95
- // const index = value.textures;
96
- // const textureInfo = textures[index];
97
- // // TODO: a lot of information is gone when compressing with ktx2
98
- // // this.registerTexture(parser, index, textureInfo, key, alreadyLoaded);
99
- // }
100
- // else if (key instanceof THREE.Mesh || key.type == "Mesh") {
101
- // this.registerAsset(key);
102
- // // saving materials,
103
- // // FIXME: this is unlike the other things by name here as a hack for forma, it should probably saved by name and by guid just like anything else here
104
- // if(key.material){
105
- // this._materials.set(key.material.name, key.material);
106
- // }
107
- // }
108
- // });
109
- // // for (const ti in textures) {
110
- // // const textureInfo = textures[ti];
111
- // // await this.registerTexture(parser, ti, textureInfo, null, alreadyLoaded);
112
- // // }
113
- // if (debug)
114
- // console.log(this);
115
- }
116
- /** @deprecated */
117
- registerAsset(_asset) {
118
- // if (debug) console.log("register asset", asset);
119
- // console.assert(asset, "Asset is null or undefined");
120
- // const guid: string = asset.userData?.guid;
121
- // if (guid === null || guid === undefined || guid.length === 0) {
122
- // // asset has no guid, this can happen e.g. when using multi material meshes
123
- // // should we ask the parent for the guid if it's a group?
124
- // // we need a more stable way to preserve ids anyways
125
- // return;
126
- // }
127
- // if (asset instanceof THREE.Texture || asset.type === 1009) {
128
- // if (this._textures.has(guid) && this._textures.get(guid) !== asset) {
129
- // if (debug)
130
- // console.warn("found duplicate texture " + guid, asset);
131
- // return;
132
- // }
133
- // if (debug)
134
- // console.log("register texture", guid, asset);
135
- // // should we check if an asset has been registered already?
136
- // // should not matter as long as we only export guid from unity?
137
- // this._textures.set(guid, asset);
138
- // }
139
- // else if (asset instanceof THREE.Mesh || asset.type == "Mesh") {
140
- // this._meshes.set(guid, asset);
141
- // }
142
- }
143
- _materials = new Map();
144
- _meshes = new Map();
145
- // private async registerMesh(parser: GltfParser, mesh : THREE.Mesh){
146
- // const guid = mesh?.userData?.guid;
147
- // }
148
- _textures = new Map();
223
+ }
224
+ else {
225
+ if (user && users.has(user)) {
226
+ users.delete(user);
227
+ let count = object[$objectUsersCountKey] || 0;
228
+ if (count > 0) {
229
+ count -= 1;
230
+ object[$objectUsersCountKey] = count;
231
+ }
232
+ if (debug)
233
+ console.warn(`🔴 Removed user of "${object["type"]}"`, user, object, count, "users:", users);
234
+ if (count <= 0) {
235
+ if (!InternalUsageTrackerPlugin.isLoading(object)) {
236
+ if (trackUsageParam)
237
+ console.warn(`🔴 Removed all user of "${object["type"]}"`, object);
238
+ if (autoDispose())
239
+ disposeObjectResources(object);
240
+ }
241
+ }
242
+ }
243
+ }
244
+ object[symbol] = users;
245
+ }
246
+ // We dont want to update users during rendering
247
+ const $renderMethod = Symbol("render-method");
248
+ Object.defineProperty(WebGLRenderer.prototype, "render", {
249
+ set: function (value) {
250
+ this[$renderMethod] = wrapMethod(value);
251
+ },
252
+ get: function () {
253
+ return this[$renderMethod];
254
+ }
255
+ });
256
+ function wrapMethod(fn) {
257
+ return function (...args) {
258
+ noUpdateScope++;
259
+ const result = fn.apply(this, args);
260
+ noUpdateScope--;
261
+ return result;
262
+ };
149
263
  }
264
+ // addGltfLoadEventListener(GltfLoadEventType.BeforeLoad, (_) => {
265
+ // noUpdateScope++;
266
+ // });
267
+ // addGltfLoadEventListener(GltfLoadEventType.AfterLoaded, (_) => {
268
+ // noUpdateScope--;
269
+ // });
270
+ // addPatch(Object3D.prototype, "add", (obj: Object3D) => {
271
+ // });
272
+ // addPatch(Object3D.prototype, "remove", (obj: Object3D) => {
273
+ // if(obj instanceof Mesh) {
274
+ // }
275
+ // });
150
276
  //# sourceMappingURL=engine_assetdatabase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine_assetdatabase.js","sourceRoot":"","sources":["../../../src/engine/engine_assetdatabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,wEAAwE;AACxE,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAExC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE5C,MAAM,WAAW;IACb,IAAI,CAAU;IACd,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,MAAM,CAA+B;CACxC;AAED,MAAM,SAAS;IACX,UAAU,CAAU;IACpB,QAAQ,CAAqB;IAC7B,MAAM,CAA+B;CACxC;AAED,MAAM,QAAQ;IACV,QAAQ,CAAiB;IACzB,WAAW,CAAqE;CACnF;AAeD,kBAAkB;AAClB,MAAM,OAAO,aAAa;IAEtB;QACI,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,KAA4B,EAAE,EAAE;YAC3E,IAAI,KAAK,CAAC,gBAAgB;gBAAE,OAAO;YACnC,MAAM,SAAS,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;YACtC,IAAI,SAAS,EAAE;gBACX,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;oBACpC,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBACrD,KAAK,CAAC,cAAc,EAAE,CAAC;iBAC1B;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,cAAc,GAAwB,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;IAChE,QAAQ,GAAkE,EAAE,CAAC;IAC7E,eAAe,GAAkE,EAAE,CAAC;IAE5F,kBAAkB;IACX,KAAK,CAAC,WAAW,CAAC,GAAW;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SAC1C;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACzB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,kBAAkB;IACX,UAAU,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED,kBAAkB;IACX,WAAW,CAAC,IAAY;QAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE;YAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;gBACvB,OAAO,OAAO,CAAC;aAClB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IACX,QAAQ,CAAC,IAAY;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;gBAClB,OAAO,IAAI,CAAC;SACnB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IACX,YAAY,CAAC,IAAW;QAC3B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC7C,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;gBACtB,OAAO,QAAQ,CAAC;SACvB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IACX,KAAK,CAAC,YAAY,CAAC,KAAW;QACjC,aAAa;QACb,2DAA2D;QAC3D,8BAA8B;QAC9B,4BAA4B;QAC5B,kCAAkC;QAClC,4CAA4C;QAC5C,2CAA2C;QAC3C,yCAAyC;QACzC,2EAA2E;QAC3E,+DAA+D;QAC/D,wCAAwC;QACxC,+CAA+C;QAC/C,2EAA2E;QAC3E,mFAAmF;QACnF,QAAQ;QACR,kEAAkE;QAClE,mCAAmC;QAEnC,+BAA+B;QAC/B,gKAAgK;QAChK,4BAA4B;QAC5B,oEAAoE;QACpE,YAAY;QACZ,QAAQ;QACR,MAAM;QAEN,kCAAkC;QAClC,2CAA2C;QAC3C,mFAAmF;QACnF,OAAO;QAEP,aAAa;QACb,yBAAyB;IAC7B,CAAC;IAED,kBAAkB;IACX,aAAa,CAAC,MAAW;QAC5B,mDAAmD;QACnD,uDAAuD;QACvD,6CAA6C;QAC7C,kEAAkE;QAClE,kFAAkF;QAClF,iEAAiE;QACjE,2DAA2D;QAC3D,cAAc;QACd,IAAI;QACJ,+DAA+D;QAC/D,4EAA4E;QAC5E,qBAAqB;QACrB,sEAAsE;QACtE,kBAAkB;QAClB,QAAQ;QACR,iBAAiB;QACjB,wDAAwD;QACxD,mEAAmE;QACnE,sEAAsE;QACtE,uCAAuC;QACvC,IAAI;QACJ,kEAAkE;QAClE,qCAAqC;QACrC,IAAI;IACR,CAAC;IAGO,UAAU,GAAgC,IAAI,GAAG,EAA0B,CAAC;IAC5E,OAAO,GAA4B,IAAI,GAAG,EAAE,CAAC;IACrD,6EAA6E;IAC7E,yCAAyC;IACzC,IAAI;IAGI,SAAS,GAA+B,IAAI,GAAG,EAAE,CAAC;CAiC7D"}
1
+ {"version":3,"file":"engine_assetdatabase.js","sourceRoot":"","sources":["../../../src/engine/engine_assetdatabase.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import { getParam } from "./engine_utils";
3
3
  import { removeScriptFromContext, updateActiveInHierarchyWithoutEventCall } from "./engine_mainloop_utils";
4
4
  import { activeInHierarchyFieldName } from "./engine_constants";
5
5
  import { apply } from "../engine-components/js-extensions/Object3D";
6
+ import { InstantiateIdProvider } from "./engine_networking_instantiate";
7
+ import { ComponentEvents, __internalDispatchComponentLifecycleEvent } from "./engine_components_internal";
6
8
  const debug = getParam("debuggetcomponent");
7
9
  function tryGetObject(obj) {
8
10
  if (obj === null || obj === undefined)
@@ -22,6 +24,7 @@ export function removeComponent(go, componentInstance) {
22
24
  const index = go.userData.components.indexOf(componentInstance);
23
25
  if (index < 0)
24
26
  return;
27
+ __internalDispatchComponentLifecycleEvent(ComponentEvents.Removing, componentInstance);
25
28
  //@ts-ignore
26
29
  componentInstance.gameObject = null;
27
30
  go.userData.components.splice(index, 1);
@@ -33,6 +36,7 @@ export function getOrAddComponent(go, typeName) {
33
36
  const newInstance = new typeName();
34
37
  return addNewComponent(go, newInstance);
35
38
  }
39
+ const idProvider = new InstantiateIdProvider("addComponentIdProvider");
36
40
  export function addNewComponent(obj, componentInstance, callAwake = true) {
37
41
  if (!obj) {
38
42
  new Error("Can not add componet to null object");
@@ -43,14 +47,19 @@ export function addNewComponent(obj, componentInstance, callAwake = true) {
43
47
  obj.userData.components = [];
44
48
  obj.userData.components.push(componentInstance);
45
49
  componentInstance.gameObject = obj;
50
+ // TODO: currently add component does not ensure a new component instance has a guid
51
+ if (componentInstance.guid === undefined || componentInstance.guid === "invalid") {
52
+ componentInstance.guid = idProvider.generateUUID();
53
+ }
46
54
  apply(obj);
47
55
  // componentInstance.transform = obj;
48
56
  registerComponent(componentInstance);
49
57
  try {
50
- if (componentInstance.__internalAwake && callAwake) {
58
+ if (callAwake && componentInstance.__internalAwake) {
51
59
  updateActiveInHierarchyWithoutEventCall(obj);
52
60
  componentInstance.__internalAwake();
53
61
  }
62
+ __internalDispatchComponentLifecycleEvent(ComponentEvents.Added, componentInstance);
54
63
  }
55
64
  catch (err) {
56
65
  console.error(err);
@@ -69,8 +78,11 @@ export function moveComponentInstance(obj, componentInstance) {
69
78
  obj.userData.components = [];
70
79
  else if (obj.userData.components.includes(componentInstance))
71
80
  return;
81
+ // TODO: do we want to disable and enable when moving?
82
+ // componentInstance.__internalDisable();
72
83
  obj.userData.components.push(componentInstance);
73
84
  componentInstance.gameObject = obj;
85
+ // componentInstance.__internalEnable();
74
86
  // componentInstance.transform = obj;
75
87
  }
76
88
  export function destroyComponentInstance(componentInstance) {
@@ -1 +1 @@
1
- {"version":3,"file":"engine_components.js","sourceRoot":"","sources":["../../../src/engine/engine_components.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,uCAAuC,EAAE,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,6CAA6C,CAAC;AAEpE,MAAM,KAAK,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAG5C,SAAS,YAAY,CAAC,GAAG;IACrB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClD,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO,GAAG,CAAC;IAC/B,qCAAqC;IACrC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAC3D,OAAO,GAAG,CAAC;AACf,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,EAAY,EAAE,iBAA6B;IACvE,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU;QAAE,OAAO;IACpC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO;IACtB,YAAY;IACZ,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;IACpC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAuB,EAAY,EAAE,QAAgC;IAClG,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACxC,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC;IACnC,OAAO,eAAe,CAAC,EAAE,EAAE,WAAW,CAAiB,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,eAAe,CAAuB,GAAa,EAAE,iBAAoB,EAAE,SAAS,GAAG,IAAI;IACvG,IAAI,CAAC,GAAG,EAAE;QACN,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACpD;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU;QAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC;IAC3D,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,iBAAiB,CAAC,UAAU,GAAG,GAAkB,CAAC;IAClD,KAAK,CAAC,GAAG,CAAC,CAAC;IACX,qCAAqC;IACrC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrC,IAAI;QACA,IAAI,iBAAiB,CAAC,eAAe,IAAI,SAAS,EAAE;YAChD,uCAAuC,CAAC,GAAG,CAAC,CAAC;YAC7C,iBAAiB,CAAC,eAAe,EAAE,CAAC;SACvC;KACJ;IACD,OAAO,GAAG,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACtB;IACD,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAa,EAAE,iBAA6B;IAC9E,IAAI,iBAAiB,CAAC,UAAU,KAAK,GAAG;QAAE,OAAO;IACjD,6BAA6B;IAC7B,IAAI,iBAAiB,CAAC,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE;QAClF,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1F,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACrE;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU;QAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC;SACtD,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO;IACrE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,iBAAiB,CAAC,UAAU,GAAG,GAAkB,CAAC;IAClD,qCAAqC;AACzC,CAAC;AAGD,MAAM,UAAU,wBAAwB,CAAC,iBAA6B;IAClE,0EAA0E;IAC1E,6BAA6B;IAC7B,IAAI,iBAAiB,CAAC,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE;QAClF,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1F,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACrE;IACD,8CAA8C;IAC9C,IAAI,iBAAiB,CAAC,iBAAiB;QAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;IAC/E,IAAI,iBAAiB,CAAC,SAAS;QAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC;IAC/D,uBAAuB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACzF,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;IACtC,YAAY;IACZ,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;IACpC,sDAAsD;AAC1D,CAAC;AAED,IAAI,2BAA2B,GAAY,KAAK,CAAC;AAEjD,SAAS,cAAc,CAAI,GAAgC,EAAE,aAA6B,EAAE,GAAS;IACjG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO;IAC9C,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxC,OAAO;KACV;IACD,IAAI,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;QACnC,IAAI,CAAC,2BAA2B,EAAE;YAC9B,2BAA2B,GAAG,IAAI,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,waAAwa,EAAE,aAAa,CAAC,CAAC;SACzc;KACJ;IACD,IAAI,KAAK;QACL,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI;QAAE,OAAO;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,aAAa,KAAK,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE;YAChI,IAAI,KAAK;gBACL,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;YAC3C,IAAI,GAAG;gBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;gBACxB,OAAO,SAAS,CAAC;SACzB;KACJ;IACD,uBAAuB;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC1D,GAAG;YACC,IAAI,MAAM,KAAK,aAAa,EAAE;gBAC1B,IAAI,KAAK;oBACL,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,GAAG;oBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;oBACxB,OAAO,SAAS,CAAC;aACzB;YACD,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SAC1C,QACM,MAAM,EAAE;KAClB;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,GAAa,EAAE,aAA6B;IACxE,OAAO,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,aAAa,CAAI,GAAa,EAAE,aAA6B,EAAE,GAAgB;IAC3F,IAAI,CAAC,GAAG;QAAE,GAAG,GAAG,EAAE,CAAC;IACnB,OAAO,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAI,GAAa,EAAE,aAA6B,EAAE,eAAyB;IAC7G,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC7C,IAAI,eAAe,KAAK,KAAK,IAAI,GAAG,EAAE,OAAO,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACnE,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;KACvB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAI,GAAa,EAAE,aAA6B,EAAE,GAAS;IAC9F,IAAI,CAAC,GAAG;QAAE,GAAG,GAAG,EAAE,CAAC;IACnB,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QAC5C,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;KAChE;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAI,GAAa,EAAE,aAA6B;IAChF,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,oBAAoB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YACnD,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;SACvB;QACD,OAAO,IAAI,CAAC;KACf;IACD,oBAAoB;IACpB,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC7C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,IAAI,GAAG,CAAC,MAAM;QACV,OAAO,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAI,GAAa,EAAE,aAA6B,EAAE,GAAgB;IACnG,IAAI,CAAC,GAAG;QAAE,GAAG,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IACrB,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,GAAG,CAAC,MAAM;QACV,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACjE,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAI,IAAoB,EAAE,cAA2C,EAAE,eAAe;IAClH,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC,cAAc,EAAE;QACjB,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC;SACf;KACJ;IAED,IAAI,KAAK,GAAG,cAAuB,CAAC;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,KAAK,GAAI,cAAmC,EAAE,KAAK,CAAC;IACxE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,gIAAgI;IAChI,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,eAAe,KAAK,KAAK,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,KAAK;YAAE,SAAS;QACvF,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,GAAG,GAAG,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;KACvB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAI,IAAoB,EAAE,KAAU,EAAE,cAAc;IACjF,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,cAAc,EAAE;QACjB,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAC9E,OAAO,KAAK,CAAC;SAChB;KACJ;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,KAAK,IAAI,IAAI,cAAc,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC;IAC7H,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAC5C,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KAC/C;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"engine_components.js","sourceRoot":"","sources":["../../../src/engine/engine_components.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { IComponent } from "./engine_types";
2
+ export declare enum ComponentEvents {
3
+ Added = "component-added",
4
+ Removing = "removing-component"
5
+ }
6
+ export declare function __internalAddComponentLifecycleEventListener(evt: string, cb: (data: IComponent) => void): void;
7
+ export declare function __internalRemoveComponentLifecycleEventListener(evt: string, cb: (data: IComponent) => void): void;
8
+ export declare function __internalDispatchComponentLifecycleEvent(evt: string, data: IComponent): void;
@@ -0,0 +1,29 @@
1
+ const eventListeners = new Map();
2
+ export var ComponentEvents;
3
+ (function (ComponentEvents) {
4
+ ComponentEvents["Added"] = "component-added";
5
+ ComponentEvents["Removing"] = "removing-component";
6
+ })(ComponentEvents || (ComponentEvents = {}));
7
+ export function __internalAddComponentLifecycleEventListener(evt, cb) {
8
+ if (!eventListeners.has(evt))
9
+ eventListeners.set(evt, []);
10
+ eventListeners.get(evt)?.push(cb);
11
+ }
12
+ export function __internalRemoveComponentLifecycleEventListener(evt, cb) {
13
+ const listeners = eventListeners.get(evt);
14
+ if (!listeners)
15
+ return;
16
+ const index = listeners.indexOf(cb);
17
+ if (index < 0)
18
+ return;
19
+ listeners.splice(index, 1);
20
+ }
21
+ export function __internalDispatchComponentLifecycleEvent(evt, data) {
22
+ const listeners = eventListeners.get(evt);
23
+ if (!listeners)
24
+ return;
25
+ for (const listener of listeners) {
26
+ listener(data);
27
+ }
28
+ }
29
+ //# sourceMappingURL=engine_components_internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine_components_internal.js","sourceRoot":"","sources":["../../../src/engine/engine_components_internal.ts"],"names":[],"mappings":"AAGA,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0C,CAAC;AAEzE,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;AACnC,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,UAAU,4CAA4C,CAAC,GAAW,EAAE,EAA8B;IACpG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1D,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,+CAA+C,CAAC,GAAW,EAAE,EAA8B;IACvG,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO;IACtB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,yCAAyC,CAAC,GAAW,EAAE,IAAgB;IACnF,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC;KAClB;AACL,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export declare const activeInHierarchyFieldName: unique symbol;
2
2
  export declare const builtinComponentKeyName = "builtin_components";
3
+ export declare const $originalGuid: unique symbol;
@@ -1,3 +1,4 @@
1
1
  export const activeInHierarchyFieldName = Symbol("isActiveInHierarchy");
2
2
  export const builtinComponentKeyName = "builtin_components";
3
+ export const $originalGuid = Symbol("originalGuid");
3
4
  //# sourceMappingURL=engine_constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine_constants.js","sourceRoot":"","sources":["../../../src/engine/engine_constants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC"}
1
+ {"version":3,"file":"engine_constants.js","sourceRoot":"","sources":["../../../src/engine/engine_constants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAG5D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC"}
@@ -18,4 +18,6 @@ export declare class ContextRegistry {
18
18
  static registerCallback(evt: ContextEvent, callback: ContextCallback): void;
19
19
  static unregisterCallback(evt: ContextEvent, callback: ContextCallback): void;
20
20
  static dispatchCallback(evt: ContextEvent, context: IContext): void;
21
+ static addContextCreatedCallback(callback: ContextCallback): void;
22
+ static addContextDestroyedCallback(callback: ContextCallback): void;
21
23
  }
@@ -36,5 +36,11 @@ export class ContextRegistry {
36
36
  const args = { event: evt, context };
37
37
  this._callbacks[evt].forEach(cb => cb(args));
38
38
  }
39
+ static addContextCreatedCallback(callback) {
40
+ this.registerCallback(ContextEvent.ContextCreated, callback);
41
+ }
42
+ static addContextDestroyedCallback(callback) {
43
+ this.registerCallback(ContextEvent.ContextDestroyed, callback);
44
+ }
39
45
  }
40
46
  //# sourceMappingURL=engine_context_registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine_context_registry.js","sourceRoot":"","sources":["../../../src/engine/engine_context_registry.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,iDAAiC,CAAA;IACjC,qDAAqC,CAAA;IACrC,+CAA+B,CAAA;AACnC,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AASD,MAAM,OAAO,eAAe;IACxB,MAAM,CAAC,OAAO,CAAW;IAEzB,MAAM,CAAC,UAAU,GAAe,EAAE,CAAC;IAEnC,MAAM,CAAC,QAAQ,CAAC,GAAa;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAa;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAEO,MAAM,CAAC,UAAU,GAA8C,EAAE,CAAC;IAE1E,MAAM,CAAC,gBAAgB,CAAC,GAAiB,EAAE,QAAyB;QAChE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAiB,EAAE,QAAyB;QAClE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAiB,EAAE,OAAgB;QACvD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAClC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC"}
1
+ {"version":3,"file":"engine_context_registry.js","sourceRoot":"","sources":["../../../src/engine/engine_context_registry.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,iDAAiC,CAAA;IACjC,qDAAqC,CAAA;IACrC,+CAA+B,CAAA;AACnC,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AASD,MAAM,OAAO,eAAe;IACxB,MAAM,CAAC,OAAO,CAAW;IAEzB,MAAM,CAAC,UAAU,GAAe,EAAE,CAAC;IAEnC,MAAM,CAAC,QAAQ,CAAC,GAAa;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAa;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAEO,MAAM,CAAC,UAAU,GAA8C,EAAE,CAAC;IAE1E,MAAM,CAAC,gBAAgB,CAAC,GAAiB,EAAE,QAAyB;QAChE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAiB,EAAE,QAAyB;QAClE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAiB,EAAE,OAAgB;QACvD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAClC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,yBAAyB,CAAC,QAAyB;QACtD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,CAAC,2BAA2B,CAAC,QAAyB;QACxD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare type EditorModification = {
2
+ guid: string;
3
+ propertyName: string;
4
+ value: any;
5
+ };
6
+ export interface IEditorModification {
7
+ onEditorModification(modification: EditorModification): void | undefined | boolean;
8
+ }
9
+ export declare function getEditorModificationCache(): Map<string, EditorModification> | null | undefined;