@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.
- package/CHANGELOG.md +43 -0
- package/dist/needle-engine.js +34490 -26304
- package/dist/needle-engine.umd.cjs +748 -303
- package/lib/engine/api.d.ts +4 -0
- package/lib/engine/api.js +10 -0
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/codegen/register_types.js +23 -7
- package/lib/engine/codegen/register_types.js.map +1 -1
- package/lib/engine/debug/debug_overlay.js +11 -2
- package/lib/engine/debug/debug_overlay.js.map +1 -1
- package/lib/engine/engine_addressables.js +4 -4
- package/lib/engine/engine_addressables.js.map +1 -1
- package/lib/engine/engine_assetdatabase.d.ts +17 -51
- package/lib/engine/engine_assetdatabase.js +252 -126
- package/lib/engine/engine_assetdatabase.js.map +1 -1
- package/lib/engine/engine_components.js +13 -1
- package/lib/engine/engine_components.js.map +1 -1
- package/lib/engine/engine_components_internal.d.ts +8 -0
- package/lib/engine/engine_components_internal.js +29 -0
- package/lib/engine/engine_components_internal.js.map +1 -0
- package/lib/engine/engine_constants.d.ts +1 -0
- package/lib/engine/engine_constants.js +1 -0
- package/lib/engine/engine_constants.js.map +1 -1
- package/lib/engine/engine_context_registry.d.ts +2 -0
- package/lib/engine/engine_context_registry.js +6 -0
- package/lib/engine/engine_context_registry.js.map +1 -1
- package/lib/engine/engine_editor-sync.d.ts +9 -0
- package/lib/engine/engine_editor-sync.js +8 -0
- package/lib/engine/engine_editor-sync.js.map +1 -0
- package/lib/engine/engine_element.d.ts +1 -0
- package/lib/engine/engine_element.js +4 -1
- package/lib/engine/engine_element.js.map +1 -1
- package/lib/engine/engine_element_loading.d.ts +3 -2
- package/lib/engine/engine_element_loading.js +19 -15
- package/lib/engine/engine_element_loading.js.map +1 -1
- package/lib/engine/engine_gameobject.js +21 -23
- package/lib/engine/engine_gameobject.js.map +1 -1
- package/lib/engine/engine_gizmos.js +3 -1
- package/lib/engine/engine_gizmos.js.map +1 -1
- package/lib/engine/engine_gltf_builtin_components.d.ts +2 -3
- package/lib/engine/engine_gltf_builtin_components.js +23 -6
- package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
- package/lib/engine/engine_networking.d.ts +3 -1
- package/lib/engine/engine_networking.js +10 -8
- package/lib/engine/engine_networking.js.map +1 -1
- package/lib/engine/engine_networking_auto.d.ts +1 -0
- package/lib/engine/engine_networking_auto.js +42 -9
- package/lib/engine/engine_networking_auto.js.map +1 -1
- package/lib/engine/engine_patcher.d.ts +8 -0
- package/lib/engine/engine_patcher.js +98 -0
- package/lib/engine/engine_patcher.js.map +1 -0
- package/lib/engine/engine_physics.d.ts +34 -2
- package/lib/engine/engine_physics.js +110 -11
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine/engine_scenetools.js +0 -1
- package/lib/engine/engine_scenetools.js.map +1 -1
- package/lib/engine/engine_serialization_core.js +4 -0
- package/lib/engine/engine_serialization_core.js.map +1 -1
- package/lib/engine/engine_setup.d.ts +1 -1
- package/lib/engine/engine_setup.js +12 -5
- package/lib/engine/engine_setup.js.map +1 -1
- package/lib/engine/engine_texture.d.ts +6 -1
- package/lib/engine/engine_texture.js +39 -1
- package/lib/engine/engine_texture.js.map +1 -1
- package/lib/engine/engine_types.d.ts +4 -0
- package/lib/engine/engine_types.js.map +1 -1
- package/lib/engine/engine_utils.js +3 -2
- package/lib/engine/engine_utils.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_progressive.d.ts +0 -1
- package/lib/engine/extensions/NEEDLE_progressive.js +24 -26
- package/lib/engine/extensions/NEEDLE_progressive.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_render_objects.js +9 -0
- package/lib/engine/extensions/NEEDLE_render_objects.js.map +1 -1
- package/lib/engine/extensions/extensions.d.ts +4 -1
- package/lib/engine/extensions/extensions.js +16 -0
- package/lib/engine/extensions/extensions.js.map +1 -1
- package/lib/engine/extensions/usage_tracker.d.ts +12 -0
- package/lib/engine/extensions/usage_tracker.js +59 -0
- package/lib/engine/extensions/usage_tracker.js.map +1 -0
- package/lib/engine-components/Animator.js +0 -1
- package/lib/engine-components/Animator.js.map +1 -1
- package/lib/engine-components/AnimatorController.js +4 -0
- package/lib/engine-components/AnimatorController.js.map +1 -1
- package/lib/engine-components/AudioSource.js +2 -1
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/Camera.d.ts +6 -0
- package/lib/engine-components/Camera.js +70 -31
- package/lib/engine-components/Camera.js.map +1 -1
- package/lib/engine-components/CharacterController.d.ts +1 -0
- package/lib/engine-components/CharacterController.js +14 -9
- package/lib/engine-components/CharacterController.js.map +1 -1
- package/lib/engine-components/Collider.js +14 -1
- package/lib/engine-components/Collider.js.map +1 -1
- package/lib/engine-components/Component.d.ts +52 -0
- package/lib/engine-components/Component.js +55 -14
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/Networking.js +19 -0
- package/lib/engine-components/Networking.js.map +1 -1
- package/lib/engine-components/OrbitControls.d.ts +2 -0
- package/lib/engine-components/OrbitControls.js +9 -0
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/ParticleSystem.d.ts +5 -1
- package/lib/engine-components/ParticleSystem.js +52 -7
- package/lib/engine-components/ParticleSystem.js.map +1 -1
- package/lib/engine-components/ParticleSystemModules.d.ts +2 -0
- package/lib/engine-components/ParticleSystemModules.js +26 -0
- package/lib/engine-components/ParticleSystemModules.js.map +1 -1
- package/lib/engine-components/ParticleSystemSubEmitter.js +5 -2
- package/lib/engine-components/ParticleSystemSubEmitter.js.map +1 -1
- package/lib/engine-components/ReflectionProbe.js +18 -6
- package/lib/engine-components/ReflectionProbe.js.map +1 -1
- package/lib/engine-components/Renderer.d.ts +1 -1
- package/lib/engine-components/Renderer.js +33 -11
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/ScreenCapture.js +3 -3
- package/lib/engine-components/ScreenCapture.js.map +1 -1
- package/lib/engine-components/Skybox.js +2 -0
- package/lib/engine-components/Skybox.js.map +1 -1
- package/lib/engine-components/SmoothFollow.js +1 -2
- package/lib/engine-components/SmoothFollow.js.map +1 -1
- package/lib/engine-components/SpectatorCamera.js +3 -3
- package/lib/engine-components/SpectatorCamera.js.map +1 -1
- package/lib/engine-components/SyncedCamera.js +1 -1
- package/lib/engine-components/SyncedCamera.js.map +1 -1
- package/lib/engine-components/SyncedTransform.js +2 -2
- package/lib/engine-components/SyncedTransform.js.map +1 -1
- package/lib/engine-components/TestRunner.js +1 -1
- package/lib/engine-components/TestRunner.js.map +1 -1
- package/lib/engine-components/WebARCameraBackground.d.ts +19 -0
- package/lib/engine-components/WebARCameraBackground.js +185 -0
- package/lib/engine-components/WebARCameraBackground.js.map +1 -0
- package/lib/engine-components/WebARSessionRoot.js +3 -2
- package/lib/engine-components/WebARSessionRoot.js.map +1 -1
- package/lib/engine-components/WebXR.d.ts +4 -0
- package/lib/engine-components/WebXR.js +11 -8
- package/lib/engine-components/WebXR.js.map +1 -1
- package/lib/engine-components/WebXRAvatar.js +1 -0
- package/lib/engine-components/WebXRAvatar.js.map +1 -1
- package/lib/engine-components/WebXRGrabRendering.js +2 -2
- package/lib/engine-components/WebXRGrabRendering.js.map +1 -1
- package/lib/engine-components/WebXRSync.js +2 -2
- package/lib/engine-components/WebXRSync.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +14 -6
- package/lib/engine-components/codegen/components.js +14 -6
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/lib/engine-components/js-extensions/Object3D.js +4 -1
- package/lib/engine-components/js-extensions/Object3D.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/Antialiasing.d.ts +13 -0
- package/lib/engine-components/postprocessing/Effects/Antialiasing.js +46 -0
- package/lib/engine-components/postprocessing/Effects/Antialiasing.js.map +1 -0
- package/lib/engine-components/postprocessing/Effects/Bloom.d.ts +12 -0
- package/lib/engine-components/postprocessing/Effects/Bloom.js +76 -0
- package/lib/engine-components/postprocessing/Effects/Bloom.js.map +1 -0
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +8 -0
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +39 -0
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js.map +1 -0
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +12 -0
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +96 -0
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js.map +1 -0
- package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +21 -0
- package/lib/engine-components/postprocessing/Effects/DepthOfField.js +87 -0
- package/lib/engine-components/postprocessing/Effects/DepthOfField.js.map +1 -0
- package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +7 -0
- package/lib/engine-components/postprocessing/Effects/Pixelation.js +30 -0
- package/lib/engine-components/postprocessing/Effects/Pixelation.js.map +1 -0
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.d.ts +11 -0
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js +70 -0
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js.map +1 -0
- package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +16 -0
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js +52 -0
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js.map +1 -0
- package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +11 -0
- package/lib/engine-components/postprocessing/Effects/Vignette.js +57 -0
- package/lib/engine-components/postprocessing/Effects/Vignette.js.map +1 -0
- package/lib/engine-components/postprocessing/PostProcessingEffect.d.ts +29 -0
- package/lib/engine-components/postprocessing/PostProcessingEffect.js +89 -0
- package/lib/engine-components/postprocessing/PostProcessingEffect.js.map +1 -0
- package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +13 -0
- package/lib/engine-components/postprocessing/PostProcessingHandler.js +119 -0
- package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -0
- package/lib/engine-components/postprocessing/Volume.d.ts +23 -0
- package/lib/engine-components/postprocessing/Volume.js +176 -0
- package/lib/engine-components/postprocessing/Volume.js.map +1 -0
- package/lib/engine-components/postprocessing/VolumeParameter.d.ts +21 -0
- package/lib/engine-components/postprocessing/VolumeParameter.js +75 -0
- package/lib/engine-components/postprocessing/VolumeParameter.js.map +1 -0
- package/lib/engine-components/postprocessing/VolumeProfile.d.ts +7 -0
- package/lib/engine-components/postprocessing/VolumeProfile.js +42 -0
- package/lib/engine-components/postprocessing/VolumeProfile.js.map +1 -0
- package/lib/engine-components/timeline/TimelineTracks.js +14 -15
- package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
- package/lib/engine-components/ui/Text.js +28 -170
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/lib/engine-components-experimental/networking/PlayerSync.d.ts +18 -0
- package/lib/engine-components-experimental/networking/PlayerSync.js +62 -8
- package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -1
- package/lib/include/three/ARButton.d.ts +1 -1
- package/lib/include/three/ARButton.js +11 -19
- package/lib/include/three/ARButton.js.map +1 -1
- package/lib/include/three/VRButton.js +1 -4
- package/lib/include/three/VRButton.js.map +1 -1
- package/package.json +3 -2
- package/plugins/vite/drop-client.js +77 -0
- package/plugins/vite/drop.js +81 -0
- package/plugins/vite/editor-connection.js +121 -0
- package/plugins/vite/index.js +9 -4
- package/plugins/vite/meta.js +3 -0
- package/plugins/vite/poster-client.js +6 -4
- package/src/engine/api.ts +30 -1
- package/src/engine/codegen/register_types.js +25 -9
- package/src/engine/debug/debug_overlay.ts +11 -2
- package/src/engine/engine_addressables.ts +4 -4
- package/src/engine/engine_assetdatabase.ts +291 -184
- package/src/engine/engine_components.ts +20 -1
- package/src/engine/engine_components_internal.ts +30 -0
- package/src/engine/engine_constants.ts +4 -1
- package/src/engine/engine_context_registry.ts +7 -0
- package/src/engine/engine_editor-sync.ts +21 -0
- package/src/engine/engine_element.ts +8 -1
- package/src/engine/engine_element_loading.ts +19 -15
- package/src/engine/engine_gameobject.ts +579 -583
- package/src/engine/engine_gizmos.ts +3 -2
- package/src/engine/engine_gltf_builtin_components.ts +30 -15
- package/src/engine/engine_networking.ts +10 -8
- package/src/engine/engine_networking_auto.ts +48 -11
- package/src/engine/engine_patcher.ts +113 -0
- package/src/engine/engine_physics.ts +128 -12
- package/src/engine/engine_scenetools.ts +0 -1
- package/src/engine/engine_serialization_core.ts +6 -0
- package/src/engine/engine_setup.ts +15 -5
- package/src/engine/engine_texture.ts +54 -5
- package/src/engine/engine_types.ts +6 -1
- package/src/engine/engine_utils.ts +6 -5
- package/src/engine/extensions/NEEDLE_progressive.ts +32 -32
- package/src/engine/extensions/NEEDLE_render_objects.ts +10 -1
- package/src/engine/extensions/extensions.ts +22 -1
- package/src/engine/extensions/usage_tracker.ts +91 -0
- package/src/engine-components/Animator.ts +0 -1
- package/src/engine-components/AnimatorController.ts +2 -0
- package/src/engine-components/AudioSource.ts +1 -1
- package/src/engine-components/Camera.ts +77 -37
- package/src/engine-components/CharacterController.ts +12 -9
- package/src/engine-components/Collider.ts +16 -2
- package/src/engine-components/Component.ts +74 -30
- package/src/engine-components/Networking.ts +9 -1
- package/src/engine-components/OrbitControls.ts +11 -2
- package/src/engine-components/ParticleSystem.ts +54 -10
- package/src/engine-components/ParticleSystemModules.ts +28 -1
- package/src/engine-components/ParticleSystemSubEmitter.ts +5 -3
- package/src/engine-components/ReflectionProbe.ts +17 -7
- package/src/engine-components/Renderer.ts +36 -16
- package/src/engine-components/ScreenCapture.ts +3 -3
- package/src/engine-components/Skybox.ts +2 -0
- package/src/engine-components/SmoothFollow.ts +4 -4
- package/src/engine-components/SpectatorCamera.ts +3 -3
- package/src/engine-components/SyncedCamera.ts +1 -1
- package/src/engine-components/SyncedTransform.ts +2 -2
- package/src/engine-components/TestRunner.ts +1 -1
- package/src/engine-components/WebARCameraBackground.ts +215 -0
- package/src/engine-components/WebARSessionRoot.ts +3 -2
- package/src/engine-components/WebXR.ts +12 -8
- package/src/engine-components/WebXRAvatar.ts +1 -1
- package/src/engine-components/WebXRGrabRendering.ts +2 -2
- package/src/engine-components/WebXRSync.ts +2 -2
- package/src/engine-components/codegen/components.ts +14 -6
- package/src/engine-components/js-extensions/Object3D.ts +6 -1
- package/src/engine-components/postprocessing/Effects/Antialiasing.ts +52 -0
- package/src/engine-components/postprocessing/Effects/Bloom.ts +75 -0
- package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +36 -0
- package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +114 -0
- package/src/engine-components/postprocessing/Effects/DepthOfField.ts +90 -0
- package/src/engine-components/postprocessing/Effects/Pixelation.ts +28 -0
- package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.ts +71 -0
- package/src/engine-components/postprocessing/Effects/Tonemapping.ts +55 -0
- package/src/engine-components/postprocessing/Effects/Vignette.ts +55 -0
- package/src/engine-components/postprocessing/PostProcessingEffect.ts +112 -0
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +148 -0
- package/src/engine-components/postprocessing/Volume.ts +194 -0
- package/src/engine-components/postprocessing/VolumeParameter.ts +85 -0
- package/src/engine-components/postprocessing/VolumeProfile.ts +40 -0
- package/src/engine-components/timeline/TimelineTracks.ts +16 -17
- package/src/engine-components/ui/Text.ts +37 -174
- package/src/engine-components-experimental/networking/PlayerSync.ts +69 -8
- package/src/include/three/ARButton.js +13 -24
- package/src/include/three/VRButton.js +1 -7
- package/lib/engine-components/Volume.d.ts +0 -34
- package/lib/engine-components/Volume.js +0 -140
- package/lib/engine-components/Volume.js.map +0 -1
- package/src/engine-components/Volume.ts +0 -141
|
@@ -1,23 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
45
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
|
207
|
+
return;
|
|
74
208
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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,
|
|
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
|
|
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;
|
|
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 +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;
|