babylonjs-editor-tools 5.2.0 → 5.2.2

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 (43) 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 +92 -44
  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/decorators/apply.js +4 -1
  13. package/build/src/decorators/apply.js.map +1 -1
  14. package/build/src/index.js +1 -0
  15. package/build/src/index.js.map +1 -1
  16. package/build/src/loading/loader.js +12 -5
  17. package/build/src/loading/loader.js.map +1 -1
  18. package/build/src/loading/script.js +7 -2
  19. package/build/src/loading/script.js.map +1 -1
  20. package/build/src/loading/shadows.js +26 -16
  21. package/build/src/loading/shadows.js.map +1 -1
  22. package/build/src/loading/sound.js +17 -10
  23. package/build/src/loading/sound.js.map +1 -1
  24. package/build/src/loading/sprite-manager.js +41 -34
  25. package/build/src/loading/sprite-manager.js.map +1 -1
  26. package/build/src/loading/sprite-map.js +46 -39
  27. package/build/src/loading/sprite-map.js.map +1 -1
  28. package/build/src/loading/texture.js +51 -46
  29. package/build/src/loading/texture.js.map +1 -1
  30. package/declaration/src/cinematic/cinematic.d.ts +14 -0
  31. package/declaration/src/cinematic/events/event.d.ts +5 -0
  32. package/declaration/src/cinematic/generate.d.ts +2 -2
  33. package/declaration/src/cinematic/parse.d.ts +2 -1
  34. package/declaration/src/cinematic/tools.d.ts +3 -0
  35. package/declaration/src/cinematic/typings.d.ts +3 -0
  36. package/declaration/src/index.d.ts +1 -0
  37. package/declaration/src/loading/loader.d.ts +12 -7
  38. package/declaration/src/loading/shadows.d.ts +1 -1
  39. package/declaration/src/loading/sound.d.ts +1 -1
  40. package/declaration/src/loading/sprite-manager.d.ts +1 -1
  41. package/declaration/src/loading/sprite-map.d.ts +1 -1
  42. package/declaration/src/loading/texture.d.ts +1 -1
  43. 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 X=Object.defineProperty;var Zt=Object.getOwnPropertyDescriptor;var Xt=Object.getOwnPropertyNames;var er=Object.prototype.hasOwnProperty;var i=(e,r)=>X(e,"name",{value:r,configurable:!0});var tr=(e,r)=>{for(var t in r)X(e,t,{get:r[t],enumerable:!0})},rr=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Xt(r))!er.call(e,n)&&n!==t&&X(e,n,{get:()=>r[n],enumerable:!(o=Zt(r,n))||o.enumerable});return e};var or=e=>rr(X({},"__esModule",{value:!0}),e);var to={};tr(to,{Cinematic:()=>q,_applyScriptsForObject:()=>L,_preloadScriptsAssets:()=>Ve,_registerScriptInstance:()=>Le,_removeRegisteredScriptInstance:()=>ht,animationFromSprite:()=>Ur,animationGroupFromScene:()=>wr,applyScriptOnObject:()=>Ar,configureEngineToUseCompressedTextures:()=>Or,configureShadowMapRefreshRate:()=>ye,configureShadowMapRenderListPredicate:()=>de,createDefaultRenderingPipeline:()=>ct,createMotionBlurPostProcess:()=>nt,createSSAO2RenderingPipeline:()=>rt,createSSRRenderingPipeline:()=>et,createVLSPostProcess:()=>Ze,defaultPipelineCameraConfigurations:()=>Y,disposeDefaultRenderingPipeline:()=>we,disposeMotionBlurPostProcess:()=>Te,disposeSSAO2RenderingPipeline:()=>Ce,disposeSSRRenderingPipeline:()=>Pe,disposeVLSPostProcess:()=>Se,forceCompileAllSceneMaterials:()=>Tr,generateCinematicAnimationGroup:()=>eo,getAllScriptsByClassForObject:()=>bt,getAnimationTypeForObject:()=>U,getDefaultRenderingPipeline:()=>H,getMotionBlurPostProcess:()=>Ee,getPowerOfTwoUntil:()=>O,getSSAO2RenderingPipeline:()=>hr,getSSRRenderingPipeline:()=>yr,getScriptByClassForObject:()=>Cr,getVLSPostProcess:()=>gr,guiFromAsset:()=>Rr,isAbstractMesh:()=>ee,isAnyParticleSystem:()=>fe,isArcRotateCamera:()=>ar,isBone:()=>nr,isCamera:()=>re,isCinematicGroup:()=>Zr,isCinematicKey:()=>We,isCinematicKeyCut:()=>J,isCinematicKeyEvent:()=>Jr,isCinematicSound:()=>Xr,isDirectionalLight:()=>cr,isFreeCamera:()=>sr,isGPUParticleSystem:()=>fr,isGroundMesh:()=>ir,isHemisphericLight:()=>pr,isInstancedMesh:()=>Q,isLight:()=>Qe,isMesh:()=>N,isNode:()=>G,isParticleSystem:()=>ur,isPointLight:()=>lr,isScene:()=>ue,isSpotLight:()=>mr,isSprite:()=>ge,isTexture:()=>pe,isTransformNode:()=>te,loadMaterialFromFile:()=>Er,loadScene:()=>vr,motionBlurPostProcessCameraConfigurations:()=>z,nodeFromDescendants:()=>Mr,nodeFromScene:()=>Dr,normalizeAtlasJson:()=>Ge,onKeyboardEvent:()=>Hr,onPointerEvent:()=>Qr,parseCinematic:()=>qr,parseCinematicKeyValue:()=>D,parseDefaultRenderingPipeline:()=>Ne,parseKeyFrameAnimations:()=>Ye,parseMotionBlurPostProcess:()=>De,parseSSAO2RenderingPipeline:()=>ve,parseSSRRenderingPipeline:()=>Ae,parseVLSPostProcess:()=>be,particleSystemFromScene:()=>Fr,playSpriteAnimationFromName:()=>xr,scriptAssetsCache:()=>_,scriptsDictionary:()=>F,serializeDefaultRenderingPipeline:()=>Re,serializeMotionBlurPostProcess:()=>Oe,serializeSSAO2RenderingPipeline:()=>xe,serializeSSRRenderingPipeline:()=>Ie,serializeVLSPostProcess:()=>he,setDefaultRenderingPipelineRef:()=>Ir,setMotionBlurPostProcessRef:()=>Pr,setSSAO2RenderingPipelineRef:()=>br,setSSRRenderingPipelineRef:()=>Sr,setVLSPostProcessRef:()=>dr,soundFromScene:()=>Nr,spriteFromSpriteManager:()=>jr,ssaoRenderingPipelineCameraConfigurations:()=>k,ssrRenderingPipelineCameraConfigurations:()=>K,visibleAsAsset:()=>Wr,visibleAsBoolean:()=>Lr,visibleAsColor3:()=>Kr,visibleAsColor4:()=>kr,visibleAsEntity:()=>zr,visibleAsKeyMap:()=>$r,visibleAsNumber:()=>_r,visibleAsString:()=>Vr,visibleAsTexture:()=>Yr,visibleAsVector2:()=>Gr,visibleAsVector3:()=>Br,vlsPostProcessCameraConfigurations:()=>B});module.exports=or(to);function ee(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(ee,"isAbstractMesh");function N(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(N,"isMesh");function Q(e){return e.getClassName?.()==="InstancedMesh"}i(Q,"isInstancedMesh");function nr(e){return e.getClassName?.()==="Bone"}i(nr,"isBone");function ir(e){return e.getClassName?.()==="GroundMesh"}i(ir,"isGroundMesh");function te(e){return e.getClassName?.()==="TransformNode"}i(te,"isTransformNode");function pe(e){return e?.getClassName?.()==="Texture"}i(pe,"isTexture");function re(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(re,"isCamera");function sr(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(sr,"isFreeCamera");function ar(e){return e.getClassName?.()==="ArcRotateCamera"}i(ar,"isArcRotateCamera");function lr(e){return e.getClassName?.()==="PointLight"}i(lr,"isPointLight");function cr(e){return e.getClassName?.()==="DirectionalLight"}i(cr,"isDirectionalLight");function mr(e){return e.getClassName?.()==="SpotLight"}i(mr,"isSpotLight");function pr(e){return e.getClassName?.()==="HemisphericLight"}i(pr,"isHemisphericLight");function Qe(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(Qe,"isLight");function G(e){return ee(e)||te(e)||Qe(e)||re(e)}i(G,"isNode");function ue(e){return e.getClassName?.()==="Scene"}i(ue,"isScene");function ur(e){return e.getClassName?.()==="ParticleSystem"}i(ur,"isParticleSystem");function fr(e){return e.getClassName?.()==="GPUParticleSystem"}i(fr,"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 He=require("babylonjs"),je=require("babylonjs");function de(e){e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=o=>He.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??je.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(ye,"configureShadowMapRefreshRate");var Ue=require("babylonjs"),qe=require("babylonjs"),Je=require("babylonjs"),C=null,B=new Map;function gr(){return C}i(gr,"getVLSPostProcess");function dr(e){C=e}i(dr,"setVLSPostProcessRef");function Se(e){C&&e.activeCamera&&(C.dispose(e.activeCamera),C=null)}i(Se,"disposeVLSPostProcess");function Ze(e,r){return r??=e.meshes.find(t=>N(t)),C=new Je.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,r,100,qe.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),C}i(Ze,"createVLSPostProcess");function he(){return C?{meshId:C.mesh?.id,exposure:C.exposure,decay:C.decay,weight:C.weight,density:C.density,invert:C.invert,useCustomMeshPosition:C.useCustomMeshPosition,customMeshPosition:C.customMeshPosition.asArray()}:null}i(he,"serializeVLSPostProcess");function be(e,r){let t=null;if(r.meshId){let n=e.getMeshById(r.meshId);n&&N(n)&&(t=n)}let o=Ze(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(Ue.Vector3.FromArray(r.customMeshPosition)),o}i(be,"parseVLSPostProcess");var Xe=require("babylonjs"),y=null,K=new Map;function yr(){return y}i(yr,"getSSRRenderingPipeline");function Sr(e){y=e}i(Sr,"setSSRRenderingPipelineRef");function Pe(){y&&(y.dispose(),y=null)}i(Pe,"disposeSSRRenderingPipeline");function et(e,r){return y=new Xe.SSRRenderingPipeline("SSRRenderingPipeline",e,[r]),y.samples=4,y}i(et,"createSSRRenderingPipeline");function Ie(){return y?{samples:y.samples,step:y.step,thickness:y.thickness,strength:y.strength,reflectionSpecularFalloffExponent:y.reflectionSpecularFalloffExponent,maxSteps:y.maxSteps,maxDistance:y.maxDistance,roughnessFactor:y.roughnessFactor,reflectivityThreshold:y.reflectivityThreshold,blurDispersionStrehgth:y.blurDispersionStrength,clipToFrustum:y.clipToFrustum,enableSmoothReflections:y.enableSmoothReflections,enableAutomaticThicknessComputation:y.enableAutomaticThicknessComputation,attenuateFacingCamera:y.attenuateFacingCamera,attenuateScreenBorders:y.attenuateScreenBorders,attenuateIntersectionDistance:y.attenuateIntersectionDistance,attenuateBackfaceReflection:y.attenuateBackfaceReflection,blurDownsample:y.blurDownsample,selfCollisionNumSkip:y.selfCollisionNumSkip,ssrDownsample:y.ssrDownsample,backfaceDepthTextureDownsample:y.backfaceDepthTextureDownsample}:null}i(Ie,"serializeSSRRenderingPipeline");function Ae(e,r,t){if(y)return y;let o=et(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 tt=require("babylonjs"),b=null,k=new Map;function hr(){return b}i(hr,"getSSAO2RenderingPipeline");function br(e){b=e}i(br,"setSSAO2RenderingPipelineRef");function Ce(){b&&(b.dispose(),b=null)}i(Ce,"disposeSSAO2RenderingPipeline");function rt(e,r){return b=new tt.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[r]),b.samples=4,b}i(rt,"createSSAO2RenderingPipeline");function xe(){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(xe,"serializeSSAO2RenderingPipeline");function ve(e,r,t){if(b)return b;let o=rt(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 ot=require("babylonjs"),v=null,z=new Map;function Ee(){return v}i(Ee,"getMotionBlurPostProcess");function Pr(e){v=e}i(Pr,"setMotionBlurPostProcessRef");function Te(){v&&(v.dispose(),v=null)}i(Te,"disposeMotionBlurPostProcess");function nt(e,r){return v=new ot.MotionBlurPostProcess("MotionBlurPostProcess",e,1,r),v.motionStrength=1,v.isObjectBased=!0,v}i(nt,"createMotionBlurPostProcess");function Oe(){return v?{isObjectBased:v.isObjectBased,motionStrength:v.motionStrength,motionBlurSamples:v.motionBlurSamples}:null}i(Oe,"serializeMotionBlurPostProcess");function De(e,r,t){if(v)return v;let o=nt(e,r);return o.isObjectBased=t.isObjectBased,o.motionStrength=t.motionStrength,o.motionBlurSamples=t.motionBlurSamples,o}i(De,"parseMotionBlurPostProcess");var it=require("babylonjs"),Me=require("babylonjs"),st=require("babylonjs"),at=require("babylonjs"),lt=require("babylonjs"),l=null,Y=new Map;function H(){return l}i(H,"getDefaultRenderingPipeline");function Ir(e){l=e}i(Ir,"setDefaultRenderingPipelineRef");function we(){l&&(l.dispose(),l=null)}i(we,"disposeDefaultRenderingPipeline");function ct(e,r){return l=new lt.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[r]),l.samples=4,l.depthOfField.lensSize=512,l.depthOfField.fStop=.25,l.depthOfField.focusDistance=55e3,l}i(ct,"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=ct(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=it.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 at.ColorGradingTexture(a,e),s.level=t.colorGradingTexture.level}else{let a=st.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 Gn(e){k.set(e,xe()),B.set(e,he()),K.set(e,Ie()),z.set(e,Oe()),Y.set(e,Re())}i(Gn,"saveRenderingConfigurationForCamera");function mt(e,r){Ce(),Se(e.getScene()),Pe(),Te(),we();let t=k.get(e);t&&ve(e.getScene(),e,t);let o=B.get(e);o&&be(e.getScene(),o);let n=K.get(e);n&&Ae(e.getScene(),e,n);let s=z.get(e);s&&De(e.getScene(),e,s);let a=Y.get(e);a&&Ne(e.getScene(),e,a,r)}i(mt,"applyRenderingConfigurationForCamera");var j=require("babylonjs"),pt=require("babylonjs");function ut(e){let r=e.metadata?.physicsAggregate;if(!r)return;let t;N(e)?t=e:Q(e)&&(t=e.sourceMesh);let o=new pt.PhysicsAggregate(e,r.shape.type,{mesh:t,mass:r.massProperties.mass});o.body.setMassProperties({mass:r.massProperties.mass,inertia:r.massProperties.inertia?j.Vector3.FromArray(r.massProperties.inertia):void 0,centerOfMass:r.massProperties.centerOfMass?j.Vector3.FromArray(r.massProperties.centerOfMass):void 0,inertiaOrientation:r.massProperties.inertiaOrientation?j.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(ut,"configurePhysicsAggregate");function ft(e,r){(Array.isArray(r)?r:[]).forEach(o=>{let n=e.getCameraById(o.cameraId);n&&(o.ssao2RenderingPipeline&&k.set(n,o.ssao2RenderingPipeline),o.vlsPostProcess&&B.set(n,o.vlsPostProcess),o.ssrRenderingPipeline&&K.set(n,o.ssrRenderingPipeline),o.motionBlurPostProcess&&z.set(n,o.motionBlurPostProcess),o.defaultRenderingPipeline&&Y.set(n,o.defaultRenderingPipeline))})}i(ft,"applyRenderingConfigurations");function oe(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(oe,"getSoundById");var gt=require("babylonjs"),ne=require("babylonjs"),dt=require("babylonjs"),ie=require("babylonjs"),yt=require("babylonjs"),St=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(),P=St.AdvancedDynamicTexture.CreateFullscreenUI(g.name,!0,e);P.parseSerializedObject(g.content,!1),o[c.propertyKey.toString()]=P,c.onGuiCreated?.(o,P)}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??[]).forEach(async c=>{let p=c.propertyKey.toString(),f=t.values;if(!f)throw new Error(`No values found for script with key "${t.key}".`);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]=ie.Vector2.FromArray(g);break;case"vector3":o[p]=ie.Vector3.FromArray(g);break;case"color3":o[p]=ne.Color3.FromArray(g);break;case"color4":o[p]=ne.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]=oe(g,e);break;case"particleSystem":o[p]=e.particleSystems?.find(u=>u.id===g)??null;break}break;case"texture":g&&(o[p]=dt.Texture.Parse(g,e,n));break;case"asset":if(g){let u=c.configuration.assetType,d=_.get(g);switch(u){case"json":o[p]=d;break;case"nodeParticleSystemSet":let h=yt.NodeParticleSystemSet.Parse(d);o[p]=h;break;case"material":o[p]=gt.Material.Parse(d,e,n);break}}}}});let a=null,m=null;if(s._PointerEvents?.length){if(s._PointerEvents.find(f=>f.options.mode==="attachedMeshOnly")&&!ee(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")&&!G(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(P=>{if(!P.eventTypes.includes(f.type))return;let u=P.propertyKey.toString();if(P.options.mode==="global")return o[u]?.(f);g=f.pickInfo,g||(g=e.pick(e.pointerX,e.pointerY,h=>h.isVisible&&h.isPickable&&h.isEnabled(!0)&&!h._masterMesh,!1));let d=g.pickedMesh;if(d&&(P.options.mode==="attachedMeshOnly"&&d===r||P.options.mode==="includeDescendants"&&G(r)&&[r,...r.getDescendants(!1)].find(A=>A===d)))return o[u]?.(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(!te(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 _=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=>{if(s.values)for(let a in s.values){if(!s.values.hasOwnProperty(a))continue;let m=s.values[a];m.type==="asset"&&m.value&&_.set(m.value,null)}});let n=[];_.forEach((s,a)=>{_.get(a)||n.push(new Promise(async m=>{try{let p=await(await fetch(`${r}${a}`)).json();_.set(a,p)}catch(c){console.error(c)}m()}))}),await Promise.all(n)}i(Ve,"_preloadScriptsAssets");function L(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))),Le(r,a,n.key,m)}),r.metadata.scripts=void 0)}i(L,"_applyScriptsForObject");function Ar(e,r,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let o=new r(e),n={};return Fe(t,e,{values:{}},o,""),o.onStart&&(n.onStartObserver=t.onBeforeRenderObservable.addOnce(()=>o.onStart())),o.onUpdate&&t.onBeforeRenderObservable.add(()=>o.onUpdate()),Le(e,o,"runtime",n),o}i(Ar,"applyScriptOnObject");var F=new Map;function Le(e,r,t,o){let n={key:t,observers:o,instance:r};F.has(e)?F.get(e).push(n):F.set(e,[n]),(G(e)||fe(e)||ue(e))&&e.onDisposeObservable.addOnce(()=>{F.get(e)?.forEach(s=>{ht(e,s)}),F.delete(e)})}i(Le,"_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=F.get(e),o=t?.indexOf(r)??-1;o!==-1&&t?.splice(o,1)}i(ht,"_removeRegisteredScriptInstance");function bt(e,r){return F.get(e)?.filter(n=>n.instance.constructor===r)?.map(n=>n.instance)??null}i(bt,"getAllScriptsByClassForObject");function Cr(e,r){return bt(e,r)?.[0]??null}i(Cr,"getScriptByClassForObject");var It=require("babylonjs"),se=require("babylonjs"),Pt=!1;function At(){if(Pt)return;Pt=!0;let e=(0,se.GetParser)(It.SceneComponentConstants.NAME_AUDIO);(0,se.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 O(e){let r=1;for(;r<=e;)r<<=1;return r>>1}i(O,"getPowerOfTwoUntil");var _e=require("babylonjs"),Ct=!1;function xt(){if(Ct)return;Ct=!0;let e=_e.SerializationHelper._TextureParser;_e.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===O(n)||s===O(s),m="";switch(t.loadingTexturesQuality){case"medium":let d=n*.66>>0,h=s*.66>>0;a&&(d=O(d),h=O(h)),m=`_${d}_${h}`;break;case"low":case"very-low":let S=n*.33>>0,A=s*.33>>0;a&&(S=O(S),A=O(A)),m=`_${S}_${A}`;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(),u=`${f.replace(`.${g}`,"")}${m}.${g}`;return p.push(u),r.name=p.join("/"),e(r,t,o)}}i(xt,"registerTextureParser");var Et=require("babylonjs"),ae=require("babylonjs"),vt=!1;function Tt(){if(vt)return;vt=!0;let e=(0,ae.GetParser)(Et.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,ae.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,O(s.mapSize))}),e?.(r,t,o,n)})}i(Tt,"registerShadowGeneratorParser");function Ge(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(Ge,"normalizeAtlasJson");function xr(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(xr,"playSpriteAnimationFromName");var Dt=require("babylonjs"),Mt=require("babylonjs"),wt=require("babylonjs"),Rt=require("babylonjs"),Be=require("babylonjs"),$=require("babylonjs"),Nt=require("babylonjs"),Ot=!1;function Ft(){Ot||(Ot=!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);Ge(c);let p=`${Dt.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:$.Vector2.FromArray(n.options.stageSize??[10,1]),outputSize:$.Vector2.FromArray(n.options.outputSize??[100,100]),colorMultiply:$.Vector3.FromArray(n.options.colorMultiply??[1,1,1]),flipU:!0},r);n.tiles.forEach(u=>{for(let d=0,h=u.repeatCount.x+1;d<h;++d)for(let S=0,A=u.repeatCount.y+1;S<A;++S){let T=d*(u.repeatOffset.x+1),x=S*(u.repeatOffset.y+1);g.changeTiles(u.layer,new $.Vector2(u.position.x+T,(g.options.stageSize?.y??0)-1-u.position.y-x),u.tile)}});let P=g._output;P.parent=s,s.spriteMap=g})})}))}i(Ft,"registerSpriteMapParser");var _t=require("babylonjs"),Gt=require("babylonjs"),Bt=require("babylonjs"),Ke=require("babylonjs"),Kt=require("babylonjs");function Lt(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=Gt.Sprite.Parse(t,e);o.uniqueId=t.uniqueId,o.metadata=t.metadata}}i(Lt,"parseSerializedSpriteManager");var Vt=!1;function kt(){Vt||(Vt=!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 Bt.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 Ke.SpriteManager(s.name,p,1e3,64,r,void 0,void 0,!0,c);s.spriteManager=f,n.spriteManager&&Lt(f,n.spriteManager)})}else if(n.spriteManager?.textureUrl){let a=`${o}${n.spriteManager.textureUrl}`,m=new Ke.SpriteManager(s.name,a,1e3,{width:n.spriteManager.cellWidth,height:n.spriteManager.cellHeight},r,void 0,void 0,!1);s.spriteManager=m,n.spriteManager&&Lt(m,n.spriteManager)}}})}))}i(kt,"registerSpriteManagerParser");var zt=require("babylonjs"),ke=require("babylonjs"),Yt=require("babylonjs"),$t=require("babylonjs");async function vr(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=>N(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&&(ft(t,t.metadata.rendering),t.activeCamera&&mt(t.activeCamera,e)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(zt.Vector3.FromArray(t.metadata?.physicsGravity)),L(t,t,o,e),t.transformNodes.forEach(a=>{L(t,a,o,e)}),t.meshes.forEach(a=>{ut(a),L(t,a,o,e)}),t.lights.forEach(a=>{L(t,a,o,e)}),t.cameras.forEach(a=>{L(t,a,o,e)}),t.spriteManagers?.forEach(a=>{a.sprites.forEach(m=>{L(t,m,o,e)})})}i(vr,"loadScene");var Wt=require("babylonjs");async function Er(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(Er,"loadMaterialFromFile");function Tr(e){return Promise.all(e.materials.map(async r=>{let t=r.getBindedMeshes();await Promise.all(t.map(async o=>{Q(o)||await r.forceCompilationAsync(o,{clipPlane:!!e.clipPlane,useInstances:o.hasInstances})}))}))}i(Tr,"forceCompileAllSceneMaterials");function Or(e){e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(Or,"configureEngineToUseCompressedTextures");var w=require("babylonjs");function U(e){if(!isNaN(parseFloat(e))&&isFinite(e))return w.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return w.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return w.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return w.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return w.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return w.Animation.ANIMATIONTYPE_COLOR4;case"Size":return w.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return w.Animation.ANIMATIONTYPE_MATRIX}return null}i(U,"getAnimationTypeForObject");function Dr(e){return function(r,t){let o=r.constructor;o._NodesFromScene??=[],o._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(Dr,"nodeFromScene");function Mr(e,r=!1){return function(t,o){let n=t.constructor;n._NodesFromDescendants??=[],n._NodesFromDescendants.push({propertyKey:o,nodeName:e,directDescendantsOnly:r})}}i(Mr,"nodeFromDescendants");function wr(e){return function(r,t){let o=r.constructor;o._AnimationGroups??=[],o._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(wr,"animationGroupFromScene");function Rr(e,r){return function(t,o){let n=t.constructor;n._GuiFromAsset??=[],n._GuiFromAsset.push({propertyKey:o,pathInAssets:e,onGuiCreated:r})}}i(Rr,"guiFromAsset");function Nr(e){return function(r,t){let o=r.constructor;o._SoundsFromScene??=[],o._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(Nr,"soundFromScene");function Fr(e,r=!1){return function(t,o){let n=t.constructor;n._ParticleSystemsFromScene??=[],n._ParticleSystemsFromScene.push({propertyKey:o,particleSystemName:e,directDescendantsOnly:r})}}i(Fr,"particleSystemFromScene");function Lr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"boolean"}})}}i(Lr,"visibleAsBoolean");function Vr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"string"}})}}i(Vr,"visibleAsString");function _r(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"number"}})}}i(_r,"visibleAsNumber");function Gr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"vector2"}})}}i(Gr,"visibleAsVector2");function Br(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"vector3"}})}}i(Br,"visibleAsVector3");function Kr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"color3"}})}}i(Kr,"visibleAsColor3");function kr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"color4"}})}}i(kr,"visibleAsColor4");function zr(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(zr,"visibleAsEntity");function Yr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"texture"}})}}i(Yr,"visibleAsTexture");function $r(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"keymap"}})}}i($r,"visibleAsKeyMap");function Wr(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(Wr,"visibleAsAsset");function Qr(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(Qr,"onPointerEvent");function Hr(e){return function(r,t){let o=r.constructor;o._KeyboardEvents??=[],o._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(Hr,"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 Ur(e){return function(r,t){let o=r.constructor;o._AnimationsFromSprite??=[],o._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(Ur,"animationFromSprite");var le=require("babylonjs");function Sl(e,r){let t;switch(e){case le.Animation.ANIMATIONTYPE_FLOAT:t=r.value;break;default:t=r.value.clone();break}return{value:t,frame:r.frame,interpolation:r.interpolation,inTangent:e===le.Animation.ANIMATIONTYPE_FLOAT?r.inTangent:r.inTangent?.clone(),outTangent:e===le.Animation.ANIMATIONTYPE_FLOAT?r.outTangent:r.outTangent?.clone()}}i(Sl,"cloneKey");function ce(e,r){let t=r.split("."),o=e;for(let n=0;n<t.length;++n)o=o[t[n]];return o}i(ce,"getPropertyValue");function ze(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(ze,"registerAfterAnimationCallback");var R=require("babylonjs"),me=require("babylonjs"),M=require("babylonjs");function qr(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=H()),t.propertyPath){let a=ce(o,t.propertyPath);n=U(a)}let s=null;return t.sound&&(s=oe(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:Ye(t.soundVolume??[],R.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:M.Vector3.FromArray(a.data.force),contactPoint:M.Vector3.FromArray(a.data.contactPoint)};break}return m}),keyFrameAnimations:o&&n!==null&&Ye(t.keyFrameAnimations??[],n)}})}}i(qr,"parseCinematic");function D(e,r){if(e===null)return null;if(e!==void 0)switch(r){case R.Animation.ANIMATIONTYPE_FLOAT:return e;case R.Animation.ANIMATIONTYPE_VECTOR2:return M.Vector2.FromArray(e);case R.Animation.ANIMATIONTYPE_VECTOR3:return M.Vector3.FromArray(e);case R.Animation.ANIMATIONTYPE_QUATERNION:return M.Quaternion.FromArray(e);case R.Animation.ANIMATIONTYPE_COLOR3:return me.Color3.FromArray(e);case R.Animation.ANIMATIONTYPE_COLOR4:return me.Color4.FromArray(e);case R.Animation.ANIMATIONTYPE_MATRIX:return M.Matrix.FromArray(e)}}i(D,"parseCinematicKeyValue");function Ye(e,r){return e?.map(t=>{let o=t.type==="key"?t:null;if(o)return{...o,value:D(o.value,r),inTangent:D(o.inTangent,r),outTangent:D(o.outTangent,r)};let n=t.type==="cut"?t:null;if(n)return{...n,key1:{...n.key1,value:D(n.key1.value,r),inTangent:D(n.key1.inTangent,r),outTangent:D(n.key1.outTangent,r)},key2:{...n.key2,value:D(n.key2.value,r),inTangent:D(n.key2.inTangent,r),outTangent:D(n.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${t.type}`)})}i(Ye,"parseKeyFrameAnimations");function Qt(e,r){e.onEventObservable.notifyObservers(r.eventName)}i(Qt,"handleApplyEvent");function Ht(e){e.node?.setEnabled(e.value)}i(Ht,"handleSetEnabledEvent");var $e=require("babylonjs"),jt=$e.Vector3.Zero();function Ut(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 $e.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(jt),o.physicsAggregate.body.setAngularVelocity(jt),o.physicsAggregate.body.applyImpulse(n.negateInPlace(),r.contactPoint)}})}i(Ut,"handleApplyImpulseEvent");var qt=require("babylonjs"),Jt=require("babylonjs"),q=class extends Jt.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new qt.Observable;onEvent(r,t){this.onEventObservable.add(o=>{r===o&&t()})}};function We(e){return e.type==="key"}i(We,"isCinematicKey");function J(e){return e.type==="cut"}i(J,"isCinematicKeyCut");function Jr(e){return e.type==="event"}i(Jr,"isCinematicKeyEvent");function Zr(e){return e.type==="group"}i(Zr,"isCinematicGroup");function Xr(e){return e.type==="sound"}i(Xr,"isCinematicSound");var I=require("babylonjs"),W=require("babylonjs");function eo(e,r,t){let o=new q(e.name,r);return e.tracks.forEach(n=>{let s=n.animationGroup;if(s&&n.animationGroups?.length){let u=s.clone(`${s.name}-cinematic-temp`),d=r.animationGroups.indexOf(u);d!==-1&&r.animationGroups.splice(d,1),o.onAnimationEndObservable.add(()=>{s.stop(),u.stop()});let h=n.animationGroups.reduce((x,E)=>Math.min(x,E.frame),Number.MAX_VALUE)??0,S=n.animationGroups.reduce((x,E)=>Math.max(x,E.frame+E.endFrame),0)??0,A={frame:h},T=new I.Animation(u.name,"frame",60,I.Animation.ANIMATIONTYPE_FLOAT,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1);if(T.setKeys([{frame:h,value:0},{frame:S,value:S}]),n.animationGroups.forEach(x=>{T.addEvent(new W.AnimationEvent(x.frame,()=>{let E=x.repeatCount??0;if(u.to=x.endFrame,u.speedRatio=x.speed,u.stop(),u.play(E>0),u.goToFrame(x.startFrame),E){let V=0;u.onAnimationGroupLoopObservable.add(()=>{++V,V>E&&u.stop()})}}))}),o.addTargetedAnimation(T,A),(n.animationGroupWeight?.length??0)>=2){let x={weight:0},E=new I.Animation(`${u.name}-weights`,"weight",60,I.Animation.ANIMATIONTYPE_FLOAT,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1),V=[];n.animationGroupWeight.forEach(Z=>{J(Z)?(V.push(Z.key1),V.push(Z.key2)):V.push(Z)}),E.setKeys(V),o.addTargetedAnimation(E,x),ze(o,r,()=>{u.weight=x.weight})}}let a=n.sound,m=a?.getAudioBuffer();if(!t?.ignoreSounds&&a&&m&&n.sounds?.length){let u={dummy:0,volume:0},d=new I.Animation(a.name,"dummy",60,I.Animation.ANIMATIONTYPE_FLOAT,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1),h=0;if(n.sounds?.forEach(S=>{let A=S.endFrame-S.startFrame;h=Math.max(h,S.frame+A),d.addEvent(new W.AnimationEvent(S.frame,T=>{let E=(T-S.frame+S.startFrame)/e.framesPerSecond;a.play(0,E)},!1)),d.addEvent(new W.AnimationEvent(S.frame+A,()=>{a.stop()}))}),d.setKeys([{frame:0,value:0},{frame:h,value:h}]),o.addTargetedAnimation(d,u),(n.soundVolume?.length??0)>=2){let S=new I.Animation(a.name,"volume",60,I.Animation.ANIMATIONTYPE_FLOAT,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1),A=[];n.soundVolume.forEach(T=>{J(T)?(A.push(T.key1),A.push(T.key2)):A.push(T)}),S.setKeys(A),o.addTargetedAnimation(S,u),ze(o,r,()=>{a.setVolume(u.volume)})}}if(n.keyFrameEvents){let u={dummy:0},d=new I.Animation("events","dummy",60,I.Animation.ANIMATIONTYPE_FLOAT,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1),h=0;n.keyFrameEvents?.forEach(S=>{h=Math.max(h,S.frame),d.addEvent(new W.AnimationEvent(S.frame,()=>{switch(S.data?.type){case"event":Qt(o,S.data);break;case"set-enabled":Ht(S.data);break;case"apply-impulse":Ut(r,S.data);break}}))}),d.setKeys([{frame:0,value:0},{frame:h+1,value:h+1}]),o.addTargetedAnimation(d,u)}let c=n.defaultRenderingPipeline?H():n.node;if(!c||!n.propertyPath||!n.keyFrameAnimations)return;let p=ce(c,n.propertyPath),f=U(p);if(f===null)return;let g=new I.Animation(n.propertyPath,n.propertyPath,60,f,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1),P=[];n.keyFrameAnimations?.forEach(u=>{if(We(u))return P.push(u);J(u)&&(P.push(u.key1),P.push(u.key2),re(c)&&n.propertyPath==="position"&&g.addEvent(new W.AnimationEvent(u.key1.frame,()=>{let d=Ee();if(!d)return;let h=d.motionStrength;d.motionStrength=0,requestAnimationFrame(()=>{d.motionStrength=h})})))}),g.setKeys(P),o.addTargetedAnimation(g,c)}),o.normalize(),o}i(eo,"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,15 @@
1
- import { Tools } from "@babylonjs/core/Misc/tools";
2
1
  import { Animation } from "@babylonjs/core/Animations/animation";
3
2
  import { AnimationEvent } from "@babylonjs/core/Animations/animationEvent";
4
- import { AnimationGroup } from "@babylonjs/core/Animations/animationGroup";
5
3
  import { isCamera } from "../tools/guards";
6
4
  import { getAnimationTypeForObject } from "../tools/animation";
7
5
  import { getMotionBlurPostProcess } from "../rendering/motion-blur";
8
6
  import { getDefaultRenderingPipeline } from "../rendering/default-pipeline";
7
+ import { handleApplyEvent } from "./events/event";
9
8
  import { handleSetEnabledEvent } from "./events/set-enabled";
10
9
  import { handleApplyImpulseEvent } from "./events/apply-impulse";
11
- import { cloneKey, getPropertyValue } from "./tools";
10
+ import { Cinematic } from "./cinematic";
11
+ import { isCinematicKey, isCinematicKeyCut } from "./guards";
12
+ import { getPropertyValue, registerAfterAnimationCallback } from "./tools";
12
13
  /**
13
14
  * Parses the given cinematic object and generates a new playable animation group.
14
15
  * @param cinematic defines the cinematic object to parse that was previously loaded.
@@ -16,50 +17,78 @@ import { cloneKey, getPropertyValue } from "./tools";
16
17
  * @param options defines the options to use when generating the animation group.
17
18
  */
18
19
  export function generateCinematicAnimationGroup(cinematic, scene, options) {
19
- const result = new AnimationGroup(cinematic.name, scene);
20
+ const result = new Cinematic(cinematic.name, scene);
20
21
  cinematic.tracks.forEach((track) => {
21
22
  // Animation groups
22
23
  const animationGroup = track.animationGroup;
23
- if (animationGroup) {
24
- track.animationGroups?.forEach((configuration) => {
25
- animationGroup.targetedAnimations.forEach((targetedAnimation) => {
26
- let animation = null;
27
- defer: {
28
- const existingTargetedAnimations = result.targetedAnimations.filter((ta2) => ta2.target === targetedAnimation.target);
29
- if (existingTargetedAnimations.length) {
30
- const existingTargetedAnimationsPair = existingTargetedAnimations.find((et) => et.animation.targetProperty === targetedAnimation.animation.targetProperty);
31
- if (existingTargetedAnimationsPair) {
32
- animation = existingTargetedAnimationsPair.animation;
33
- break defer;
24
+ if (animationGroup && track.animationGroups?.length) {
25
+ const effectiveAnimationGroup = animationGroup.clone(`${animationGroup.name}-cinematic-temp`);
26
+ const index = scene.animationGroups.indexOf(effectiveAnimationGroup);
27
+ if (index !== -1) {
28
+ scene.animationGroups.splice(index, 1);
29
+ }
30
+ result.onAnimationEndObservable.add(() => {
31
+ animationGroup.stop();
32
+ effectiveAnimationGroup.stop();
33
+ });
34
+ const minFrame = track.animationGroups.reduce((prev, curr) => Math.min(prev, curr.frame), Number.MAX_VALUE) ?? 0;
35
+ const maxFrame = track.animationGroups.reduce((prev, curr) => Math.max(prev, curr.frame + curr.endFrame), 0) ?? 0;
36
+ const dummyObject = {
37
+ frame: minFrame,
38
+ };
39
+ const animationGroupsAnimation = new Animation(effectiveAnimationGroup.name, "frame", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE, false);
40
+ animationGroupsAnimation.setKeys([
41
+ { frame: minFrame, value: 0 },
42
+ { frame: maxFrame, value: maxFrame },
43
+ ]);
44
+ track.animationGroups.forEach((configuration) => {
45
+ animationGroupsAnimation.addEvent(new AnimationEvent(configuration.frame, () => {
46
+ const repeatCount = configuration.repeatCount ?? 0;
47
+ effectiveAnimationGroup.to = configuration.endFrame;
48
+ effectiveAnimationGroup.speedRatio = configuration.speed;
49
+ effectiveAnimationGroup.stop();
50
+ effectiveAnimationGroup.play(repeatCount > 0);
51
+ effectiveAnimationGroup.goToFrame(configuration.startFrame);
52
+ if (repeatCount) {
53
+ let currentRepeatCount = 0;
54
+ effectiveAnimationGroup.onAnimationGroupLoopObservable.add(() => {
55
+ ++currentRepeatCount;
56
+ if (currentRepeatCount > repeatCount) {
57
+ effectiveAnimationGroup.stop();
34
58
  }
35
- }
36
- animation = targetedAnimation.animation.clone();
37
- animation.setKeys([]);
38
- animation.name = Tools.RandomId();
39
- animation.framePerSecond = cinematic.framesPerSecond;
59
+ });
40
60
  }
41
- const keys = animation.getKeys();
42
- const sourceKeys = targetedAnimation.animation.getKeys();
43
- const speed = configuration.speed;
44
- const normalizedFps = cinematic.framesPerSecond / targetedAnimation.animation.framePerSecond / speed;
45
- sourceKeys.forEach((k) => {
46
- if (k.frame >= configuration.startFrame && k.frame <= configuration.endFrame) {
47
- keys.push({
48
- ...cloneKey(targetedAnimation.animation.dataType, k),
49
- frame: configuration.frame + k.frame * normalizedFps,
50
- });
51
- }
52
- });
53
- animation.setKeys(keys);
54
- result.addTargetedAnimation(animation, targetedAnimation.target);
55
- });
61
+ }));
56
62
  });
63
+ result.addTargetedAnimation(animationGroupsAnimation, dummyObject);
64
+ if ((track.animationGroupWeight?.length ?? 0) >= 2) {
65
+ const dummyObject = {
66
+ weight: 0,
67
+ };
68
+ const weightAnimation = new Animation(`${effectiveAnimationGroup.name}-weights`, "weight", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE, false);
69
+ const weightKeys = [];
70
+ track.animationGroupWeight.forEach((keyFrame) => {
71
+ if (isCinematicKeyCut(keyFrame)) {
72
+ weightKeys.push(keyFrame.key1);
73
+ weightKeys.push(keyFrame.key2);
74
+ }
75
+ else {
76
+ weightKeys.push(keyFrame);
77
+ }
78
+ });
79
+ weightAnimation.setKeys(weightKeys);
80
+ result.addTargetedAnimation(weightAnimation, dummyObject);
81
+ registerAfterAnimationCallback(result, scene, () => {
82
+ effectiveAnimationGroup.weight = dummyObject.weight;
83
+ });
84
+ }
57
85
  }
58
86
  const sound = track.sound;
59
87
  const soundBuffer = sound?.getAudioBuffer();
60
88
  if (!options?.ignoreSounds && sound && soundBuffer && track.sounds?.length) {
61
89
  const dummyObject = {
62
90
  dummy: 0,
91
+ volume: 0,
63
92
  };
64
93
  const soundAnimation = new Animation(sound.name, "dummy", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE, false);
65
94
  let maxFrame = 0;
@@ -81,6 +110,24 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
81
110
  { frame: maxFrame, value: maxFrame },
82
111
  ]);
83
112
  result.addTargetedAnimation(soundAnimation, dummyObject);
113
+ if ((track.soundVolume?.length ?? 0) >= 2) {
114
+ const volumeAnimation = new Animation(sound.name, "volume", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE, false);
115
+ const volumeKeys = [];
116
+ track.soundVolume.forEach((keyFrame) => {
117
+ if (isCinematicKeyCut(keyFrame)) {
118
+ volumeKeys.push(keyFrame.key1);
119
+ volumeKeys.push(keyFrame.key2);
120
+ }
121
+ else {
122
+ volumeKeys.push(keyFrame);
123
+ }
124
+ });
125
+ volumeAnimation.setKeys(volumeKeys);
126
+ result.addTargetedAnimation(volumeAnimation, dummyObject);
127
+ registerAfterAnimationCallback(result, scene, () => {
128
+ sound.setVolume(dummyObject.volume);
129
+ });
130
+ }
84
131
  }
85
132
  if (track.keyFrameEvents) {
86
133
  const dummyObject = {
@@ -92,6 +139,9 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
92
139
  maxFrame = Math.max(maxFrame, configuration.frame);
93
140
  eventsAnimation.addEvent(new AnimationEvent(configuration.frame, () => {
94
141
  switch (configuration.data?.type) {
142
+ case "event":
143
+ handleApplyEvent(result, configuration.data);
144
+ break;
95
145
  case "set-enabled":
96
146
  handleSetEnabledEvent(configuration.data);
97
147
  break;
@@ -103,7 +153,7 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
103
153
  });
104
154
  eventsAnimation.setKeys([
105
155
  { frame: 0, value: 0 },
106
- { frame: maxFrame, value: maxFrame },
156
+ { frame: maxFrame + 1, value: maxFrame + 1 },
107
157
  ]);
108
158
  result.addTargetedAnimation(eventsAnimation, dummyObject);
109
159
  }
@@ -119,16 +169,14 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
119
169
  const animation = new Animation(track.propertyPath, track.propertyPath, 60, animationType, Animation.ANIMATIONLOOPMODE_CYCLE, false);
120
170
  const keys = [];
121
171
  track.keyFrameAnimations?.forEach((keyFrame) => {
122
- const animationKey = keyFrame.type === "key" ? keyFrame : null;
123
- if (animationKey) {
124
- return keys.push(animationKey);
172
+ if (isCinematicKey(keyFrame)) {
173
+ return keys.push(keyFrame);
125
174
  }
126
- const animationKeyCut = keyFrame.type === "cut" ? keyFrame : null;
127
- if (animationKeyCut) {
128
- keys.push(animationKeyCut.key1);
129
- keys.push(animationKeyCut.key2);
175
+ if (isCinematicKeyCut(keyFrame)) {
176
+ keys.push(keyFrame.key1);
177
+ keys.push(keyFrame.key2);
130
178
  if (isCamera(node) && track.propertyPath === "position") {
131
- animation.addEvent(new AnimationEvent(animationKeyCut.key1.frame, () => {
179
+ animation.addEvent(new AnimationEvent(keyFrame.key1.frame, () => {
132
180
  const motionBlur = getMotionBlurPostProcess();
133
181
  if (!motionBlur) {
134
182
  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