babylonjs-editor-tools 5.2.0 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/build/index.node.js +1 -1
  2. package/build/src/cinematic/cinematic.js +21 -0
  3. package/build/src/cinematic/cinematic.js.map +1 -0
  4. package/build/src/cinematic/events/event.js +4 -0
  5. package/build/src/cinematic/events/event.js.map +1 -0
  6. package/build/src/cinematic/generate.js +65 -12
  7. package/build/src/cinematic/generate.js.map +1 -1
  8. package/build/src/cinematic/parse.js +34 -32
  9. package/build/src/cinematic/parse.js.map +1 -1
  10. package/build/src/cinematic/tools.js +20 -0
  11. package/build/src/cinematic/tools.js.map +1 -1
  12. package/build/src/index.js +1 -0
  13. package/build/src/index.js.map +1 -1
  14. package/build/src/loading/loader.js +12 -5
  15. package/build/src/loading/loader.js.map +1 -1
  16. package/build/src/loading/shadows.js +26 -16
  17. package/build/src/loading/shadows.js.map +1 -1
  18. package/build/src/loading/sound.js +17 -10
  19. package/build/src/loading/sound.js.map +1 -1
  20. package/build/src/loading/sprite-manager.js +41 -34
  21. package/build/src/loading/sprite-manager.js.map +1 -1
  22. package/build/src/loading/sprite-map.js +46 -39
  23. package/build/src/loading/sprite-map.js.map +1 -1
  24. package/build/src/loading/texture.js +51 -46
  25. package/build/src/loading/texture.js.map +1 -1
  26. package/declaration/src/cinematic/cinematic.d.ts +14 -0
  27. package/declaration/src/cinematic/events/event.d.ts +5 -0
  28. package/declaration/src/cinematic/generate.d.ts +2 -2
  29. package/declaration/src/cinematic/parse.d.ts +2 -1
  30. package/declaration/src/cinematic/tools.d.ts +3 -0
  31. package/declaration/src/cinematic/typings.d.ts +2 -0
  32. package/declaration/src/index.d.ts +1 -0
  33. package/declaration/src/loading/loader.d.ts +12 -7
  34. package/declaration/src/loading/shadows.d.ts +1 -1
  35. package/declaration/src/loading/sound.d.ts +1 -1
  36. package/declaration/src/loading/sprite-manager.d.ts +1 -1
  37. package/declaration/src/loading/sprite-map.d.ts +1 -1
  38. package/declaration/src/loading/texture.d.ts +1 -1
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- var Q=Object.defineProperty;var Bt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Kt=Object.prototype.hasOwnProperty;var i=(e,n)=>Q(e,"name",{value:n,configurable:!0});var kt=(e,n)=>{for(var t in n)Q(e,t,{get:n[t],enumerable:!0})},zt=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Gt(n))!Kt.call(e,r)&&r!==t&&Q(e,r,{get:()=>n[r],enumerable:!(o=Bt(n,r))||o.enumerable});return e};var $t=e=>zt(Q({},"__esModule",{value:!0}),e);var Wr={};kt(Wr,{_applyScriptsForObject:()=>w,_preloadScriptsAssets:()=>Fe,_registerScriptInstance:()=>gt,_removeRegisteredScriptInstance:()=>dt,animationFromSprite:()=>Lr,animationGroupFromScene:()=>br,applyScriptOnObject:()=>lr,configureEngineToUseCompressedTextures:()=>yr,configureShadowMapRefreshRate:()=>ge,configureShadowMapRenderListPredicate:()=>fe,createDefaultRenderingPipeline:()=>it,createMotionBlurPostProcess:()=>et,createSSAO2RenderingPipeline:()=>Ze,createSSRRenderingPipeline:()=>Qe,createVLSPostProcess:()=>je,defaultPipelineCameraConfigurations:()=>K,disposeDefaultRenderingPipeline:()=>Oe,disposeMotionBlurPostProcess:()=>Ee,disposeSSAO2RenderingPipeline:()=>Ie,disposeSSRRenderingPipeline:()=>he,disposeVLSPostProcess:()=>de,forceCompileAllSceneMaterials:()=>dr,generateCinematicAnimationGroup:()=>Gr,getAllScriptsByClassForObject:()=>yt,getAnimationTypeForObject:()=>H,getDefaultRenderingPipeline:()=>Y,getMotionBlurPostProcess:()=>xe,getPowerOfTwoUntil:()=>x,getSSAO2RenderingPipeline:()=>or,getSSRRenderingPipeline:()=>rr,getScriptByClassForObject:()=>cr,getVLSPostProcess:()=>er,guiFromAsset:()=>Pr,isAbstractMesh:()=>J,isAnyParticleSystem:()=>pe,isArcRotateCamera:()=>Ut,isBone:()=>Yt,isCamera:()=>X,isCinematicGroup:()=>$r,isCinematicKey:()=>Kr,isCinematicKeyCut:()=>kr,isCinematicKeyEvent:()=>zr,isCinematicSound:()=>Yr,isDirectionalLight:()=>qt,isFreeCamera:()=>Ht,isGPUParticleSystem:()=>Xt,isGroundMesh:()=>Wt,isHemisphericLight:()=>Jt,isInstancedMesh:()=>$,isLight:()=>ze,isMesh:()=>M,isNode:()=>V,isParticleSystem:()=>Zt,isPointLight:()=>jt,isScene:()=>me,isSpotLight:()=>Qt,isSprite:()=>ue,isTexture:()=>ce,isTransformNode:()=>Z,loadMaterialFromFile:()=>gr,loadScene:()=>fr,motionBlurPostProcessCameraConfigurations:()=>G,nodeFromDescendants:()=>hr,nodeFromScene:()=>Sr,normalizeAtlasJson:()=>Le,onKeyboardEvent:()=>Vr,onPointerEvent:()=>Nr,parseCinematic:()=>Br,parseCinematicKeyValue:()=>E,parseDefaultRenderingPipeline:()=>Re,parseMotionBlurPostProcess:()=>Te,parseSSAO2RenderingPipeline:()=>Ae,parseSSRRenderingPipeline:()=>Pe,parseVLSPostProcess:()=>Se,particleSystemFromScene:()=>Cr,playSpriteAnimationFromName:()=>ur,scriptAssetsCache:()=>N,scriptsDictionary:()=>R,serializeDefaultRenderingPipeline:()=>Me,serializeMotionBlurPostProcess:()=>De,serializeSSAO2RenderingPipeline:()=>Ce,serializeSSRRenderingPipeline:()=>be,serializeVLSPostProcess:()=>ye,setDefaultRenderingPipelineRef:()=>ar,setMotionBlurPostProcessRef:()=>sr,setSSAO2RenderingPipelineRef:()=>ir,setSSRRenderingPipelineRef:()=>nr,setVLSPostProcessRef:()=>tr,soundFromScene:()=>Ir,spriteFromSpriteManager:()=>_r,ssaoRenderingPipelineCameraConfigurations:()=>B,ssrRenderingPipelineCameraConfigurations:()=>L,visibleAsAsset:()=>Fr,visibleAsBoolean:()=>Ar,visibleAsColor3:()=>vr,visibleAsColor4:()=>Or,visibleAsEntity:()=>Mr,visibleAsKeyMap:()=>wr,visibleAsNumber:()=>Er,visibleAsString:()=>xr,visibleAsTexture:()=>Rr,visibleAsVector2:()=>Dr,visibleAsVector3:()=>Tr,vlsPostProcessCameraConfigurations:()=>_});module.exports=$t(Wr);function J(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(J,"isAbstractMesh");function M(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(M,"isMesh");function $(e){return e.getClassName?.()==="InstancedMesh"}i($,"isInstancedMesh");function Yt(e){return e.getClassName?.()==="Bone"}i(Yt,"isBone");function Wt(e){return e.getClassName?.()==="GroundMesh"}i(Wt,"isGroundMesh");function Z(e){return e.getClassName?.()==="TransformNode"}i(Z,"isTransformNode");function ce(e){return e?.getClassName?.()==="Texture"}i(ce,"isTexture");function X(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(X,"isCamera");function Ht(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(Ht,"isFreeCamera");function Ut(e){return e.getClassName?.()==="ArcRotateCamera"}i(Ut,"isArcRotateCamera");function jt(e){return e.getClassName?.()==="PointLight"}i(jt,"isPointLight");function qt(e){return e.getClassName?.()==="DirectionalLight"}i(qt,"isDirectionalLight");function Qt(e){return e.getClassName?.()==="SpotLight"}i(Qt,"isSpotLight");function Jt(e){return e.getClassName?.()==="HemisphericLight"}i(Jt,"isHemisphericLight");function ze(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(ze,"isLight");function V(e){return J(e)||Z(e)||ze(e)||X(e)}i(V,"isNode");function me(e){return e.getClassName?.()==="Scene"}i(me,"isScene");function Zt(e){return e.getClassName?.()==="ParticleSystem"}i(Zt,"isParticleSystem");function Xt(e){return e.getClassName?.()==="GPUParticleSystem"}i(Xt,"isGPUParticleSystem");function pe(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(pe,"isAnyParticleSystem");function ue(e){return e.getClassName?.()==="Sprite"}i(ue,"isSprite");var $e=require("babylonjs"),Ye=require("babylonjs");function fe(e){e.lights.forEach(n=>{let t=n.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=o=>$e.Vector3.Distance(o.getAbsolutePosition(),n.getAbsolutePosition())<=n.range)})}i(fe,"configureShadowMapRenderListPredicate");async function ge(e){e.executeWhenReady(()=>{e.lights.forEach(n=>{let t=n.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=n.metadata?.refreshRate??Ye.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(ge,"configureShadowMapRefreshRate");var We=require("babylonjs"),He=require("babylonjs"),Ue=require("babylonjs"),I=null,_=new Map;function er(){return I}i(er,"getVLSPostProcess");function tr(e){I=e}i(tr,"setVLSPostProcessRef");function de(e){I&&e.activeCamera&&(I.dispose(e.activeCamera),I=null)}i(de,"disposeVLSPostProcess");function je(e,n){return n??=e.meshes.find(t=>M(t)),I=new Ue.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,n,100,He.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),I}i(je,"createVLSPostProcess");function ye(){return I?{meshId:I.mesh?.id,exposure:I.exposure,decay:I.decay,weight:I.weight,density:I.density,invert:I.invert,useCustomMeshPosition:I.useCustomMeshPosition,customMeshPosition:I.customMeshPosition.asArray()}:null}i(ye,"serializeVLSPostProcess");function Se(e,n){let t=null;if(n.meshId){let r=e.getMeshById(n.meshId);r&&M(r)&&(t=r)}let o=je(e,t);return o.exposure=n.exposure,o.decay=n.decay,o.weight=n.weight,o.density=n.density,o.invert=n.invert,o.useCustomMeshPosition=n.useCustomMeshPosition,o.customMeshPosition.copyFrom(We.Vector3.FromArray(n.customMeshPosition)),o}i(Se,"parseVLSPostProcess");var qe=require("babylonjs"),S=null,L=new Map;function rr(){return S}i(rr,"getSSRRenderingPipeline");function nr(e){S=e}i(nr,"setSSRRenderingPipelineRef");function he(){S&&(S.dispose(),S=null)}i(he,"disposeSSRRenderingPipeline");function Qe(e,n){return S=new qe.SSRRenderingPipeline("SSRRenderingPipeline",e,[n]),S.samples=4,S}i(Qe,"createSSRRenderingPipeline");function be(){return S?{samples:S.samples,step:S.step,thickness:S.thickness,strength:S.strength,reflectionSpecularFalloffExponent:S.reflectionSpecularFalloffExponent,maxSteps:S.maxSteps,maxDistance:S.maxDistance,roughnessFactor:S.roughnessFactor,reflectivityThreshold:S.reflectivityThreshold,blurDispersionStrehgth:S.blurDispersionStrength,clipToFrustum:S.clipToFrustum,enableSmoothReflections:S.enableSmoothReflections,enableAutomaticThicknessComputation:S.enableAutomaticThicknessComputation,attenuateFacingCamera:S.attenuateFacingCamera,attenuateScreenBorders:S.attenuateScreenBorders,attenuateIntersectionDistance:S.attenuateIntersectionDistance,attenuateBackfaceReflection:S.attenuateBackfaceReflection,blurDownsample:S.blurDownsample,selfCollisionNumSkip:S.selfCollisionNumSkip,ssrDownsample:S.ssrDownsample,backfaceDepthTextureDownsample:S.backfaceDepthTextureDownsample}:null}i(be,"serializeSSRRenderingPipeline");function Pe(e,n,t){if(S)return S;let o=Qe(e,n);return o.samples=t.samples,o.step=t.step,o.thickness=t.thickness,o.strength=t.strength,o.reflectionSpecularFalloffExponent=t.reflectionSpecularFalloffExponent,o.maxSteps=t.maxSteps,o.maxDistance=t.maxDistance,o.roughnessFactor=t.roughnessFactor,o.reflectivityThreshold=t.reflectivityThreshold,o.blurDispersionStrength=t.blurDispersionStrehgth,o.clipToFrustum=t.clipToFrustum,o.enableSmoothReflections=t.enableSmoothReflections,o.enableAutomaticThicknessComputation=t.enableAutomaticThicknessComputation,o.attenuateFacingCamera=t.attenuateFacingCamera,o.attenuateScreenBorders=t.attenuateScreenBorders,o.attenuateIntersectionDistance=t.attenuateIntersectionDistance,o.attenuateBackfaceReflection=t.attenuateBackfaceReflection,o.blurDownsample=t.blurDownsample,o.selfCollisionNumSkip=t.selfCollisionNumSkip,o.ssrDownsample=t.ssrDownsample,o.backfaceDepthTextureDownsample=t.backfaceDepthTextureDownsample,o}i(Pe,"parseSSRRenderingPipeline");var Je=require("babylonjs"),b=null,B=new Map;function or(){return b}i(or,"getSSAO2RenderingPipeline");function ir(e){b=e}i(ir,"setSSAO2RenderingPipelineRef");function Ie(){b&&(b.dispose(),b=null)}i(Ie,"disposeSSAO2RenderingPipeline");function Ze(e,n){return b=new Je.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[n]),b.samples=4,b}i(Ze,"createSSAO2RenderingPipeline");function Ce(){return b?{radius:b.radius,totalStrength:b.totalStrength,samples:b.samples,maxZ:b.maxZ,minZAspect:b.minZAspect,epsilon:b.epsilon,textureSamples:b.textureSamples,bypassBlur:b.bypassBlur,bilateralSamples:b.bilateralSamples,bilateralSoften:b.bilateralSoften,bilateralTolerance:b.bilateralTolerance,expensiveBlur:b.expensiveBlur}:null}i(Ce,"serializeSSAO2RenderingPipeline");function Ae(e,n,t){if(b)return b;let o=Ze(e,n);return o.radius=t.radius,o.totalStrength=t.totalStrength,o.samples=t.samples,o.maxZ=t.maxZ,o.minZAspect=t.minZAspect,o.epsilon=t.epsilon,o.textureSamples=t.textureSamples,o.bypassBlur=t.bypassBlur,o.bilateralSamples=t.bilateralSamples,o.bilateralSoften=t.bilateralSoften,o.bilateralTolerance=t.bilateralTolerance,o.expensiveBlur=t.expensiveBlur,o}i(Ae,"parseSSAO2RenderingPipeline");var Xe=require("babylonjs"),C=null,G=new Map;function xe(){return C}i(xe,"getMotionBlurPostProcess");function sr(e){C=e}i(sr,"setMotionBlurPostProcessRef");function Ee(){C&&(C.dispose(),C=null)}i(Ee,"disposeMotionBlurPostProcess");function et(e,n){return C=new Xe.MotionBlurPostProcess("MotionBlurPostProcess",e,1,n),C.motionStrength=1,C.isObjectBased=!0,C}i(et,"createMotionBlurPostProcess");function De(){return C?{isObjectBased:C.isObjectBased,motionStrength:C.motionStrength,motionBlurSamples:C.motionBlurSamples}:null}i(De,"serializeMotionBlurPostProcess");function Te(e,n,t){if(C)return C;let o=et(e,n);return o.isObjectBased=t.isObjectBased,o.motionStrength=t.motionStrength,o.motionBlurSamples=t.motionBlurSamples,o}i(Te,"parseMotionBlurPostProcess");var tt=require("babylonjs"),ve=require("babylonjs"),rt=require("babylonjs"),nt=require("babylonjs"),ot=require("babylonjs"),c=null,K=new Map;function Y(){return c}i(Y,"getDefaultRenderingPipeline");function ar(e){c=e}i(ar,"setDefaultRenderingPipelineRef");function Oe(){c&&(c.dispose(),c=null)}i(Oe,"disposeDefaultRenderingPipeline");function it(e,n){return c=new ot.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[n]),c.samples=4,c.depthOfField.lensSize=512,c.depthOfField.fStop=.25,c.depthOfField.focusDistance=55e3,c}i(it,"createDefaultRenderingPipeline");function Me(){return c?{samples:c.samples,fxaaEnabled:c.fxaaEnabled,imageProcessingEnabled:c.imageProcessingEnabled,exposure:c.imageProcessing?.exposure,contrast:c.imageProcessing?.contrast,fromLinearSpace:c.imageProcessing?.fromLinearSpace,toneMappingEnabled:c.imageProcessing?.toneMappingEnabled,toneMappingType:c.imageProcessing?.toneMappingType,ditheringEnabled:c.imageProcessing?.ditheringEnabled,ditheringIntensity:c.imageProcessing?.ditheringIntensity,bloomEnabled:c.bloomEnabled,bloomThreshold:c.bloomThreshold,bloomWeight:c.bloomWeight,bloomScale:c.bloomScale,bloomKernel:c.bloomKernel,sharpenEnabled:c.sharpenEnabled,sharpenEdgeAmount:c.sharpen.edgeAmount,sharpenColorAmount:c.sharpen.colorAmount,grainEnabled:c.grainEnabled,grainIntensity:c.grain.intensity,grainAnimated:c.grain.animated,depthOfFieldEnabled:c.depthOfFieldEnabled,depthOfFieldBlurLevel:c.depthOfFieldBlurLevel,lensSize:c.depthOfField.lensSize,fStop:c.depthOfField.fStop,focusDistance:c.depthOfField.focusDistance,focalLength:c.depthOfField.focalLength,vignetteEnabled:c.imageProcessing?.vignetteEnabled,vignetteColor:c.imageProcessing?.vignetteColor.asArray(),vignetteWeight:c.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:c.chromaticAberrationEnabled,aberrationAmount:c.chromaticAberration.aberrationAmount,radialIntensity:c.chromaticAberration.radialIntensity,direction:c.chromaticAberration.direction.asArray(),centerPosition:c.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:c.glowLayerEnabled,glowLayerIntensity:c.glowLayer?.intensity,glowLayerBlurKernelSize:c.glowLayer?.blurKernelSize,colorGradingEnabled:c.imageProcessing.colorGradingEnabled,colorGradingTexture:c.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:c.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:c.imageProcessing.colorCurvesEnabled,globalHue:c.imageProcessing.colorCurves?.globalHue,globalDensity:c.imageProcessing.colorCurves?.globalDensity,globalExposure:c.imageProcessing.colorCurves?.globalExposure,globalSaturation:c.imageProcessing.colorCurves?.globalSaturation,highlightsHue:c.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:c.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:c.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:c.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:c.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:c.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:c.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:c.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:c.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:c.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:c.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:c.imageProcessing.colorCurves?.shadowsSaturation}:null}i(Me,"serializeDefaultRenderingPipeline");function Re(e,n,t,o){if(c)return c;let r=it(e,n);if(r.samples=t.samples,r.fxaaEnabled=t.fxaaEnabled,r.imageProcessingEnabled=t.imageProcessingEnabled,r.imageProcessing){if(r.imageProcessing.exposure=t.exposure,r.imageProcessing.contrast=t.contrast,r.imageProcessing.fromLinearSpace=t.fromLinearSpace,r.imageProcessing.toneMappingEnabled=t.toneMappingEnabled,r.imageProcessing.toneMappingType=t.toneMappingType,r.imageProcessing.ditheringEnabled=t.ditheringEnabled,r.imageProcessing.ditheringIntensity=t.ditheringIntensity,r.imageProcessing.vignetteEnabled=t.vignetteEnabled??!1,r.imageProcessing.vignetteColor=tt.Color4.FromArray(t.vignetteColor??[0,0,0]),r.imageProcessing.vignetteWeight=t.vignetteWeight??.3,r.imageProcessing.colorGradingEnabled=t.colorGradingEnabled??!1,r.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=t.colorGradingWithGreenDepth??!0,t.colorGradingTexture){let a=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let s=o+t.colorGradingTexture.name;a=new nt.ColorGradingTexture(s,e),a.level=t.colorGradingTexture.level}else{let s=rt.Texture.Parse(t.colorGradingTexture,e,o);ce(s)&&(a=s)}r.imageProcessing.colorGradingTexture=a}r.imageProcessing.colorCurvesEnabled=t.colorCurvesEnabled??!1,r.imageProcessing.colorCurves&&(r.imageProcessing.colorCurves.globalHue=t.globalHue??30,r.imageProcessing.colorCurves.globalDensity=t.globalDensity??0,r.imageProcessing.colorCurves.globalExposure=t.globalExposure??0,r.imageProcessing.colorCurves.globalSaturation=t.globalSaturation??0,r.imageProcessing.colorCurves.highlightsHue=t.highlightsHue??30,r.imageProcessing.colorCurves.highlightsDensity=t.highlightsDensity??0,r.imageProcessing.colorCurves.highlightsExposure=t.highlightsExposure??0,r.imageProcessing.colorCurves.highlightsSaturation=t.highlightsSaturation??0,r.imageProcessing.colorCurves.midtonesHue=t.midtonesHue??30,r.imageProcessing.colorCurves.midtonesDensity=t.midtonesDensity??0,r.imageProcessing.colorCurves.midtonesExposure=t.midtonesExposure??0,r.imageProcessing.colorCurves.midtonesSaturation=t.midtonesSaturation??0,r.imageProcessing.colorCurves.shadowsHue=t.shadowsHue??30,r.imageProcessing.colorCurves.shadowsDensity=t.shadowsDensity??0,r.imageProcessing.colorCurves.shadowsExposure=t.shadowsExposure??0,r.imageProcessing.colorCurves.shadowsSaturation=t.shadowsSaturation??0)}return r.bloomEnabled=t.bloomEnabled,r.bloomThreshold=t.bloomThreshold,r.bloomWeight=t.bloomWeight,r.bloomScale=t.bloomScale,r.bloomKernel=t.bloomKernel,r.sharpenEnabled=t.sharpenEnabled,r.sharpen.edgeAmount=t.sharpenEdgeAmount,r.sharpen.colorAmount=t.sharpenColorAmount,r.grainEnabled=t.grainEnabled,r.grain.intensity=t.grainIntensity,r.grain.animated=t.grainAnimated,r.depthOfFieldEnabled=t.depthOfFieldEnabled,r.depthOfFieldBlurLevel=t.depthOfFieldBlurLevel,r.depthOfField.lensSize=t.lensSize,r.depthOfField.fStop=t.fStop,r.depthOfField.focusDistance=t.focusDistance,r.depthOfField.focalLength=t.focalLength,r.chromaticAberrationEnabled=t.chromaticAberrationEnabled??!1,r.chromaticAberration.aberrationAmount=t.aberrationAmount??10,r.chromaticAberration.radialIntensity=t.radialIntensity??1,r.chromaticAberration.direction=ve.Vector2.FromArray(t.direction??[0,0]),r.chromaticAberration.centerPosition=ve.Vector2.FromArray(t.centerPosition??[0,0]),r.glowLayerEnabled=t.glowLayerEnabled??!1,r.glowLayer&&(r.glowLayer.intensity=t.glowLayerIntensity??1,r.glowLayer.blurKernelSize=t.glowLayerBlurKernelSize??32),r}i(Re,"parseDefaultRenderingPipeline");function vo(e){B.set(e,Ce()),_.set(e,ye()),L.set(e,be()),G.set(e,De()),K.set(e,Me())}i(vo,"saveRenderingConfigurationForCamera");function st(e,n){Ie(),de(e.getScene()),he(),Ee(),Oe();let t=B.get(e);t&&Ae(e.getScene(),e,t);let o=_.get(e);o&&Se(e.getScene(),o);let r=L.get(e);r&&Pe(e.getScene(),e,r);let a=G.get(e);a&&Te(e.getScene(),e,a);let s=K.get(e);s&&Re(e.getScene(),e,s,n)}i(st,"applyRenderingConfigurationForCamera");var W=require("babylonjs"),at=require("babylonjs");function lt(e){let n=e.metadata?.physicsAggregate;if(!n)return;let t;M(e)?t=e:$(e)&&(t=e.sourceMesh);let o=new at.PhysicsAggregate(e,n.shape.type,{mesh:t,mass:n.massProperties.mass});o.body.setMassProperties({mass:n.massProperties.mass,inertia:n.massProperties.inertia?W.Vector3.FromArray(n.massProperties.inertia):void 0,centerOfMass:n.massProperties.centerOfMass?W.Vector3.FromArray(n.massProperties.centerOfMass):void 0,inertiaOrientation:n.massProperties.inertiaOrientation?W.Quaternion.FromArray(n.massProperties.inertiaOrientation):void 0}),o.shape.density=n.shape.density,o.body.setMotionType(n.body.motionType),o.shape.material=n.material,e.physicsAggregate=o,e.metadata.physicsAggregate=void 0}i(lt,"configurePhysicsAggregate");function ct(e,n){(Array.isArray(n)?n:[]).forEach(o=>{let r=e.getCameraById(o.cameraId);r&&(o.ssao2RenderingPipeline&&B.set(r,o.ssao2RenderingPipeline),o.vlsPostProcess&&_.set(r,o.vlsPostProcess),o.ssrRenderingPipeline&&L.set(r,o.ssrRenderingPipeline),o.motionBlurPostProcess&&G.set(r,o.motionBlurPostProcess),o.defaultRenderingPipeline&&K.set(r,o.defaultRenderingPipeline))})}i(ct,"applyRenderingConfigurations");function ee(e,n){let t=n.soundTracks??[];t.length||t.push(n.mainSoundTrack);for(let o=0,r=t.length;o<r;o++){let a=t[o].soundCollection.find(s=>s.id===e);if(a)return a}return null}i(ee,"getSoundById");var mt=require("babylonjs"),te=require("babylonjs"),pt=require("babylonjs"),re=require("babylonjs"),ut=require("babylonjs"),ft=require("babylonjs-gui");function we(e,n,t,o,r){let a=o.constructor;if(!a)return;a._NodesFromScene?.forEach(l=>{o[l.propertyKey.toString()]=e.getNodeByName(l.nodeName)}),a._NodesFromDescendants?.forEach(l=>{let p=n.getDescendants?.(l.directDescendantsOnly,u=>u.name===l.nodeName)[0];o[l.propertyKey.toString()]=p??null}),a._AnimationGroups?.forEach(l=>{o[l.propertyKey.toString()]=e.getAnimationGroupByName(l.animationGroupName)}),a._SoundsFromScene?.forEach(l=>{let p=e.getSoundByName?.(l.soundName);o[l.propertyKey.toString()]=p??null}),(a._GuiFromAsset??[]).map(async l=>{let p=`${r}assets/${l.pathInAssets}`;try{let g=await(await fetch(p)).json(),P=ft.AdvancedDynamicTexture.CreateFullscreenUI(g.name,!0,e);P.parseSerializedObject(g.content,!1),o[l.propertyKey.toString()]=P,l.onGuiCreated?.(o,P)}catch(u){throw console.error(`Failed to load GUI from asset: ${p}`),u}}),a._ParticleSystemsFromScene?.forEach(l=>{let p=e.particleSystems?.find(u=>u.name!==l.particleSystemName?!1:l.directDescendantsOnly?u.emitter===n:u);o[l.propertyKey.toString()]=p}),(a._VisibleInInspector??[]).map(async l=>{let p=l.propertyKey.toString(),u=t.values;if(u.hasOwnProperty(p)&&u[p].hasOwnProperty("value")){let g=u[p].value;switch(l.configuration.type){case"number":case"boolean":case"keymap":case"string":o[p]=g;break;case"vector2":o[p]=re.Vector2.FromArray(g);break;case"vector3":o[p]=re.Vector3.FromArray(g);break;case"color3":o[p]=te.Color3.FromArray(g);break;case"color4":o[p]=te.Color4.FromArray(g);break;case"entity":switch(l.configuration.entityType){case"node":o[p]=e.getNodeById(g)??null;break;case"animationGroup":o[p]=e.getAnimationGroupByName(g)??null;break;case"sound":o[p]=ee(g,e);break;case"particleSystem":o[p]=e.particleSystems?.find(y=>y.id===g)??null;break}break;case"texture":g&&(o[p]=pt.Texture.Parse(g,e,r));break;case"asset":if(g){let y=l.configuration.assetType,d=N.get(g);switch(y){case"json":o[p]=d;break;case"nodeParticleSystemSet":let f=ut.NodeParticleSystemSet.Parse(d);o[p]=f;break;case"material":o[p]=mt.Material.Parse(d,e,r);break}}}}});let s=null,m=null;if(a._PointerEvents?.length){if(a._PointerEvents.find(u=>u.options.mode==="attachedMeshOnly")&&!J(n))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(a._PointerEvents.find(u=>u.options.mode!=="global")&&!V(n))throw new Error('@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.');s=e.onPointerObservable.add(u=>{let g=null;a._PointerEvents.forEach(P=>{if(!P.eventTypes.includes(u.type))return;let y=P.propertyKey.toString();if(P.options.mode==="global")return o[y]?.(u);g=u.pickInfo,g||(g=e.pick(e.pointerX,e.pointerY,f=>f.isVisible&&f.isPickable&&f.isEnabled(!0)&&!f._masterMesh,!1));let d=g.pickedMesh;if(d&&(P.options.mode==="attachedMeshOnly"&&d===n||P.options.mode==="includeDescendants"&&V(n)&&[n,...n.getDescendants(!1)].find(A=>A===d)))return o[y]?.(u)})})}if(a._KeyboardEvents?.length&&(m=e.onKeyboardObservable.add(l=>{a._KeyboardEvents.forEach(p=>{p.eventTypes.includes(l.type)&&o[p.propertyKey.toString()]?.(l)})})),a._SpritesFromSpriteManager?.length){let l=n;if(!Z(l)||!l.isSpriteManager)return console.error("@spriteFromSpriteManager decorator can only be used on SpriteManagerNode.");if(!l.spriteManager)return console.error(`SpriteManagerNode "${l.name}" has no sprite manager assigned.`);a._SpritesFromSpriteManager?.forEach(p=>{let u=l.spriteManager?.sprites.find(g=>g.name===p.spriteName)||null;o[p.propertyKey.toString()]=u})}if(a._AnimationsFromSprite?.length){if(!ue(n))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let l=n.metadata?.spriteAnimations;if(!l?.length)return console.error(`Sprite "${n.name}" has no sprite animations assigned.`);a._AnimationsFromSprite.forEach(p=>{let u=l.find(g=>g.name===p.animationName);u?o[p.propertyKey.toString()]=u??null:console.warn(`Sprite animation named "${p.animationName}" not found on sprite "${n.name}".`)})}return{observers:{pointerObserver:s,keyboardObserver:m}}}i(we,"applyDecorators");var N=new Map;async function Fe(e,n){[e,...e.transformNodes,...e.meshes,...e.lights,...e.cameras].filter(a=>a.metadata?.scripts?.length).map(a=>a.metadata.scripts).flat().forEach(a=>{for(let s in a.values){if(!a.values.hasOwnProperty(s))continue;let m=a.values[s];m.type==="asset"&&m.value&&N.set(m.value,null)}});let r=[];N.forEach((a,s)=>{N.get(s)||r.push(new Promise(async m=>{try{let p=await(await fetch(`${n}${s}`)).json();N.set(s,p)}catch(l){console.error(l)}m()}))}),await Promise.all(r)}i(Fe,"_preloadScriptsAssets");function w(e,n,t,o){n.metadata?.scripts&&(n.metadata.scripts?.forEach(async r=>{if(!r.enabled)return;let a=t[r.key];if(!a)return;let s=a,m={};if(a.default){s=new a.default(n);let l=we(e,n,r,s,o);Object.assign(m,l?.observers??{})}s.onStart&&(m.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>s.onStart(n))),s.onUpdate&&(m.onUpdateObserver=e.onBeforeRenderObservable.add(()=>s.onUpdate(n))),gt(n,s,r.key,m)}),n.metadata.scripts=void 0)}i(w,"_applyScriptsForObject");function lr(e,n,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let o=new n(e);return we(t,e,{values:{}},o,""),o.onStart&&t.onBeforeRenderObservable.addOnce(()=>o.onStart()),o.onUpdate&&t.onBeforeRenderObservable.add(()=>o.onUpdate()),o}i(lr,"applyScriptOnObject");var R=new Map;function gt(e,n,t,o){let r={key:t,observers:o,instance:n};R.has(e)?R.get(e).push(r):R.set(e,[r]),(V(e)||pe(e)||me(e))&&e.onDisposeObservable.addOnce(()=>{R.get(e)?.forEach(a=>{dt(e,a)}),R.delete(e)})}i(gt,"_registerScriptInstance");function dt(e,n){n.observers.onStartObserver?.remove(),n.observers.onUpdateObserver?.remove(),n.observers.pointerObserver?.remove(),n.observers.keyboardObserver?.remove();try{n.instance.onStop?.(e)}catch(r){console.error(`Failed to call onStop for script ${n.key} on object ${e}`,r)}let t=R.get(e),o=t?.indexOf(n)??-1;o!==-1&&t?.splice(o,1)}i(dt,"_removeRegisteredScriptInstance");function yt(e,n){return R.get(e)?.filter(r=>r.instance.constructor===n)?.map(r=>r.instance)??null}i(yt,"getAllScriptsByClassForObject");function cr(e,n){return yt(e,n)?.[0]??null}i(cr,"getScriptByClassForObject");var Ne=require("babylonjs"),ne=require("babylonjs"),mr=(0,ne.GetParser)(Ne.SceneComponentConstants.NAME_AUDIO);(0,ne.AddParser)(Ne.SceneComponentConstants.NAME_AUDIO,(e,n,t,o)=>{mr?.(e,n,t,o),e.sounds?.forEach(r=>{let a=t.sounds?.find(s=>s.name===r.name);a&&(a.id=r.id,a.uniqueId=r.uniqueId)})});function x(e){let n=1;for(;n<=e;)n<<=1;return n>>1}i(x,"getPowerOfTwoUntil");var Ve=require("babylonjs"),oe=Ve.SerializationHelper._TextureParser;Ve.SerializationHelper._TextureParser=(e,n,t)=>{if(n.loadingQuality==="high"||!e.metadata?.baseSize)return oe(e,n,t);let o=e.metadata.baseSize.width,r=e.metadata.baseSize.height,a=o===x(o)||r===x(r),s="";switch(n.loadingQuality){case"medium":let y=o*.66>>0,d=r*.66>>0;a&&(y=x(y),d=x(d)),s=`_${y}_${d}`;break;case"low":let f=o*.33>>0,h=r*.33>>0;a&&(f=x(f),h=x(h)),s=`_${f}_${h}`;break}let m=e.name;if(!m||!s)return oe(e,n,t);let l=m.split("/"),p=l.pop();if(!p)return oe(e,n,t);let u=p.split(".").pop(),P=`${p.replace(`.${u}`,"")}${s}.${u}`;return l.push(P),e.name=l.join("/"),oe(e,n,t)};var _e=require("babylonjs"),ie=require("babylonjs"),pr=(0,ie.GetParser)(_e.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,ie.AddParser)(_e.SceneComponentConstants.NAME_SHADOWGENERATOR,(e,n,t,o)=>{n.loadingQuality!=="high"&&e.shadowGenerators?.forEach(r=>{switch(n.loadingQuality){case"medium":r.mapSize=r.mapSize*.5;break;case"low":r.mapSize=r.mapSize*.25;break}r.mapSize=Math.max(128,x(r.mapSize))}),pr?.(e,n,t,o)});function Le(e){if(!Array.isArray(e.frames)){let n=[];for(let t of Object.keys(e.frames))n.push({filename:t,...e.frames[t]});e.frames=n}}i(Le,"normalizeAtlasJson");function ur(e,n,t){let r=(e.metadata?.spriteAnimations??[]).find(a=>a.name===n);if(!r)return console.error(`Animation with name "${n}" not found on sprite.`);e.playAnimation(r.from,r.to,r.loop,r.delay,t)}i(ur,"playSpriteAnimationFromName");var St=require("babylonjs"),ht=require("babylonjs"),bt=require("babylonjs"),Pt=require("babylonjs"),Be=require("babylonjs"),k=require("babylonjs"),It=require("babylonjs");(0,It.AddParser)("SpriteMapNode",(e,n,t,o)=>{e.transformNodes?.forEach(r=>{if(!r.isSpriteMap)return;let a=t.transformNodes?.find(l=>l.id===r.id);if(!a)return;a.isSpriteMap=r.isSpriteMap;let s=`${o}${r.atlasJsonRelativePath}`;n.addPendingData(s);let m=new bt.WebRequest;m.open("GET",s),m.send(),m.addEventListener("load",()=>{n.removePendingData(s);let l=JSON.parse(m.responseText);Le(l);let p=`${St.Tools.GetFolderPath(s)}${l.meta.image}`,u=new Be.Texture(p,n,!1,!1,Be.Texture.NEAREST_NEAREST,null,null,null,!1,ht.Engine.TEXTUREFORMAT_RGBA),g=new Pt.SpriteMap(a.name,l,u,{layerCount:r.options.layerCount,stageSize:k.Vector2.FromArray(r.options.stageSize??[10,1]),outputSize:k.Vector2.FromArray(r.options.outputSize??[100,100]),colorMultiply:k.Vector3.FromArray(r.options.colorMultiply??[1,1,1]),flipU:!0},n);r.tiles.forEach(y=>{for(let d=0,f=y.repeatCount.x+1;d<f;++d)for(let h=0,A=y.repeatCount.y+1;h<A;++h){let z=d*(y.repeatOffset.x+1),j=h*(y.repeatOffset.y+1);g.changeTiles(y.layer,new k.Vector2(y.position.x+z,(g.options.stageSize?.y??0)-1-y.position.y-j),y.tile)}});let P=g._output;P.parent=a,a.spriteMap=g})})});var At=require("babylonjs"),xt=require("babylonjs"),Et=require("babylonjs"),Ge=require("babylonjs"),Dt=require("babylonjs");function Ct(e,n){n?.fogEnabled!==void 0&&(e.fogEnabled=n?.fogEnabled),n?.blendMode!==void 0&&(e.blendMode=n?.blendMode),n?.disableDepthWrite!==void 0&&(e.disableDepthWrite=n?.disableDepthWrite),n?.pixelPerfect!==void 0&&(e.pixelPerfect=n?.pixelPerfect),n?.useLogarithmicDepth!==void 0&&(e.useLogarithmicDepth=n?.useLogarithmicDepth),n?.metadata!==void 0&&(e.metadata=n?.metadata);for(let t of n?.sprites??[]){let o=xt.Sprite.Parse(t,e);o.uniqueId=t.uniqueId,o.metadata=t.metadata}}i(Ct,"parseSerializedSpriteManager"),(0,Dt.AddParser)("SpriteManagerNode",(e,n,t,o)=>{e.transformNodes?.forEach(r=>{if(!r.isSpriteManager)return;let a=t.transformNodes?.find(s=>s.id===r.id);if(a){if(a.isSpriteManager=r.isSpriteManager,r.atlasJsonRelativePath){let s=`${o}${r.atlasJsonRelativePath}`;n.addPendingData(s);let m=new Et.WebRequest;m.open("GET",s),m.send(),m.addEventListener("load",()=>{n.removePendingData(s);let l=JSON.parse(m.responseText),p=`${At.Tools.GetFolderPath(s)}${l.meta.image}`,u=new Ge.SpriteManager(a.name,p,1e3,64,n,void 0,void 0,!0,l);a.spriteManager=u,r.spriteManager&&Ct(u,r.spriteManager)})}else if(r.spriteManager?.textureUrl){let s=`${o}${r.spriteManager.textureUrl}`,m=new Ge.SpriteManager(a.name,s,1e3,{width:r.spriteManager.cellWidth,height:r.spriteManager.cellHeight},n,void 0,void 0,!1);a.spriteManager=m,r.spriteManager&&Ct(m,r.spriteManager)}}})});var Tt=require("babylonjs"),Ke=require("babylonjs"),vt=require("babylonjs"),Ot=require("babylonjs");async function fr(e,n,t,o,r){t.loadingQuality=r?.quality??"high",await(0,vt.AppendSceneAsync)(`${e}${n}`,t,{pluginExtension:".babylon",onProgress:i(s=>{let m=Math.min(s.loaded/s.total*.5);r?.onProgress?.(m)},"onProgress")}),Ot.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(s=>M(s)&&s._checkDelayState());let a=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(m=>setTimeout(m,150));let s=a-t.getWaitingItemsCount();s===a&&t.textures.forEach(m=>{m.delayLoadState===Ke.Constants.DELAYLOADSTATE_NONE&&(m.delayLoadState=Ke.Constants.DELAYLOADSTATE_LOADED)}),r?.onProgress?.(.5+s/a*.5)}await Fe(t,e),r?.onProgress?.(1),fe(t),ge(t),t.metadata?.rendering&&(ct(t,t.metadata.rendering),t.activeCamera&&st(t.activeCamera,e)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(Tt.Vector3.FromArray(t.metadata?.physicsGravity)),w(t,t,o,e),t.transformNodes.forEach(s=>{w(t,s,o,e)}),t.meshes.forEach(s=>{lt(s),w(t,s,o,e)}),t.lights.forEach(s=>{w(t,s,o,e)}),t.cameras.forEach(s=>{w(t,s,o,e)}),t.spriteManagers?.forEach(s=>{s.sprites.forEach(m=>{w(t,m,o,e)})})}i(fr,"loadScene");var Mt=require("babylonjs");async function gr(e,n,t){let r=await(await fetch(e+n)).json(),s=Mt.Tools.Instantiate(r.customType).Parse(r,t,e);return s.id=r.id,s.uniqueId=r.uniqueId,s}i(gr,"loadMaterialFromFile");function dr(e){return Promise.all(e.materials.map(async n=>{let t=n.getBindedMeshes();await Promise.all(t.map(async o=>{$(o)||await n.forceCompilationAsync(o,{clipPlane:!!e.clipPlane,useInstances:o.hasInstances})}))}))}i(dr,"forceCompileAllSceneMaterials");function yr(e){e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(yr,"configureEngineToUseCompressedTextures");var v=require("babylonjs");function H(e){if(!isNaN(parseFloat(e))&&isFinite(e))return v.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return v.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return v.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return v.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return v.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return v.Animation.ANIMATIONTYPE_COLOR4;case"Size":return v.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return v.Animation.ANIMATIONTYPE_MATRIX}return null}i(H,"getAnimationTypeForObject");function Sr(e){return function(n,t){let o=n.constructor;o._NodesFromScene??=[],o._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(Sr,"nodeFromScene");function hr(e,n=!1){return function(t,o){let r=t.constructor;r._NodesFromDescendants??=[],r._NodesFromDescendants.push({propertyKey:o,nodeName:e,directDescendantsOnly:n})}}i(hr,"nodeFromDescendants");function br(e){return function(n,t){let o=n.constructor;o._AnimationGroups??=[],o._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(br,"animationGroupFromScene");function Pr(e,n){return function(t,o){let r=t.constructor;r._GuiFromAsset??=[],r._GuiFromAsset.push({propertyKey:o,pathInAssets:e,onGuiCreated:n})}}i(Pr,"guiFromAsset");function Ir(e){return function(n,t){let o=n.constructor;o._SoundsFromScene??=[],o._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(Ir,"soundFromScene");function Cr(e,n=!1){return function(t,o){let r=t.constructor;r._ParticleSystemsFromScene??=[],r._ParticleSystemsFromScene.push({propertyKey:o,particleSystemName:e,directDescendantsOnly:n})}}i(Cr,"particleSystemFromScene");function Ar(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"boolean"}})}}i(Ar,"visibleAsBoolean");function xr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"string"}})}}i(xr,"visibleAsString");function Er(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"number"}})}}i(Er,"visibleAsNumber");function Dr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"vector2"}})}}i(Dr,"visibleAsVector2");function Tr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"vector3"}})}}i(Tr,"visibleAsVector3");function vr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"color3"}})}}i(vr,"visibleAsColor3");function Or(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"color4"}})}}i(Or,"visibleAsColor4");function Mr(e,n,t){return function(o,r){let a=o.constructor;a._VisibleInInspector??=[],a._VisibleInInspector.push({label:n,propertyKey:r,configuration:{...t,entityType:e,type:"entity"}})}}i(Mr,"visibleAsEntity");function Rr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"texture"}})}}i(Rr,"visibleAsTexture");function wr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"keymap"}})}}i(wr,"visibleAsKeyMap");function Fr(e,n,t){return function(o,r){let a=o.constructor;a._VisibleInInspector??=[],a._VisibleInInspector.push({label:n,propertyKey:r,configuration:{...t,assetType:e,type:"asset"}})}}i(Fr,"visibleAsAsset");function Nr(e,n){return function(t,o){let r=t.constructor;r._PointerEvents??=[],r._PointerEvents.push({propertyKey:o,options:{mode:"global",...n??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(Nr,"onPointerEvent");function Vr(e){return function(n,t){let o=n.constructor;o._KeyboardEvents??=[],o._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(Vr,"onKeyboardEvent");function _r(e){return function(n,t){let o=n.constructor;o._SpritesFromSpriteManager??=[],o._SpritesFromSpriteManager.push({propertyKey:t,spriteName:e})}}i(_r,"spriteFromSpriteManager");function Lr(e){return function(n,t){let o=n.constructor;o._AnimationsFromSprite??=[],o._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(Lr,"animationFromSprite");var se=require("babylonjs");function Rt(e,n){let t;switch(e){case se.Animation.ANIMATIONTYPE_FLOAT:t=n.value;break;default:t=n.value.clone();break}return{value:t,frame:n.frame,interpolation:n.interpolation,inTangent:e===se.Animation.ANIMATIONTYPE_FLOAT?n.inTangent:n.inTangent?.clone(),outTangent:e===se.Animation.ANIMATIONTYPE_FLOAT?n.outTangent:n.outTangent?.clone()}}i(Rt,"cloneKey");function ae(e,n){let t=n.split("."),o=e;for(let r=0;r<t.length;++r)o=o[t[r]];return o}i(ae,"getPropertyValue");var F=require("babylonjs"),le=require("babylonjs"),D=require("babylonjs");function Br(e,n){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(t=>{let o=null,r=null;if(t.node?(o=n.getNodeById(t.node),o||(o=n.particleSystems?.find(s=>s.id===t.node)??null)):t.defaultRenderingPipeline&&(o=Y()),t.propertyPath){let s=ae(o,t.propertyPath);r=H(s)}let a=null;return t.sound&&(a=ee(t.sound,n)),{node:o,sound:a,propertyPath:t.propertyPath,defaultRenderingPipeline:t.defaultRenderingPipeline,animationGroup:t.animationGroup?n.getAnimationGroupByName(t.animationGroup):null,animationGroups:t.animationGroups,sounds:t.sounds,keyFrameEvents:t.keyFrameEvents?.map(s=>{let m={...s};switch(s.data?.type){case"set-enabled":m.data={type:"set-enabled",value:s.data.value,node:n.getNodeById(s.data.node)};break;case"apply-impulse":m.data={type:"apply-impulse",radius:s.data.radius,mesh:n.getMeshById(s.data.mesh),force:D.Vector3.FromArray(s.data.force),contactPoint:D.Vector3.FromArray(s.data.contactPoint)};break}return m}),keyFrameAnimations:o&&r!==null&&t.keyFrameAnimations?.map(s=>{let m=s.type==="key"?s:null;if(m)return{...m,value:E(m.value,r),inTangent:E(m.inTangent,r),outTangent:E(m.outTangent,r)};let l=s.type==="cut"?s:null;if(l)return{...l,key1:{...l.key1,value:E(l.key1.value,r),inTangent:E(l.key1.inTangent,r),outTangent:E(l.key1.outTangent,r)},key2:{...l.key2,value:E(l.key2.value,r),inTangent:E(l.key2.inTangent,r),outTangent:E(l.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${s.type}`)})}})}}i(Br,"parseCinematic");function E(e,n){if(e===null)return null;if(e!==void 0)switch(n){case F.Animation.ANIMATIONTYPE_FLOAT:return e;case F.Animation.ANIMATIONTYPE_VECTOR2:return D.Vector2.FromArray(e);case F.Animation.ANIMATIONTYPE_VECTOR3:return D.Vector3.FromArray(e);case F.Animation.ANIMATIONTYPE_QUATERNION:return D.Quaternion.FromArray(e);case F.Animation.ANIMATIONTYPE_COLOR3:return le.Color3.FromArray(e);case F.Animation.ANIMATIONTYPE_COLOR4:return le.Color4.FromArray(e);case F.Animation.ANIMATIONTYPE_MATRIX:return D.Matrix.FromArray(e)}}i(E,"parseCinematicKeyValue");function wt(e){e.node?.setEnabled(e.value)}i(wt,"handleSetEnabledEvent");var ke=require("babylonjs"),Ft=ke.Vector3.Zero();function Nt(e,n){let t=n.mesh?[n.mesh]:e.meshes.filter(o=>o.physicsAggregate);n.radius&&(t=t.filter(o=>{let r=o.getBoundingInfo().boundingBox.centerWorld;return ke.Vector3.Distance(r,n.contactPoint)<=n.radius})),t.forEach(o=>{if(o.physicsAggregate?.body){let r=n.contactPoint.subtract(o.getBoundingInfo().boundingBox.centerWorld);r.multiplyInPlace(n.force),o.physicsAggregate.body.setLinearVelocity(Ft),o.physicsAggregate.body.setAngularVelocity(Ft),o.physicsAggregate.body.applyImpulse(r.negateInPlace(),n.contactPoint)}})}i(Nt,"handleApplyImpulseEvent");var Vt=require("babylonjs"),O=require("babylonjs"),U=require("babylonjs"),_t=require("babylonjs");function Gr(e,n,t){let o=new _t.AnimationGroup(e.name,n);return e.tracks.forEach(r=>{let a=r.animationGroup;a&&r.animationGroups?.forEach(y=>{a.targetedAnimations.forEach(d=>{let f=null;e:{let T=o.targetedAnimations.filter(q=>q.target===d.target);if(T.length){let q=T.find(Lt=>Lt.animation.targetProperty===d.animation.targetProperty);if(q){f=q.animation;break e}}f=d.animation.clone(),f.setKeys([]),f.name=Vt.Tools.RandomId(),f.framePerSecond=e.framesPerSecond}let h=f.getKeys(),A=d.animation.getKeys(),z=y.speed,j=e.framesPerSecond/d.animation.framePerSecond/z;A.forEach(T=>{T.frame>=y.startFrame&&T.frame<=y.endFrame&&h.push({...Rt(d.animation.dataType,T),frame:y.frame+T.frame*j})}),f.setKeys(h),o.addTargetedAnimation(f,d.target)})});let s=r.sound,m=s?.getAudioBuffer();if(!t?.ignoreSounds&&s&&m&&r.sounds?.length){let y={dummy:0},d=new O.Animation(s.name,"dummy",60,O.Animation.ANIMATIONTYPE_FLOAT,O.Animation.ANIMATIONLOOPMODE_CYCLE,!1),f=0;r.sounds?.forEach(h=>{let A=h.endFrame-h.startFrame;f=Math.max(f,h.frame+A),d.addEvent(new U.AnimationEvent(h.frame,z=>{let T=(z-h.frame+h.startFrame)/e.framesPerSecond;s.play(0,T)},!1)),d.addEvent(new U.AnimationEvent(h.frame+A,()=>{s.stop()}))}),d.setKeys([{frame:0,value:0},{frame:f,value:f}]),o.addTargetedAnimation(d,y)}if(r.keyFrameEvents){let y={dummy:0},d=new O.Animation("events","dummy",60,O.Animation.ANIMATIONTYPE_FLOAT,O.Animation.ANIMATIONLOOPMODE_CYCLE,!1),f=0;r.keyFrameEvents?.forEach(h=>{f=Math.max(f,h.frame),d.addEvent(new U.AnimationEvent(h.frame,()=>{switch(h.data?.type){case"set-enabled":wt(h.data);break;case"apply-impulse":Nt(n,h.data);break}}))}),d.setKeys([{frame:0,value:0},{frame:f,value:f}]),o.addTargetedAnimation(d,y)}let l=r.defaultRenderingPipeline?Y():r.node;if(!l||!r.propertyPath||!r.keyFrameAnimations)return;let p=ae(l,r.propertyPath),u=H(p);if(u===null)return;let g=new O.Animation(r.propertyPath,r.propertyPath,60,u,O.Animation.ANIMATIONLOOPMODE_CYCLE,!1),P=[];r.keyFrameAnimations?.forEach(y=>{let d=y.type==="key"?y:null;if(d)return P.push(d);let f=y.type==="cut"?y:null;f&&(P.push(f.key1),P.push(f.key2),X(l)&&r.propertyPath==="position"&&g.addEvent(new U.AnimationEvent(f.key1.frame,()=>{let h=xe();if(!h)return;let A=h.motionStrength;h.motionStrength=0,requestAnimationFrame(()=>{h.motionStrength=A})})))}),g.setKeys(P),o.addTargetedAnimation(g,l)}),o.normalize(),o}i(Gr,"generateCinematicAnimationGroup");function Kr(e){return e.type==="key"}i(Kr,"isCinematicKey");function kr(e){return e.type==="cut"}i(kr,"isCinematicKeyCut");function zr(e){return e.type==="event"}i(zr,"isCinematicKeyEvent");function $r(e){return e.type==="group"}i($r,"isCinematicGroup");function Yr(e){return e.type==="sound"}i(Yr,"isCinematicSound");0&&(module.exports={_applyScriptsForObject,_preloadScriptsAssets,_registerScriptInstance,_removeRegisteredScriptInstance,animationFromSprite,animationGroupFromScene,applyScriptOnObject,configureEngineToUseCompressedTextures,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isParticleSystem,isPointLight,isScene,isSpotLight,isSprite,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,normalizeAtlasJson,onKeyboardEvent,onPointerEvent,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseMotionBlurPostProcess,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseVLSPostProcess,particleSystemFromScene,playSpriteAnimationFromName,scriptAssetsCache,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setVLSPostProcessRef,soundFromScene,spriteFromSpriteManager,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
1
+ var Z=Object.defineProperty;var tr=Object.getOwnPropertyDescriptor;var rr=Object.getOwnPropertyNames;var or=Object.prototype.hasOwnProperty;var i=(e,r)=>Z(e,"name",{value:r,configurable:!0});var nr=(e,r)=>{for(var t in r)Z(e,t,{get:r[t],enumerable:!0})},ir=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of rr(r))!or.call(e,n)&&n!==t&&Z(e,n,{get:()=>r[n],enumerable:!(o=tr(r,n))||o.enumerable});return e};var sr=e=>ir(Z({},"__esModule",{value:!0}),e);var no={};nr(no,{Cinematic:()=>H,_applyScriptsForObject:()=>N,_preloadScriptsAssets:()=>Ve,_registerScriptInstance:()=>St,_removeRegisteredScriptInstance:()=>ht,animationFromSprite:()=>Zr,animationGroupFromScene:()=>Fr,applyScriptOnObject:()=>vr,configureEngineToUseCompressedTextures:()=>wr,configureShadowMapRefreshRate:()=>ye,configureShadowMapRenderListPredicate:()=>de,createDefaultRenderingPipeline:()=>lt,createMotionBlurPostProcess:()=>ot,createSSAO2RenderingPipeline:()=>tt,createSSRRenderingPipeline:()=>Xe,createVLSPostProcess:()=>Je,defaultPipelineCameraConfigurations:()=>k,disposeDefaultRenderingPipeline:()=>we,disposeMotionBlurPostProcess:()=>Te,disposeSSAO2RenderingPipeline:()=>Ce,disposeSSRRenderingPipeline:()=>Pe,disposeVLSPostProcess:()=>Se,forceCompileAllSceneMaterials:()=>Mr,generateCinematicAnimationGroup:()=>oo,getAllScriptsByClassForObject:()=>bt,getAnimationTypeForObject:()=>Q,getDefaultRenderingPipeline:()=>$,getMotionBlurPostProcess:()=>Ee,getPowerOfTwoUntil:()=>E,getSSAO2RenderingPipeline:()=>Ir,getSSRRenderingPipeline:()=>br,getScriptByClassForObject:()=>Er,getVLSPostProcess:()=>Sr,guiFromAsset:()=>Vr,isAbstractMesh:()=>X,isAnyParticleSystem:()=>fe,isArcRotateCamera:()=>mr,isBone:()=>ar,isCamera:()=>te,isCinematicGroup:()=>to,isCinematicKey:()=>$e,isCinematicKeyCut:()=>j,isCinematicKeyEvent:()=>eo,isCinematicSound:()=>ro,isDirectionalLight:()=>ur,isFreeCamera:()=>cr,isGPUParticleSystem:()=>yr,isGroundMesh:()=>lr,isHemisphericLight:()=>gr,isInstancedMesh:()=>Y,isLight:()=>We,isMesh:()=>w,isNode:()=>L,isParticleSystem:()=>dr,isPointLight:()=>pr,isScene:()=>ue,isSpotLight:()=>fr,isSprite:()=>ge,isTexture:()=>pe,isTransformNode:()=>ee,loadMaterialFromFile:()=>Or,loadScene:()=>Dr,motionBlurPostProcessCameraConfigurations:()=>K,nodeFromDescendants:()=>Nr,nodeFromScene:()=>Rr,normalizeAtlasJson:()=>_e,onKeyboardEvent:()=>qr,onPointerEvent:()=>Ur,parseCinematic:()=>Xr,parseCinematicKeyValue:()=>T,parseDefaultRenderingPipeline:()=>Ne,parseKeyFrameAnimations:()=>ze,parseMotionBlurPostProcess:()=>Oe,parseSSAO2RenderingPipeline:()=>ve,parseSSRRenderingPipeline:()=>Ae,parseVLSPostProcess:()=>be,particleSystemFromScene:()=>_r,playSpriteAnimationFromName:()=>Tr,scriptAssetsCache:()=>V,scriptsDictionary:()=>R,serializeDefaultRenderingPipeline:()=>Re,serializeMotionBlurPostProcess:()=>De,serializeSSAO2RenderingPipeline:()=>xe,serializeSSRRenderingPipeline:()=>Ie,serializeVLSPostProcess:()=>he,setDefaultRenderingPipelineRef:()=>xr,setMotionBlurPostProcessRef:()=>Cr,setSSAO2RenderingPipelineRef:()=>Ar,setSSRRenderingPipelineRef:()=>Pr,setVLSPostProcessRef:()=>hr,soundFromScene:()=>Lr,spriteFromSpriteManager:()=>Jr,ssaoRenderingPipelineCameraConfigurations:()=>G,ssrRenderingPipelineCameraConfigurations:()=>B,visibleAsAsset:()=>jr,visibleAsBoolean:()=>Br,visibleAsColor3:()=>Yr,visibleAsColor4:()=>$r,visibleAsEntity:()=>Wr,visibleAsKeyMap:()=>Hr,visibleAsNumber:()=>Kr,visibleAsString:()=>Gr,visibleAsTexture:()=>Qr,visibleAsVector2:()=>kr,visibleAsVector3:()=>zr,vlsPostProcessCameraConfigurations:()=>_});module.exports=sr(no);function X(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(X,"isAbstractMesh");function w(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(w,"isMesh");function Y(e){return e.getClassName?.()==="InstancedMesh"}i(Y,"isInstancedMesh");function ar(e){return e.getClassName?.()==="Bone"}i(ar,"isBone");function lr(e){return e.getClassName?.()==="GroundMesh"}i(lr,"isGroundMesh");function ee(e){return e.getClassName?.()==="TransformNode"}i(ee,"isTransformNode");function pe(e){return e?.getClassName?.()==="Texture"}i(pe,"isTexture");function te(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(te,"isCamera");function cr(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(cr,"isFreeCamera");function mr(e){return e.getClassName?.()==="ArcRotateCamera"}i(mr,"isArcRotateCamera");function pr(e){return e.getClassName?.()==="PointLight"}i(pr,"isPointLight");function ur(e){return e.getClassName?.()==="DirectionalLight"}i(ur,"isDirectionalLight");function fr(e){return e.getClassName?.()==="SpotLight"}i(fr,"isSpotLight");function gr(e){return e.getClassName?.()==="HemisphericLight"}i(gr,"isHemisphericLight");function We(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(We,"isLight");function L(e){return X(e)||ee(e)||We(e)||te(e)}i(L,"isNode");function ue(e){return e.getClassName?.()==="Scene"}i(ue,"isScene");function dr(e){return e.getClassName?.()==="ParticleSystem"}i(dr,"isParticleSystem");function yr(e){return e.getClassName?.()==="GPUParticleSystem"}i(yr,"isGPUParticleSystem");function fe(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(fe,"isAnyParticleSystem");function ge(e){return e.getClassName?.()==="Sprite"}i(ge,"isSprite");var Qe=require("babylonjs"),He=require("babylonjs");function de(e){e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=o=>Qe.Vector3.Distance(o.getAbsolutePosition(),r.getAbsolutePosition())<=r.range)})}i(de,"configureShadowMapRenderListPredicate");async function ye(e){e.executeWhenReady(()=>{e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=r.metadata?.refreshRate??He.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(ye,"configureShadowMapRefreshRate");var je=require("babylonjs"),Ue=require("babylonjs"),qe=require("babylonjs"),A=null,_=new Map;function Sr(){return A}i(Sr,"getVLSPostProcess");function hr(e){A=e}i(hr,"setVLSPostProcessRef");function Se(e){A&&e.activeCamera&&(A.dispose(e.activeCamera),A=null)}i(Se,"disposeVLSPostProcess");function Je(e,r){return r??=e.meshes.find(t=>w(t)),A=new qe.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,r,100,Ue.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),A}i(Je,"createVLSPostProcess");function he(){return A?{meshId:A.mesh?.id,exposure:A.exposure,decay:A.decay,weight:A.weight,density:A.density,invert:A.invert,useCustomMeshPosition:A.useCustomMeshPosition,customMeshPosition:A.customMeshPosition.asArray()}:null}i(he,"serializeVLSPostProcess");function be(e,r){let t=null;if(r.meshId){let n=e.getMeshById(r.meshId);n&&w(n)&&(t=n)}let o=Je(e,t);return o.exposure=r.exposure,o.decay=r.decay,o.weight=r.weight,o.density=r.density,o.invert=r.invert,o.useCustomMeshPosition=r.useCustomMeshPosition,o.customMeshPosition.copyFrom(je.Vector3.FromArray(r.customMeshPosition)),o}i(be,"parseVLSPostProcess");var Ze=require("babylonjs"),h=null,B=new Map;function br(){return h}i(br,"getSSRRenderingPipeline");function Pr(e){h=e}i(Pr,"setSSRRenderingPipelineRef");function Pe(){h&&(h.dispose(),h=null)}i(Pe,"disposeSSRRenderingPipeline");function Xe(e,r){return h=new Ze.SSRRenderingPipeline("SSRRenderingPipeline",e,[r]),h.samples=4,h}i(Xe,"createSSRRenderingPipeline");function Ie(){return h?{samples:h.samples,step:h.step,thickness:h.thickness,strength:h.strength,reflectionSpecularFalloffExponent:h.reflectionSpecularFalloffExponent,maxSteps:h.maxSteps,maxDistance:h.maxDistance,roughnessFactor:h.roughnessFactor,reflectivityThreshold:h.reflectivityThreshold,blurDispersionStrehgth:h.blurDispersionStrength,clipToFrustum:h.clipToFrustum,enableSmoothReflections:h.enableSmoothReflections,enableAutomaticThicknessComputation:h.enableAutomaticThicknessComputation,attenuateFacingCamera:h.attenuateFacingCamera,attenuateScreenBorders:h.attenuateScreenBorders,attenuateIntersectionDistance:h.attenuateIntersectionDistance,attenuateBackfaceReflection:h.attenuateBackfaceReflection,blurDownsample:h.blurDownsample,selfCollisionNumSkip:h.selfCollisionNumSkip,ssrDownsample:h.ssrDownsample,backfaceDepthTextureDownsample:h.backfaceDepthTextureDownsample}:null}i(Ie,"serializeSSRRenderingPipeline");function Ae(e,r,t){if(h)return h;let o=Xe(e,r);return o.samples=t.samples,o.step=t.step,o.thickness=t.thickness,o.strength=t.strength,o.reflectionSpecularFalloffExponent=t.reflectionSpecularFalloffExponent,o.maxSteps=t.maxSteps,o.maxDistance=t.maxDistance,o.roughnessFactor=t.roughnessFactor,o.reflectivityThreshold=t.reflectivityThreshold,o.blurDispersionStrength=t.blurDispersionStrehgth,o.clipToFrustum=t.clipToFrustum,o.enableSmoothReflections=t.enableSmoothReflections,o.enableAutomaticThicknessComputation=t.enableAutomaticThicknessComputation,o.attenuateFacingCamera=t.attenuateFacingCamera,o.attenuateScreenBorders=t.attenuateScreenBorders,o.attenuateIntersectionDistance=t.attenuateIntersectionDistance,o.attenuateBackfaceReflection=t.attenuateBackfaceReflection,o.blurDownsample=t.blurDownsample,o.selfCollisionNumSkip=t.selfCollisionNumSkip,o.ssrDownsample=t.ssrDownsample,o.backfaceDepthTextureDownsample=t.backfaceDepthTextureDownsample,o}i(Ae,"parseSSRRenderingPipeline");var et=require("babylonjs"),P=null,G=new Map;function Ir(){return P}i(Ir,"getSSAO2RenderingPipeline");function Ar(e){P=e}i(Ar,"setSSAO2RenderingPipelineRef");function Ce(){P&&(P.dispose(),P=null)}i(Ce,"disposeSSAO2RenderingPipeline");function tt(e,r){return P=new et.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[r]),P.samples=4,P}i(tt,"createSSAO2RenderingPipeline");function xe(){return P?{radius:P.radius,totalStrength:P.totalStrength,samples:P.samples,maxZ:P.maxZ,minZAspect:P.minZAspect,epsilon:P.epsilon,textureSamples:P.textureSamples,bypassBlur:P.bypassBlur,bilateralSamples:P.bilateralSamples,bilateralSoften:P.bilateralSoften,bilateralTolerance:P.bilateralTolerance,expensiveBlur:P.expensiveBlur}:null}i(xe,"serializeSSAO2RenderingPipeline");function ve(e,r,t){if(P)return P;let o=tt(e,r);return o.radius=t.radius,o.totalStrength=t.totalStrength,o.samples=t.samples,o.maxZ=t.maxZ,o.minZAspect=t.minZAspect,o.epsilon=t.epsilon,o.textureSamples=t.textureSamples,o.bypassBlur=t.bypassBlur,o.bilateralSamples=t.bilateralSamples,o.bilateralSoften=t.bilateralSoften,o.bilateralTolerance=t.bilateralTolerance,o.expensiveBlur=t.expensiveBlur,o}i(ve,"parseSSAO2RenderingPipeline");var rt=require("babylonjs"),C=null,K=new Map;function Ee(){return C}i(Ee,"getMotionBlurPostProcess");function Cr(e){C=e}i(Cr,"setMotionBlurPostProcessRef");function Te(){C&&(C.dispose(),C=null)}i(Te,"disposeMotionBlurPostProcess");function ot(e,r){return C=new rt.MotionBlurPostProcess("MotionBlurPostProcess",e,1,r),C.motionStrength=1,C.isObjectBased=!0,C}i(ot,"createMotionBlurPostProcess");function De(){return C?{isObjectBased:C.isObjectBased,motionStrength:C.motionStrength,motionBlurSamples:C.motionBlurSamples}:null}i(De,"serializeMotionBlurPostProcess");function Oe(e,r,t){if(C)return C;let o=ot(e,r);return o.isObjectBased=t.isObjectBased,o.motionStrength=t.motionStrength,o.motionBlurSamples=t.motionBlurSamples,o}i(Oe,"parseMotionBlurPostProcess");var nt=require("babylonjs"),Me=require("babylonjs"),it=require("babylonjs"),st=require("babylonjs"),at=require("babylonjs"),l=null,k=new Map;function $(){return l}i($,"getDefaultRenderingPipeline");function xr(e){l=e}i(xr,"setDefaultRenderingPipelineRef");function we(){l&&(l.dispose(),l=null)}i(we,"disposeDefaultRenderingPipeline");function lt(e,r){return l=new at.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[r]),l.samples=4,l.depthOfField.lensSize=512,l.depthOfField.fStop=.25,l.depthOfField.focusDistance=55e3,l}i(lt,"createDefaultRenderingPipeline");function Re(){return l?{samples:l.samples,fxaaEnabled:l.fxaaEnabled,imageProcessingEnabled:l.imageProcessingEnabled,exposure:l.imageProcessing?.exposure,contrast:l.imageProcessing?.contrast,fromLinearSpace:l.imageProcessing?.fromLinearSpace,toneMappingEnabled:l.imageProcessing?.toneMappingEnabled,toneMappingType:l.imageProcessing?.toneMappingType,ditheringEnabled:l.imageProcessing?.ditheringEnabled,ditheringIntensity:l.imageProcessing?.ditheringIntensity,bloomEnabled:l.bloomEnabled,bloomThreshold:l.bloomThreshold,bloomWeight:l.bloomWeight,bloomScale:l.bloomScale,bloomKernel:l.bloomKernel,sharpenEnabled:l.sharpenEnabled,sharpenEdgeAmount:l.sharpen.edgeAmount,sharpenColorAmount:l.sharpen.colorAmount,grainEnabled:l.grainEnabled,grainIntensity:l.grain.intensity,grainAnimated:l.grain.animated,depthOfFieldEnabled:l.depthOfFieldEnabled,depthOfFieldBlurLevel:l.depthOfFieldBlurLevel,lensSize:l.depthOfField.lensSize,fStop:l.depthOfField.fStop,focusDistance:l.depthOfField.focusDistance,focalLength:l.depthOfField.focalLength,vignetteEnabled:l.imageProcessing?.vignetteEnabled,vignetteColor:l.imageProcessing?.vignetteColor.asArray(),vignetteWeight:l.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:l.chromaticAberrationEnabled,aberrationAmount:l.chromaticAberration.aberrationAmount,radialIntensity:l.chromaticAberration.radialIntensity,direction:l.chromaticAberration.direction.asArray(),centerPosition:l.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:l.glowLayerEnabled,glowLayerIntensity:l.glowLayer?.intensity,glowLayerBlurKernelSize:l.glowLayer?.blurKernelSize,colorGradingEnabled:l.imageProcessing.colorGradingEnabled,colorGradingTexture:l.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:l.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:l.imageProcessing.colorCurvesEnabled,globalHue:l.imageProcessing.colorCurves?.globalHue,globalDensity:l.imageProcessing.colorCurves?.globalDensity,globalExposure:l.imageProcessing.colorCurves?.globalExposure,globalSaturation:l.imageProcessing.colorCurves?.globalSaturation,highlightsHue:l.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:l.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:l.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:l.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:l.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:l.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:l.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:l.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:l.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:l.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:l.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:l.imageProcessing.colorCurves?.shadowsSaturation}:null}i(Re,"serializeDefaultRenderingPipeline");function Ne(e,r,t,o){if(l)return l;let n=lt(e,r);if(n.samples=t.samples,n.fxaaEnabled=t.fxaaEnabled,n.imageProcessingEnabled=t.imageProcessingEnabled,n.imageProcessing){if(n.imageProcessing.exposure=t.exposure,n.imageProcessing.contrast=t.contrast,n.imageProcessing.fromLinearSpace=t.fromLinearSpace,n.imageProcessing.toneMappingEnabled=t.toneMappingEnabled,n.imageProcessing.toneMappingType=t.toneMappingType,n.imageProcessing.ditheringEnabled=t.ditheringEnabled,n.imageProcessing.ditheringIntensity=t.ditheringIntensity,n.imageProcessing.vignetteEnabled=t.vignetteEnabled??!1,n.imageProcessing.vignetteColor=nt.Color4.FromArray(t.vignetteColor??[0,0,0]),n.imageProcessing.vignetteWeight=t.vignetteWeight??.3,n.imageProcessing.colorGradingEnabled=t.colorGradingEnabled??!1,n.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=t.colorGradingWithGreenDepth??!0,t.colorGradingTexture){let s=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let a=o+t.colorGradingTexture.name;s=new st.ColorGradingTexture(a,e),s.level=t.colorGradingTexture.level}else{let a=it.Texture.Parse(t.colorGradingTexture,e,o);pe(a)&&(s=a)}n.imageProcessing.colorGradingTexture=s}n.imageProcessing.colorCurvesEnabled=t.colorCurvesEnabled??!1,n.imageProcessing.colorCurves&&(n.imageProcessing.colorCurves.globalHue=t.globalHue??30,n.imageProcessing.colorCurves.globalDensity=t.globalDensity??0,n.imageProcessing.colorCurves.globalExposure=t.globalExposure??0,n.imageProcessing.colorCurves.globalSaturation=t.globalSaturation??0,n.imageProcessing.colorCurves.highlightsHue=t.highlightsHue??30,n.imageProcessing.colorCurves.highlightsDensity=t.highlightsDensity??0,n.imageProcessing.colorCurves.highlightsExposure=t.highlightsExposure??0,n.imageProcessing.colorCurves.highlightsSaturation=t.highlightsSaturation??0,n.imageProcessing.colorCurves.midtonesHue=t.midtonesHue??30,n.imageProcessing.colorCurves.midtonesDensity=t.midtonesDensity??0,n.imageProcessing.colorCurves.midtonesExposure=t.midtonesExposure??0,n.imageProcessing.colorCurves.midtonesSaturation=t.midtonesSaturation??0,n.imageProcessing.colorCurves.shadowsHue=t.shadowsHue??30,n.imageProcessing.colorCurves.shadowsDensity=t.shadowsDensity??0,n.imageProcessing.colorCurves.shadowsExposure=t.shadowsExposure??0,n.imageProcessing.colorCurves.shadowsSaturation=t.shadowsSaturation??0)}return n.bloomEnabled=t.bloomEnabled,n.bloomThreshold=t.bloomThreshold,n.bloomWeight=t.bloomWeight,n.bloomScale=t.bloomScale,n.bloomKernel=t.bloomKernel,n.sharpenEnabled=t.sharpenEnabled,n.sharpen.edgeAmount=t.sharpenEdgeAmount,n.sharpen.colorAmount=t.sharpenColorAmount,n.grainEnabled=t.grainEnabled,n.grain.intensity=t.grainIntensity,n.grain.animated=t.grainAnimated,n.depthOfFieldEnabled=t.depthOfFieldEnabled,n.depthOfFieldBlurLevel=t.depthOfFieldBlurLevel,n.depthOfField.lensSize=t.lensSize,n.depthOfField.fStop=t.fStop,n.depthOfField.focusDistance=t.focusDistance,n.depthOfField.focalLength=t.focalLength,n.chromaticAberrationEnabled=t.chromaticAberrationEnabled??!1,n.chromaticAberration.aberrationAmount=t.aberrationAmount??10,n.chromaticAberration.radialIntensity=t.radialIntensity??1,n.chromaticAberration.direction=Me.Vector2.FromArray(t.direction??[0,0]),n.chromaticAberration.centerPosition=Me.Vector2.FromArray(t.centerPosition??[0,0]),n.glowLayerEnabled=t.glowLayerEnabled??!1,n.glowLayer&&(n.glowLayer.intensity=t.glowLayerIntensity??1,n.glowLayer.blurKernelSize=t.glowLayerBlurKernelSize??32),n}i(Ne,"parseDefaultRenderingPipeline");function kn(e){G.set(e,xe()),_.set(e,he()),B.set(e,Ie()),K.set(e,De()),k.set(e,Re())}i(kn,"saveRenderingConfigurationForCamera");function ct(e,r){Ce(),Se(e.getScene()),Pe(),Te(),we();let t=G.get(e);t&&ve(e.getScene(),e,t);let o=_.get(e);o&&be(e.getScene(),o);let n=B.get(e);n&&Ae(e.getScene(),e,n);let s=K.get(e);s&&Oe(e.getScene(),e,s);let a=k.get(e);a&&Ne(e.getScene(),e,a,r)}i(ct,"applyRenderingConfigurationForCamera");var W=require("babylonjs"),mt=require("babylonjs");function pt(e){let r=e.metadata?.physicsAggregate;if(!r)return;let t;w(e)?t=e:Y(e)&&(t=e.sourceMesh);let o=new mt.PhysicsAggregate(e,r.shape.type,{mesh:t,mass:r.massProperties.mass});o.body.setMassProperties({mass:r.massProperties.mass,inertia:r.massProperties.inertia?W.Vector3.FromArray(r.massProperties.inertia):void 0,centerOfMass:r.massProperties.centerOfMass?W.Vector3.FromArray(r.massProperties.centerOfMass):void 0,inertiaOrientation:r.massProperties.inertiaOrientation?W.Quaternion.FromArray(r.massProperties.inertiaOrientation):void 0}),o.shape.density=r.shape.density,o.body.setMotionType(r.body.motionType),o.shape.material=r.material,e.physicsAggregate=o,e.metadata.physicsAggregate=void 0}i(pt,"configurePhysicsAggregate");function ut(e,r){(Array.isArray(r)?r:[]).forEach(o=>{let n=e.getCameraById(o.cameraId);n&&(o.ssao2RenderingPipeline&&G.set(n,o.ssao2RenderingPipeline),o.vlsPostProcess&&_.set(n,o.vlsPostProcess),o.ssrRenderingPipeline&&B.set(n,o.ssrRenderingPipeline),o.motionBlurPostProcess&&K.set(n,o.motionBlurPostProcess),o.defaultRenderingPipeline&&k.set(n,o.defaultRenderingPipeline))})}i(ut,"applyRenderingConfigurations");function re(e,r){let t=r.soundTracks??[];t.length||t.push(r.mainSoundTrack);for(let o=0,n=t.length;o<n;o++){let s=t[o].soundCollection.find(a=>a.id===e);if(s)return s}return null}i(re,"getSoundById");var ft=require("babylonjs"),oe=require("babylonjs"),gt=require("babylonjs"),ne=require("babylonjs"),dt=require("babylonjs"),yt=require("babylonjs-gui");function Fe(e,r,t,o,n){let s=o.constructor;if(!s)return;s._NodesFromScene?.forEach(c=>{o[c.propertyKey.toString()]=e.getNodeByName(c.nodeName)}),s._NodesFromDescendants?.forEach(c=>{let p=r.getDescendants?.(c.directDescendantsOnly,f=>f.name===c.nodeName)[0];o[c.propertyKey.toString()]=p??null}),s._AnimationGroups?.forEach(c=>{o[c.propertyKey.toString()]=e.getAnimationGroupByName(c.animationGroupName)}),s._SoundsFromScene?.forEach(c=>{let p=e.getSoundByName?.(c.soundName);o[c.propertyKey.toString()]=p??null}),(s._GuiFromAsset??[]).map(async c=>{let p=`${n}assets/${c.pathInAssets}`;try{let g=await(await fetch(p)).json(),I=yt.AdvancedDynamicTexture.CreateFullscreenUI(g.name,!0,e);I.parseSerializedObject(g.content,!1),o[c.propertyKey.toString()]=I,c.onGuiCreated?.(o,I)}catch(f){throw console.error(`Failed to load GUI from asset: ${p}`),f}}),s._ParticleSystemsFromScene?.forEach(c=>{let p=e.particleSystems?.find(f=>f.name!==c.particleSystemName?!1:c.directDescendantsOnly?f.emitter===r:f);o[c.propertyKey.toString()]=p}),(s._VisibleInInspector??[]).map(async c=>{let p=c.propertyKey.toString(),f=t.values;if(f.hasOwnProperty(p)&&f[p].hasOwnProperty("value")){let g=f[p].value;switch(c.configuration.type){case"number":case"boolean":case"keymap":case"string":o[p]=g;break;case"vector2":o[p]=ne.Vector2.FromArray(g);break;case"vector3":o[p]=ne.Vector3.FromArray(g);break;case"color3":o[p]=oe.Color3.FromArray(g);break;case"color4":o[p]=oe.Color4.FromArray(g);break;case"entity":switch(c.configuration.entityType){case"node":o[p]=e.getNodeById(g)??null;break;case"animationGroup":o[p]=e.getAnimationGroupByName(g)??null;break;case"sound":o[p]=re(g,e);break;case"particleSystem":o[p]=e.particleSystems?.find(S=>S.id===g)??null;break}break;case"texture":g&&(o[p]=gt.Texture.Parse(g,e,n));break;case"asset":if(g){let S=c.configuration.assetType,d=V.get(g);switch(S){case"json":o[p]=d;break;case"nodeParticleSystemSet":let y=dt.NodeParticleSystemSet.Parse(d);o[p]=y;break;case"material":o[p]=ft.Material.Parse(d,e,n);break}}}}});let a=null,m=null;if(s._PointerEvents?.length){if(s._PointerEvents.find(f=>f.options.mode==="attachedMeshOnly")&&!X(r))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(s._PointerEvents.find(f=>f.options.mode!=="global")&&!L(r))throw new Error('@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.');a=e.onPointerObservable.add(f=>{let g=null;s._PointerEvents.forEach(I=>{if(!I.eventTypes.includes(f.type))return;let S=I.propertyKey.toString();if(I.options.mode==="global")return o[S]?.(f);g=f.pickInfo,g||(g=e.pick(e.pointerX,e.pointerY,y=>y.isVisible&&y.isPickable&&y.isEnabled(!0)&&!y._masterMesh,!1));let d=g.pickedMesh;if(d&&(I.options.mode==="attachedMeshOnly"&&d===r||I.options.mode==="includeDescendants"&&L(r)&&[r,...r.getDescendants(!1)].find(b=>b===d)))return o[S]?.(f)})})}if(s._KeyboardEvents?.length&&(m=e.onKeyboardObservable.add(c=>{s._KeyboardEvents.forEach(p=>{p.eventTypes.includes(c.type)&&o[p.propertyKey.toString()]?.(c)})})),s._SpritesFromSpriteManager?.length){let c=r;if(!ee(c)||!c.isSpriteManager)return console.error("@spriteFromSpriteManager decorator can only be used on SpriteManagerNode.");if(!c.spriteManager)return console.error(`SpriteManagerNode "${c.name}" has no sprite manager assigned.`);s._SpritesFromSpriteManager?.forEach(p=>{let f=c.spriteManager?.sprites.find(g=>g.name===p.spriteName)||null;o[p.propertyKey.toString()]=f})}if(s._AnimationsFromSprite?.length){if(!ge(r))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let c=r.metadata?.spriteAnimations;if(!c?.length)return console.error(`Sprite "${r.name}" has no sprite animations assigned.`);s._AnimationsFromSprite.forEach(p=>{let f=c.find(g=>g.name===p.animationName);f?o[p.propertyKey.toString()]=f??null:console.warn(`Sprite animation named "${p.animationName}" not found on sprite "${r.name}".`)})}return{observers:{pointerObserver:a,keyboardObserver:m}}}i(Fe,"applyDecorators");var V=new Map;async function Ve(e,r){[e,...e.transformNodes,...e.meshes,...e.lights,...e.cameras].filter(s=>s.metadata?.scripts?.length).map(s=>s.metadata.scripts).flat().forEach(s=>{for(let a in s.values){if(!s.values.hasOwnProperty(a))continue;let m=s.values[a];m.type==="asset"&&m.value&&V.set(m.value,null)}});let n=[];V.forEach((s,a)=>{V.get(a)||n.push(new Promise(async m=>{try{let p=await(await fetch(`${r}${a}`)).json();V.set(a,p)}catch(c){console.error(c)}m()}))}),await Promise.all(n)}i(Ve,"_preloadScriptsAssets");function N(e,r,t,o){r.metadata?.scripts&&(r.metadata.scripts?.forEach(async n=>{if(!n.enabled)return;let s=t[n.key];if(!s)return;let a=s,m={};if(s.default){a=new s.default(r);let c=Fe(e,r,n,a,o);Object.assign(m,c?.observers??{})}a.onStart&&(m.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>a.onStart(r))),a.onUpdate&&(m.onUpdateObserver=e.onBeforeRenderObservable.add(()=>a.onUpdate(r))),St(r,a,n.key,m)}),r.metadata.scripts=void 0)}i(N,"_applyScriptsForObject");function vr(e,r,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let o=new r(e);return Fe(t,e,{values:{}},o,""),o.onStart&&t.onBeforeRenderObservable.addOnce(()=>o.onStart()),o.onUpdate&&t.onBeforeRenderObservable.add(()=>o.onUpdate()),o}i(vr,"applyScriptOnObject");var R=new Map;function St(e,r,t,o){let n={key:t,observers:o,instance:r};R.has(e)?R.get(e).push(n):R.set(e,[n]),(L(e)||fe(e)||ue(e))&&e.onDisposeObservable.addOnce(()=>{R.get(e)?.forEach(s=>{ht(e,s)}),R.delete(e)})}i(St,"_registerScriptInstance");function ht(e,r){r.observers.onStartObserver?.remove(),r.observers.onUpdateObserver?.remove(),r.observers.pointerObserver?.remove(),r.observers.keyboardObserver?.remove();try{r.instance.onStop?.(e)}catch(n){console.error(`Failed to call onStop for script ${r.key} on object ${e}`,n)}let t=R.get(e),o=t?.indexOf(r)??-1;o!==-1&&t?.splice(o,1)}i(ht,"_removeRegisteredScriptInstance");function bt(e,r){return R.get(e)?.filter(n=>n.instance.constructor===r)?.map(n=>n.instance)??null}i(bt,"getAllScriptsByClassForObject");function Er(e,r){return bt(e,r)?.[0]??null}i(Er,"getScriptByClassForObject");var It=require("babylonjs"),ie=require("babylonjs"),Pt=!1;function At(){if(Pt)return;Pt=!0;let e=(0,ie.GetParser)(It.SceneComponentConstants.NAME_AUDIO);(0,ie.AddParser)("AudioEditorPlugin",(r,t,o,n)=>{e?.(r,t,o,n),r.sounds?.forEach(s=>{let a=o.sounds?.find(m=>m.name===s.name);a&&(a.id=s.id,a.uniqueId=s.uniqueId)})})}i(At,"registerAudioParser");function E(e){let r=1;for(;r<=e;)r<<=1;return r>>1}i(E,"getPowerOfTwoUntil");var Le=require("babylonjs"),Ct=!1;function xt(){if(Ct)return;Ct=!0;let e=Le.SerializationHelper._TextureParser;Le.SerializationHelper._TextureParser=(r,t,o)=>{if(t.loadingTexturesQuality==="high"||!r.metadata?.baseSize)return e(r,t,o);let n=r.metadata.baseSize.width,s=r.metadata.baseSize.height,a=n===E(n)||s===E(s),m="";switch(t.loadingTexturesQuality){case"medium":let d=n*.66>>0,y=s*.66>>0;a&&(d=E(d),y=E(y)),m=`_${d}_${y}`;break;case"low":case"very-low":let u=n*.33>>0,b=s*.33>>0;a&&(u=E(u),b=E(b)),m=`_${u}_${b}`;break}let c=r.name;if(!c||!m)return e(r,t,o);let p=c.split("/"),f=p.pop();if(!f)return e(r,t,o);let g=f.split(".").pop(),S=`${f.replace(`.${g}`,"")}${m}.${g}`;return p.push(S),r.name=p.join("/"),e(r,t,o)}}i(xt,"registerTextureParser");var Et=require("babylonjs"),se=require("babylonjs"),vt=!1;function Tt(){if(vt)return;vt=!0;let e=(0,se.GetParser)(Et.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,se.AddParser)("ShadowGeneratorEditorPlugin",(r,t,o,n)=>{t.loadingShadowsQuality!=="high"&&r.shadowGenerators?.forEach(s=>{switch(t.loadingShadowsQuality){case"medium":s.mapSize=s.mapSize*.5;break;case"low":s.mapSize=s.mapSize*.25;break;case"very-low":s.mapSize=s.mapSize*.125;break}s.mapSize=Math.max(128,E(s.mapSize))}),e?.(r,t,o,n)})}i(Tt,"registerShadowGeneratorParser");function _e(e){if(!Array.isArray(e.frames)){let r=[];for(let t of Object.keys(e.frames))r.push({filename:t,...e.frames[t]});e.frames=r}}i(_e,"normalizeAtlasJson");function Tr(e,r,t){let n=(e.metadata?.spriteAnimations??[]).find(s=>s.name===r);if(!n)return console.error(`Animation with name "${r}" not found on sprite.`);e.playAnimation(n.from,n.to,n.loop,n.delay,t)}i(Tr,"playSpriteAnimationFromName");var Ot=require("babylonjs"),Mt=require("babylonjs"),wt=require("babylonjs"),Rt=require("babylonjs"),Be=require("babylonjs"),z=require("babylonjs"),Nt=require("babylonjs"),Dt=!1;function Ft(){Dt||(Dt=!0,(0,Nt.AddParser)("SpriteMapNode",(e,r,t,o)=>{e.transformNodes?.forEach(n=>{if(!n.isSpriteMap)return;let s=t.transformNodes?.find(c=>c.id===n.id);if(!s)return;s.isSpriteMap=n.isSpriteMap;let a=`${o}${n.atlasJsonRelativePath}`;r.addPendingData(a);let m=new wt.WebRequest;m.open("GET",a),m.send(),m.addEventListener("load",()=>{r.removePendingData(a);let c=JSON.parse(m.responseText);_e(c);let p=`${Ot.Tools.GetFolderPath(a)}${c.meta.image}`,f=new Be.Texture(p,r,!1,!1,Be.Texture.NEAREST_NEAREST,null,null,null,!1,Mt.Engine.TEXTUREFORMAT_RGBA),g=new Rt.SpriteMap(s.name,c,f,{layerCount:n.options.layerCount,stageSize:z.Vector2.FromArray(n.options.stageSize??[10,1]),outputSize:z.Vector2.FromArray(n.options.outputSize??[100,100]),colorMultiply:z.Vector3.FromArray(n.options.colorMultiply??[1,1,1]),flipU:!0},r);n.tiles.forEach(S=>{for(let d=0,y=S.repeatCount.x+1;d<y;++d)for(let u=0,b=S.repeatCount.y+1;u<b;++u){let v=d*(S.repeatOffset.x+1),q=u*(S.repeatOffset.y+1);g.changeTiles(S.layer,new z.Vector2(S.position.x+v,(g.options.stageSize?.y??0)-1-S.position.y-q),S.tile)}});let I=g._output;I.parent=s,s.spriteMap=g})})}))}i(Ft,"registerSpriteMapParser");var _t=require("babylonjs"),Bt=require("babylonjs"),Gt=require("babylonjs"),Ge=require("babylonjs"),Kt=require("babylonjs");function Vt(e,r){r?.fogEnabled!==void 0&&(e.fogEnabled=r?.fogEnabled),r?.blendMode!==void 0&&(e.blendMode=r?.blendMode),r?.disableDepthWrite!==void 0&&(e.disableDepthWrite=r?.disableDepthWrite),r?.pixelPerfect!==void 0&&(e.pixelPerfect=r?.pixelPerfect),r?.useLogarithmicDepth!==void 0&&(e.useLogarithmicDepth=r?.useLogarithmicDepth),r?.metadata!==void 0&&(e.metadata=r?.metadata);for(let t of r?.sprites??[]){let o=Bt.Sprite.Parse(t,e);o.uniqueId=t.uniqueId,o.metadata=t.metadata}}i(Vt,"parseSerializedSpriteManager");var Lt=!1;function kt(){Lt||(Lt=!0,(0,Kt.AddParser)("SpriteManagerNode",(e,r,t,o)=>{e.transformNodes?.forEach(n=>{if(!n.isSpriteManager)return;let s=t.transformNodes?.find(a=>a.id===n.id);if(s){if(s.isSpriteManager=n.isSpriteManager,n.atlasJsonRelativePath){let a=`${o}${n.atlasJsonRelativePath}`;r.addPendingData(a);let m=new Gt.WebRequest;m.open("GET",a),m.send(),m.addEventListener("load",()=>{r.removePendingData(a);let c=JSON.parse(m.responseText),p=`${_t.Tools.GetFolderPath(a)}${c.meta.image}`,f=new Ge.SpriteManager(s.name,p,1e3,64,r,void 0,void 0,!0,c);s.spriteManager=f,n.spriteManager&&Vt(f,n.spriteManager)})}else if(n.spriteManager?.textureUrl){let a=`${o}${n.spriteManager.textureUrl}`,m=new Ge.SpriteManager(s.name,a,1e3,{width:n.spriteManager.cellWidth,height:n.spriteManager.cellHeight},r,void 0,void 0,!1);s.spriteManager=m,n.spriteManager&&Vt(m,n.spriteManager)}}})}))}i(kt,"registerSpriteManagerParser");var zt=require("babylonjs"),Ke=require("babylonjs"),Yt=require("babylonjs"),$t=require("babylonjs");async function Dr(e,r,t,o,n){t.loadingQuality=n?.quality??"high",t.loadingTexturesQuality=n?.texturesQuality??t.loadingQuality,t.loadingShadowsQuality=n?.shadowsQuality??t.loadingQuality,At(),xt(),Tt(),Ft(),kt(),await(0,Yt.AppendSceneAsync)(`${e}${r}`,t,{pluginExtension:".babylon",onProgress:i(a=>{let m=Math.min(a.loaded/a.total*.5);n?.onProgress?.(m)},"onProgress")}),$t.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(a=>w(a)&&a._checkDelayState());let s=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(m=>setTimeout(m,150));let a=s-t.getWaitingItemsCount();a===s&&t.textures.forEach(m=>{m.delayLoadState===Ke.Constants.DELAYLOADSTATE_NONE&&(m.delayLoadState=Ke.Constants.DELAYLOADSTATE_LOADED)}),n?.onProgress?.(.5+a/s*.5)}await Ve(t,e),n?.onProgress?.(1),de(t),ye(t),t.metadata?.rendering&&(ut(t,t.metadata.rendering),t.activeCamera&&ct(t.activeCamera,e)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(zt.Vector3.FromArray(t.metadata?.physicsGravity)),N(t,t,o,e),t.transformNodes.forEach(a=>{N(t,a,o,e)}),t.meshes.forEach(a=>{pt(a),N(t,a,o,e)}),t.lights.forEach(a=>{N(t,a,o,e)}),t.cameras.forEach(a=>{N(t,a,o,e)}),t.spriteManagers?.forEach(a=>{a.sprites.forEach(m=>{N(t,m,o,e)})})}i(Dr,"loadScene");var Wt=require("babylonjs");async function Or(e,r,t){let n=await(await fetch(e+r)).json(),a=Wt.Tools.Instantiate(n.customType).Parse(n,t,e);return a.id=n.id,a.uniqueId=n.uniqueId,a}i(Or,"loadMaterialFromFile");function Mr(e){return Promise.all(e.materials.map(async r=>{let t=r.getBindedMeshes();await Promise.all(t.map(async o=>{Y(o)||await r.forceCompilationAsync(o,{clipPlane:!!e.clipPlane,useInstances:o.hasInstances})}))}))}i(Mr,"forceCompileAllSceneMaterials");function wr(e){e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(wr,"configureEngineToUseCompressedTextures");var O=require("babylonjs");function Q(e){if(!isNaN(parseFloat(e))&&isFinite(e))return O.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return O.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return O.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return O.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return O.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return O.Animation.ANIMATIONTYPE_COLOR4;case"Size":return O.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return O.Animation.ANIMATIONTYPE_MATRIX}return null}i(Q,"getAnimationTypeForObject");function Rr(e){return function(r,t){let o=r.constructor;o._NodesFromScene??=[],o._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(Rr,"nodeFromScene");function Nr(e,r=!1){return function(t,o){let n=t.constructor;n._NodesFromDescendants??=[],n._NodesFromDescendants.push({propertyKey:o,nodeName:e,directDescendantsOnly:r})}}i(Nr,"nodeFromDescendants");function Fr(e){return function(r,t){let o=r.constructor;o._AnimationGroups??=[],o._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(Fr,"animationGroupFromScene");function Vr(e,r){return function(t,o){let n=t.constructor;n._GuiFromAsset??=[],n._GuiFromAsset.push({propertyKey:o,pathInAssets:e,onGuiCreated:r})}}i(Vr,"guiFromAsset");function Lr(e){return function(r,t){let o=r.constructor;o._SoundsFromScene??=[],o._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(Lr,"soundFromScene");function _r(e,r=!1){return function(t,o){let n=t.constructor;n._ParticleSystemsFromScene??=[],n._ParticleSystemsFromScene.push({propertyKey:o,particleSystemName:e,directDescendantsOnly:r})}}i(_r,"particleSystemFromScene");function Br(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"boolean"}})}}i(Br,"visibleAsBoolean");function Gr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"string"}})}}i(Gr,"visibleAsString");function Kr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"number"}})}}i(Kr,"visibleAsNumber");function kr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"vector2"}})}}i(kr,"visibleAsVector2");function zr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"vector3"}})}}i(zr,"visibleAsVector3");function Yr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"color3"}})}}i(Yr,"visibleAsColor3");function $r(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"color4"}})}}i($r,"visibleAsColor4");function Wr(e,r,t){return function(o,n){let s=o.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:r,propertyKey:n,configuration:{...t,entityType:e,type:"entity"}})}}i(Wr,"visibleAsEntity");function Qr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"texture"}})}}i(Qr,"visibleAsTexture");function Hr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"keymap"}})}}i(Hr,"visibleAsKeyMap");function jr(e,r,t){return function(o,n){let s=o.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:r,propertyKey:n,configuration:{...t,assetType:e,type:"asset"}})}}i(jr,"visibleAsAsset");function Ur(e,r){return function(t,o){let n=t.constructor;n._PointerEvents??=[],n._PointerEvents.push({propertyKey:o,options:{mode:"global",...r??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(Ur,"onPointerEvent");function qr(e){return function(r,t){let o=r.constructor;o._KeyboardEvents??=[],o._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(qr,"onKeyboardEvent");function Jr(e){return function(r,t){let o=r.constructor;o._SpritesFromSpriteManager??=[],o._SpritesFromSpriteManager.push({propertyKey:t,spriteName:e})}}i(Jr,"spriteFromSpriteManager");function Zr(e){return function(r,t){let o=r.constructor;o._AnimationsFromSprite??=[],o._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(Zr,"animationFromSprite");var ae=require("babylonjs");function Qt(e,r){let t;switch(e){case ae.Animation.ANIMATIONTYPE_FLOAT:t=r.value;break;default:t=r.value.clone();break}return{value:t,frame:r.frame,interpolation:r.interpolation,inTangent:e===ae.Animation.ANIMATIONTYPE_FLOAT?r.inTangent:r.inTangent?.clone(),outTangent:e===ae.Animation.ANIMATIONTYPE_FLOAT?r.outTangent:r.outTangent?.clone()}}i(Qt,"cloneKey");function le(e,r){let t=r.split("."),o=e;for(let n=0;n<t.length;++n)o=o[t[n]];return o}i(le,"getPropertyValue");function ke(e,r,t){let o=null;e.onAnimationGroupPlayObservable.add(()=>{o=r.onAfterAnimationsObservable.add(()=>{t()})}),e.onAnimationGroupPauseObservable.add(()=>{o&&(r.onAfterAnimationsObservable.remove(o),o=null)}),e.onAnimationGroupEndObservable.add(()=>{o&&(r.onAfterAnimationsObservable.remove(o),o=null)})}i(ke,"registerAfterAnimationCallback");var M=require("babylonjs"),ce=require("babylonjs"),D=require("babylonjs");function Xr(e,r){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(t=>{let o=null,n=null;if(t.node?(o=r.getNodeById(t.node),o||(o=r.particleSystems?.find(a=>a.id===t.node)??null)):t.defaultRenderingPipeline&&(o=$()),t.propertyPath){let a=le(o,t.propertyPath);n=Q(a)}let s=null;return t.sound&&(s=re(t.sound,r)),{node:o,sound:s,propertyPath:t.propertyPath,defaultRenderingPipeline:t.defaultRenderingPipeline,animationGroup:t.animationGroup?r.getAnimationGroupByName(t.animationGroup):null,animationGroups:t.animationGroups,sounds:t.sounds,soundVolume:ze(t.soundVolume??[],M.Animation.ANIMATIONTYPE_FLOAT),keyFrameEvents:t.keyFrameEvents?.map(a=>{let m={...a};switch(a.data?.type){case"set-enabled":m.data={type:"set-enabled",value:a.data.value,node:r.getNodeById(a.data.node)};break;case"apply-impulse":m.data={type:"apply-impulse",radius:a.data.radius,mesh:r.getMeshById(a.data.mesh),force:D.Vector3.FromArray(a.data.force),contactPoint:D.Vector3.FromArray(a.data.contactPoint)};break}return m}),keyFrameAnimations:o&&n!==null&&ze(t.keyFrameAnimations??[],n)}})}}i(Xr,"parseCinematic");function T(e,r){if(e===null)return null;if(e!==void 0)switch(r){case M.Animation.ANIMATIONTYPE_FLOAT:return e;case M.Animation.ANIMATIONTYPE_VECTOR2:return D.Vector2.FromArray(e);case M.Animation.ANIMATIONTYPE_VECTOR3:return D.Vector3.FromArray(e);case M.Animation.ANIMATIONTYPE_QUATERNION:return D.Quaternion.FromArray(e);case M.Animation.ANIMATIONTYPE_COLOR3:return ce.Color3.FromArray(e);case M.Animation.ANIMATIONTYPE_COLOR4:return ce.Color4.FromArray(e);case M.Animation.ANIMATIONTYPE_MATRIX:return D.Matrix.FromArray(e)}}i(T,"parseCinematicKeyValue");function ze(e,r){return e?.map(t=>{let o=t.type==="key"?t:null;if(o)return{...o,value:T(o.value,r),inTangent:T(o.inTangent,r),outTangent:T(o.outTangent,r)};let n=t.type==="cut"?t:null;if(n)return{...n,key1:{...n.key1,value:T(n.key1.value,r),inTangent:T(n.key1.inTangent,r),outTangent:T(n.key1.outTangent,r)},key2:{...n.key2,value:T(n.key2.value,r),inTangent:T(n.key2.inTangent,r),outTangent:T(n.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${t.type}`)})}i(ze,"parseKeyFrameAnimations");function Ht(e,r){e.onEventObservable.notifyObservers(r.eventName)}i(Ht,"handleApplyEvent");function jt(e){e.node?.setEnabled(e.value)}i(jt,"handleSetEnabledEvent");var Ye=require("babylonjs"),Ut=Ye.Vector3.Zero();function qt(e,r){let t=r.mesh?[r.mesh]:e.meshes.filter(o=>o.physicsAggregate);r.radius&&(t=t.filter(o=>{let n=o.getBoundingInfo().boundingBox.centerWorld;return Ye.Vector3.Distance(n,r.contactPoint)<=r.radius})),t.forEach(o=>{if(o.physicsAggregate?.body){let n=r.contactPoint.subtract(o.getBoundingInfo().boundingBox.centerWorld);n.multiplyInPlace(r.force),o.physicsAggregate.body.setLinearVelocity(Ut),o.physicsAggregate.body.setAngularVelocity(Ut),o.physicsAggregate.body.applyImpulse(n.negateInPlace(),r.contactPoint)}})}i(qt,"handleApplyImpulseEvent");var Jt=require("babylonjs"),Zt=require("babylonjs"),H=class extends Zt.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new Jt.Observable;onEvent(r,t){this.onEventObservable.add(o=>{r===o&&t()})}};function $e(e){return e.type==="key"}i($e,"isCinematicKey");function j(e){return e.type==="cut"}i(j,"isCinematicKeyCut");function eo(e){return e.type==="event"}i(eo,"isCinematicKeyEvent");function to(e){return e.type==="group"}i(to,"isCinematicGroup");function ro(e){return e.type==="sound"}i(ro,"isCinematicSound");var Xt=require("babylonjs"),x=require("babylonjs"),U=require("babylonjs");function oo(e,r,t){let o=new H(e.name,r);return e.tracks.forEach(n=>{let s=n.animationGroup;if(s){let S=[];if(n.animationGroups?.forEach(d=>{s.targetedAnimations.forEach(y=>{let u=null;e:{let F=o.targetedAnimations.filter(J=>J.target===y.target);if(F.length){let J=F.find(er=>er.animation.targetProperty===y.animation.targetProperty);if(J){u=J.animation;break e}}u=y.animation.clone(),u.setKeys([]),u.name=Xt.Tools.RandomId(),u.framePerSecond=e.framesPerSecond}let b=u.getKeys(),v=y.animation.getKeys(),q=d.speed,me=e.framesPerSecond/y.animation.framePerSecond/q;v.forEach(F=>{F.frame>=d.startFrame&&F.frame<=d.endFrame&&b.push({...Qt(y.animation.dataType,F),frame:d.frame+F.frame*me})}),u.setKeys(b),o.addTargetedAnimation(u,y.target),S.push(u)})}),S.length&&(n.animationGroupWeight?.length??0)>=2){let d={weight:0},y=new x.Animation(`${s.name}-weights`,"weight",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),u=[];n.animationGroupWeight.forEach(b=>{j(b)?(u.push(b.key1),u.push(b.key2)):u.push(b)}),y.setKeys(u),o.addTargetedAnimation(y,d),ke(o,r,()=>{o.animatables.forEach(b=>{for(let v of b.getAnimations())if(S.includes(v.animation)){b.weight=d.weight;break}})})}}let a=n.sound,m=a?.getAudioBuffer();if(!t?.ignoreSounds&&a&&m&&n.sounds?.length){let S={dummy:0,volume:0},d=new x.Animation(a.name,"dummy",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=0;if(n.sounds?.forEach(u=>{let b=u.endFrame-u.startFrame;y=Math.max(y,u.frame+b),d.addEvent(new U.AnimationEvent(u.frame,v=>{let me=(v-u.frame+u.startFrame)/e.framesPerSecond;a.play(0,me)},!1)),d.addEvent(new U.AnimationEvent(u.frame+b,()=>{a.stop()}))}),d.setKeys([{frame:0,value:0},{frame:y,value:y}]),o.addTargetedAnimation(d,S),(n.soundVolume?.length??0)>=2){let u=new x.Animation(a.name,"volume",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),b=[];n.soundVolume.forEach(v=>{j(v)?(b.push(v.key1),b.push(v.key2)):b.push(v)}),u.setKeys(b),o.addTargetedAnimation(u,S),ke(o,r,()=>{a.setVolume(S.volume)})}}if(n.keyFrameEvents){let S={dummy:0},d=new x.Animation("events","dummy",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=0;n.keyFrameEvents?.forEach(u=>{y=Math.max(y,u.frame),d.addEvent(new U.AnimationEvent(u.frame,()=>{switch(u.data?.type){case"event":Ht(o,u.data);break;case"set-enabled":jt(u.data);break;case"apply-impulse":qt(r,u.data);break}}))}),d.setKeys([{frame:0,value:0},{frame:y+1,value:y+1}]),o.addTargetedAnimation(d,S)}let c=n.defaultRenderingPipeline?$():n.node;if(!c||!n.propertyPath||!n.keyFrameAnimations)return;let p=le(c,n.propertyPath),f=Q(p);if(f===null)return;let g=new x.Animation(n.propertyPath,n.propertyPath,60,f,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),I=[];n.keyFrameAnimations?.forEach(S=>{if($e(S))return I.push(S);j(S)&&(I.push(S.key1),I.push(S.key2),te(c)&&n.propertyPath==="position"&&g.addEvent(new U.AnimationEvent(S.key1.frame,()=>{let d=Ee();if(!d)return;let y=d.motionStrength;d.motionStrength=0,requestAnimationFrame(()=>{d.motionStrength=y})})))}),g.setKeys(I),o.addTargetedAnimation(g,c)}),o.normalize(),o}i(oo,"generateCinematicAnimationGroup");0&&(module.exports={Cinematic,_applyScriptsForObject,_preloadScriptsAssets,_registerScriptInstance,_removeRegisteredScriptInstance,animationFromSprite,animationGroupFromScene,applyScriptOnObject,configureEngineToUseCompressedTextures,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isParticleSystem,isPointLight,isScene,isSpotLight,isSprite,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,normalizeAtlasJson,onKeyboardEvent,onPointerEvent,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseKeyFrameAnimations,parseMotionBlurPostProcess,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseVLSPostProcess,particleSystemFromScene,playSpriteAnimationFromName,scriptAssetsCache,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setVLSPostProcessRef,soundFromScene,spriteFromSpriteManager,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
@@ -0,0 +1,21 @@
1
+ import { Observable } from "@babylonjs/core/Misc/observable";
2
+ import { AnimationGroup } from "@babylonjs/core/Animations/animationGroup";
3
+ export class Cinematic extends AnimationGroup {
4
+ /**
5
+ * Defines the observable used to notify observers when an event is raised during the cinematic playback.
6
+ */
7
+ onEventObservable = new Observable();
8
+ /**
9
+ * Registers and calls the given callback on the provided event name is emitted during the cinematic playback.
10
+ * @param eventName defines the name of the event to listen to
11
+ * @param callback defines the callback to call when the event is raised
12
+ */
13
+ onEvent(eventName, callback) {
14
+ this.onEventObservable.add((event) => {
15
+ if (eventName === event) {
16
+ callback();
17
+ }
18
+ });
19
+ }
20
+ }
21
+ //# sourceMappingURL=cinematic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cinematic.js","sourceRoot":"","sources":["../../../src/cinematic/cinematic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAE3E,MAAM,OAAO,SAAU,SAAQ,cAAc;IAC5C;;OAEG;IACI,iBAAiB,GAAuB,IAAI,UAAU,EAAU,CAAC;IAExE;;;;OAIG;IACI,OAAO,CAAC,SAAiB,EAAE,QAAoB;QACrD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACpC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACzB,QAAQ,EAAE,CAAC;YACZ,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -0,0 +1,4 @@
1
+ export function handleApplyEvent(cinematic, eventData) {
2
+ cinematic.onEventObservable.notifyObservers(eventData.eventName);
3
+ }
4
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../../src/cinematic/events/event.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,gBAAgB,CAAC,SAAoB,EAAE,SAAoB;IAC1E,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC"}
@@ -1,14 +1,16 @@
1
1
  import { Tools } from "@babylonjs/core/Misc/tools";
2
2
  import { Animation } from "@babylonjs/core/Animations/animation";
3
3
  import { AnimationEvent } from "@babylonjs/core/Animations/animationEvent";
4
- import { AnimationGroup } from "@babylonjs/core/Animations/animationGroup";
5
4
  import { isCamera } from "../tools/guards";
6
5
  import { getAnimationTypeForObject } from "../tools/animation";
7
6
  import { getMotionBlurPostProcess } from "../rendering/motion-blur";
8
7
  import { getDefaultRenderingPipeline } from "../rendering/default-pipeline";
8
+ import { handleApplyEvent } from "./events/event";
9
9
  import { handleSetEnabledEvent } from "./events/set-enabled";
10
10
  import { handleApplyImpulseEvent } from "./events/apply-impulse";
11
- import { cloneKey, getPropertyValue } from "./tools";
11
+ import { Cinematic } from "./cinematic";
12
+ import { isCinematicKey, isCinematicKeyCut } from "./guards";
13
+ import { cloneKey, getPropertyValue, registerAfterAnimationCallback } from "./tools";
12
14
  /**
13
15
  * Parses the given cinematic object and generates a new playable animation group.
14
16
  * @param cinematic defines the cinematic object to parse that was previously loaded.
@@ -16,11 +18,12 @@ import { cloneKey, getPropertyValue } from "./tools";
16
18
  * @param options defines the options to use when generating the animation group.
17
19
  */
18
20
  export function generateCinematicAnimationGroup(cinematic, scene, options) {
19
- const result = new AnimationGroup(cinematic.name, scene);
21
+ const result = new Cinematic(cinematic.name, scene);
20
22
  cinematic.tracks.forEach((track) => {
21
23
  // Animation groups
22
24
  const animationGroup = track.animationGroup;
23
25
  if (animationGroup) {
26
+ const groupedAnimations = [];
24
27
  track.animationGroups?.forEach((configuration) => {
25
28
  animationGroup.targetedAnimations.forEach((targetedAnimation) => {
26
29
  let animation = null;
@@ -52,14 +55,45 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
52
55
  });
53
56
  animation.setKeys(keys);
54
57
  result.addTargetedAnimation(animation, targetedAnimation.target);
58
+ groupedAnimations.push(animation);
55
59
  });
56
60
  });
61
+ // TODO: fix that
62
+ if (groupedAnimations.length && (track.animationGroupWeight?.length ?? 0) >= 2) {
63
+ const dummyObject = {
64
+ weight: 0,
65
+ };
66
+ const weightAnimation = new Animation(`${animationGroup.name}-weights`, "weight", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE, false);
67
+ const weightKeys = [];
68
+ track.animationGroupWeight.forEach((keyFrame) => {
69
+ if (isCinematicKeyCut(keyFrame)) {
70
+ weightKeys.push(keyFrame.key1);
71
+ weightKeys.push(keyFrame.key2);
72
+ }
73
+ else {
74
+ weightKeys.push(keyFrame);
75
+ }
76
+ });
77
+ weightAnimation.setKeys(weightKeys);
78
+ result.addTargetedAnimation(weightAnimation, dummyObject);
79
+ registerAfterAnimationCallback(result, scene, () => {
80
+ result.animatables.forEach((animatable) => {
81
+ for (const animation of animatable.getAnimations()) {
82
+ if (groupedAnimations.includes(animation.animation)) {
83
+ animatable.weight = dummyObject.weight;
84
+ break;
85
+ }
86
+ }
87
+ });
88
+ });
89
+ }
57
90
  }
58
91
  const sound = track.sound;
59
92
  const soundBuffer = sound?.getAudioBuffer();
60
93
  if (!options?.ignoreSounds && sound && soundBuffer && track.sounds?.length) {
61
94
  const dummyObject = {
62
95
  dummy: 0,
96
+ volume: 0,
63
97
  };
64
98
  const soundAnimation = new Animation(sound.name, "dummy", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE, false);
65
99
  let maxFrame = 0;
@@ -81,6 +115,24 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
81
115
  { frame: maxFrame, value: maxFrame },
82
116
  ]);
83
117
  result.addTargetedAnimation(soundAnimation, dummyObject);
118
+ if ((track.soundVolume?.length ?? 0) >= 2) {
119
+ const volumeAnimation = new Animation(sound.name, "volume", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE, false);
120
+ const volumeKeys = [];
121
+ track.soundVolume.forEach((keyFrame) => {
122
+ if (isCinematicKeyCut(keyFrame)) {
123
+ volumeKeys.push(keyFrame.key1);
124
+ volumeKeys.push(keyFrame.key2);
125
+ }
126
+ else {
127
+ volumeKeys.push(keyFrame);
128
+ }
129
+ });
130
+ volumeAnimation.setKeys(volumeKeys);
131
+ result.addTargetedAnimation(volumeAnimation, dummyObject);
132
+ registerAfterAnimationCallback(result, scene, () => {
133
+ sound.setVolume(dummyObject.volume);
134
+ });
135
+ }
84
136
  }
85
137
  if (track.keyFrameEvents) {
86
138
  const dummyObject = {
@@ -92,6 +144,9 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
92
144
  maxFrame = Math.max(maxFrame, configuration.frame);
93
145
  eventsAnimation.addEvent(new AnimationEvent(configuration.frame, () => {
94
146
  switch (configuration.data?.type) {
147
+ case "event":
148
+ handleApplyEvent(result, configuration.data);
149
+ break;
95
150
  case "set-enabled":
96
151
  handleSetEnabledEvent(configuration.data);
97
152
  break;
@@ -103,7 +158,7 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
103
158
  });
104
159
  eventsAnimation.setKeys([
105
160
  { frame: 0, value: 0 },
106
- { frame: maxFrame, value: maxFrame },
161
+ { frame: maxFrame + 1, value: maxFrame + 1 },
107
162
  ]);
108
163
  result.addTargetedAnimation(eventsAnimation, dummyObject);
109
164
  }
@@ -119,16 +174,14 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
119
174
  const animation = new Animation(track.propertyPath, track.propertyPath, 60, animationType, Animation.ANIMATIONLOOPMODE_CYCLE, false);
120
175
  const keys = [];
121
176
  track.keyFrameAnimations?.forEach((keyFrame) => {
122
- const animationKey = keyFrame.type === "key" ? keyFrame : null;
123
- if (animationKey) {
124
- return keys.push(animationKey);
177
+ if (isCinematicKey(keyFrame)) {
178
+ return keys.push(keyFrame);
125
179
  }
126
- const animationKeyCut = keyFrame.type === "cut" ? keyFrame : null;
127
- if (animationKeyCut) {
128
- keys.push(animationKeyCut.key1);
129
- keys.push(animationKeyCut.key2);
180
+ if (isCinematicKeyCut(keyFrame)) {
181
+ keys.push(keyFrame.key1);
182
+ keys.push(keyFrame.key2);
130
183
  if (isCamera(node) && track.propertyPath === "position") {
131
- animation.addEvent(new AnimationEvent(animationKeyCut.key1.frame, () => {
184
+ animation.addEvent(new AnimationEvent(keyFrame.key1.frame, () => {
132
185
  const motionBlur = getMotionBlurPostProcess();
133
186
  if (!motionBlur) {
134
187
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cinematic/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cinematic/generate.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ export function parseCinematic(data, scene) {
43
43
  animationGroup: track.animationGroup ? scene.getAnimationGroupByName(track.animationGroup) : null,
44
44
  animationGroups: track.animationGroups,
45
45
  sounds: track.sounds,
46
+ soundVolume: parseKeyFrameAnimations(track.soundVolume ?? [], Animation.ANIMATIONTYPE_FLOAT),
46
47
  keyFrameEvents: track.keyFrameEvents?.map((event) => {
47
48
  const result = {
48
49
  ...event,
@@ -67,38 +68,7 @@ export function parseCinematic(data, scene) {
67
68
  }
68
69
  return result;
69
70
  }),
70
- keyFrameAnimations: node &&
71
- animationType !== null &&
72
- track.keyFrameAnimations?.map((keyFrame) => {
73
- const animationKey = keyFrame.type === "key" ? keyFrame : null;
74
- if (animationKey) {
75
- return {
76
- ...animationKey,
77
- value: parseCinematicKeyValue(animationKey.value, animationType),
78
- inTangent: parseCinematicKeyValue(animationKey.inTangent, animationType),
79
- outTangent: parseCinematicKeyValue(animationKey.outTangent, animationType),
80
- };
81
- }
82
- const animationKeyCut = keyFrame.type === "cut" ? keyFrame : null;
83
- if (animationKeyCut) {
84
- return {
85
- ...animationKeyCut,
86
- key1: {
87
- ...animationKeyCut.key1,
88
- value: parseCinematicKeyValue(animationKeyCut.key1.value, animationType),
89
- inTangent: parseCinematicKeyValue(animationKeyCut.key1.inTangent, animationType),
90
- outTangent: parseCinematicKeyValue(animationKeyCut.key1.outTangent, animationType),
91
- },
92
- key2: {
93
- ...animationKeyCut.key2,
94
- value: parseCinematicKeyValue(animationKeyCut.key2.value, animationType),
95
- inTangent: parseCinematicKeyValue(animationKeyCut.key2.inTangent, animationType),
96
- outTangent: parseCinematicKeyValue(animationKeyCut.key2.outTangent, animationType),
97
- },
98
- };
99
- }
100
- throw new Error(`Unknown key frame type: ${keyFrame.type}`);
101
- }),
71
+ keyFrameAnimations: node && animationType !== null && parseKeyFrameAnimations(track.keyFrameAnimations ?? [], animationType),
102
72
  };
103
73
  }),
104
74
  };
@@ -133,4 +103,36 @@ export function parseCinematicKeyValue(value, type) {
133
103
  return Matrix.FromArray(value);
134
104
  }
135
105
  }
106
+ export function parseKeyFrameAnimations(keyFrameAnimations, animationType) {
107
+ return keyFrameAnimations?.map((keyFrame) => {
108
+ const animationKey = keyFrame.type === "key" ? keyFrame : null;
109
+ if (animationKey) {
110
+ return {
111
+ ...animationKey,
112
+ value: parseCinematicKeyValue(animationKey.value, animationType),
113
+ inTangent: parseCinematicKeyValue(animationKey.inTangent, animationType),
114
+ outTangent: parseCinematicKeyValue(animationKey.outTangent, animationType),
115
+ };
116
+ }
117
+ const animationKeyCut = keyFrame.type === "cut" ? keyFrame : null;
118
+ if (animationKeyCut) {
119
+ return {
120
+ ...animationKeyCut,
121
+ key1: {
122
+ ...animationKeyCut.key1,
123
+ value: parseCinematicKeyValue(animationKeyCut.key1.value, animationType),
124
+ inTangent: parseCinematicKeyValue(animationKeyCut.key1.inTangent, animationType),
125
+ outTangent: parseCinematicKeyValue(animationKeyCut.key1.outTangent, animationType),
126
+ },
127
+ key2: {
128
+ ...animationKeyCut.key2,
129
+ value: parseCinematicKeyValue(animationKeyCut.key2.value, animationType),
130
+ inTangent: parseCinematicKeyValue(animationKeyCut.key2.inTangent, animationType),
131
+ outTangent: parseCinematicKeyValue(animationKeyCut.key2.outTangent, animationType),
132
+ },
133
+ };
134
+ }
135
+ throw new Error(`Unknown key frame type: ${keyFrame.type}`);
136
+ });
137
+ }
136
138
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cinematic/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cinematic/parse.ts"],"names":[],"mappings":"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"}
@@ -32,4 +32,24 @@ export function getPropertyValue(object, property) {
32
32
  }
33
33
  return value;
34
34
  }
35
+ export function registerAfterAnimationCallback(cinematic, scene, callback) {
36
+ let sceneRenderObserver = null;
37
+ cinematic.onAnimationGroupPlayObservable.add(() => {
38
+ sceneRenderObserver = scene.onAfterAnimationsObservable.add(() => {
39
+ callback();
40
+ });
41
+ });
42
+ cinematic.onAnimationGroupPauseObservable.add(() => {
43
+ if (sceneRenderObserver) {
44
+ scene.onAfterAnimationsObservable.remove(sceneRenderObserver);
45
+ sceneRenderObserver = null;
46
+ }
47
+ });
48
+ cinematic.onAnimationGroupEndObservable.add(() => {
49
+ if (sceneRenderObserver) {
50
+ scene.onAfterAnimationsObservable.remove(sceneRenderObserver);
51
+ sceneRenderObserver = null;
52
+ }
53
+ });
54
+ }
35
55
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cinematic/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAGjE,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,GAAkB;IAC5D,IAAI,KAAU,CAAC;IACf,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,mBAAmB;YACjC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YAClB,MAAM;QACP;YACC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM;IACR,CAAC;IAED,OAAO;QACN,KAAK;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,SAAS,EAAE,QAAQ,KAAK,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE;QAC9F,UAAU,EAAE,QAAQ,KAAK,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE;KACjG,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAW,EAAE,QAAgB;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,KAAK,GAAG,MAAM,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACvC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cinematic/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAKjE,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,GAAkB;IAC5D,IAAI,KAAU,CAAC;IACf,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,mBAAmB;YACjC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YAClB,MAAM;QACP;YACC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM;IACR,CAAC;IAED,OAAO;QACN,KAAK;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,SAAS,EAAE,QAAQ,KAAK,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE;QAC9F,UAAU,EAAE,QAAQ,KAAK,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE;KACjG,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAW,EAAE,QAAgB;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,KAAK,GAAG,MAAM,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACvC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,SAAoB,EAAE,KAAY,EAAE,QAAoB;IACtG,IAAI,mBAAmB,GAA2B,IAAI,CAAC;IAEvD,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,GAAG,EAAE;QACjD,mBAAmB,GAAG,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,QAAQ,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,+BAA+B,CAAC,GAAG,CAAC,GAAG,EAAE;QAClD,IAAI,mBAAmB,EAAE,CAAC;YACzB,KAAK,CAAC,2BAA2B,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC9D,mBAAmB,GAAG,IAAI,CAAC;QAC5B,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,6BAA6B,CAAC,GAAG,CAAC,GAAG,EAAE;QAChD,IAAI,mBAAmB,EAAE,CAAC;YACzB,KAAK,CAAC,2BAA2B,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC9D,mBAAmB,GAAG,IAAI,CAAC;QAC5B,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}