@needle-tools/engine 2.66.1-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 +20 -0
- package/dist/needle-engine.js +34306 -26230
- package/dist/needle-engine.umd.cjs +743 -298
- 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 +7 -1
- package/lib/engine/debug/debug_overlay.js.map +1 -1
- package/lib/engine/engine_addressables.js +2 -2
- 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_loading.js +1 -1
- package/lib/engine/engine_element_loading.js.map +1 -1
- package/lib/engine/engine_gameobject.js +15 -20
- package/lib/engine/engine_gameobject.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_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 +5 -1
- package/lib/engine/engine_physics.js +11 -1
- 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 +9 -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/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/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/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.js +11 -1
- package/lib/engine-components/ParticleSystem.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 +24 -6
- package/lib/engine-components/Renderer.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/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/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/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 +61 -7
- 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/src/engine/api.ts +30 -1
- package/src/engine/codegen/register_types.js +25 -9
- package/src/engine/debug/debug_overlay.ts +7 -1
- package/src/engine/engine_addressables.ts +2 -2
- 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_loading.ts +1 -1
- package/src/engine/engine_gameobject.ts +16 -21
- package/src/engine/engine_gltf_builtin_components.ts +30 -15
- package/src/engine/engine_networking_auto.ts +48 -11
- package/src/engine/engine_patcher.ts +113 -0
- package/src/engine/engine_physics.ts +15 -2
- package/src/engine/engine_scenetools.ts +0 -1
- package/src/engine/engine_serialization_core.ts +6 -0
- package/src/engine/engine_setup.ts +11 -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/extensions.ts +22 -1
- package/src/engine/extensions/usage_tracker.ts +91 -0
- 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/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 +9 -1
- package/src/engine-components/ReflectionProbe.ts +17 -7
- package/src/engine-components/Renderer.ts +22 -5
- package/src/engine-components/Skybox.ts +2 -0
- package/src/engine-components/SmoothFollow.ts +4 -4
- package/src/engine-components/WebARCameraBackground.ts +215 -0
- package/src/engine-components/WebXR.ts +12 -8
- package/src/engine-components/WebXRAvatar.ts +1 -0
- 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 +68 -7
- 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
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// let editorCache = new Map<string, EditorModification>();
|
|
2
|
+
// export function setEditorModificationCache(cache: Map<string, EditorModification>) {
|
|
3
|
+
// cache = editorCache;
|
|
4
|
+
// }
|
|
5
|
+
export function getEditorModificationCache() {
|
|
6
|
+
return globalThis["NeedleEditorSync.ModificationCache"];
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=engine_editor-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine_editor-sync.js","sourceRoot":"","sources":["../../../src/engine/engine_editor-sync.ts"],"names":[],"mappings":"AAcA,2DAA2D;AAC3D,uFAAuF;AACvF,2BAA2B;AAC3B,IAAI;AACJ,MAAM,UAAU,0BAA0B;IACtC,OAAO,UAAU,CAAC,oCAAoC,CAAuD,CAAC;AAClH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_element_loading.js","sourceRoot":"","sources":["../../../src/engine/engine_element_loading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"engine_element_loading.js","sourceRoot":"","sources":["../../../src/engine/engine_element_loading.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,9 @@ import { apply } from "../engine-components/js-extensions/Object3D";
|
|
|
7
7
|
import { $isUsingInstancing, InstancingUtil } from "./engine_instancing";
|
|
8
8
|
import { activeInHierarchyFieldName } from "./engine_constants";
|
|
9
9
|
import { assign } from "./engine_serialization_core";
|
|
10
|
+
import { disposeObjectResources, __internalNotifyObjectDestroyed as __internalRemoveReferences } from "./engine_assetdatabase";
|
|
11
|
+
import { $originalGuid } from "./engine_constants";
|
|
12
|
+
import { __internalDispatchComponentLifecycleEvent, ComponentEvents } from "./engine_components_internal";
|
|
10
13
|
const debug = getParam("debuggetcomponent");
|
|
11
14
|
const debugInstantiate = getParam("debuginstantiate");
|
|
12
15
|
export var HideFlags;
|
|
@@ -94,14 +97,16 @@ function internalDestroy(instance, recursive = true, dispose = false, isRoot = t
|
|
|
94
97
|
return;
|
|
95
98
|
}
|
|
96
99
|
const obj = instance;
|
|
97
|
-
if (dispose)
|
|
98
|
-
disposeObject(obj);
|
|
99
100
|
setDestroyed(obj, true);
|
|
101
|
+
if (dispose)
|
|
102
|
+
disposeObjectResources(obj);
|
|
103
|
+
// This needs to be called after disposing because it removes the references to resources
|
|
104
|
+
__internalRemoveReferences(obj);
|
|
100
105
|
if (debug)
|
|
101
106
|
console.log(obj);
|
|
102
107
|
if (recursive && obj.children) {
|
|
103
108
|
for (const ch of obj.children) {
|
|
104
|
-
internalDestroy(ch, recursive,
|
|
109
|
+
internalDestroy(ch, recursive, dispose, false);
|
|
105
110
|
}
|
|
106
111
|
}
|
|
107
112
|
const components = obj.userData.components;
|
|
@@ -125,22 +130,6 @@ function internalDestroy(instance, recursive = true, dispose = false, isRoot = t
|
|
|
125
130
|
if (isRoot)
|
|
126
131
|
obj.removeFromParent();
|
|
127
132
|
}
|
|
128
|
-
function disposeObject(obj) {
|
|
129
|
-
if (!obj)
|
|
130
|
-
return;
|
|
131
|
-
const mesh = obj;
|
|
132
|
-
if (mesh.geometry) {
|
|
133
|
-
mesh.geometry.dispose();
|
|
134
|
-
}
|
|
135
|
-
if (mesh.material) {
|
|
136
|
-
if (Array.isArray(mesh.material)) {
|
|
137
|
-
mesh.material.forEach(m => m.dispose());
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
mesh.material.dispose();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
133
|
export function foreachComponent(instance, cb, recursive = true) {
|
|
145
134
|
return internalForEachComponent(instance, cb, recursive);
|
|
146
135
|
}
|
|
@@ -258,6 +247,8 @@ function internalInstantiate(context, instance, opts, componentsList, newGameObj
|
|
|
258
247
|
let clone;
|
|
259
248
|
clone = instance.clone(false);
|
|
260
249
|
apply(clone);
|
|
250
|
+
// if(instance[$originalGuid])
|
|
251
|
+
// clone[$originalGuid] = instance[$originalGuid];
|
|
261
252
|
instance.userData = userData;
|
|
262
253
|
instance.children = children;
|
|
263
254
|
// make reference from old id to new object
|
|
@@ -331,12 +322,16 @@ function internalInstantiate(context, instance, opts, componentsList, newGameObj
|
|
|
331
322
|
clone.userData.components = newComponents;
|
|
332
323
|
for (let i = 0; i < components.length; i++) {
|
|
333
324
|
const comp = components[i];
|
|
334
|
-
const copy =
|
|
325
|
+
const copy = new comp.constructor();
|
|
335
326
|
assign(copy, comp);
|
|
327
|
+
// make sure the original guid stays intact
|
|
328
|
+
if (comp[$originalGuid] !== undefined)
|
|
329
|
+
copy[$originalGuid] = comp[$originalGuid];
|
|
336
330
|
newComponents.push(copy);
|
|
337
331
|
copy.gameObject = clone;
|
|
338
332
|
// copy.transform = clone;
|
|
339
333
|
componentsList.push(copy);
|
|
334
|
+
__internalDispatchComponentLifecycleEvent(ComponentEvents.Added, copy);
|
|
340
335
|
}
|
|
341
336
|
}
|
|
342
337
|
// children should just clone the original transform
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_gameobject.js","sourceRoot":"","sources":["../../../src/engine/engine_gameobject.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine_gameobject.js","sourceRoot":"","sources":["../../../src/engine/engine_gameobject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,6CAA6C,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,+BAA+B,IAAI,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAC/H,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,yCAAyC,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE1G,MAAM,KAAK,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC5C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAEtD,MAAM,CAAN,IAAY,SAUX;AAVD,WAAY,SAAS;IACjB,yCAAQ,CAAA;IACR,+DAAmB,CAAA;IACnB,+DAAmB,CAAA;IACnB,iEAAoB,CAAA;IACpB,uDAAe,CAAA;IACf,gEAAoB,CAAA;IACpB,4EAA0B,CAAA;IAC1B,kDAAqE,CAAA;IACrE,gEAA0D,CAAA;AAC9D,CAAC,EAVW,SAAS,KAAT,SAAS,QAUpB;AAGD,MAAM,OAAO,kBAAkB;IAC3B,UAAU,CAA2B;IAErC,mBAAmB;IACnB,MAAM,CAAiC;IACvC,iCAAiC;IACjC,iBAAiB,CAAU;IAC3B,QAAQ,CAA6B;IACrC,QAAQ,CAAgC;IACxC,KAAK,CAA6B;IAElC,OAAO,CAAuB;IAE9B,OAAO,CAAuB;CACjC;AAGD,2FAA2F;AAC3F,uBAAuB;AACvB,2BAA2B;AAC3B,wDAAwD;AACxD,kCAAkC;AAClC,kDAAkD;AAClD,IAAI;AAGJ,yDAAyD;AACzD,yBAAyB;AACzB,gCAAgC;AAChC,SAAS;AACT,4BAA4B;AAC5B,oDAAoD;AACpD,+BAA+B;AAC/B,4BAA4B;AAC5B,uCAAuC;AACvC,eAAe;AACf,QAAQ;AACR,MAAM;AAGN,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,UAAU,YAAY,CAAC,EAAY;IACrC,qCAAqC;IACrC,4BAA4B;IAC5B,IAAI;IACJ,OAAO,EAAE,CAAC,OAAO,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAY,EAAE,MAAwB;IAC5D,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;IACrD,0BAA0B;IAC1B,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,OAAO,CAAC,CAAA,iBAAiB;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAAY;IAC5C,OAAO,EAAE,CAAC,0BAA0B,CAAC,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,EAAkB,EAAE,SAAkB;IAC1E,EAAE,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAwB,IAAa,OAAO,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAG3H,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,SAAyB;IAC9D,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AAGD,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,UAAU,WAAW,CAAC,EAAY;IACpC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;AAC5B,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,EAAY,EAAE,KAAc;IACrD,EAAE,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,QAA8B,EAAE,YAAqB,IAAI,EAAE,UAAmB,KAAK;IACvG,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,eAAe,CAAC,QAA8B,EAAE,YAAqB,IAAI,EAAE,UAAmB,KAAK,EAAE,SAAkB,IAAI;IAChI,MAAM,IAAI,GAAG,QAAqB,CAAC;IACnC,IAAI,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO;KACV;IAGD,MAAM,GAAG,GAAG,QAAsB,CAAC;IACnC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxB,IAAI,OAAO;QAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACzC,yFAAyF;IACzF,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5B,IAAI,SAAS,IAAI,GAAG,CAAC,QAAQ,EAAE;QAC3B,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE;YAC3B,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;SAClD;KACJ;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC3C,IAAI,UAAU,EAAE;QACZ,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,IAAI,GAAc,UAAU,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,sBAAsB;YACtB,kDAAkD;YAClD,sBAAsB;YACtB,IAAI;YACJ,4DAA4D;YAC5D,IAAI,UAAU,CAAC,MAAM,GAAG,UAAU,EAAE;gBAChC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC/B,CAAC,EAAE,CAAC;aACP;SACJ;KACJ;IACD,IAAI,MAAM;QACN,GAAG,CAAC,gBAAgB,EAAE,CAAC;AAC/B,CAAC;AAID,MAAM,UAAU,gBAAgB,CAAC,QAAwB,EAAE,EAA4B,EAAE,YAAqB,IAAI;IAC9G,OAAO,wBAAwB,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAkB,EAAE,EAA4B,EAAE,SAAkB,EAAE,QAAgB,CAAC;IACrH,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;QACtB,IAAI,KAAK,CAAC,4BAA4B,GAAG,QAAQ,CAAC,CAAC;KACtD;IACD,IAAI,KAAK,GAAG,IAAI,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9D,OAAO;KACV;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE,WAAW,KAAK,IAAI,EAAE;gBAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,GAAG,KAAK,SAAS;oBAAE,OAAO,GAAG,CAAC;aACrC;SACJ;KACJ;IAED,IAAI,SAAS,IAAI,QAAQ,CAAC,QAAQ,EAAE;QAChC,+BAA+B;QAC/B,+CAA+C;QAC/C,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,GAAG,GAAG,wBAAwB,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACtE,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,GAAG,CAAC;SACrC;QACD,+BAA+B;KAClC;AAEL,CAAC;AAOD,MAAM,UAAU,WAAW,CAAC,QAAsC,EAAE,OAAkC,IAAI;IACtG,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEnC,IAAI,OAAO,GAA8B,IAAI,CAAC;IAC9C,IAAI,IAAI,KAAK,IAAI,EAAE;QACf,kIAAkI;QAClI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YACzB,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACnC,OAAO,CAAC,QAAQ,GAAG,IAAgC,CAAC;SACvD;aACI;YACD,0CAA0C;YAC1C,OAAO,GAAG,IAA0B,CAAC;YACrC,SAAS;YACT,0CAA0C;YAC1C,oCAAoC;YACpC,IAAI;SACP;KACJ;IAED,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9B,IAAI,OAAO,EAAE,OAAO;QAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChD,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK;QACtB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAE1C,yHAAyH;IACzH,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QAChC,OAAO,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;KAC9D;IAED,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,SAAS,GAAkD,EAAE,CAAC,CAAC,uGAAuG;IAC5K,MAAM,aAAa,GAAkD,EAAE,CAAC;IACxE,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAEpG,IAAI,KAAK,EAAE;QACP,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7B,8BAA8B,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;KAC5D;IAED,IAAI,KAAK,EAAE;QACP,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7B,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAC7B;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;QACxB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE;YAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YAC9C,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9B,IAAI,KAAK;gBACL,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SACxC;QACD,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,4BAA4B;YACjC,IAAI,CAAC,4BAA4B,EAAE,CAAC;KAC3C;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;QACxB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;YAAE,SAAS;;YAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KAC5B;IAED,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE3B,OAAO,KAAmB,CAAC;AAC/B,CAAC;AAGD,SAAS,mBAAmB,CACxB,OAAgB,EAAE,QAAqC,EAAE,IAA+B,EACxF,cAAgC,EAChC,iBAAgE,EAChE,gBAA+D;IAG/D,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,uDAAuD;IACvD,2CAA2C;IAC3C,wEAAwE;IACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,IAAI,KAAkC,CAAC;IACvC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;IACb,8BAA8B;IAC9B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE7B,2CAA2C;IAC3C,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACxE,IAAI,gBAAgB;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAEzD,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE;QACjC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KAC1E;IAED,gEAAgE;IAChE,4BAA4B;IAE5B,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS;QAC3B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAEjC,IAAI,IAAI,EAAE,UAAU,EAAE;QAClB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAe,KAAmB,CAAC;QAChD,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;KAC1C;IAED,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACvD,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC/C;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,MAAM,EAAE;QACR,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACrB;IAED,kBAAkB;IAClB,IAAI,IAAI,EAAE,QAAQ,EAAE;QAChB,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1C;;QACI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,IAAI,EAAE,QAAQ,EAAE;QAChB,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,wCAAwC;KAC3C;;QACI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,IAAI,EAAE,KAAK,EAAE;QACb,kCAAkC;QAClC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;;QACI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;QACzC,IAAI,eAAe,GAAoB,IAAI,CAAC;QAC5C,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YACjC,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACrE;aACI;YACD,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;SACjC;QACD,IAAI,eAAe,EAAE;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC;YAC5F,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,eAAe,EAAE,8BAA8B,EAAE,QAAQ,CAAC,CAAC;;gBACxG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;SAC1C;;YACI,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KAC5D;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC1D,IAAI,GAAG,KAAK,YAAY;YAAE,SAAS;QACnC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAC/B;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChD,MAAM,aAAa,GAAgB,EAAE,CAAC;QACtC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,aAAa,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnB,2CAA2C;YAC3C,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,SAAS;gBACjC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,0BAA0B;YAC1B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,yCAAyC,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC1E;KACJ;IAED,oDAAoD;IACpD,IAAI,IAAI,EAAE;QACN,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;KAC3B;IAED,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAC9H,IAAI,QAAQ;YACR,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC3B;IAED,OAAO,KAAK,CAAC;AAEjB,CAAC;AAED,SAAS,8BAA8B,CACnC,aAA4D,EAC5D,aAA4D;IAE5D,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;QAC7B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAA6B,CAAC;QACnD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAA0B,CAAC;QAC7C,uCAAuC;QACvC,IAAI,CAAC,gBAAgB,EAAE;YACnB,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;YACnD,SAAS;SACZ;QACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;QAC7C,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAE9C,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC;QAChC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACnD,gCAAgC;QAChC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACzD,yCAAyC;QACzC,iEAAiE;QACjE,wEAAwE;QACxE,MAAM,KAAK,GAAsB,EAAE,CAAC;QACpC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,KAAmB,CAAC;YACnD,yEAAyE;YACzE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1B;QACD,8CAA8C;QAC9C,2BAA2B;QAC3B,gBAAgB;QAChB,0BAA0B;QAC1B,0BAA0B;QAC1B,iDAAiD;KACpD;IACD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;QAC7B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAA0B,CAAC;QAC5D,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,sCAAsC;QACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC9B,gBAAgB;KACnB;AACL,CAAC;AAED,0DAA0D;AAC1D,sCAAsC;AACtC,qCAAqC;AACrC,4CAA4C;AAE5C,kDAAkD;AAClD,0BAA0B;AAC1B,wDAAwD;AACxD,wEAAwE;AACxE,YAAY;AACZ,QAAQ;AACR,0EAA0E;AAC1E,oDAAoD;AACpD,mDAAmD;AACnD,UAAU;AAEV,uCAAuC;AACvC,2CAA2C;AAC3C,mCAAmC;AACnC,qDAAqD;AACrD,yDAAyD;AAEzD,6DAA6D;AAC7D,6DAA6D;AAE7D,wEAAwE;AACxE,4CAA4C;AAC5C,cAAc;AACd,uEAAuE;AACvE,UAAU;AACV,oBAAoB;AAEpB,IAAI;AAEJ,SAAS,iBAAiB,CAAC,aAA4D;IACnF,0GAA0G;IAC1G,uFAAuF;IACvF,kGAAkG;IAClG,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;QAC7B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACxB,qBAAqB;QACrB,IAAI,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1C,6CAA6C;gBAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrC,8BAA8B;gBAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;oBAChC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACtB,MAAM,WAAW,GAAe,EAAE,CAAC;wBACnC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;wBACxB,4CAA4C;wBAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BACvB,kCAAkC;4BAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gCAC3B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCACxB,SAAS;6BACZ;4BACD,MAAM,GAAG,GAAQ,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;4BACzE,IAAI,GAAG,KAAK,SAAS;gCACjB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;gCACrB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBAChC;wBACD,yBAAyB;qBAC5B;yBACI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;wBAChC,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,KAA8B,EAAE,aAAa,CAAC,CAAC;wBAC7F,IAAI,GAAG,KAAK,SAAS,EAAE;4BACnB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;yBACnB;qBACJ;iBACJ;aACJ;SACJ;KACJ;AAEL,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAoB,EAAE,GAAW,EAAE,KAAkC,EAAE,aAA4D;IAC/J,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAClD,IAAK,KAAoB,CAAC,WAAW,KAAK,IAAI,EAAE;QAC5C,MAAM,2BAA2B,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACxD,wDAAwD;QACxD,IAAI,2BAA2B,EAAE;YAC7B,MAAM,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC;YAC5C,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;YAC/C,IAAI,CAAC,aAAa,EAAE;gBAChB,6BAA6B;gBAC7B,IAAI,gBAAgB;oBAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC9D,OAAO;aACV;YACD,MAAM,KAAK,GAAG,2BAA2B,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7E,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,IAAI,gBAAgB;oBAChB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzB,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvD,OAAO,KAAK,CAAC;aAChB;iBACI;gBACD,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;aACxD;SACJ;KACJ;SAAM,IAAK,KAAkB,CAAC,UAAU,KAAK,IAAI,EAAE;QAChD,sBAAsB;QACtB,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO;QACjC,MAAM,2BAA2B,GAAG,KAAiB,CAAC;QACtD,IAAI,2BAA2B,EAAE;YAC7B,MAAM,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC;YAC5C,MAAM,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;YAC/C,IAAI,aAAa,EAAE;gBACf,IAAI,gBAAgB;oBAChB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gBACzD,OAAO,aAAa,CAAC;aACxB;SACJ;KACJ;SACI;QACD,yGAAyG;QACzG,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE;YAC9F,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;SACxB;KACJ;AACL,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import "./codegen/register_types";
|
|
2
|
-
import { Component } from "../engine-components/Component";
|
|
3
2
|
import { Context } from "./engine_setup";
|
|
4
3
|
import { SerializationContext } from "./engine_serialization_core";
|
|
5
4
|
import { NEEDLE_components } from "./extensions/NEEDLE_components";
|
|
6
|
-
import { SourceIdentifier } from "./engine_types";
|
|
5
|
+
import { IComponent, SourceIdentifier } from "./engine_types";
|
|
7
6
|
import { UIDProvider } from "./engine_types";
|
|
8
|
-
export declare function writeBuiltinComponentData(comp:
|
|
7
|
+
export declare function writeBuiltinComponentData(comp: IComponent, context: SerializationContext): object | null;
|
|
9
8
|
export declare function createBuiltinComponents(context: Context, gltfId: SourceIdentifier, gltf: any, seed?: number | null | UIDProvider, extension?: NEEDLE_components): Promise<void>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import "./codegen/register_types";
|
|
2
2
|
import { TypeStore } from "./engine_typestore";
|
|
3
|
+
// import { GameObject } from "../engine-components/Component";
|
|
3
4
|
import { InstantiateIdProvider } from "./engine_networking_instantiate";
|
|
4
5
|
import { deserializeObject, serializeObject } from "./engine_serialization";
|
|
5
6
|
import { assign, ImplementationInformation, SerializationContext } from "./engine_serialization_core";
|
|
6
7
|
import { debugExtension } from "./engine_default_parameters";
|
|
7
|
-
import { builtinComponentKeyName } from "./engine_constants";
|
|
8
|
+
import { $originalGuid, builtinComponentKeyName } from "./engine_constants";
|
|
8
9
|
import { addNewComponent } from "./engine_components";
|
|
9
10
|
import { getParam } from "./engine_utils";
|
|
10
11
|
import { LogType, showBalloonMessage } from "./debug/debug";
|
|
@@ -30,6 +31,7 @@ export function writeBuiltinComponentData(comp, context) {
|
|
|
30
31
|
return null;
|
|
31
32
|
}
|
|
32
33
|
const typeImplementationInformation = new ImplementationInformation();
|
|
34
|
+
const $context_deserialize_queue = Symbol("deserialize-queue");
|
|
33
35
|
export async function createBuiltinComponents(context, gltfId, gltf, seed = null, extension) {
|
|
34
36
|
if (!gltf)
|
|
35
37
|
return;
|
|
@@ -44,20 +46,32 @@ export async function createBuiltinComponents(context, gltfId, gltf, seed = null
|
|
|
44
46
|
serializationContext.gltf = gltf;
|
|
45
47
|
serializationContext.nodeToObject = extension?.nodeToObjectMap;
|
|
46
48
|
serializationContext.implementationInformation = typeImplementationInformation;
|
|
47
|
-
|
|
49
|
+
// If we're loading multiple gltf files in one scene we need to make sure we deserialize all of them in one go
|
|
50
|
+
// for that we collect them in one list per context
|
|
51
|
+
let deserializeQueue = context[$context_deserialize_queue];
|
|
52
|
+
if (!deserializeQueue)
|
|
53
|
+
deserializeQueue = context[$context_deserialize_queue] = [];
|
|
48
54
|
if (gltf.scenes) {
|
|
49
55
|
for (const scene of gltf.scenes) {
|
|
50
|
-
await onCreateBuiltinComponents(serializationContext, scene,
|
|
56
|
+
await onCreateBuiltinComponents(serializationContext, scene, deserializeQueue, lateResolve);
|
|
51
57
|
}
|
|
52
58
|
}
|
|
53
59
|
if (gltf.children) {
|
|
54
60
|
for (const ch of gltf.children) {
|
|
55
|
-
await onCreateBuiltinComponents(serializationContext, ch,
|
|
61
|
+
await onCreateBuiltinComponents(serializationContext, ch, deserializeQueue, lateResolve);
|
|
56
62
|
}
|
|
57
63
|
}
|
|
58
64
|
context.new_scripts_pre_setup_callbacks.push(() => {
|
|
59
|
-
|
|
60
|
-
|
|
65
|
+
// First deserialize ALL components that were loaded before pre setup
|
|
66
|
+
// Down below they get new guids assigned so we have to do all of them first
|
|
67
|
+
// E.g. in cases where we load multiple glb files on startup from one scene
|
|
68
|
+
// and they might have cross-glb references
|
|
69
|
+
const queue = context[$context_deserialize_queue];
|
|
70
|
+
if (queue) {
|
|
71
|
+
for (const des of queue) {
|
|
72
|
+
handleDeserialization(des, serializationContext);
|
|
73
|
+
}
|
|
74
|
+
queue.length = 0;
|
|
61
75
|
}
|
|
62
76
|
// when dropping the same file multiple times we need to generate new guids
|
|
63
77
|
// e.g. SyncTransform sends its own guid to the server to know about ownership
|
|
@@ -124,6 +138,9 @@ async function onCreateBuiltinComponents(context, obj, deserialize, lateResolve)
|
|
|
124
138
|
instance.sourceId = context.gltfId;
|
|
125
139
|
// assign basic fields
|
|
126
140
|
assign(instance, compData, context.implementationInformation);
|
|
141
|
+
// assign the guid of the original instance
|
|
142
|
+
if ("guid" in compData)
|
|
143
|
+
instance[$originalGuid] = compData.guid;
|
|
127
144
|
// Object.assign(instance, compData);
|
|
128
145
|
// dont call awake here because some references might not be resolved yet and components that access those fields in awake will throw
|
|
129
146
|
// for example Duplicatable reference to object might still be { node: id }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_gltf_builtin_components.js","sourceRoot":"","sources":["../../../src/engine/engine_gltf_builtin_components.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine_gltf_builtin_components.js","sourceRoot":"","sources":["../../../src/engine/engine_gltf_builtin_components.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getParam } from "./engine_utils";
|
|
2
2
|
const debug = getParam("debugautosync");
|
|
3
|
+
const $syncerId = Symbol("syncerId");
|
|
3
4
|
class ComponentsSyncerManager {
|
|
4
5
|
_syncers = {};
|
|
5
6
|
getOrCreateSyncer(comp) {
|
|
@@ -8,9 +9,13 @@ class ComponentsSyncerManager {
|
|
|
8
9
|
if (this._syncers[comp.guid])
|
|
9
10
|
return this._syncers[comp.guid];
|
|
10
11
|
const syncer = new ComponentPropertiesSyncer(comp);
|
|
11
|
-
|
|
12
|
+
syncer[$syncerId] = comp.guid;
|
|
13
|
+
this._syncers[syncer[$syncerId]] = syncer;
|
|
12
14
|
return syncer;
|
|
13
15
|
}
|
|
16
|
+
removeSyncer(syncer) {
|
|
17
|
+
delete this._syncers[syncer[$syncerId]];
|
|
18
|
+
}
|
|
14
19
|
}
|
|
15
20
|
const syncerHandler = new ComponentsSyncerManager();
|
|
16
21
|
/**
|
|
@@ -27,6 +32,7 @@ class ComponentPropertiesSyncer {
|
|
|
27
32
|
changedProperties = {};
|
|
28
33
|
data = {};
|
|
29
34
|
_boundEvent;
|
|
35
|
+
_handleReceivingMethod;
|
|
30
36
|
get networkingKey() {
|
|
31
37
|
const obj = this.comp;
|
|
32
38
|
const key = obj.constructor.name;
|
|
@@ -43,11 +49,23 @@ class ComponentPropertiesSyncer {
|
|
|
43
49
|
// console.log("INIT", this.comp.name, this.networkingKey);
|
|
44
50
|
this._boundEvent = this.onHandleSending.bind(this);
|
|
45
51
|
this.comp.context.post_render_callbacks.push(this._boundEvent);
|
|
46
|
-
this.
|
|
52
|
+
this._handleReceivingMethod = this.onHandleReceiving.bind(this);
|
|
53
|
+
this.comp.context.connection.beginListen(this.networkingKey, this._handleReceivingMethod);
|
|
47
54
|
const state = this.comp.context.connection.tryGetState(this.comp.guid);
|
|
48
55
|
if (state)
|
|
49
56
|
this.onHandleReceiving(state);
|
|
50
57
|
}
|
|
58
|
+
destroy() {
|
|
59
|
+
if (!this._isInit)
|
|
60
|
+
return;
|
|
61
|
+
if (this._boundEvent)
|
|
62
|
+
this.comp.context.post_render_callbacks.splice(this.comp.context.post_render_callbacks.indexOf(this._boundEvent), 1);
|
|
63
|
+
if (this._handleReceivingMethod)
|
|
64
|
+
this.comp.context.connection.stopListen(this.networkingKey, this._handleReceivingMethod);
|
|
65
|
+
//@ts-ignore
|
|
66
|
+
this.comp = null;
|
|
67
|
+
this._isInit = false;
|
|
68
|
+
}
|
|
51
69
|
notifyChanged(propertyName, value) {
|
|
52
70
|
if (this._isReceiving)
|
|
53
71
|
return;
|
|
@@ -138,15 +156,24 @@ function testValueChanged(newValue, previousValue) {
|
|
|
138
156
|
}
|
|
139
157
|
return valueChanged;
|
|
140
158
|
}
|
|
159
|
+
const $syncer = Symbol("AutoSyncHandler");
|
|
141
160
|
function getSyncer(instance) {
|
|
142
|
-
if (instance[
|
|
143
|
-
return instance[
|
|
161
|
+
if (instance[$syncer]) {
|
|
162
|
+
return instance[$syncer];
|
|
144
163
|
}
|
|
145
164
|
const syncer = syncerHandler.getOrCreateSyncer(instance);
|
|
146
165
|
syncer?.init(instance);
|
|
147
|
-
instance[
|
|
166
|
+
instance[$syncer] = syncer;
|
|
148
167
|
return syncer;
|
|
149
168
|
}
|
|
169
|
+
function destroySyncer(instance) {
|
|
170
|
+
const syncer = instance[$syncer];
|
|
171
|
+
if (syncer) {
|
|
172
|
+
syncerHandler.removeSyncer(syncer);
|
|
173
|
+
syncer.destroy();
|
|
174
|
+
delete instance[$syncer];
|
|
175
|
+
}
|
|
176
|
+
}
|
|
150
177
|
/**
|
|
151
178
|
* Decorate a field to be automatically networked synced
|
|
152
179
|
* @param onFieldChanged name of a callback function that will be called when the field is changed.
|
|
@@ -164,7 +191,7 @@ export const syncField = function (onFieldChanged) {
|
|
|
164
191
|
const internalAwake = t.__internalAwake;
|
|
165
192
|
if (debug)
|
|
166
193
|
console.log(propertyKey);
|
|
167
|
-
const backingFieldName = propertyKey
|
|
194
|
+
const backingFieldName = Symbol(propertyKey);
|
|
168
195
|
t.__internalAwake = function () {
|
|
169
196
|
if (this[backingFieldName] !== undefined) {
|
|
170
197
|
return;
|
|
@@ -192,8 +219,14 @@ export const syncField = function (onFieldChanged) {
|
|
|
192
219
|
}
|
|
193
220
|
syncer?.init(this);
|
|
194
221
|
};
|
|
222
|
+
const internalDestroy = t.__internalDestroy;
|
|
223
|
+
t.__internalDestroy = function () {
|
|
224
|
+
destroySyncer(this);
|
|
225
|
+
internalDestroy.call(this);
|
|
226
|
+
};
|
|
195
227
|
};
|
|
196
228
|
};
|
|
229
|
+
/** experimental - use syncField instead */
|
|
197
230
|
export const sync = function (_options) {
|
|
198
231
|
return function (target, _propertyKey, descriptor) {
|
|
199
232
|
// override awake
|
|
@@ -212,14 +245,14 @@ export const sync = function (_options) {
|
|
|
212
245
|
// inject getter and setter
|
|
213
246
|
if (!descriptor.get) {
|
|
214
247
|
const previousSetter = descriptor.set;
|
|
215
|
-
const
|
|
248
|
+
const $backingField = Symbol(_propertyKey);
|
|
216
249
|
Object.defineProperty(target, _propertyKey, {
|
|
217
250
|
set: function (value) {
|
|
218
|
-
this[
|
|
251
|
+
this[$backingField] = value;
|
|
219
252
|
previousSetter?.call(this, value);
|
|
220
253
|
},
|
|
221
254
|
get: function () {
|
|
222
|
-
return this[
|
|
255
|
+
return this[$backingField];
|
|
223
256
|
}
|
|
224
257
|
});
|
|
225
258
|
const newDescriptor = Object.getOwnPropertyDescriptor(target, _propertyKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_networking_auto.js","sourceRoot":"","sources":["../../../src/engine/engine_networking_auto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAExC,MAAM,uBAAuB;IACjB,QAAQ,GAAiD,EAAE,CAAC;IAEpE,iBAAiB,CAAC,IAAe;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC;QACnD,
|
|
1
|
+
{"version":3,"file":"engine_networking_auto.js","sourceRoot":"","sources":["../../../src/engine/engine_networking_auto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare type FieldPatch = (instance: object, oldValue: any, newValue: any) => any;
|
|
2
|
+
export type MethodPatch<T> = (instance: T, result: any, ...args: any[]) => any;
|
|
3
|
+
/**
|
|
4
|
+
* Use patcher for patching properties insteadof calling Object.defineProperty individually
|
|
5
|
+
* since this will cause conflicts if multiple patches need to be applied to the same property
|
|
6
|
+
*/
|
|
7
|
+
export declare function addPatch<TType extends object, TCallback extends (FieldPatch | MethodPatch<any>)>(prototype: TType, fieldName: string, cb: TCallback): void;
|
|
8
|
+
export declare function removePatch(prototype: object, fieldName: string, cb: Function): void;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn
|
|
2
|
+
const _wrappedMethods = new WeakSet();
|
|
3
|
+
/**
|
|
4
|
+
* Use patcher for patching properties insteadof calling Object.defineProperty individually
|
|
5
|
+
* since this will cause conflicts if multiple patches need to be applied to the same property
|
|
6
|
+
*/
|
|
7
|
+
export function addPatch(prototype, fieldName, cb) {
|
|
8
|
+
// TODO: we probably want to turn this into a symbol to prevent anyone from overriding it
|
|
9
|
+
// But when we need to store the symbol per prototype to allow e.g. material disposing to iterate those and dispose all
|
|
10
|
+
const backingField = fieldName + "__needle"; // Symbol(fieldName);// + " (patched)";
|
|
11
|
+
internalAddPatch(prototype, fieldName, cb);
|
|
12
|
+
const desc = Object.getOwnPropertyDescriptor(prototype, fieldName);
|
|
13
|
+
if (desc) {
|
|
14
|
+
// TODO: check if the property is writable
|
|
15
|
+
// the property might be a method in which case we want to wrap it
|
|
16
|
+
if (typeof desc.value === "function") {
|
|
17
|
+
const method = desc.value;
|
|
18
|
+
if (method) {
|
|
19
|
+
if (_wrappedMethods.has(method)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
_wrappedMethods.add(method);
|
|
23
|
+
prototype[fieldName] = function (...args) {
|
|
24
|
+
// call the original method
|
|
25
|
+
const result = method.apply(this, args);
|
|
26
|
+
// call the patches
|
|
27
|
+
const patches = getPatches(prototype, fieldName);
|
|
28
|
+
if (patches) {
|
|
29
|
+
for (const patch of patches) {
|
|
30
|
+
patch(this, result, ...args);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// TODO: declare method?
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else if (prototype.hasOwnProperty(backingField)) {
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
Object.defineProperty(prototype, fieldName, {
|
|
45
|
+
set: function (value) {
|
|
46
|
+
const prev = this[backingField];
|
|
47
|
+
this[backingField] = value;
|
|
48
|
+
executePatches(prototype, fieldName, this, prev, value);
|
|
49
|
+
},
|
|
50
|
+
get: function () {
|
|
51
|
+
return this[backingField];
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export function removePatch(prototype, fieldName, cb) {
|
|
57
|
+
const patches = getPatches(prototype, fieldName);
|
|
58
|
+
if (patches) {
|
|
59
|
+
for (let i = patches.length - 1; i >= 0; i--) {
|
|
60
|
+
if (patches[i] === cb) {
|
|
61
|
+
patches.splice(i, 1);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const patches = new WeakMap();
|
|
67
|
+
function getPatches(prototype, fieldName) {
|
|
68
|
+
let patchesMap = patches.get(prototype);
|
|
69
|
+
if (!patchesMap) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
return patchesMap.get(fieldName);
|
|
73
|
+
;
|
|
74
|
+
}
|
|
75
|
+
function internalAddPatch(prototype, fieldName, cb) {
|
|
76
|
+
let patchesMap = patches.get(prototype);
|
|
77
|
+
if (!patchesMap) {
|
|
78
|
+
patchesMap = new Map();
|
|
79
|
+
patches.set(prototype, patchesMap);
|
|
80
|
+
}
|
|
81
|
+
let patchList = patchesMap.get(fieldName);
|
|
82
|
+
if (!patchList) {
|
|
83
|
+
patchList = [];
|
|
84
|
+
patchesMap.set(fieldName, patchList);
|
|
85
|
+
}
|
|
86
|
+
patchList.push(cb);
|
|
87
|
+
}
|
|
88
|
+
function executePatches(prototype, fieldName, instance, oldValue, newValue) {
|
|
89
|
+
if (!instance)
|
|
90
|
+
return;
|
|
91
|
+
const patches = getPatches(prototype, fieldName);
|
|
92
|
+
if (patches) {
|
|
93
|
+
for (const patch of patches) {
|
|
94
|
+
patch(instance, oldValue, newValue);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=engine_patcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine_patcher.js","sourceRoot":"","sources":["../../../src/engine/engine_patcher.ts"],"names":[],"mappings":"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"}
|