babylonjs-editor-tools 5.4.2-alpha.1 → 5.4.2-alpha.3

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.
@@ -1 +1 @@
1
- var Pe=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var Pn=Object.getOwnPropertyNames;var xn=Object.prototype.hasOwnProperty;var i=(e,t)=>Pe(e,"name",{value:t,configurable:!0});var An=(e,t)=>{for(var r in t)Pe(e,r,{get:t[r],enumerable:!0})},vn=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Pn(t))!xn.call(e,o)&&o!==r&&Pe(e,o,{get:()=>t[o],enumerable:!(n=bn(t,o))||n.enumerable});return e};var Cn=e=>vn(Pe({},"__esModule",{value:!0}),e);var Vo={};An(Vo,{AdvancedAssetContainer:()=>me,AdvancedAssetContainerInstantiatedEntries:()=>pe,Cinematic:()=>ge,Database:()=>he,NodeParticleSystemSet:()=>ln.NodeParticleSystemSet,_applyScriptsForObject:()=>N,_getKtx2TextureName:()=>Oe,_preloadScriptsAssets:()=>ht,_registerScriptInstance:()=>Pt,_removeRegisteredScriptInstance:()=>Ie,addExcludedCompressedTexture:()=>De,animationFromSprite:()=>Oo,animationGroupFromScene:()=>lo,applyMeshesLODQuality:()=>ke,applyRenderingConfigurationForCamera:()=>ct,applyScriptOnObject:()=>Jn,applyShadowsQuality:()=>_n,applyTexturesQuality:()=>eo,componentFromScene:()=>so,configureEngineToUseCompressedTextures:()=>Xn,configureMeshDistanceOrScreenCoverage:()=>Ke,configureShadowMapRefreshRate:()=>ve,configureShadowMapRenderListPredicate:()=>ze,copyAndParseRagdollConfiguration:()=>ut,createAndOpenDatabase:()=>wt,createDefaultRenderingPipeline:()=>Zt,createMotionBlurPostProcess:()=>Wt,createSSAO2RenderingPipeline:()=>Ut,createSSRRenderingPipeline:()=>kt,createTAARenderingPipeline:()=>$t,createVLSPostProcess:()=>Gt,defaultPipelineCameraConfigurations:()=>q,disposeDefaultRenderingPipeline:()=>st,disposeMotionBlurPostProcess:()=>rt,disposeSSAO2RenderingPipeline:()=>Ze,disposeSSRRenderingPipeline:()=>Qe,disposeTAARenderingPipeline:()=>He,disposeVLSPostProcess:()=>$e,forceCompileAllSceneMaterials:()=>oo,generateCinematicAnimationGroup:()=>Ro,getAllScriptsByClassForObject:()=>te,getAnimationTypeForObject:()=>fe,getDefaultRenderingPipeline:()=>le,getFromIndexDB:()=>ye,getMotionBlurPostProcess:()=>tt,getPowerOfTwoUntil:()=>M,getSSAO2RenderingPipeline:()=>zn,getSSRRenderingPipeline:()=>Bn,getScriptByClassForObject:()=>bt,getTAARenderingPipeline:()=>Kn,getTextureUrl:()=>Me,getVLSPostProcess:()=>Ln,guiFromAsset:()=>po,isAbstractMesh:()=>K,isAnyParticleSystem:()=>Ve,isArcRotateCamera:()=>On,isBone:()=>In,isCamera:()=>xe,isCinematicGroup:()=>wo,isCinematicKey:()=>Dt,isCinematicKeyCut:()=>ne,isCinematicKeyEvent:()=>Mo,isCinematicSound:()=>No,isClusteredLightContainer:()=>Ae,isDecalMesh:()=>Rt,isDirectionalLight:()=>Mn,isFreeCamera:()=>Tn,isGPUParticleSystem:()=>Rn,isGroundMesh:()=>En,isHemisphericLight:()=>Nn,isInstancedMesh:()=>se,isLight:()=>Nt,isMesh:()=>D,isNode:()=>j,isNodeFromStaticGroup:()=>Ge,isParticleSystem:()=>Le,isPointLight:()=>Dn,isScene:()=>_e,isSoundNode:()=>k,isSpotLight:()=>wn,isSprite:()=>Be,isTexture:()=>ae,isTransformNode:()=>V,isUsingKtx2CompressedTextures:()=>de,loadMaterialFromFile:()=>no,loadScene:()=>ro,motionBlurPostProcessCameraConfigurations:()=>H,nodeFromDescendants:()=>ao,nodeFromScene:()=>io,normalizeAtlasJson:()=>At,onKeyboardEvent:()=>Eo,onPointerEvent:()=>Io,openIndexDB:()=>Mt,parseCinematic:()=>Do,parseCinematicKeyValue:()=>F,parseDefaultRenderingPipeline:()=>lt,parseKeyFrameAnimations:()=>Tt,parseMotionBlurPostProcess:()=>ot,parseRagdollConfiguration:()=>or,parseSSAO2RenderingPipeline:()=>et,parseSSRRenderingPipeline:()=>Ye,parseTAARenderingPipeline:()=>Je,parseVLSPostProcess:()=>Ue,particleSystemFromScene:()=>uo,playSpriteAnimationFromName:()=>to,preloadAssetsToDatabase:()=>Lo,putInIndexDB:()=>L,registerScriptAssetParser:()=>qn,saveRenderingConfigurationForCamera:()=>Qn,sceneAsset:()=>co,scriptAssetsCache:()=>O,scriptAssetsParsers:()=>ue,scriptsDictionary:()=>R,serializeDefaultRenderingPipeline:()=>at,serializeMotionBlurPostProcess:()=>nt,serializeSSAO2RenderingPipeline:()=>Xe,serializeSSRRenderingPipeline:()=>We,serializeTAARenderingPipeline:()=>qe,serializeVLSPostProcess:()=>je,setDefaultRenderingPipelineRef:()=>Un,setMotionBlurPostProcessRef:()=>jn,setSSAO2RenderingPipelineRef:()=>$n,setSSRRenderingPipelineRef:()=>Gn,setStaticDecalsEnabled:()=>Fn,setTAARenderingPipelineRef:()=>kn,setUseKtx2CompressedTextures:()=>Zn,setVLSPostProcessRef:()=>Vn,setupOfflineProvider:()=>Fo,soundFromScene:()=>mo,spriteFromSpriteManager:()=>To,ssaoRenderingPipelineCameraConfigurations:()=>Y,ssrRenderingPipelineCameraConfigurations:()=>Q,taaRenderingPipelineCameraConfigurations:()=>W,visibleAsAsset:()=>Co,visibleAsBoolean:()=>fo,visibleAsColor3:()=>bo,visibleAsColor4:()=>Po,visibleAsEntity:()=>xo,visibleAsKeyMap:()=>vo,visibleAsNumber:()=>yo,visibleAsString:()=>go,visibleAsTexture:()=>Ao,visibleAsVector2:()=>ho,visibleAsVector3:()=>So,vlsPostProcessCameraConfigurations:()=>U});module.exports=Cn(Vo);function K(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(K,"isAbstractMesh");function D(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(D,"isMesh");function se(e){return e.getClassName?.()==="InstancedMesh"}i(se,"isInstancedMesh");function In(e){return e.getClassName?.()==="Bone"}i(In,"isBone");function En(e){return e.getClassName?.()==="GroundMesh"}i(En,"isGroundMesh");function V(e){return e.getClassName?.()==="TransformNode"}i(V,"isTransformNode");function ae(e){return e?.getClassName?.()==="Texture"}i(ae,"isTexture");function xe(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(xe,"isCamera");function Tn(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(Tn,"isFreeCamera");function On(e){return e.getClassName?.()==="ArcRotateCamera"}i(On,"isArcRotateCamera");function Dn(e){return e.getClassName?.()==="PointLight"}i(Dn,"isPointLight");function Mn(e){return e.getClassName?.()==="DirectionalLight"}i(Mn,"isDirectionalLight");function wn(e){return e.getClassName?.()==="SpotLight"}i(wn,"isSpotLight");function Nn(e){return e.getClassName?.()==="HemisphericLight"}i(Nn,"isHemisphericLight");function Nt(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(Nt,"isLight");function Ae(e){return e.getClassName?.()==="ClusteredLightContainer"}i(Ae,"isClusteredLightContainer");function j(e){return K(e)||V(e)||Nt(e)||xe(e)}i(j,"isNode");function _e(e){return e.getClassName?.()==="Scene"}i(_e,"isScene");function Le(e){return e.getClassName?.()==="ParticleSystem"}i(Le,"isParticleSystem");function Rn(e){return e.getClassName?.()==="GPUParticleSystem"}i(Rn,"isGPUParticleSystem");function Ve(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(Ve,"isAnyParticleSystem");function Be(e){return e.getClassName?.()==="Sprite"}i(Be,"isSprite");function k(e){return V(e)&&e.isSoundNode===!0}i(k,"isSoundNode");function Ge(e){let t=e;for(;t;){if(t.metadata?.isStaticGroup)return!0;t=t.parent}return!1}i(Ge,"isNodeFromStaticGroup");function Ke(e){e.meshes.forEach(t=>{D(t)&&t.getLODLevels().forEach(r=>{r.mesh&&(r.mesh.originalDistanceOrScreenCoverage=r.distanceOrScreenCoverage)})})}i(Ke,"configureMeshDistanceOrScreenCoverage");function ke(e,t){t.meshes.forEach(r=>{D(r)&&r.getLODLevels().forEach(n=>{if(n.mesh?.originalDistanceOrScreenCoverage)switch(e){case"very-low":n.distanceOrScreenCoverage=n.mesh.originalDistanceOrScreenCoverage*.125;break;case"low":n.distanceOrScreenCoverage=n.mesh.originalDistanceOrScreenCoverage*.25;break;case"medium":n.distanceOrScreenCoverage=n.mesh.originalDistanceOrScreenCoverage*.5;break;case"high":n.distanceOrScreenCoverage=n.mesh.originalDistanceOrScreenCoverage;break}})})}i(ke,"applyMeshesLODQuality");function Rt(e){return(e.metadata?.decal??null)!==null}i(Rt,"isDecalMesh");function Fn(e,t){t.meshes.forEach(r=>{Rt(r)&&Ge(r)&&r.setEnabled(e)})}i(Fn,"setStaticDecalsEnabled");function M(e){let t=1;for(;t<=e;)t<<=1;return t>>1}i(M,"getPowerOfTwoUntil");var Ft=require("babylonjs"),_t=require("babylonjs");function ze(e){e.lights.forEach(t=>{let r=t.getShadowGenerator()?.getShadowMap();r&&(r.renderListPredicate=n=>Ft.Vector3.Distance(n.getAbsolutePosition(),t.getAbsolutePosition())<=t.range)})}i(ze,"configureShadowMapRenderListPredicate");async function ve(e){e.executeWhenReady(()=>{e.lights.forEach(t=>{let r=t.getShadowGenerator()?.getShadowMap();r&&(r.refreshRate=t.metadata?.refreshRate??_t.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(ve,"configureShadowMapRefreshRate");function _n(e,t){t.lights.forEach(r=>{let n=r.getShadowGenerator(),o=n?.getShadowMap();if(n?.originalMapSize){let s=n.originalMapSize;switch(e){case"medium":s=s*.5;break;case"low":s=s*.25;break;case"very-low":s=s*.125;break}s=Math.max(128,M(s)),o?.getSize().width!==s&&o.resize(s)}}),ve(t)}i(_n,"applyShadowsQuality");var Lt=require("babylonjs"),Vt=require("babylonjs"),Bt=require("babylonjs"),I=null,U=new Map;function Ln(){return I}i(Ln,"getVLSPostProcess");function Vn(e){I=e}i(Vn,"setVLSPostProcessRef");function $e(e){I&&e.activeCamera&&(I.dispose(e.activeCamera),I=null)}i($e,"disposeVLSPostProcess");function Gt(e,t){return t??=e.meshes.find(r=>D(r)),I=new Bt.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,t,100,Vt.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),I}i(Gt,"createVLSPostProcess");function je(){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(je,"serializeVLSPostProcess");function Ue(e,t){let r=null;if(t.meshId){let o=e.getMeshById(t.meshId);o&&D(o)&&(r=o)}let n=Gt(e,r);return n.exposure=t.exposure,n.decay=t.decay,n.weight=t.weight,n.density=t.density,n.invert=t.invert,n.useCustomMeshPosition=t.useCustomMeshPosition,n.customMeshPosition.copyFrom(Lt.Vector3.FromArray(t.customMeshPosition)),n}i(Ue,"parseVLSPostProcess");var Kt=require("babylonjs"),S=null,Q=new Map;function Bn(){return S}i(Bn,"getSSRRenderingPipeline");function Gn(e){S=e}i(Gn,"setSSRRenderingPipelineRef");function Qe(){S&&(S.dispose(),S=null)}i(Qe,"disposeSSRRenderingPipeline");function kt(e,t){return S=new Kt.SSRRenderingPipeline("SSRRenderingPipeline",e,[t]),S.samples=4,S}i(kt,"createSSRRenderingPipeline");function We(){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(We,"serializeSSRRenderingPipeline");function Ye(e,t,r){if(S)return S;let n=kt(e,t);return n.samples=r.samples,n.step=r.step,n.thickness=r.thickness,n.strength=r.strength,n.reflectionSpecularFalloffExponent=r.reflectionSpecularFalloffExponent,n.maxSteps=r.maxSteps,n.maxDistance=r.maxDistance,n.roughnessFactor=r.roughnessFactor,n.reflectivityThreshold=r.reflectivityThreshold,n.blurDispersionStrength=r.blurDispersionStrehgth,n.clipToFrustum=r.clipToFrustum,n.enableSmoothReflections=r.enableSmoothReflections,n.enableAutomaticThicknessComputation=r.enableAutomaticThicknessComputation,n.attenuateFacingCamera=r.attenuateFacingCamera,n.attenuateScreenBorders=r.attenuateScreenBorders,n.attenuateIntersectionDistance=r.attenuateIntersectionDistance,n.attenuateBackfaceReflection=r.attenuateBackfaceReflection,n.blurDownsample=r.blurDownsample,n.selfCollisionNumSkip=r.selfCollisionNumSkip,n.ssrDownsample=r.ssrDownsample,n.backfaceDepthTextureDownsample=r.backfaceDepthTextureDownsample,n}i(Ye,"parseSSRRenderingPipeline");var zt=require("babylonjs"),E=null,W=new Map;function Kn(){return E}i(Kn,"getTAARenderingPipeline");function kn(e){E=e}i(kn,"setTAARenderingPipelineRef");function He(){E&&(E.dispose(),E=null)}i(He,"disposeTAARenderingPipeline");function $t(e,t){return E=new zt.TAARenderingPipeline("TAARenderingPipeline",e,[t]),E.samples=4,E}i($t,"createTAARenderingPipeline");function qe(){return E?{factor:E.factor,samples:E.samples,clampHistory:E.clampHistory,reprojectHistory:E.reprojectHistory,disableOnCameraMove:E.disableOnCameraMove}:null}i(qe,"serializeTAARenderingPipeline");function Je(e,t,r){if(E)return E;let n=$t(e,t);return n.factor=r.factor,n.samples=r.samples,n.clampHistory=r.clampHistory,n.reprojectHistory=r.reprojectHistory,n.disableOnCameraMove=r.disableOnCameraMove,n}i(Je,"parseTAARenderingPipeline");var jt=require("babylonjs"),P=null,Y=new Map;function zn(){return P}i(zn,"getSSAO2RenderingPipeline");function $n(e){P=e}i($n,"setSSAO2RenderingPipelineRef");function Ze(){P&&(P.dispose(),P=null)}i(Ze,"disposeSSAO2RenderingPipeline");function Ut(e,t){return P=new jt.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[t]),P.samples=4,P}i(Ut,"createSSAO2RenderingPipeline");function Xe(){return P?{radius:P.radius,totalStrength:P.totalStrength,samples:P.samples,maxZ:P.maxZ,minZAspect:P.minZAspect,epsilon:P.epsilon,textureSamples:P.textureSamples,bypassBlur:P.bypassBlur,bilateralSamples:P.bilateralSamples,bilateralSoften:P.bilateralSoften,bilateralTolerance:P.bilateralTolerance,expensiveBlur:P.expensiveBlur}:null}i(Xe,"serializeSSAO2RenderingPipeline");function et(e,t,r){if(P)return P;let n=Ut(e,t);return n.radius=r.radius,n.totalStrength=r.totalStrength,n.samples=r.samples,n.maxZ=r.maxZ,n.minZAspect=r.minZAspect,n.epsilon=r.epsilon,n.textureSamples=r.textureSamples,n.bypassBlur=r.bypassBlur,n.bilateralSamples=r.bilateralSamples,n.bilateralSoften=r.bilateralSoften,n.bilateralTolerance=r.bilateralTolerance,n.expensiveBlur=r.expensiveBlur,n}i(et,"parseSSAO2RenderingPipeline");var Qt=require("babylonjs"),T=null,H=new Map;function tt(){return T}i(tt,"getMotionBlurPostProcess");function jn(e){T=e}i(jn,"setMotionBlurPostProcessRef");function rt(){T&&(T.dispose(),T=null)}i(rt,"disposeMotionBlurPostProcess");function Wt(e,t){return T=new Qt.MotionBlurPostProcess("MotionBlurPostProcess",e,1,t),T.motionStrength=1,T.isObjectBased=!0,T}i(Wt,"createMotionBlurPostProcess");function nt(){return T?{isObjectBased:T.isObjectBased,motionStrength:T.motionStrength,motionBlurSamples:T.motionBlurSamples}:null}i(nt,"serializeMotionBlurPostProcess");function ot(e,t,r){if(T)return T;let n=Wt(e,t);return n.isObjectBased=r.isObjectBased,n.motionStrength=r.motionStrength,n.motionBlurSamples=r.motionBlurSamples,n}i(ot,"parseMotionBlurPostProcess");var Yt=require("babylonjs"),it=require("babylonjs"),Ht=require("babylonjs"),qt=require("babylonjs"),Jt=require("babylonjs"),u=null,q=new Map;function le(){return u}i(le,"getDefaultRenderingPipeline");function Un(e){u=e}i(Un,"setDefaultRenderingPipelineRef");function st(){u&&(u.dispose(),u=null)}i(st,"disposeDefaultRenderingPipeline");function Zt(e,t){return u=new Jt.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[t]),u.samples=4,u.depthOfField.lensSize=512,u.depthOfField.fStop=.25,u.depthOfField.focusDistance=55e3,u}i(Zt,"createDefaultRenderingPipeline");function at(){return u?{samples:u.samples,fxaaEnabled:u.fxaaEnabled,imageProcessingEnabled:u.imageProcessingEnabled,exposure:u.imageProcessing?.exposure,contrast:u.imageProcessing?.contrast,fromLinearSpace:u.imageProcessing?.fromLinearSpace,toneMappingEnabled:u.imageProcessing?.toneMappingEnabled,toneMappingType:u.imageProcessing?.toneMappingType,ditheringEnabled:u.imageProcessing?.ditheringEnabled,ditheringIntensity:u.imageProcessing?.ditheringIntensity,bloomEnabled:u.bloomEnabled,bloomThreshold:u.bloomThreshold,bloomWeight:u.bloomWeight,bloomScale:u.bloomScale,bloomKernel:u.bloomKernel,sharpenEnabled:u.sharpenEnabled,sharpenEdgeAmount:u.sharpen.edgeAmount,sharpenColorAmount:u.sharpen.colorAmount,grainEnabled:u.grainEnabled,grainIntensity:u.grain.intensity,grainAnimated:u.grain.animated,depthOfFieldEnabled:u.depthOfFieldEnabled,depthOfFieldBlurLevel:u.depthOfFieldBlurLevel,lensSize:u.depthOfField.lensSize,fStop:u.depthOfField.fStop,focusDistance:u.depthOfField.focusDistance,focalLength:u.depthOfField.focalLength,vignetteEnabled:u.imageProcessing?.vignetteEnabled,vignetteColor:u.imageProcessing?.vignetteColor.asArray(),vignetteWeight:u.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:u.chromaticAberrationEnabled,aberrationAmount:u.chromaticAberration.aberrationAmount,radialIntensity:u.chromaticAberration.radialIntensity,direction:u.chromaticAberration.direction.asArray(),centerPosition:u.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:u.glowLayerEnabled,glowLayerIntensity:u.glowLayer?.intensity,glowLayerBlurKernelSize:u.glowLayer?.blurKernelSize,colorGradingEnabled:u.imageProcessing.colorGradingEnabled,colorGradingTexture:u.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:u.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:u.imageProcessing.colorCurvesEnabled,globalHue:u.imageProcessing.colorCurves?.globalHue,globalDensity:u.imageProcessing.colorCurves?.globalDensity,globalExposure:u.imageProcessing.colorCurves?.globalExposure,globalSaturation:u.imageProcessing.colorCurves?.globalSaturation,highlightsHue:u.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:u.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:u.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:u.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:u.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:u.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:u.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:u.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:u.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:u.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:u.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:u.imageProcessing.colorCurves?.shadowsSaturation}:null}i(at,"serializeDefaultRenderingPipeline");function lt(e,t,r,n){if(u)return u;let o=Zt(e,t);if(o.samples=r.samples,o.fxaaEnabled=r.fxaaEnabled,o.imageProcessingEnabled=r.imageProcessingEnabled,o.imageProcessing){if(o.imageProcessing.exposure=r.exposure,o.imageProcessing.contrast=r.contrast,o.imageProcessing.fromLinearSpace=r.fromLinearSpace,o.imageProcessing.toneMappingEnabled=r.toneMappingEnabled,o.imageProcessing.toneMappingType=r.toneMappingType,o.imageProcessing.ditheringEnabled=r.ditheringEnabled,o.imageProcessing.ditheringIntensity=r.ditheringIntensity,o.imageProcessing.vignetteEnabled=r.vignetteEnabled??!1,o.imageProcessing.vignetteColor=Yt.Color4.FromArray(r.vignetteColor??[0,0,0]),o.imageProcessing.vignetteWeight=r.vignetteWeight??.3,o.imageProcessing.colorGradingEnabled=r.colorGradingEnabled??!1,o.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=r.colorGradingWithGreenDepth??!0,r.colorGradingTexture){let s=null;if(r.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let l=n+r.colorGradingTexture.name;s=new qt.ColorGradingTexture(l,e),s.level=r.colorGradingTexture.level}else{let l=Ht.Texture.Parse(r.colorGradingTexture,e,n);ae(l)&&(s=l)}o.imageProcessing.colorGradingTexture=s}o.imageProcessing.colorCurvesEnabled=r.colorCurvesEnabled??!1,o.imageProcessing.colorCurves&&(o.imageProcessing.colorCurves.globalHue=r.globalHue??30,o.imageProcessing.colorCurves.globalDensity=r.globalDensity??0,o.imageProcessing.colorCurves.globalExposure=r.globalExposure??0,o.imageProcessing.colorCurves.globalSaturation=r.globalSaturation??0,o.imageProcessing.colorCurves.highlightsHue=r.highlightsHue??30,o.imageProcessing.colorCurves.highlightsDensity=r.highlightsDensity??0,o.imageProcessing.colorCurves.highlightsExposure=r.highlightsExposure??0,o.imageProcessing.colorCurves.highlightsSaturation=r.highlightsSaturation??0,o.imageProcessing.colorCurves.midtonesHue=r.midtonesHue??30,o.imageProcessing.colorCurves.midtonesDensity=r.midtonesDensity??0,o.imageProcessing.colorCurves.midtonesExposure=r.midtonesExposure??0,o.imageProcessing.colorCurves.midtonesSaturation=r.midtonesSaturation??0,o.imageProcessing.colorCurves.shadowsHue=r.shadowsHue??30,o.imageProcessing.colorCurves.shadowsDensity=r.shadowsDensity??0,o.imageProcessing.colorCurves.shadowsExposure=r.shadowsExposure??0,o.imageProcessing.colorCurves.shadowsSaturation=r.shadowsSaturation??0)}return o.bloomEnabled=r.bloomEnabled,o.bloomThreshold=r.bloomThreshold,o.bloomWeight=r.bloomWeight,o.bloomScale=r.bloomScale,o.bloomKernel=r.bloomKernel,o.sharpenEnabled=r.sharpenEnabled,o.sharpen.edgeAmount=r.sharpenEdgeAmount,o.sharpen.colorAmount=r.sharpenColorAmount,o.grainEnabled=r.grainEnabled,o.grain.intensity=r.grainIntensity,o.grain.animated=r.grainAnimated,o.depthOfFieldEnabled=r.depthOfFieldEnabled,o.depthOfFieldBlurLevel=r.depthOfFieldBlurLevel,o.depthOfField.lensSize=r.lensSize,o.depthOfField.fStop=r.fStop,o.depthOfField.focusDistance=r.focusDistance,o.depthOfField.focalLength=r.focalLength,o.chromaticAberrationEnabled=r.chromaticAberrationEnabled??!1,o.chromaticAberration.aberrationAmount=r.aberrationAmount??10,o.chromaticAberration.radialIntensity=r.radialIntensity??1,o.chromaticAberration.direction=it.Vector2.FromArray(r.direction??[0,0]),o.chromaticAberration.centerPosition=it.Vector2.FromArray(r.centerPosition??[0,0]),o.glowLayerEnabled=r.glowLayerEnabled??!1,o.glowLayer&&(o.glowLayer.intensity=r.glowLayerIntensity??1,o.glowLayer.blurKernelSize=r.glowLayerBlurKernelSize??32),o}i(lt,"parseDefaultRenderingPipeline");function Qn(e){Y.set(e,Xe()),U.set(e,je()),Q.set(e,We()),H.set(e,nt()),q.set(e,at()),W.set(e,qe())}i(Qn,"saveRenderingConfigurationForCamera");function ct(e,t,r){Ze(),$e(e.getScene()),Qe(),rt(),st(),He();let n=Y.get(e);n&&!r?.ssao2Disabled&&et(e.getScene(),e,n);let o=U.get(e);o&&!r?.vlsDisabled&&Ue(e.getScene(),o);let s=Q.get(e);s&&!r?.ssrDisabled&&Ye(e.getScene(),e,s);let l=H.get(e);l&&!r?.motionBlurDisabled&&ot(e.getScene(),e,l);let p=q.get(e);p&&!r?.defaultPipelineDisabled&&lt(e.getScene(),e,p,t);let a=W.get(e);a&&!r?.taaDisabled&&Je(e.getScene(),e,a)}i(ct,"applyRenderingConfigurationForCamera");var ce=require("babylonjs"),Xt=require("babylonjs");function er(e){let t=e.metadata?.physicsAggregate;if(!t)return;let r;D(e)?r=e:se(e)&&(r=e.sourceMesh);let n=new Xt.PhysicsAggregate(e,t.shape.type,{mesh:r,mass:t.massProperties.mass});n.body.setMassProperties({mass:t.massProperties.mass,inertia:t.massProperties.inertia?ce.Vector3.FromArray(t.massProperties.inertia):void 0,centerOfMass:t.massProperties.centerOfMass?ce.Vector3.FromArray(t.massProperties.centerOfMass):void 0,inertiaOrientation:t.massProperties.inertiaOrientation?ce.Quaternion.FromArray(t.massProperties.inertiaOrientation):void 0}),n.shape.density=t.shape.density,n.body.setMotionType(t.body.motionType),n.shape.material=t.material,e.physicsAggregate=n,e.metadata.physicsAggregate=void 0}i(er,"configurePhysicsAggregate");function tr(e,t){(Array.isArray(t)?t:[]).forEach(n=>{let o=e.getCameraById(n.cameraId);o&&(n.ssao2RenderingPipeline&&Y.set(o,n.ssao2RenderingPipeline),n.vlsPostProcess&&U.set(o,n.vlsPostProcess),n.ssrRenderingPipeline&&Q.set(o,n.ssrRenderingPipeline),n.motionBlurPostProcess&&H.set(o,n.motionBlurPostProcess),n.defaultRenderingPipeline&&q.set(o,n.defaultRenderingPipeline),n.taaRenderingPipeline&&W.set(o,n.taaRenderingPipeline))})}i(tr,"applyRenderingConfigurations");var rr=require("babylonjs");function J(e,t,r){return new Promise((n,o)=>{let s=new rr.WebRequest;s.open("GET",e),s.responseType=t,s.send(),s.addEventListener("progress",l=>{r?.({total:l.total,loaded:l.loaded})}),s.addEventListener("load",()=>{n(t==="text"?s.responseText:s.response)}),s.addEventListener("error",l=>o(l))})}i(J,"loadFile");async function w(e,t){let r=await J(e,"text",t);return JSON.parse(r)}i(w,"loadJsonFile");function pt(e,t){let r=t.getNodeByName(e);if(r)return r;let n=t.lights.filter(o=>Ae(o));for(let o of n){let s=o.lights.find(l=>l.name===e);if(s)return s}return null}i(pt,"getNodeByName");function Z(e,t){let r=t.getNodeById(e);if(r)return r;let n=t.lights.filter(o=>Ae(o));for(let o of n){let s=o.lights.find(l=>l.id===e);if(s)return s}return null}i(Z,"getNodeById");var z=require("babylonjs"),nr=require("babylonjs");function mt(e){let t=nr.Vector3.FromArray(e);return t.equals(z.Axis.X)?z.Axis.X:t.equals(z.Axis.Y)?z.Axis.Y:t.equals(z.Axis.Z)?z.Axis.Z:t}i(mt,"parseAxis");function or(e){return e.runtimeConfiguration.forEach(t=>{t.rotationAxis&&(t.rotationAxis=mt(t.rotationAxis)),t.boneOffsetAxis&&(t.boneOffsetAxis=mt(t.boneOffsetAxis))}),e}i(or,"parseRagdollConfiguration");function ut(e){let t={rootNodeId:e.rootNodeId,skeletonName:e.skeletonName,scalingFactor:e.scalingFactor,runtimeConfiguration:e.runtimeConfiguration.map(r=>({name:r.name,bones:r.bones,width:r.width,depth:r.depth,height:r.height,size:r.size,joint:r.joint,min:r.min,max:r.max,boxOffset:r.boxOffset,rotationAxis:r.rotationAxis?.slice(),boneOffsetAxis:r.boneOffsetAxis?.slice()}))};return or(t)}i(ut,"copyAndParseRagdollConfiguration");function Wn(e){return new Promise(t=>{setTimeout(()=>t(),e)})}i(Wn,"waitMs");async function dt(e){for(;!e();)await Wn(150)}i(dt,"waitUntil");function ft(e){return e&&JSON.parse(JSON.stringify(e))}i(ft,"cloneJSObject");var pr=require("babylonjs"),Ce=require("babylonjs"),mr=require("babylonjs"),ur=require("babylonjs"),$=require("babylonjs"),ir=!1,sr=null,X=[],gt=new Map;function Yn(e,t){let r=(0,$._GetAudioEngine)(null);return new ur._WebAudioStaticSound(e,r,t)}i(Yn,"createSoundInstance");function ar(e){sr?.remove(),X.length&&(sr=e.onBeforeRenderObservable.add(()=>{X.forEach(t=>{t.isEnabled(!1)&&t.autoUpdateSpatial&&t.sound?._isSpatial&&t.isPlaying()&&e.activeCamera&&t.sound.spatial.update()})}))}i(ar,"registerUpdateSoundsObserver");function lr(e){e.sound?.onDisposeObservable.addOnce(()=>{let t=X.indexOf(e);t!==-1&&X.splice(t,1)}),e.onDisposeObservable.addOnce(()=>{e.sound?.dispose()})}i(lr,"registerSoundNodeEvents");function Hn(e,t){return new Promise(async(r,n)=>{if(!e.offlineProvider||!pr.Database.IDBStorageEnabled)return(0,$.CreateSoundBufferAsync)(t).then(o=>r(o)).catch(o=>n(o));e.offlineProvider.loadFile(t,o=>{(0,$.CreateSoundBufferAsync)(o).then(s=>r(s)).catch(s=>n(s))},void 0,()=>{n(null)},!0)})}i(Hn,"loadSoundBuffer");function dr(e,t){if(!e.soundRelativePath||!e.sound)return;let r=Yn(e.soundRelativePath,{spatialAutoUpdate:!1});r._initAsync(e.sound.buffer,{spatialAutoUpdate:!1}).then(()=>{r.volume=e.volume,r._isSpatial=e.sound._isSpatial,r._isSpatial&&(r.spatial.attach(t),r.spatial.maxDistance=e.sound.spatial.maxDistance,r.spatial.panningModel=e.sound.spatial.panningModel,r.spatial.distanceModel=e.sound.spatial.distanceModel),t.sound=r,t.isSoundNode=!0,t.soundRelativePath=e.soundRelativePath,t.autoUpdateSpatial=e.autoUpdateSpatial,X.push(t),ar(t.getScene())}),lr(t),cr(t,r)}i(dr,"configureSourceNodeFrom");function cr(e,t){Object.defineProperty(e,"volume",{get:i(()=>t.volume,"get"),set:i(r=>{t.volume=r},"set")}),Object.defineProperty(e,"playbackRate",{get:i(()=>t.playbackRate,"get"),set:i(r=>{t.playbackRate=r},"set")}),e.isPaused=()=>t.state===Ce.SoundState.Paused,e.isPlaying=()=>t.state===Ce.SoundState.Started,e.isStopped=()=>t.state===Ce.SoundState.Stopped,e.pause=()=>t.pause(),e.resume=()=>t.resume(),e.stop=r=>t.stop(r),e.play=r=>t.play(r),e.setVolume=(r,n)=>t.setVolume(r,n),e.attachTo=(r,n,o)=>t.spatial.attach(r,n,o)}i(cr,"configureSoundNodePrototype");function fr(){ir||(ir=!0,(0,mr.AddParser)("SoundNode",(e,t,r,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSoundNode)return;let s=r.transformNodes?.find(l=>l.id===o.id);if(s&&o.soundRelativePath){let l=`${n}${o.soundRelativePath}`;t.addPendingData(l),gt.has(l)||gt.set(l,Hn(t,l)),gt.get(l).then(a=>{(0,$.CreateSoundAsync)(o.soundRelativePath,a,{spatialAutoUpdate:!1}).then(c=>{if(t.removePendingData(l),s.isDisposed())return c.dispose();c.volume=o.volume,c._isSpatial=o.isSpatial,o.isSpatial&&(c.spatial.attach(s),c.spatial.maxDistance=o.maxDistance,c.spatial.panningModel=o.panningModel,c.spatial.distanceModel=o.distanceModel),s.sound=c,s.isSoundNode=!0,s.soundRelativePath=o.soundRelativePath,s.autoUpdateSpatial=o.autoUpdateSpatial,X.push(s),lr(s),cr(s,c),ar(t)})})}})}))}i(fr,"registerAudioParser");function ee(e){let t=new Set;e.transformNodes.forEach(r=>{if(r.metadata?.isStaticGroup){let n=r.getDescendants(!1);n.push(r),n.forEach(o=>{if((K(o)||V(o)&&!o.isWorldMatrixFrozen)&&o.freezeWorldMatrix(),K(o)){let s=o.material;s&&!s.isFrozen&&!t.has(s)&&(t.add(s),s.onBindObservable.addOnce(()=>{s.freeze()}))}})}})}i(ee,"configureTransformNodes");var pe=class{constructor(t,r){this.entries=t;this.namingId=r}static{i(this,"AdvancedAssetContainerInstantiatedEntries")}get rootNodes(){return this.entries.rootNodes}get skeletons(){return this.entries.skeletons}get animationGroups(){return this.entries.animationGroups}dispose(){this.entries.dispose()}getRootNodeByName(t){let r=`${t}-${this.namingId}`;return this.entries.rootNodes.find(n=>n.name===r)??null}getNodeByName(t){let r=`${t}-${this.namingId}`;for(let n of this.entries.rootNodes){let o=this._recursivelyGetNodeByName(r,n);if(o)return o}return null}_recursivelyGetNodeByName(t,r){if(r.name===t)return r;for(let n of r.getDescendants(!0)){let o=this._recursivelyGetNodeByName(t,n);if(o)return o}return null}getScriptByClassByObjectName(t,r){let n=this.getNodeByName(t);if(n){let o=te(n,r);if(o?.length===1)return o[0]}return null}};var yt=require("babylonjs"),me=class{static{i(this,"AdvancedAssetContainer")}container;_rootUrl;_scriptsMap;_originalDescendants=[];_nodesMap=new Map;_animationGroupsMap=new Map;constructor(t,r,n){this.container=t,this._rootUrl=r,this._scriptsMap=n,t.populateRootNodes(),t.rootNodes.forEach(o=>{this._originalDescendants.push(o,...o.getDescendants(!1))}),t.animationGroups.forEach(o=>{this._animationGroupsMap.set(o.name,o)}),this._originalDescendants.forEach(o=>{this._nodesMap.set(o,{node:o,metadata:ft(o.metadata)})})}removeDefault(){this.container.getNodes().forEach(t=>{R.get(t)?.forEach(n=>{Ie(t,n)})}),this.container.removeAllFromScene()}getRootNodeByName(t){return this.container.rootNodes.find(r=>r.name===t)??null}getScriptByClassByObjectName(t,r){let n=this.container.getNodes();for(let o of n)if(o.name===t){let s=te(o,r);if(s?.length===1)return s[0]}return null}instantiate(t){let r=yt.Tools.RandomId(),n=i(a=>a,"nameFunction"),o=this.container.instantiateModelsToScene(n,!1,{...t,predicate:i(a=>(a.name=`${a.name}@editor-tools@${r}_${a.id}`,t?.predicate?.(a)??!0),"predicate")}),s=new pe(o,r);[...this.container.transformNodes,...this.container.meshes,...this.container.lights,...this.container.cameras,...this.container.animationGroups,...this.container.skeletons].forEach(a=>{let c=a.name.split("@editor-tools@");a.name=c[0]}),o.animationGroups.forEach(a=>{let c=a.name.split("@editor-tools@");a.name=`${c[0]}-${r}`});let p=[];return o.rootNodes.forEach(a=>{p.push(a,...a.getDescendants(!1))}),p.forEach(a=>{let c=a.name.split("@editor-tools@"),m=c[1].split("_").pop();a.name=`${c[0]}-${r}`;let f=this._originalDescendants.find(d=>d.id===m);k(f)&&V(a)&&dr(f,a),a.id=yt.Tools.RandomId(),a.metadata=ft(this._nodesMap.get(f).metadata),a.metadata??={},a.metadata.originalId=m,p.forEach(d=>{d.metadata.scripts?.forEach(g=>{Object.keys(g.values||{}).forEach(y=>{let b=g.values[y];if(b.type==="entity"){b.value===m&&(b.value=a.id),b.value===f.name&&(b.value=a.name);let x=this._animationGroupsMap.get(b.value);x&&(b.value=`${x.name}-${r}`)}})})})}),p.forEach(a=>{N(this.container.scene,a,this._scriptsMap,this._rootUrl)}),ee(this.container.scene),s}};var gr=require("babylonjs"),yr=require("babylonjs");async function hr(e,t,r){let n=r.environmentIntensity,s=e.split("/").pop().replace(".scene",".babylon"),l=await(0,yr.LoadAssetContainerAsync)(s,r,{rootUrl:t,pluginExtension:".babylon"});return gr.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&r.meshes.forEach(p=>D(p)&&p._checkDelayState()),l.addAllToScene(),r.iblIntensity=n,ee(r),l}i(hr,"preloadSceneScriptAsset");async function Sr(e,t){return w(`${t}${e}`)}i(Sr,"preloadCommonScriptAsset");var O=new Map,ue=new Map;function qn(e,t){ue.has(e)&&console.warn(`A parser for the extension '${e}' was already registered. It will be overwritten.`),ue.set(e,t)}i(qn,"registerScriptAssetParser");async function ht(e,t,r){[t,...t.transformNodes,...t.meshes,...t.lights,...t.cameras].filter(p=>p.metadata?.scripts?.length).map(p=>p.metadata.scripts).flat().forEach(p=>{if(r[p.key]?.default?._SceneAssets?.forEach(c=>{O.get(c.sceneName)||O.set(c.sceneName,null)}),p.values)for(let c in p.values){if(!p.values.hasOwnProperty(c))continue;let m=p.values[c];m.type==="asset"&&m.value&&!O.get(m.value)&&O.set(m.value,null)}});let s=0;for(let p of O.values())p===null&&++s;if(s===0)return s;let l=[];return O.forEach((p,a)=>{O.get(a)||l.push(new Promise(async c=>{try{let m=a.split(".").pop();switch(m){case"scene":let f=await hr(a,e,t);t.onDisposeObservable.addOnce(()=>{f.dispose(),O.delete(a)}),O.set(a,new me(f,e,r));break;default:if(ue.has(m)){let d=ue.get(m);O.set(a,await d({key:a,rootUrl:e,scene:t}));break}else O.set(a,await Sr(a,e));break}}catch(m){console.error(m)}c()}))}),await Promise.all(l),s}i(ht,"_preloadScriptsAssets");var br=require("babylonjs"),Ee=require("babylonjs"),Pr=require("babylonjs"),Te=require("babylonjs"),xr=require("babylonjs"),Ar=require("babylonjs-gui");function St(e,t,r,n,o){let s=n.constructor;if(!s)return;s._NodesFromScene?.forEach(a=>{n[a.propertyKey.toString()]=pt(a.nodeName,e)}),s._ComponentsFromScene?.length&&e.getEngine().onBeginFrameObservable.addOnce(()=>{s._ComponentsFromScene?.forEach(a=>{let c=[];if([e,...e.transformNodes,...e.meshes,...e.lights,...e.cameras].forEach(f=>{let d=bt(f,a.componentConstructor);d&&c.push(d)}),c.length>1)throw new Error(`Multiple components of type ${s._ComponentsFromScene[0].componentConstructor.name} found in scene for property "${s._ComponentsFromScene[0].propertyKey.toString()}".`);n[a.propertyKey.toString()]=c[0]??null})}),s._NodesFromDescendants?.forEach(a=>{let c=t.getDescendants?.(a.directDescendantsOnly,m=>m.name===a.nodeName)[0];n[a.propertyKey.toString()]=c??null}),s._AnimationGroups?.forEach(a=>{n[a.propertyKey.toString()]=e.getAnimationGroupByName(a.animationGroupName)}),s._SoundsFromScene?.forEach(a=>{let c=pt(a.soundName,e);c&&k(c)&&(n[a.propertyKey.toString()]=c??null)}),(s._GuiFromAsset??[]).map(async a=>{let c=`${o}assets/${a.pathInAssets}`;try{let m=await w(c),f=Ar.AdvancedDynamicTexture.CreateFullscreenUI(m.name,!0,e);f.parseSerializedObject(m.content,!1),n[a.propertyKey.toString()]=f,a.onGuiCreated?.(n,f)}catch(m){throw console.error(`Failed to load GUI from asset: ${c}`),m}}),s._ParticleSystemsFromScene?.forEach(a=>{let c=e.particleSystems?.find(m=>m.name!==a.particleSystemName?!1:a.directDescendantsOnly?m.emitter===t:m);n[a.propertyKey.toString()]=c}),(s._VisibleInInspector??[]).forEach(a=>{let c=a.propertyKey.toString(),m=r.values;if(!m)throw new Error(`No values found for script with key "${r.key}".`);if(m.hasOwnProperty(c)&&m[c].hasOwnProperty("value")){let f=m[c].value;switch(a.configuration.type){case"number":case"boolean":case"keymap":case"string":n[c]=f;break;case"vector2":n[c]=Te.Vector2.FromArray(f);break;case"vector3":n[c]=Te.Vector3.FromArray(f);break;case"color3":n[c]=Ee.Color3.FromArray(f);break;case"color4":n[c]=Ee.Color4.FromArray(f);break;case"entity":switch(a.configuration.entityType){case"node":case"sound":n[c]=Z(f,e)??null;break;case"animationGroup":n[c]=e.getAnimationGroupByName(f)??null;break;case"particleSystem":n[c]=e.particleSystems?.find(g=>g.id===f)??null;break}break;case"texture":f&&(n[c]=Pr.Texture.Parse(f,e,o));break;case"asset":if(f){let g=a.configuration.assetType,h=O.get(f);switch(g){case"json":case"gui":case"scene":case"navmesh":case"cinematic":n[c]=h;break;case"ragdoll":n[c]=ut(h);break;case"nodeParticleSystemSet":let y=xr.NodeParticleSystemSet.Parse(h);n[c]=y;break;case"material":n[c]=br.Material.Parse(h,e,o);break}}}}});let l=null,p=null;if(s._PointerEvents?.length){if(s._PointerEvents.find(m=>m.options.mode==="attachedMeshOnly")&&!K(t))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(s._PointerEvents.find(m=>m.options.mode!=="global")&&!j(t))throw new Error('@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.');l=e.onPointerObservable.add(m=>{let f=null;s._PointerEvents.forEach(d=>{if(!d.eventTypes.includes(m.type))return;let g=d.propertyKey.toString();if(d.options.mode==="global")return n[g]?.(m);f=m.pickInfo,f||(f=e.pick(e.pointerX,e.pointerY,y=>y.isVisible&&y.isPickable&&y.isEnabled(!0)&&!y._masterMesh,!1));let h=f.pickedMesh;if(h&&(d.options.mode==="attachedMeshOnly"&&h===t||d.options.mode==="includeDescendants"&&j(t)&&[t,...t.getDescendants(!1)].find(x=>x===h)))return n[g]?.(m)})})}if(s._KeyboardEvents?.length&&(p=e.onKeyboardObservable.add(a=>{s._KeyboardEvents.forEach(c=>{c.eventTypes.includes(a.type)&&n[c.propertyKey.toString()]?.(a)})})),s._SpritesFromSpriteManager?.length){let a=t;if(!V(a)||!a.isSpriteManager)return console.error("@spriteFromSpriteManager decorator can only be used on SpriteManagerNode.");if(!a.spriteManager)return console.error(`SpriteManagerNode "${a.name}" has no sprite manager assigned.`);s._SpritesFromSpriteManager?.forEach(c=>{let m=a.spriteManager?.sprites.find(f=>f.name===c.spriteName)||null;n[c.propertyKey.toString()]=m})}if(s._AnimationsFromSprite?.length){if(!Be(t))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let a=t.metadata?.spriteAnimations;if(!a?.length)return console.error(`Sprite "${t.name}" has no sprite animations assigned.`);s._AnimationsFromSprite.forEach(c=>{let m=a.find(f=>f.name===c.animationName);m?n[c.propertyKey.toString()]=m??null:console.warn(`Sprite animation named "${c.animationName}" not found on sprite "${t.name}".`)})}return s._SceneAssets?.forEach(a=>{n[a.propertyKey.toString()]=O.get(a.sceneName)}),{observers:{pointerObserver:l,keyboardObserver:p}}}i(St,"applyDecorators");function N(e,t,r,n){t.metadata?.scripts&&(t.metadata.scripts?.forEach(o=>{if(!o.enabled)return;let s=r[o.key];if(!s)return;let l=s,p={};if(s.default){l=new s.default(t);let a=St(e,t,o,l,n);Object.assign(p,a?.observers??{})}l.onStart&&(p.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>l.onStart(t))),l.onUpdate&&(p.onUpdateObserver=e.onBeforeRenderObservable.add(()=>l.onUpdate(t))),Pt(t,l,o.key,p)}),t.metadata.scripts=void 0)}i(N,"_applyScriptsForObject");function Jn(e,t,r){if(r??=e.getScene?.(),!r)throw new Error("Cannot apply script on object: no scene available.");let n=new t(e),o={};return St(r,e,{values:{}},n,""),n.onStart&&(o.onStartObserver=r.onBeforeRenderObservable.addOnce(()=>n.onStart())),n.onUpdate&&r.onBeforeRenderObservable.add(()=>n.onUpdate()),Pt(e,n,"runtime",o),n}i(Jn,"applyScriptOnObject");var R=new Map;function Pt(e,t,r,n){let o={key:r,observers:n,instance:t};R.has(e)?R.get(e).push(o):R.set(e,[o]),(j(e)||Ve(e)||_e(e)||k(e))&&e.onDisposeObservable.addOnce((()=>{R.get(e)?.slice()?.forEach(l=>{Ie(e,l)}),R.delete(e)}))}i(Pt,"_registerScriptInstance");function Ie(e,t){t.observers.onStartObserver?.remove(),t.observers.onUpdateObserver?.remove(),t.observers.pointerObserver?.remove(),t.observers.keyboardObserver?.remove();try{t.instance.onStop?.(e)}catch(o){console.error(`Failed to call onStop for script ${t.key} on object ${e}`,o)}let r=R.get(e),n=r?.indexOf(t)??-1;n!==-1&&r?.splice(n,1)}i(Ie,"_removeRegisteredScriptInstance");function te(e,t){return R.get(e)?.filter(o=>o.instance.constructor===t)?.map(o=>o.instance)??null}i(te,"getAllScriptsByClassForObject");function bt(e,t){return te(e,t)?.[0]??null}i(bt,"getScriptByClassForObject");var vr=!1;function Zn(e){vr=e}i(Zn,"setUseKtx2CompressedTextures");function de(){return vr}i(de,"isUsingKtx2CompressedTextures");function Oe(e){return`${e.substring(0,e.lastIndexOf("."))}.ktx2`}i(Oe,"_getKtx2TextureName");function Xn(e){e.setCompressedTextureExclusions([".env",".hdr",".dds"]),e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(Xn,"configureEngineToUseCompressedTextures");function De(e,t){e._excludedCompressedTextures&&!e._excludedCompressedTextures?.includes(t)&&e._excludedCompressedTextures?.push(t)}i(De,"addExcludedCompressedTexture");function eo(e,t,r){t.loadingTexturesQuality!==e&&(t.loadingTexturesQuality=e,t.textures.forEach(n=>{if(!ae(n)||!n.url)return;let o=Me(n,t);!o||n.url.includes(o)||n.updateURL(r+o)}))}i(eo,"applyTexturesQuality");function Me(e,t){if(t.loadingTexturesQuality==="high"||!e.metadata?.baseSize)return e.name;let r=e.metadata.baseSize.width,n=e.metadata.baseSize.height,o=r===M(r)||n===M(n),s="";switch(t.loadingTexturesQuality){case"medium":let d=r*.66>>0,g=n*.66>>0;o&&(d=M(d),g=M(g)),s=`_${d}_${g}`;break;case"low":case"very-low":let h=r*.33>>0,y=n*.33>>0;o&&(h=M(h),y=M(y)),s=`_${h}_${y}`;break}let l=e.name;if(!l||!s)return e.name;let p=l.split("/"),a=p.pop();if(!a)return e.name;let c=a.split(".").pop(),f=`${a.replace(`.${c}`,"")}${s}.${c}`;return p.push(f),p.join("/")}i(Me,"getTextureUrl");var xt=require("babylonjs"),Cr=!1;function Ir(){if(Cr)return;Cr=!0;let e=xt.SerializationHelper._TextureParser;xt.SerializationHelper._TextureParser=(t,r,n)=>{de()&&(t.name&&(t.name=Oe(t.name)),t.url&&(t.url=Oe(t.url)));let o=Me(t,r);if(!o)return e(t,r,n);let s=t.name;t.name=o;let l=e(t,r,n);return l&&(l.name=s),l}}i(Ir,"registerTextureParser");var Tr=require("babylonjs"),Or=require("babylonjs"),we=require("babylonjs"),Dr=require("babylonjs"),Er=!1;function Mr(){if(Er)return;Er=!0,(0,Dr.RegisterShadowGeneratorSceneComponent)(Or.ShadowGenerator);let e=(0,we.GetParser)(Tr.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,we.AddParser)("ShadowGeneratorEditorPlugin",(t,r,n,o)=>{let s=new Map;t.shadowGenerators?.forEach(l=>{if(s.set(l.id,l.mapSize),r.loadingShadowsQuality!=="high"){switch(r.loadingShadowsQuality){case"medium":l.mapSize=l.mapSize*.5;break;case"low":l.mapSize=l.mapSize*.25;break;case"very-low":l.mapSize=l.mapSize*.125;break}l.mapSize=Math.max(128,M(l.mapSize))}}),e?.(t,r,n,o),r.lights.forEach(l=>{let p=l.getShadowGenerator();if(p?.getShadowMap()){let c=p.id,m=s.get(c);m&&(p.originalMapSize=m)}})})}i(Mr,"registerShadowGeneratorParser");var Nr=require("babylonjs"),Rr=require("babylonjs"),wr=!1;function Fr(){wr||(wr=!0,(0,Rr.AddParser)("MorphTargetManagerEditorPlugin",(e,t,r,n)=>{e.morphTargetManagers.forEach(o=>{let l=r.meshes.find(c=>c.id===o.meshId)?.morphTargetManager;if(!l||o.targets.find(c=>!c.delayLoadingFile))return;let a=[];o.targets.forEach(c=>{if(!c.delayLoadingFile)return a.push(Promise.resolve(null));let m=`${n}${c.delayLoadingFile}`;t.addPendingData(m);let f=new Nr.WebRequest;f.responseType="arraybuffer",f.open("GET",m),f.send(),a.push(new Promise(d=>{f.addEventListener("load",()=>{t.removePendingData(m),d(f.response)})}))}),Promise.all(a).then(c=>{for(let m=0,f=l.numTargets;m<f;++m){let d=l.getTarget(m),g=o.targets[m],h=c[m];if(g.positionsCount){let y=new Float32Array(h,g.positionsOffset,g.positionsCount);d._positions=y,d.setPositions(y)}if(g.normalsCount){let y=new Float32Array(h,g.normalsOffset,g.normalsCount);d._normals=y,d.setNormals(y)}if(g.tangentsCount){let y=new Float32Array(h,g.tangentsOffset,g.tangentsCount);d._tangents=y,d.setTangents(y)}if(g.uvsCount){let y=new Float32Array(h,g.uvsOffset,g.uvsCount);d._uvs=y,d.setUVs(y)}if(g.uv2sCount){let y=new Float32Array(h,g.uv2sOffset,g.uv2sCount);d._uv2s=y,d.setUV2s(y)}}for(let m=0,f=l.numTargets;m<f;++m)l.getTarget(m)._onDataLayoutChanged.notifyObservers()})})}))}i(Fr,"registerMorphTargetManagerParser");var _r=require("babylonjs");function Lr(e,t){t??=new _r.ClusteredLightContainer("Clustered Light Container",[],e);let r=e.metadata?.clusteredLight;return r&&(r.lights.length>0&&(t.horizontalTiles=r.horizontalTiles,t.verticalTiles=r.verticalTiles,t.depthSlices=r.depthSlices,t.maxRange=r.maxRange),r.lights.forEach(n=>{let o=e.getLightById(n);o&&t?.addLight(o)})),t}i(Lr,"configureLights");function At(e){if(!Array.isArray(e.frames)){let t=[];for(let r of Object.keys(e.frames))t.push({filename:r,...e.frames[r]});e.frames=t}}i(At,"normalizeAtlasJson");function to(e,t,r){let o=(e.metadata?.spriteAnimations??[]).find(s=>s.name===t);if(!o)return console.error(`Animation with name "${t}" not found on sprite.`);e.playAnimation(o.from,o.to,o.loop,o.delay,r)}i(to,"playSpriteAnimationFromName");var Br=require("babylonjs"),Gr=require("babylonjs"),Kr=require("babylonjs"),kr=require("babylonjs"),vt=require("babylonjs"),re=require("babylonjs"),zr=require("babylonjs"),Vr=!1;function $r(){Vr||(Vr=!0,(0,zr.AddParser)("SpriteMapNode",(e,t,r,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSpriteMap)return;let s=r.transformNodes?.find(a=>a.id===o.id);if(!s)return;s.isSpriteMap=o.isSpriteMap;let l=`${n}${o.atlasJsonRelativePath}`;t.addPendingData(l);let p=new Kr.WebRequest;p.open("GET",l),p.send(),p.addEventListener("load",()=>{t.removePendingData(l);let a=JSON.parse(p.responseText);At(a);let c=`${Br.Tools.GetFolderPath(l)}${a.meta.image}`,m=new vt.Texture(c,t,!1,!1,vt.Texture.NEAREST_NEAREST,null,null,null,!1,Gr.Engine.TEXTUREFORMAT_RGBA),f=new kr.SpriteMap(s.name,a,m,{layerCount:o.options.layerCount,stageSize:re.Vector2.FromArray(o.options.stageSize??[10,1]),outputSize:re.Vector2.FromArray(o.options.outputSize??[100,100]),colorMultiply:re.Vector3.FromArray(o.options.colorMultiply??[1,1,1]),flipU:!0},t);o.tiles.forEach(g=>{for(let h=0,y=g.repeatCount.x+1;h<y;++h)for(let b=0,x=g.repeatCount.y+1;b<x;++b){let v=h*(g.repeatOffset.x+1),A=b*(g.repeatOffset.y+1);f.changeTiles(g.layer,new re.Vector2(g.position.x+v,(f.options.stageSize?.y??0)-1-g.position.y-A),g.tile)}});let d=f._output;d.parent=s,s.spriteMap=f})})}))}i($r,"registerSpriteMapParser");var Qr=require("babylonjs"),Wr=require("babylonjs"),Yr=require("babylonjs"),Ct=require("babylonjs"),Hr=require("babylonjs");function jr(e,t){t?.fogEnabled!==void 0&&(e.fogEnabled=t?.fogEnabled),t?.blendMode!==void 0&&(e.blendMode=t?.blendMode),t?.disableDepthWrite!==void 0&&(e.disableDepthWrite=t?.disableDepthWrite),t?.pixelPerfect!==void 0&&(e.pixelPerfect=t?.pixelPerfect),t?.useLogarithmicDepth!==void 0&&(e.useLogarithmicDepth=t?.useLogarithmicDepth),t?.metadata!==void 0&&(e.metadata=t?.metadata);for(let r of t?.sprites??[]){let n=Wr.Sprite.Parse(r,e);n.uniqueId=r.uniqueId,n.metadata=r.metadata}}i(jr,"parseSerializedSpriteManager");var Ur=!1;function qr(){Ur||(Ur=!0,(0,Hr.AddParser)("SpriteManagerNode",(e,t,r,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSpriteManager)return;let s=r.transformNodes?.find(p=>p.id===o.id);if(!s)return;let l=t.getEngine();if(s.isSpriteManager=o.isSpriteManager,o.atlasJsonRelativePath){let p=`${n}${o.atlasJsonRelativePath}`;t.addPendingData(p);let a=new Yr.WebRequest;a.open("GET",p),a.send(),a.addEventListener("load",()=>{t.removePendingData(p);let c=JSON.parse(a.responseText),m=`${Qr.Tools.GetFolderPath(p)}${c.meta.image}`;De(l,m);let f=new Ct.SpriteManager(s.name,m,1e3,64,t,void 0,void 0,!0,c);s.spriteManager=f,o.spriteManager&&jr(f,o.spriteManager)})}else if(o.spriteManager?.textureUrl){De(l,o.spriteManager.textureUrl);let p=`${n}${o.spriteManager.textureUrl}`,a=new Ct.SpriteManager(s.name,p,1e3,{width:o.spriteManager.cellWidth,height:o.spriteManager.cellHeight},t,void 0,void 0,!1);s.spriteManager=a,o.spriteManager&&jr(a,o.spriteManager)}})}))}i(qr,"registerSpriteManagerParser");var Zr=require("babylonjs"),Xr=require("babylonjs"),Jr=!1;function en(){Jr||(Jr=!0,(0,Zr.AddParser)("NodeParticleSystemSetEditorPlugin",(e,t,r,n)=>{e.meshes?.forEach(o=>{if(!o.isNodeParticleSystemMesh)return;let s=r.meshes?.find(l=>l.id===o.id);s&&(o.nodeParticleSystemSet.blocks?.forEach(l=>{l.url&&(l.url=`${n}${l.url}`)}),s.nodeParticleSystemSet=Xr.NodeParticleSystemSet.Parse(o.nodeParticleSystemSet),s.nodeParticleSystemSet.id=o.nodeParticleSystemSet.id,s.nodeParticleSystemSet.uniqueId=o.uniqueId,t.addPendingData(o.id),s.nodeParticleSystemSet.buildAsync(t,!1).then(l=>{t.removePendingData(o.id),s.particleSystemSet=l,l.systems.forEach(p=>{if(Le(p)){let a=p._sizeCreation.process;a&&(p._sizeCreation.process=(c,m)=>{a(c,m),c.scale.x*=100,c.scale.y*=100})}}),l.emitterNode=s,l.start()}))})}))}i(en,"registerNodeParticleSystemSetParser");var nn=require("babylonjs"),It=require("babylonjs"),on=require("babylonjs"),sn=require("babylonjs"),tn=new Map;async function rn(e,t){let r=e.getWaitingItemsCount();for(;!e.isDisposed&&(!e.isReady()||e.getWaitingItemsCount()>0);){await new Promise(o=>setTimeout(o,150));let n=r-e.getWaitingItemsCount();n===r&&e.textures.forEach(o=>{o.delayLoadState===It.Constants.DELAYLOADSTATE_NONE&&(o.delayLoadState=It.Constants.DELAYLOADSTATE_LOADED)}),t(n/r)}}i(rn,"waitForWaitingItems");async function ro(e,t,r,n,o){r.loadingQuality=o?.quality??"high",r.loadingTexturesQuality=o?.texturesQuality??r.loadingQuality,r.loadingShadowsQuality=o?.shadowsQuality??r.loadingQuality,r.loadingLodsQuality=o?.lodsQuality??r.loadingQuality,fr(),Ir(),Mr(),Fr(),$r(),qr(),en();let s=tn.get(r)??{};if(tn.set(r,s),await(0,on.AppendSceneAsync)(`${e}${t}`,r,{pluginExtension:".babylon",onProgress:i(p=>{let a=Math.min(p.loaded/p.total*.5);o?.onProgress?.(a)},"onProgress")}),await rn(r,p=>{o?.onProgress?.(.5+p*.25)}),!o?.skipAssetsPreload){let p=0;do p=await ht(e,r,n);while(p!==0&&!r.isDisposed)}sn.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&r.meshes.forEach(p=>D(p)&&p._checkDelayState());let l=Lr(r,s.clusteredLightContainer);s.clusteredLightContainer=l,await rn(r,p=>{o?.onProgress?.(.75+p*.25)}),o?.onProgress?.(1),Ke(r),ke(r.loadingLodsQuality,r),ze(r),ve(r),r.metadata?.rendering&&(tr(r,r.metadata.rendering),r.activeCamera&&ct(r.activeCamera,e,o?.postProcessConfiguration)),r.metadata?.physicsGravity&&r.getPhysicsEngine()?.setGravity(nn.Vector3.FromArray(r.metadata?.physicsGravity)),N(r,r,n,e),r.transformNodes.forEach(p=>{N(r,p,n,e)}),r.meshes.forEach(p=>{er(p),N(r,p,n,e)}),r.lights.forEach(p=>{N(r,p,n,e)}),r.cameras.forEach(p=>{N(r,p,n,e)}),r.spriteManagers?.forEach(p=>{p.sprites.forEach(a=>{N(r,a,n,e)})}),ee(r)}i(ro,"loadScene");var an=require("babylonjs");async function no(e,t,r){let n=await w(e+t),s=an.Tools.Instantiate(n.customType).Parse(n,r,e);return s.id=n.id,s.uniqueId=n.uniqueId,s}i(no,"loadMaterialFromFile");function oo(e){return Promise.all(e.materials.map(async t=>{let r=t.getBindedMeshes();await Promise.all(r.map(async n=>{se(n)||await t.forceCompilationAsync(n,{clipPlane:!!e.clipPlane,useInstances:n.hasInstances})}))}))}i(oo,"forceCompileAllSceneMaterials");var B=require("babylonjs");function fe(e){if(!isNaN(parseFloat(e))&&isFinite(e))return B.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return B.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return B.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return B.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return B.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return B.Animation.ANIMATIONTYPE_COLOR4;case"Size":return B.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return B.Animation.ANIMATIONTYPE_MATRIX}return null}i(fe,"getAnimationTypeForObject");var ln=require("babylonjs");function io(e){return function(t,r){let n=t.constructor;n._NodesFromScene??=[],n._NodesFromScene.push({propertyKey:r,nodeName:e})}}i(io,"nodeFromScene");function so(e){return function(t,r){let n=t.constructor;n._ComponentsFromScene??=[],n._ComponentsFromScene.push({propertyKey:r,componentConstructor:e})}}i(so,"componentFromScene");function ao(e,t=!1){return function(r,n){let o=r.constructor;o._NodesFromDescendants??=[],o._NodesFromDescendants.push({propertyKey:n,nodeName:e,directDescendantsOnly:t})}}i(ao,"nodeFromDescendants");function lo(e){return function(t,r){let n=t.constructor;n._AnimationGroups??=[],n._AnimationGroups.push({animationGroupName:e,propertyKey:r})}}i(lo,"animationGroupFromScene");function co(e){return function(t,r){let n=t.constructor;n._SceneAssets??=[],n._SceneAssets.push({sceneName:e,propertyKey:r})}}i(co,"sceneAsset");function po(e,t){return function(r,n){let o=r.constructor;o._GuiFromAsset??=[],o._GuiFromAsset.push({propertyKey:n,pathInAssets:e,onGuiCreated:t})}}i(po,"guiFromAsset");function mo(e){return function(t,r){let n=t.constructor;n._SoundsFromScene??=[],n._SoundsFromScene.push({propertyKey:r,soundName:e})}}i(mo,"soundFromScene");function uo(e,t=!1){return function(r,n){let o=r.constructor;o._ParticleSystemsFromScene??=[],o._ParticleSystemsFromScene.push({propertyKey:n,particleSystemName:e,directDescendantsOnly:t})}}i(uo,"particleSystemFromScene");function fo(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"boolean"}})}}i(fo,"visibleAsBoolean");function go(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"string"}})}}i(go,"visibleAsString");function yo(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"number"}})}}i(yo,"visibleAsNumber");function ho(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"vector2"}})}}i(ho,"visibleAsVector2");function So(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"vector3"}})}}i(So,"visibleAsVector3");function bo(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"color3"}})}}i(bo,"visibleAsColor3");function Po(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"color4"}})}}i(Po,"visibleAsColor4");function xo(e,t,r){return function(n,o){let s=n.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:t,propertyKey:o,configuration:{...r,entityType:e,type:"entity"}})}}i(xo,"visibleAsEntity");function Ao(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"texture"}})}}i(Ao,"visibleAsTexture");function vo(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"keymap"}})}}i(vo,"visibleAsKeyMap");function Co(e,t,r){return function(n,o){let s=n.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:t,propertyKey:o,configuration:{...r,assetType:e,type:"asset"}})}}i(Co,"visibleAsAsset");function Io(e,t){return function(r,n){let o=r.constructor;o._PointerEvents??=[],o._PointerEvents.push({propertyKey:n,options:{mode:"global",...t??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(Io,"onPointerEvent");function Eo(e){return function(t,r){let n=t.constructor;n._KeyboardEvents??=[],n._KeyboardEvents.push({propertyKey:r,eventTypes:Array.isArray(e)?e:[e]})}}i(Eo,"onKeyboardEvent");function To(e){return function(t,r){let n=t.constructor;n._SpritesFromSpriteManager??=[],n._SpritesFromSpriteManager.push({propertyKey:r,spriteName:e})}}i(To,"spriteFromSpriteManager");function Oo(e){return function(t,r){let n=t.constructor;n._AnimationsFromSprite??=[],n._AnimationsFromSprite.push({propertyKey:r,animationName:e})}}i(Oo,"animationFromSprite");var Ne=require("babylonjs");function Yu(e,t){let r;return e===Ne.Animation.ANIMATIONTYPE_FLOAT?r=t.value:r=t.value.clone(),{value:r,frame:t.frame,interpolation:t.interpolation,inTangent:e===Ne.Animation.ANIMATIONTYPE_FLOAT?t.inTangent:t.inTangent?.clone(),outTangent:e===Ne.Animation.ANIMATIONTYPE_FLOAT?t.outTangent:t.outTangent?.clone()}}i(Yu,"cloneKey");function Re(e,t){let r=t.split("."),n=e;for(let o=0;o<r.length;++o)n=n[r[o]];return n}i(Re,"getPropertyValue");function Et(e,t,r){let n=null;e.onAnimationGroupPlayObservable.add(()=>{n=t.onAfterAnimationsObservable.add(()=>{r()})}),e.onAnimationGroupPauseObservable.add(()=>{n&&(t.onAfterAnimationsObservable.remove(n),n=null)}),e.onAnimationGroupEndObservable.add(()=>{n&&(t.onAfterAnimationsObservable.remove(n),n=null)})}i(Et,"registerAfterAnimationCallback");var G=require("babylonjs"),Fe=require("babylonjs"),_=require("babylonjs");function Do(e,t){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(r=>{let n=null,o=null;if(r.node?(n=Z(r.node,t),n||(n=t.particleSystems?.find(l=>l.id===r.node)??null)):r.defaultRenderingPipeline&&(n=le()),r.propertyPath){let l=Re(n,r.propertyPath);o=fe(l)}let s=null;return r.sound&&(s=Z(r.sound,t)),{node:n,sound:s,propertyPath:r.propertyPath,defaultRenderingPipeline:r.defaultRenderingPipeline,animationGroup:r.animationGroup?t.getAnimationGroupByName(r.animationGroup):null,animationGroups:r.animationGroups,sounds:r.sounds,soundVolume:Tt(r.soundVolume??[],G.Animation.ANIMATIONTYPE_FLOAT),keyFrameEvents:r.keyFrameEvents?.map(l=>{let p={...l};switch(l.data?.type){case"set-enabled":p.data={type:"set-enabled",value:l.data.value,node:Z(l.data.node,t)};break;case"apply-impulse":p.data={type:"apply-impulse",radius:l.data.radius,mesh:t.getMeshById(l.data.mesh),force:_.Vector3.FromArray(l.data.force),contactPoint:_.Vector3.FromArray(l.data.contactPoint)};break}return p}),keyFrameAnimations:n&&o!==null&&Tt(r.keyFrameAnimations??[],o)}})}}i(Do,"parseCinematic");function F(e,t){if(e===null)return null;if(e!==void 0)switch(t){case G.Animation.ANIMATIONTYPE_FLOAT:return e;case G.Animation.ANIMATIONTYPE_VECTOR2:return _.Vector2.FromArray(e);case G.Animation.ANIMATIONTYPE_VECTOR3:return _.Vector3.FromArray(e);case G.Animation.ANIMATIONTYPE_QUATERNION:return _.Quaternion.FromArray(e);case G.Animation.ANIMATIONTYPE_COLOR3:return Fe.Color3.FromArray(e);case G.Animation.ANIMATIONTYPE_COLOR4:return Fe.Color4.FromArray(e);case G.Animation.ANIMATIONTYPE_MATRIX:return _.Matrix.FromArray(e)}}i(F,"parseCinematicKeyValue");function Tt(e,t){return e?.map(r=>{let n=r.type==="key"?r:null;if(n)return{...n,value:F(n.value,t),inTangent:F(n.inTangent,t),outTangent:F(n.outTangent,t)};let o=r.type==="cut"?r:null;if(o)return{...o,key1:{...o.key1,value:F(o.key1.value,t),inTangent:F(o.key1.inTangent,t),outTangent:F(o.key1.outTangent,t)},key2:{...o.key2,value:F(o.key2.value,t),inTangent:F(o.key2.inTangent,t),outTangent:F(o.key2.outTangent,t)}};throw new Error(`Unknown key frame type: ${r.type}`)})}i(Tt,"parseKeyFrameAnimations");function cn(e,t){e.onEventObservable.notifyObservers(t.eventName)}i(cn,"handleApplyEvent");function pn(e){e.node?.setEnabled(e.value)}i(pn,"handleSetEnabledEvent");var Ot=require("babylonjs"),mn=Ot.Vector3.Zero();function un(e,t){let r=t.mesh?[t.mesh]:e.meshes.filter(n=>n.physicsAggregate);t.radius&&(r=r.filter(n=>{let o=n.getBoundingInfo().boundingBox.centerWorld;return Ot.Vector3.Distance(o,t.contactPoint)<=t.radius})),r.forEach(n=>{if(n.physicsAggregate?.body){let o=t.contactPoint.subtract(n.getBoundingInfo().boundingBox.centerWorld);o.multiplyInPlace(t.force),n.physicsAggregate.body.setLinearVelocity(mn),n.physicsAggregate.body.setAngularVelocity(mn),n.physicsAggregate.body.applyImpulse(o.negateInPlace(),t.contactPoint)}})}i(un,"handleApplyImpulseEvent");var dn=require("babylonjs"),fn=require("babylonjs"),ge=class extends fn.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new dn.Observable;onEvent(t,r){this.onEventObservable.add(n=>{t===n&&r()})}};function Dt(e){return e.type==="key"}i(Dt,"isCinematicKey");function ne(e){return e.type==="cut"}i(ne,"isCinematicKeyCut");function Mo(e){return e.type==="event"}i(Mo,"isCinematicKeyEvent");function wo(e){return e.type==="group"}i(wo,"isCinematicGroup");function No(e){return e.type==="sound"}i(No,"isCinematicSound");var C=require("babylonjs"),oe=require("babylonjs");function Ro(e,t,r){let n=new ge(e.name,t);return e.tracks.forEach(o=>{let s=o.animationGroup;if(s&&o.animationGroups?.length){let d=s.clone(`${s.name}-cinematic-temp`),g=t.animationGroups.indexOf(d);g!==-1&&t.animationGroups.splice(g,1),n.onAnimationEndObservable.add(()=>{s.stop(),d.stop()});let h=o.animationGroups.reduce((v,A)=>Math.min(v,A.frame),Number.MAX_VALUE)??0,y=o.animationGroups.reduce((v,A)=>Math.max(v,A.frame+A.endFrame),0)??0,b={frame:h},x=new C.Animation(d.name,"frame",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1);if(x.setKeys([{frame:h,value:0},{frame:y,value:y}]),o.animationGroups.forEach(v=>{x.addEvent(new oe.AnimationEvent(v.frame,()=>{let A=v.repeatCount??0;if(d.to=v.endFrame,d.speedRatio=v.speed,d.stop(),d.play(A>0),d.from!==v.startFrame&&d.goToFrame(v.startFrame),A){let ie=0;d.onAnimationGroupLoopObservable.add(()=>{++ie,ie>A&&d.stop()})}}))}),n.addTargetedAnimation(x,b),(o.animationGroupWeight?.length??0)>=2&&o.animationGroupWeight.find(A=>ne(A)?A.key1.value!==1||A.key2.value!==1:A.value!==1)){let A={weight:0},ie=new C.Animation(`${d.name}-weights`,"weight",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),Se=[];o.animationGroupWeight.forEach(be=>{ne(be)?(Se.push(be.key1),Se.push(be.key2)):Se.push(be)}),ie.setKeys(Se),n.addTargetedAnimation(ie,A),Et(n,t,()=>{d.weight=A.weight})}}let l=o.sound;if(!r?.ignoreSounds&&l&&l.sound?.buffer&&o.sounds?.length){let d={dummy:0,volume:0},g=new C.Animation(l.name,"dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),h=0;if(o.sounds?.forEach(y=>{let b=y.endFrame-y.startFrame;h=Math.max(h,y.frame+b),g.addEvent(new oe.AnimationEvent(y.frame,x=>{let A=(x-y.frame+y.startFrame)/e.framesPerSecond;l.play({startOffset:A})},!1)),g.addEvent(new oe.AnimationEvent(y.frame+b,()=>{l.stop()}))}),g.setKeys([{frame:0,value:0},{frame:h,value:h}]),n.addTargetedAnimation(g,d),(o.soundVolume?.length??0)>=2){let y=new C.Animation(l.name,"volume",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),b=[];o.soundVolume.forEach(x=>{ne(x)?(b.push(x.key1),b.push(x.key2)):b.push(x)}),y.setKeys(b),n.addTargetedAnimation(y,d),Et(n,t,()=>{l.volume=d.volume})}}if(o.keyFrameEvents){let d={dummy:0},g=new C.Animation("events","dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),h=0;o.keyFrameEvents?.forEach(y=>{h=Math.max(h,y.frame),g.addEvent(new oe.AnimationEvent(y.frame,()=>{switch(y.data?.type){case"event":cn(n,y.data);break;case"set-enabled":pn(y.data);break;case"apply-impulse":un(t,y.data);break}}))}),g.setKeys([{frame:0,value:0},{frame:h+1,value:h+1}]),n.addTargetedAnimation(g,d)}let p=o.defaultRenderingPipeline?le():o.node;if(!p||!o.propertyPath||!o.keyFrameAnimations)return;let a=Re(p,o.propertyPath),c=fe(a);if(c===null)return;let m=new C.Animation(o.propertyPath,o.propertyPath,60,c,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),f=[];o.keyFrameAnimations?.forEach(d=>{if(Dt(d))return f.push(d);ne(d)&&(f.push(d.key1),f.push(d.key2),xe(p)&&o.propertyPath==="position"&&m.addEvent(new oe.AnimationEvent(d.key1.frame,()=>{let g=tt();if(!g)return;let h=g.motionStrength;g.motionStrength=0,requestAnimationFrame(()=>{g.motionStrength=h})})))}),m.setKeys(f),n.addTargetedAnimation(m,p)}),n.normalize(),n}i(Ro,"generateCinematicAnimationGroup");async function Mt(e,t){return new Promise((r,n)=>{let o=indexedDB.open(e,1);o.addEventListener("error",()=>n()),o.addEventListener("blocked",()=>n()),o.addEventListener("upgradeneeded",()=>{try{t(o.result)}catch(s){n(s)}}),o.addEventListener("success",()=>{r(o.result)})})}i(Mt,"openIndexDB");function ye(e,t,r){return new Promise(n=>{let s=e.transaction(t).objectStore(t).get(r);s.addEventListener("error",()=>{n(null)}),s.addEventListener("success",()=>{n(s.result??null)})})}i(ye,"getFromIndexDB");async function L(e,t,r){let o=e.transaction(t,"readwrite").objectStore(t).put(r);await new Promise((s,l)=>{o.addEventListener("error",()=>l()),o.addEventListener("success",()=>s())})}i(L,"putInIndexDB");var gn=require("babylonjs");function Fo(e){gn.AbstractEngine.OfflineProviderFactory=(t,r,n=!1)=>new he(e,t,r,n)}i(Fo,"setupOfflineProvider");async function wt(e,t){let r=await new Promise(n=>{let o=new he(e,t,s=>n(s?o:null),!1)});return await r?.open(),r}i(wt,"createAndOpenDatabase");var he=class{static{i(this,"Database")}enableSceneOffline=!0;enableTexturesOffline=!0;name;_database=null;_manifestVersion=null;_loadFilePromises=new Map;constructor(t,r,n,o){this.name=t,o?n(!1):this._checkManifest(r,n)}async _checkManifest(t,r){try{let n=await w(`${t}.manifest?${Date.now()}`);this._manifestVersion=n.version,r(!0)}catch{this.enableSceneOffline=!1,this.enableTexturesOffline=!1,r(!1)}}async open(t,r){try{this._database=await Mt(this.name,n=>{n.createObjectStore("files",{keyPath:"url"}),n.createObjectStore("images",{keyPath:"url"}),n.createObjectStore("versions",{keyPath:"url"})}),t?.()}catch{r?.()}}close(){this._database?.close(),this._database=null,this._loadFilePromises.clear()}async loadImage(t,r){if(!this._database){r.src=t;return}let n=null;await dt(()=>this._manifestVersion!==null);let o=this._loadFilePromises.get(t);if(o)return o.then(l=>{l!==null?r.src=l:r.src=t});let s=new Promise(async l=>{if(await this._getFileVersionForUrl(t)!==this._manifestVersion?(n=await J(t,"blob"),await Promise.all([L(this._database,"images",{url:t,data:n}),L(this._database,"versions",{url:t,version:this._manifestVersion})])):n=(await ye(this._database,"images",t))?.data??null,n!==null){let a=URL.createObjectURL(n);r.src=a}else r.src=t;l(r.src)});this._loadFilePromises.set(t,s)}async saveImage(t){if(!this._database)throw new Error("Database is not available");let r=await J(t,"blob");await Promise.all([L(this._database,"images",{url:t,data:r}),L(this._database,"versions",{url:t,version:this._manifestVersion})])}async isFileMatchingVersion(t){return await this._getFileVersionForUrl(t)===this._manifestVersion}async loadFile(t,r,n,o,s){if(!this._database)return o?.();let l=null;await dt(()=>this._manifestVersion!==null);let p=this._loadFilePromises.get(t);if(p)return p.then(c=>{c!==null?r(c):o?.()});let a=new Promise(async c=>{await this._getFileVersionForUrl(t)!==this._manifestVersion?(l=await J(t,s?"arraybuffer":"text",n),await Promise.all([L(this._database,"files",{url:t,data:l}),L(this._database,"versions",{url:t,version:this._manifestVersion})])):l=(await ye(this._database,"files",t))?.data??null,l!==null?r(l):o?.(),c(l)});this._loadFilePromises.set(t,a)}async saveFile(t,r,n){if(!this._database)throw new Error("Database is not available");let o=await J(t,r?"arraybuffer":"text",n);await Promise.all([L(this._database,"files",{url:t,data:o}),L(this._database,"versions",{url:t,version:this._manifestVersion})])}async _getFileVersionForUrl(t){return(await ye(this._database,"versions",t))?.version??null}};var yn=["babylon","json"],hn=["jpg","jpeg","png","bmp","webp"],Sn=["bin","babylonbinarymeshdata","mp3","wav","ktx","ktx2"],_o=[...yn,...hn,...Sn];async function Lo(e,t,r){let n=[],o=await w(`${t}scenes-used-files.json`),s=0,l=r?.engine?.textureFormatInUse?r?.engine?.texturesSupported[0]:null,p=Object.values(o).reduce((c,m)=>c+m.length,0);function a(c){++s,r?.onProgress?.(s/p),c?.()}i(a,"notifyProgress");for(let[c,m]of Object.entries(o)){let f=c.replace(".scene",".babylon"),d=await wt(e,`${t}${f}`);if(d){for(let g=0,h=m.length;g<h;++g){let y=m[g],b=y.split(".").pop()?.toLowerCase();if(!b){a();continue}if(b==="ktx")if(l){if(!y.endsWith(l)){a();continue}}else{a();continue}if(b==="ktx2"&&!de()){a();continue}if(n.length>300){try{await Promise.all(n)}catch{}n.splice(0,n.length)}let x=`${t}${y}`;_o.includes(b)&&n.push(new Promise(async v=>{if(await d.isFileMatchingVersion(x))return a(v);try{hn.includes(b)?r?.disableImages||await d.saveImage(x):Sn.includes(b)?await d.saveFile(x,!0):yn.includes(b)&&await d.saveFile(x,!1)}catch{}a(v)}))}await Promise.all(n),d.close()}}await Promise.all(n)}i(Lo,"preloadAssetsToDatabase");0&&(module.exports={AdvancedAssetContainer,AdvancedAssetContainerInstantiatedEntries,Cinematic,Database,NodeParticleSystemSet,_applyScriptsForObject,_getKtx2TextureName,_preloadScriptsAssets,_registerScriptInstance,_removeRegisteredScriptInstance,addExcludedCompressedTexture,animationFromSprite,animationGroupFromScene,applyMeshesLODQuality,applyRenderingConfigurationForCamera,applyScriptOnObject,applyShadowsQuality,applyTexturesQuality,componentFromScene,configureEngineToUseCompressedTextures,configureMeshDistanceOrScreenCoverage,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,copyAndParseRagdollConfiguration,createAndOpenDatabase,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createTAARenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeTAARenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getFromIndexDB,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getTAARenderingPipeline,getTextureUrl,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isClusteredLightContainer,isDecalMesh,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isNodeFromStaticGroup,isParticleSystem,isPointLight,isScene,isSoundNode,isSpotLight,isSprite,isTexture,isTransformNode,isUsingKtx2CompressedTextures,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,normalizeAtlasJson,onKeyboardEvent,onPointerEvent,openIndexDB,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseKeyFrameAnimations,parseMotionBlurPostProcess,parseRagdollConfiguration,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseTAARenderingPipeline,parseVLSPostProcess,particleSystemFromScene,playSpriteAnimationFromName,preloadAssetsToDatabase,putInIndexDB,registerScriptAssetParser,saveRenderingConfigurationForCamera,sceneAsset,scriptAssetsCache,scriptAssetsParsers,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeTAARenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setStaticDecalsEnabled,setTAARenderingPipelineRef,setUseKtx2CompressedTextures,setVLSPostProcessRef,setupOfflineProvider,soundFromScene,spriteFromSpriteManager,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,taaRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
1
+ var Pe=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var Pn=Object.getOwnPropertyNames;var xn=Object.prototype.hasOwnProperty;var i=(e,t)=>Pe(e,"name",{value:t,configurable:!0});var An=(e,t)=>{for(var r in t)Pe(e,r,{get:t[r],enumerable:!0})},vn=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Pn(t))!xn.call(e,o)&&o!==r&&Pe(e,o,{get:()=>t[o],enumerable:!(n=bn(t,o))||n.enumerable});return e};var Cn=e=>vn(Pe({},"__esModule",{value:!0}),e);var Vo={};An(Vo,{AdvancedAssetContainer:()=>me,AdvancedAssetContainerInstantiatedEntries:()=>pe,Cinematic:()=>ge,Database:()=>he,NodeParticleSystemSet:()=>ln.NodeParticleSystemSet,_applyScriptsForObject:()=>N,_getKtx2TextureName:()=>Oe,_preloadScriptsAssets:()=>ht,_registerScriptInstance:()=>Pt,_removeRegisteredScriptInstance:()=>Ie,addExcludedCompressedTexture:()=>De,animationFromSprite:()=>Oo,animationGroupFromScene:()=>lo,applyMeshesLODQuality:()=>ke,applyRenderingConfigurationForCamera:()=>ct,applyScriptOnObject:()=>Jn,applyShadowsQuality:()=>_n,applyTexturesQuality:()=>eo,componentFromScene:()=>so,configureEngineToUseCompressedTextures:()=>Xn,configureMeshDistanceOrScreenCoverage:()=>Ke,configureShadowMapRefreshRate:()=>ve,configureShadowMapRenderListPredicate:()=>ze,copyAndParseRagdollConfiguration:()=>ut,createAndOpenDatabase:()=>wt,createDefaultRenderingPipeline:()=>Zt,createMotionBlurPostProcess:()=>Wt,createSSAO2RenderingPipeline:()=>Ut,createSSRRenderingPipeline:()=>kt,createTAARenderingPipeline:()=>$t,createVLSPostProcess:()=>Gt,defaultPipelineCameraConfigurations:()=>q,disposeDefaultRenderingPipeline:()=>st,disposeMotionBlurPostProcess:()=>rt,disposeSSAO2RenderingPipeline:()=>Ze,disposeSSRRenderingPipeline:()=>Qe,disposeTAARenderingPipeline:()=>He,disposeVLSPostProcess:()=>$e,forceCompileAllSceneMaterials:()=>oo,generateCinematicAnimationGroup:()=>Ro,getAllScriptsByClassForObject:()=>te,getAnimationTypeForObject:()=>fe,getDefaultRenderingPipeline:()=>le,getFromIndexDB:()=>ye,getMotionBlurPostProcess:()=>tt,getPowerOfTwoUntil:()=>M,getSSAO2RenderingPipeline:()=>zn,getSSRRenderingPipeline:()=>Bn,getScriptByClassForObject:()=>bt,getTAARenderingPipeline:()=>Kn,getTextureUrl:()=>Me,getVLSPostProcess:()=>Ln,guiFromAsset:()=>po,isAbstractMesh:()=>K,isAnyParticleSystem:()=>Ve,isArcRotateCamera:()=>On,isBone:()=>In,isCamera:()=>xe,isCinematicGroup:()=>wo,isCinematicKey:()=>Dt,isCinematicKeyCut:()=>ne,isCinematicKeyEvent:()=>Mo,isCinematicSound:()=>No,isClusteredLightContainer:()=>Ae,isDecalMesh:()=>Rt,isDirectionalLight:()=>Mn,isFreeCamera:()=>Tn,isGPUParticleSystem:()=>Rn,isGroundMesh:()=>En,isHemisphericLight:()=>Nn,isInstancedMesh:()=>se,isLight:()=>Nt,isMesh:()=>D,isNode:()=>j,isNodeFromStaticGroup:()=>Ge,isParticleSystem:()=>Le,isPointLight:()=>Dn,isScene:()=>_e,isSoundNode:()=>k,isSpotLight:()=>wn,isSprite:()=>Be,isTexture:()=>ae,isTransformNode:()=>V,isUsingKtx2CompressedTextures:()=>de,loadMaterialFromFile:()=>no,loadScene:()=>ro,motionBlurPostProcessCameraConfigurations:()=>H,nodeFromDescendants:()=>ao,nodeFromScene:()=>io,normalizeAtlasJson:()=>At,onKeyboardEvent:()=>Eo,onPointerEvent:()=>Io,openIndexDB:()=>Mt,parseCinematic:()=>Do,parseCinematicKeyValue:()=>F,parseDefaultRenderingPipeline:()=>lt,parseKeyFrameAnimations:()=>Tt,parseMotionBlurPostProcess:()=>ot,parseRagdollConfiguration:()=>or,parseSSAO2RenderingPipeline:()=>et,parseSSRRenderingPipeline:()=>Ye,parseTAARenderingPipeline:()=>Je,parseVLSPostProcess:()=>Ue,particleSystemFromScene:()=>uo,playSpriteAnimationFromName:()=>to,preloadAssetsToDatabase:()=>Lo,putInIndexDB:()=>L,registerScriptAssetParser:()=>qn,saveRenderingConfigurationForCamera:()=>Qn,sceneAsset:()=>co,scriptAssetsCache:()=>O,scriptAssetsParsers:()=>ue,scriptsDictionary:()=>R,serializeDefaultRenderingPipeline:()=>at,serializeMotionBlurPostProcess:()=>nt,serializeSSAO2RenderingPipeline:()=>Xe,serializeSSRRenderingPipeline:()=>We,serializeTAARenderingPipeline:()=>qe,serializeVLSPostProcess:()=>je,setDefaultRenderingPipelineRef:()=>Un,setMotionBlurPostProcessRef:()=>jn,setSSAO2RenderingPipelineRef:()=>$n,setSSRRenderingPipelineRef:()=>Gn,setStaticDecalsEnabled:()=>Fn,setTAARenderingPipelineRef:()=>kn,setUseKtx2CompressedTextures:()=>Zn,setVLSPostProcessRef:()=>Vn,setupOfflineProvider:()=>Fo,soundFromScene:()=>mo,spriteFromSpriteManager:()=>To,ssaoRenderingPipelineCameraConfigurations:()=>Y,ssrRenderingPipelineCameraConfigurations:()=>Q,taaRenderingPipelineCameraConfigurations:()=>W,visibleAsAsset:()=>Co,visibleAsBoolean:()=>fo,visibleAsColor3:()=>bo,visibleAsColor4:()=>Po,visibleAsEntity:()=>xo,visibleAsKeyMap:()=>vo,visibleAsNumber:()=>yo,visibleAsString:()=>go,visibleAsTexture:()=>Ao,visibleAsVector2:()=>ho,visibleAsVector3:()=>So,vlsPostProcessCameraConfigurations:()=>U});module.exports=Cn(Vo);function K(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(K,"isAbstractMesh");function D(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(D,"isMesh");function se(e){return e.getClassName?.()==="InstancedMesh"}i(se,"isInstancedMesh");function In(e){return e.getClassName?.()==="Bone"}i(In,"isBone");function En(e){return e.getClassName?.()==="GroundMesh"}i(En,"isGroundMesh");function V(e){return e.getClassName?.()==="TransformNode"}i(V,"isTransformNode");function ae(e){return e?.getClassName?.()==="Texture"}i(ae,"isTexture");function xe(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(xe,"isCamera");function Tn(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(Tn,"isFreeCamera");function On(e){return e.getClassName?.()==="ArcRotateCamera"}i(On,"isArcRotateCamera");function Dn(e){return e.getClassName?.()==="PointLight"}i(Dn,"isPointLight");function Mn(e){return e.getClassName?.()==="DirectionalLight"}i(Mn,"isDirectionalLight");function wn(e){return e.getClassName?.()==="SpotLight"}i(wn,"isSpotLight");function Nn(e){return e.getClassName?.()==="HemisphericLight"}i(Nn,"isHemisphericLight");function Nt(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(Nt,"isLight");function Ae(e){return e.getClassName?.()==="ClusteredLightContainer"}i(Ae,"isClusteredLightContainer");function j(e){return K(e)||V(e)||Nt(e)||xe(e)}i(j,"isNode");function _e(e){return e.getClassName?.()==="Scene"}i(_e,"isScene");function Le(e){return e.getClassName?.()==="ParticleSystem"}i(Le,"isParticleSystem");function Rn(e){return e.getClassName?.()==="GPUParticleSystem"}i(Rn,"isGPUParticleSystem");function Ve(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(Ve,"isAnyParticleSystem");function Be(e){return e.getClassName?.()==="Sprite"}i(Be,"isSprite");function k(e){return V(e)&&e.isSoundNode===!0}i(k,"isSoundNode");function Ge(e){let t=e;for(;t;){if(t.metadata?.isStaticGroup)return!0;t=t.parent}return!1}i(Ge,"isNodeFromStaticGroup");function Ke(e){e.meshes.forEach(t=>{D(t)&&t.getLODLevels().forEach(r=>{r.mesh&&(r.mesh.originalDistanceOrScreenCoverage=r.distanceOrScreenCoverage)})})}i(Ke,"configureMeshDistanceOrScreenCoverage");function ke(e,t){t.meshes.forEach(r=>{D(r)&&r.getLODLevels().forEach(n=>{if(n.mesh?.originalDistanceOrScreenCoverage)switch(e){case"very-low":n.distanceOrScreenCoverage=n.mesh.originalDistanceOrScreenCoverage*.125;break;case"low":n.distanceOrScreenCoverage=n.mesh.originalDistanceOrScreenCoverage*.25;break;case"medium":n.distanceOrScreenCoverage=n.mesh.originalDistanceOrScreenCoverage*.5;break;case"high":n.distanceOrScreenCoverage=n.mesh.originalDistanceOrScreenCoverage;break}})})}i(ke,"applyMeshesLODQuality");function Rt(e){return(e.metadata?.decal??null)!==null}i(Rt,"isDecalMesh");function Fn(e,t){t.meshes.forEach(r=>{Rt(r)&&Ge(r)&&r.setEnabled(e)})}i(Fn,"setStaticDecalsEnabled");function M(e){let t=1;for(;t<=e;)t<<=1;return t>>1}i(M,"getPowerOfTwoUntil");var Ft=require("babylonjs"),_t=require("babylonjs");function ze(e){e.lights.forEach(t=>{let r=t.getShadowGenerator()?.getShadowMap();r&&(r.renderListPredicate=n=>Ft.Vector3.Distance(n.getAbsolutePosition(),t.getAbsolutePosition())<=t.range)})}i(ze,"configureShadowMapRenderListPredicate");async function ve(e){e.executeWhenReady(()=>{e.lights.forEach(t=>{let r=t.getShadowGenerator()?.getShadowMap();r&&(r.refreshRate=t.metadata?.refreshRate??_t.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(ve,"configureShadowMapRefreshRate");function _n(e,t){t.lights.forEach(r=>{let n=r.getShadowGenerator(),o=n?.getShadowMap();if(n?.originalMapSize){let s=n.originalMapSize;switch(e){case"medium":s=s*.5;break;case"low":s=s*.25;break;case"very-low":s=s*.125;break}s=Math.max(128,M(s)),o?.getSize().width!==s&&o.resize(s)}}),ve(t)}i(_n,"applyShadowsQuality");var Lt=require("babylonjs"),Vt=require("babylonjs"),Bt=require("babylonjs"),I=null,U=new Map;function Ln(){return I}i(Ln,"getVLSPostProcess");function Vn(e){I=e}i(Vn,"setVLSPostProcessRef");function $e(e){I&&e.activeCamera&&(I.dispose(e.activeCamera),I=null)}i($e,"disposeVLSPostProcess");function Gt(e,t){return t??=e.meshes.find(r=>D(r)),I=new Bt.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,t,100,Vt.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),I}i(Gt,"createVLSPostProcess");function je(){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(je,"serializeVLSPostProcess");function Ue(e,t){let r=null;if(t.meshId){let o=e.getMeshById(t.meshId);o&&D(o)&&(r=o)}let n=Gt(e,r);return n.exposure=t.exposure,n.decay=t.decay,n.weight=t.weight,n.density=t.density,n.invert=t.invert,n.useCustomMeshPosition=t.useCustomMeshPosition,n.customMeshPosition.copyFrom(Lt.Vector3.FromArray(t.customMeshPosition)),n}i(Ue,"parseVLSPostProcess");var Kt=require("babylonjs"),S=null,Q=new Map;function Bn(){return S}i(Bn,"getSSRRenderingPipeline");function Gn(e){S=e}i(Gn,"setSSRRenderingPipelineRef");function Qe(){S&&(S.dispose(),S=null)}i(Qe,"disposeSSRRenderingPipeline");function kt(e,t){return S=new Kt.SSRRenderingPipeline("SSRRenderingPipeline",e,[t]),S.samples=4,S}i(kt,"createSSRRenderingPipeline");function We(){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(We,"serializeSSRRenderingPipeline");function Ye(e,t,r){if(S)return S;let n=kt(e,t);return n.samples=r.samples,n.step=r.step,n.thickness=r.thickness,n.strength=r.strength,n.reflectionSpecularFalloffExponent=r.reflectionSpecularFalloffExponent,n.maxSteps=r.maxSteps,n.maxDistance=r.maxDistance,n.roughnessFactor=r.roughnessFactor,n.reflectivityThreshold=r.reflectivityThreshold,n.blurDispersionStrength=r.blurDispersionStrehgth,n.clipToFrustum=r.clipToFrustum,n.enableSmoothReflections=r.enableSmoothReflections,n.enableAutomaticThicknessComputation=r.enableAutomaticThicknessComputation,n.attenuateFacingCamera=r.attenuateFacingCamera,n.attenuateScreenBorders=r.attenuateScreenBorders,n.attenuateIntersectionDistance=r.attenuateIntersectionDistance,n.attenuateBackfaceReflection=r.attenuateBackfaceReflection,n.blurDownsample=r.blurDownsample,n.selfCollisionNumSkip=r.selfCollisionNumSkip,n.ssrDownsample=r.ssrDownsample,n.backfaceDepthTextureDownsample=r.backfaceDepthTextureDownsample,n}i(Ye,"parseSSRRenderingPipeline");var zt=require("babylonjs"),E=null,W=new Map;function Kn(){return E}i(Kn,"getTAARenderingPipeline");function kn(e){E=e}i(kn,"setTAARenderingPipelineRef");function He(){E&&(E.dispose(),E=null)}i(He,"disposeTAARenderingPipeline");function $t(e,t){return E=new zt.TAARenderingPipeline("TAARenderingPipeline",e,[t]),E.samples=4,E}i($t,"createTAARenderingPipeline");function qe(){return E?{factor:E.factor,samples:E.samples,clampHistory:E.clampHistory,reprojectHistory:E.reprojectHistory,disableOnCameraMove:E.disableOnCameraMove}:null}i(qe,"serializeTAARenderingPipeline");function Je(e,t,r){if(E)return E;let n=$t(e,t);return n.factor=r.factor,n.samples=r.samples,n.clampHistory=r.clampHistory,n.reprojectHistory=r.reprojectHistory,n.disableOnCameraMove=r.disableOnCameraMove,n}i(Je,"parseTAARenderingPipeline");var jt=require("babylonjs"),P=null,Y=new Map;function zn(){return P}i(zn,"getSSAO2RenderingPipeline");function $n(e){P=e}i($n,"setSSAO2RenderingPipelineRef");function Ze(){P&&(P.dispose(),P=null)}i(Ze,"disposeSSAO2RenderingPipeline");function Ut(e,t){return P=new jt.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[t]),P.samples=4,P}i(Ut,"createSSAO2RenderingPipeline");function Xe(){return P?{radius:P.radius,totalStrength:P.totalStrength,samples:P.samples,maxZ:P.maxZ,minZAspect:P.minZAspect,epsilon:P.epsilon,textureSamples:P.textureSamples,bypassBlur:P.bypassBlur,bilateralSamples:P.bilateralSamples,bilateralSoften:P.bilateralSoften,bilateralTolerance:P.bilateralTolerance,expensiveBlur:P.expensiveBlur}:null}i(Xe,"serializeSSAO2RenderingPipeline");function et(e,t,r){if(P)return P;let n=Ut(e,t);return n.radius=r.radius,n.totalStrength=r.totalStrength,n.samples=r.samples,n.maxZ=r.maxZ,n.minZAspect=r.minZAspect,n.epsilon=r.epsilon,n.textureSamples=r.textureSamples,n.bypassBlur=r.bypassBlur,n.bilateralSamples=r.bilateralSamples,n.bilateralSoften=r.bilateralSoften,n.bilateralTolerance=r.bilateralTolerance,n.expensiveBlur=r.expensiveBlur,n}i(et,"parseSSAO2RenderingPipeline");var Qt=require("babylonjs"),T=null,H=new Map;function tt(){return T}i(tt,"getMotionBlurPostProcess");function jn(e){T=e}i(jn,"setMotionBlurPostProcessRef");function rt(){T&&(T.dispose(),T=null)}i(rt,"disposeMotionBlurPostProcess");function Wt(e,t){return T=new Qt.MotionBlurPostProcess("MotionBlurPostProcess",e,1,t),T.motionStrength=1,T.isObjectBased=!0,T}i(Wt,"createMotionBlurPostProcess");function nt(){return T?{isObjectBased:T.isObjectBased,motionStrength:T.motionStrength,motionBlurSamples:T.motionBlurSamples}:null}i(nt,"serializeMotionBlurPostProcess");function ot(e,t,r){if(T)return T;let n=Wt(e,t);return n.isObjectBased=r.isObjectBased,n.motionStrength=r.motionStrength,n.motionBlurSamples=r.motionBlurSamples,n}i(ot,"parseMotionBlurPostProcess");var Yt=require("babylonjs"),it=require("babylonjs"),Ht=require("babylonjs"),qt=require("babylonjs"),Jt=require("babylonjs"),u=null,q=new Map;function le(){return u}i(le,"getDefaultRenderingPipeline");function Un(e){u=e}i(Un,"setDefaultRenderingPipelineRef");function st(){u&&(u.dispose(),u=null)}i(st,"disposeDefaultRenderingPipeline");function Zt(e,t){return u=new Jt.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[t]),u.samples=4,u.depthOfField.lensSize=512,u.depthOfField.fStop=.25,u.depthOfField.focusDistance=55e3,u}i(Zt,"createDefaultRenderingPipeline");function at(){return u?{samples:u.samples,fxaaEnabled:u.fxaaEnabled,imageProcessingEnabled:u.imageProcessingEnabled,exposure:u.imageProcessing?.exposure,contrast:u.imageProcessing?.contrast,fromLinearSpace:u.imageProcessing?.fromLinearSpace,toneMappingEnabled:u.imageProcessing?.toneMappingEnabled,toneMappingType:u.imageProcessing?.toneMappingType,ditheringEnabled:u.imageProcessing?.ditheringEnabled,ditheringIntensity:u.imageProcessing?.ditheringIntensity,bloomEnabled:u.bloomEnabled,bloomThreshold:u.bloomThreshold,bloomWeight:u.bloomWeight,bloomScale:u.bloomScale,bloomKernel:u.bloomKernel,sharpenEnabled:u.sharpenEnabled,sharpenEdgeAmount:u.sharpen.edgeAmount,sharpenColorAmount:u.sharpen.colorAmount,grainEnabled:u.grainEnabled,grainIntensity:u.grain.intensity,grainAnimated:u.grain.animated,depthOfFieldEnabled:u.depthOfFieldEnabled,depthOfFieldBlurLevel:u.depthOfFieldBlurLevel,lensSize:u.depthOfField.lensSize,fStop:u.depthOfField.fStop,focusDistance:u.depthOfField.focusDistance,focalLength:u.depthOfField.focalLength,vignetteEnabled:u.imageProcessing?.vignetteEnabled,vignetteColor:u.imageProcessing?.vignetteColor.asArray(),vignetteWeight:u.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:u.chromaticAberrationEnabled,aberrationAmount:u.chromaticAberration.aberrationAmount,radialIntensity:u.chromaticAberration.radialIntensity,direction:u.chromaticAberration.direction.asArray(),centerPosition:u.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:u.glowLayerEnabled,glowLayerIntensity:u.glowLayer?.intensity,glowLayerBlurKernelSize:u.glowLayer?.blurKernelSize,colorGradingEnabled:u.imageProcessing.colorGradingEnabled,colorGradingTexture:u.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:u.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:u.imageProcessing.colorCurvesEnabled,globalHue:u.imageProcessing.colorCurves?.globalHue,globalDensity:u.imageProcessing.colorCurves?.globalDensity,globalExposure:u.imageProcessing.colorCurves?.globalExposure,globalSaturation:u.imageProcessing.colorCurves?.globalSaturation,highlightsHue:u.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:u.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:u.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:u.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:u.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:u.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:u.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:u.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:u.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:u.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:u.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:u.imageProcessing.colorCurves?.shadowsSaturation}:null}i(at,"serializeDefaultRenderingPipeline");function lt(e,t,r,n){if(u)return u;let o=Zt(e,t);if(o.samples=r.samples,o.fxaaEnabled=r.fxaaEnabled,o.imageProcessingEnabled=r.imageProcessingEnabled,o.imageProcessing){if(o.imageProcessing.exposure=r.exposure,o.imageProcessing.contrast=r.contrast,o.imageProcessing.fromLinearSpace=r.fromLinearSpace,o.imageProcessing.toneMappingEnabled=r.toneMappingEnabled,o.imageProcessing.toneMappingType=r.toneMappingType,o.imageProcessing.ditheringEnabled=r.ditheringEnabled,o.imageProcessing.ditheringIntensity=r.ditheringIntensity,o.imageProcessing.vignetteEnabled=r.vignetteEnabled??!1,o.imageProcessing.vignetteColor=Yt.Color4.FromArray(r.vignetteColor??[0,0,0]),o.imageProcessing.vignetteWeight=r.vignetteWeight??.3,o.imageProcessing.colorGradingEnabled=r.colorGradingEnabled??!1,o.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=r.colorGradingWithGreenDepth??!0,r.colorGradingTexture){let s=null;if(r.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let a=n+r.colorGradingTexture.name;s=new qt.ColorGradingTexture(a,e),s.level=r.colorGradingTexture.level}else{let a=Ht.Texture.Parse(r.colorGradingTexture,e,n);ae(a)&&(s=a)}o.imageProcessing.colorGradingTexture=s}o.imageProcessing.colorCurvesEnabled=r.colorCurvesEnabled??!1,o.imageProcessing.colorCurves&&(o.imageProcessing.colorCurves.globalHue=r.globalHue??30,o.imageProcessing.colorCurves.globalDensity=r.globalDensity??0,o.imageProcessing.colorCurves.globalExposure=r.globalExposure??0,o.imageProcessing.colorCurves.globalSaturation=r.globalSaturation??0,o.imageProcessing.colorCurves.highlightsHue=r.highlightsHue??30,o.imageProcessing.colorCurves.highlightsDensity=r.highlightsDensity??0,o.imageProcessing.colorCurves.highlightsExposure=r.highlightsExposure??0,o.imageProcessing.colorCurves.highlightsSaturation=r.highlightsSaturation??0,o.imageProcessing.colorCurves.midtonesHue=r.midtonesHue??30,o.imageProcessing.colorCurves.midtonesDensity=r.midtonesDensity??0,o.imageProcessing.colorCurves.midtonesExposure=r.midtonesExposure??0,o.imageProcessing.colorCurves.midtonesSaturation=r.midtonesSaturation??0,o.imageProcessing.colorCurves.shadowsHue=r.shadowsHue??30,o.imageProcessing.colorCurves.shadowsDensity=r.shadowsDensity??0,o.imageProcessing.colorCurves.shadowsExposure=r.shadowsExposure??0,o.imageProcessing.colorCurves.shadowsSaturation=r.shadowsSaturation??0)}return o.bloomEnabled=r.bloomEnabled,o.bloomThreshold=r.bloomThreshold,o.bloomWeight=r.bloomWeight,o.bloomScale=r.bloomScale,o.bloomKernel=r.bloomKernel,o.sharpenEnabled=r.sharpenEnabled,o.sharpen.edgeAmount=r.sharpenEdgeAmount,o.sharpen.colorAmount=r.sharpenColorAmount,o.grainEnabled=r.grainEnabled,o.grain.intensity=r.grainIntensity,o.grain.animated=r.grainAnimated,o.depthOfFieldEnabled=r.depthOfFieldEnabled,o.depthOfFieldBlurLevel=r.depthOfFieldBlurLevel,o.depthOfField.lensSize=r.lensSize,o.depthOfField.fStop=r.fStop,o.depthOfField.focusDistance=r.focusDistance,o.depthOfField.focalLength=r.focalLength,o.chromaticAberrationEnabled=r.chromaticAberrationEnabled??!1,o.chromaticAberration.aberrationAmount=r.aberrationAmount??10,o.chromaticAberration.radialIntensity=r.radialIntensity??1,o.chromaticAberration.direction=it.Vector2.FromArray(r.direction??[0,0]),o.chromaticAberration.centerPosition=it.Vector2.FromArray(r.centerPosition??[0,0]),o.glowLayerEnabled=r.glowLayerEnabled??!1,o.glowLayer&&(o.glowLayer.intensity=r.glowLayerIntensity??1,o.glowLayer.blurKernelSize=r.glowLayerBlurKernelSize??32),o}i(lt,"parseDefaultRenderingPipeline");function Qn(e){Y.set(e,Xe()),U.set(e,je()),Q.set(e,We()),H.set(e,nt()),q.set(e,at()),W.set(e,qe())}i(Qn,"saveRenderingConfigurationForCamera");function ct(e,t,r){Ze(),$e(e.getScene()),Qe(),rt(),st(),He();let n=Y.get(e);n&&!r?.ssao2Disabled&&et(e.getScene(),e,n);let o=U.get(e);o&&!r?.vlsDisabled&&Ue(e.getScene(),o);let s=Q.get(e);s&&!r?.ssrDisabled&&Ye(e.getScene(),e,s);let a=H.get(e);a&&!r?.motionBlurDisabled&&ot(e.getScene(),e,a);let p=q.get(e);p&&!r?.defaultPipelineDisabled&&lt(e.getScene(),e,p,t);let l=W.get(e);l&&!r?.taaDisabled&&Je(e.getScene(),e,l)}i(ct,"applyRenderingConfigurationForCamera");var ce=require("babylonjs"),Xt=require("babylonjs");function er(e){let t=e.metadata?.physicsAggregate;if(!t)return;let r;D(e)?r=e:se(e)&&(r=e.sourceMesh);let n=new Xt.PhysicsAggregate(e,t.shape.type,{mesh:r,mass:t.massProperties.mass});n.body.setMassProperties({mass:t.massProperties.mass,inertia:t.massProperties.inertia?ce.Vector3.FromArray(t.massProperties.inertia):void 0,centerOfMass:t.massProperties.centerOfMass?ce.Vector3.FromArray(t.massProperties.centerOfMass):void 0,inertiaOrientation:t.massProperties.inertiaOrientation?ce.Quaternion.FromArray(t.massProperties.inertiaOrientation):void 0}),n.shape.density=t.shape.density,n.body.setMotionType(t.body.motionType),n.shape.material=t.material,e.physicsAggregate=n,e.metadata.physicsAggregate=void 0}i(er,"configurePhysicsAggregate");function tr(e,t){(Array.isArray(t)?t:[]).forEach(n=>{let o=e.getCameraById(n.cameraId);o&&(n.ssao2RenderingPipeline&&Y.set(o,n.ssao2RenderingPipeline),n.vlsPostProcess&&U.set(o,n.vlsPostProcess),n.ssrRenderingPipeline&&Q.set(o,n.ssrRenderingPipeline),n.motionBlurPostProcess&&H.set(o,n.motionBlurPostProcess),n.defaultRenderingPipeline&&q.set(o,n.defaultRenderingPipeline),n.taaRenderingPipeline&&W.set(o,n.taaRenderingPipeline))})}i(tr,"applyRenderingConfigurations");var rr=require("babylonjs");function J(e,t,r){return new Promise((n,o)=>{let s=new rr.WebRequest;s.open("GET",e),s.responseType=t,s.send(),s.addEventListener("progress",a=>{r?.({total:a.total,loaded:a.loaded})}),s.addEventListener("load",()=>{n(t==="text"?s.responseText:s.response)}),s.addEventListener("error",a=>o(a))})}i(J,"loadFile");async function w(e,t){let r=await J(e,"text",t);return JSON.parse(r)}i(w,"loadJsonFile");function pt(e,t){let r=t.getNodeByName(e);if(r)return r;let n=t.lights.filter(o=>Ae(o));for(let o of n){let s=o.lights.find(a=>a.name===e);if(s)return s}return null}i(pt,"getNodeByName");function Z(e,t){let r=t.getNodeById(e);if(r)return r;let n=t.lights.filter(o=>Ae(o));for(let o of n){let s=o.lights.find(a=>a.id===e);if(s)return s}return null}i(Z,"getNodeById");var z=require("babylonjs"),nr=require("babylonjs");function mt(e){let t=nr.Vector3.FromArray(e);return t.equals(z.Axis.X)?z.Axis.X:t.equals(z.Axis.Y)?z.Axis.Y:t.equals(z.Axis.Z)?z.Axis.Z:t}i(mt,"parseAxis");function or(e){return e.runtimeConfiguration.forEach(t=>{t.rotationAxis&&(t.rotationAxis=mt(t.rotationAxis)),t.boneOffsetAxis&&(t.boneOffsetAxis=mt(t.boneOffsetAxis))}),e}i(or,"parseRagdollConfiguration");function ut(e){let t={rootNodeId:e.rootNodeId,skeletonName:e.skeletonName,scalingFactor:e.scalingFactor,runtimeConfiguration:e.runtimeConfiguration.map(r=>({name:r.name,bones:r.bones,width:r.width,depth:r.depth,height:r.height,size:r.size,joint:r.joint,min:r.min,max:r.max,boxOffset:r.boxOffset,rotationAxis:r.rotationAxis?.slice(),boneOffsetAxis:r.boneOffsetAxis?.slice()}))};return or(t)}i(ut,"copyAndParseRagdollConfiguration");function Wn(e){return new Promise(t=>{setTimeout(()=>t(),e)})}i(Wn,"waitMs");async function dt(e){for(;!e();)await Wn(150)}i(dt,"waitUntil");function ft(e){return e&&JSON.parse(JSON.stringify(e))}i(ft,"cloneJSObject");var pr=require("babylonjs"),Ce=require("babylonjs"),mr=require("babylonjs"),ur=require("babylonjs"),$=require("babylonjs"),ir=!1,sr=null,X=[],gt=new Map;function Yn(e,t){let r=(0,$._GetAudioEngine)(null);return new ur._WebAudioStaticSound(e,r,t)}i(Yn,"createSoundInstance");function ar(e){sr?.remove(),X.length&&(sr=e.onBeforeRenderObservable.add(()=>{X.forEach(t=>{t.isEnabled(!1)&&t.autoUpdateSpatial&&t.sound?._isSpatial&&t.isPlaying()&&e.activeCamera&&t.sound.spatial.update()})}))}i(ar,"registerUpdateSoundsObserver");function lr(e){e.sound?.onDisposeObservable.addOnce(()=>{let t=X.indexOf(e);t!==-1&&X.splice(t,1)}),e.onDisposeObservable.addOnce(()=>{e.sound?.dispose()})}i(lr,"registerSoundNodeEvents");function Hn(e,t){return new Promise(async(r,n)=>{if(!e.offlineProvider||!pr.Database.IDBStorageEnabled)return(0,$.CreateSoundBufferAsync)(t).then(o=>r(o)).catch(o=>n(o));e.offlineProvider.loadFile(t,o=>{(0,$.CreateSoundBufferAsync)(o).then(s=>r(s)).catch(s=>n(s))},void 0,()=>{n(null)},!0)})}i(Hn,"loadSoundBuffer");function dr(e,t){if(!e.soundRelativePath||!e.sound)return;let r=Yn(e.soundRelativePath,{spatialAutoUpdate:!1});r._initAsync(e.sound.buffer,{spatialAutoUpdate:!1}).then(()=>{r.volume=e.volume,r._isSpatial=e.sound._isSpatial,r._isSpatial&&(r.spatial.attach(t),r.spatial.maxDistance=e.sound.spatial.maxDistance,r.spatial.panningModel=e.sound.spatial.panningModel,r.spatial.distanceModel=e.sound.spatial.distanceModel),t.sound=r,t.isSoundNode=!0,t.soundRelativePath=e.soundRelativePath,t.autoUpdateSpatial=e.autoUpdateSpatial,X.push(t),ar(t.getScene())}),lr(t),cr(t,r)}i(dr,"configureSourceNodeFrom");function cr(e,t){Object.defineProperty(e,"volume",{get:i(()=>t.volume,"get"),set:i(r=>{t.volume=r},"set")}),Object.defineProperty(e,"playbackRate",{get:i(()=>t.playbackRate,"get"),set:i(r=>{t.playbackRate=r},"set")}),e.isPaused=()=>t.state===Ce.SoundState.Paused,e.isPlaying=()=>t.state===Ce.SoundState.Started,e.isStopped=()=>t.state===Ce.SoundState.Stopped,e.pause=()=>t.pause(),e.resume=()=>t.resume(),e.stop=r=>t.stop(r),e.play=r=>t.play(r),e.setVolume=(r,n)=>t.setVolume(r,n),e.attachTo=(r,n,o)=>t.spatial.attach(r,n,o)}i(cr,"configureSoundNodePrototype");function fr(){ir||(ir=!0,(0,mr.AddParser)("SoundNode",(e,t,r,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSoundNode)return;let s=r.transformNodes?.find(a=>a.id===o.id);if(s&&o.soundRelativePath){let a=`${n}${o.soundRelativePath}`;t.addPendingData(a),gt.has(a)||gt.set(a,Hn(t,a)),gt.get(a).then(l=>{(0,$.CreateSoundAsync)(o.soundRelativePath,l,{spatialAutoUpdate:!1}).then(c=>{if(t.removePendingData(a),s.isDisposed())return c.dispose();c.volume=o.volume,c._isSpatial=o.isSpatial,o.isSpatial&&(c.spatial.attach(s),c.spatial.maxDistance=o.maxDistance,c.spatial.panningModel=o.panningModel,c.spatial.distanceModel=o.distanceModel),s.sound=c,s.isSoundNode=!0,s.soundRelativePath=o.soundRelativePath,s.autoUpdateSpatial=o.autoUpdateSpatial,X.push(s),lr(s),cr(s,c),ar(t)})})}})}))}i(fr,"registerAudioParser");function ee(e){let t=new Set;[...e.transformNodes,...e.meshes].forEach(n=>{if(n.metadata?.isStaticGroup){let o=n.getDescendants(!1);o.push(n),o.forEach(s=>{if((K(s)||V(s)&&!s.isWorldMatrixFrozen)&&s.freezeWorldMatrix(),K(s)){let a=s.material;a&&!a.isFrozen&&!t.has(a)&&(t.add(a),a.onBindObservable.addOnce(()=>{a.freeze()}))}})}})}i(ee,"configureTransformNodes");var pe=class{constructor(t,r){this.entries=t;this.namingId=r}static{i(this,"AdvancedAssetContainerInstantiatedEntries")}get rootNodes(){return this.entries.rootNodes}get skeletons(){return this.entries.skeletons}get animationGroups(){return this.entries.animationGroups}dispose(){this.entries.dispose()}getRootNodeByName(t){let r=`${t}-${this.namingId}`;return this.entries.rootNodes.find(n=>n.name===r)??null}getNodeByName(t){let r=`${t}-${this.namingId}`;for(let n of this.entries.rootNodes){let o=this._recursivelyGetNodeByName(r,n);if(o)return o}return null}_recursivelyGetNodeByName(t,r){if(r.name===t)return r;for(let n of r.getDescendants(!0)){let o=this._recursivelyGetNodeByName(t,n);if(o)return o}return null}getScriptByClassByObjectName(t,r){let n=this.getNodeByName(t);if(n){let o=te(n,r);if(o?.length===1)return o[0]}return null}};var yt=require("babylonjs"),me=class{static{i(this,"AdvancedAssetContainer")}container;_rootUrl;_scriptsMap;_originalDescendants=[];_nodesMap=new Map;_animationGroupsMap=new Map;constructor(t,r,n){this.container=t,this._rootUrl=r,this._scriptsMap=n,t.populateRootNodes(),t.rootNodes.forEach(o=>{this._originalDescendants.push(o,...o.getDescendants(!1))}),t.animationGroups.forEach(o=>{this._animationGroupsMap.set(o.name,o)}),this._originalDescendants.forEach(o=>{this._nodesMap.set(o,{node:o,metadata:ft(o.metadata)})})}removeDefault(){this.container.getNodes().forEach(t=>{R.get(t)?.forEach(n=>{Ie(t,n)})}),this.container.removeAllFromScene()}getRootNodeByName(t){return this.container.rootNodes.find(r=>r.name===t)??null}getScriptByClassByObjectName(t,r){let n=this.container.getNodes();for(let o of n)if(o.name===t){let s=te(o,r);if(s?.length===1)return s[0]}return null}instantiate(t){let r=yt.Tools.RandomId(),n=i(l=>l,"nameFunction"),o=this.container.instantiateModelsToScene(n,!1,{...t,predicate:i(l=>(l.name=`${l.name}@editor-tools@${r}_${l.id}`,t?.predicate?.(l)??!0),"predicate")}),s=new pe(o,r);[...this.container.transformNodes,...this.container.meshes,...this.container.lights,...this.container.cameras,...this.container.animationGroups,...this.container.skeletons].forEach(l=>{let c=l.name.split("@editor-tools@");l.name=c[0]}),o.animationGroups.forEach(l=>{let c=l.name.split("@editor-tools@");l.name=`${c[0]}-${r}`});let p=[];return o.rootNodes.forEach(l=>{p.push(l,...l.getDescendants(!1))}),p.forEach(l=>{let c=l.name.split("@editor-tools@"),m=c[1].split("_").pop();l.name=`${c[0]}-${r}`;let f=this._originalDescendants.find(d=>d.id===m);k(f)&&V(l)&&dr(f,l),l.id=yt.Tools.RandomId(),l.metadata=ft(this._nodesMap.get(f).metadata),l.metadata??={},l.metadata.originalId=m,p.forEach(d=>{d.metadata.scripts?.forEach(g=>{Object.keys(g.values||{}).forEach(y=>{let b=g.values[y];if(b.type==="entity"){b.value===m&&(b.value=l.id),b.value===f.name&&(b.value=l.name);let x=this._animationGroupsMap.get(b.value);x&&(b.value=`${x.name}-${r}`)}})})})}),p.forEach(l=>{N(this.container.scene,l,this._scriptsMap,this._rootUrl)}),ee(this.container.scene),s}};var gr=require("babylonjs"),yr=require("babylonjs");async function hr(e,t,r){let n=r.environmentIntensity,s=e.split("/").pop().replace(".scene",".babylon"),a=await(0,yr.LoadAssetContainerAsync)(s,r,{rootUrl:t,pluginExtension:".babylon"});return gr.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&r.meshes.forEach(p=>D(p)&&p._checkDelayState()),a.addAllToScene(),r.iblIntensity=n,ee(r),a}i(hr,"preloadSceneScriptAsset");async function Sr(e,t){return w(`${t}${e}`)}i(Sr,"preloadCommonScriptAsset");var O=new Map,ue=new Map;function qn(e,t){ue.has(e)&&console.warn(`A parser for the extension '${e}' was already registered. It will be overwritten.`),ue.set(e,t)}i(qn,"registerScriptAssetParser");async function ht(e,t,r){[t,...t.transformNodes,...t.meshes,...t.lights,...t.cameras].filter(p=>p.metadata?.scripts?.length).map(p=>p.metadata.scripts).flat().forEach(p=>{if(r[p.key]?.default?._SceneAssets?.forEach(c=>{O.get(c.sceneName)||O.set(c.sceneName,null)}),p.values)for(let c in p.values){if(!p.values.hasOwnProperty(c))continue;let m=p.values[c];m.type==="asset"&&m.value&&!O.get(m.value)&&O.set(m.value,null)}});let s=0;for(let p of O.values())p===null&&++s;if(s===0)return s;let a=[];return O.forEach((p,l)=>{O.get(l)||a.push(new Promise(async c=>{try{let m=l.split(".").pop();switch(m){case"scene":let f=await hr(l,e,t);t.onDisposeObservable.addOnce(()=>{f.dispose(),O.delete(l)}),O.set(l,new me(f,e,r));break;default:if(ue.has(m)){let d=ue.get(m);O.set(l,await d({key:l,rootUrl:e,scene:t}));break}else O.set(l,await Sr(l,e));break}}catch(m){console.error(m)}c()}))}),await Promise.all(a),s}i(ht,"_preloadScriptsAssets");var br=require("babylonjs"),Ee=require("babylonjs"),Pr=require("babylonjs"),Te=require("babylonjs"),xr=require("babylonjs"),Ar=require("babylonjs-gui");function St(e,t,r,n,o){let s=n.constructor;if(!s)return;s._NodesFromScene?.forEach(l=>{n[l.propertyKey.toString()]=pt(l.nodeName,e)}),s._ComponentsFromScene?.length&&e.getEngine().onBeginFrameObservable.addOnce(()=>{s._ComponentsFromScene?.forEach(l=>{let c=[];if([e,...e.transformNodes,...e.meshes,...e.lights,...e.cameras].forEach(f=>{let d=bt(f,l.componentConstructor);d&&c.push(d)}),c.length>1)throw new Error(`Multiple components of type ${s._ComponentsFromScene[0].componentConstructor.name} found in scene for property "${s._ComponentsFromScene[0].propertyKey.toString()}".`);n[l.propertyKey.toString()]=c[0]??null})}),s._NodesFromDescendants?.forEach(l=>{let c=t.getDescendants?.(l.directDescendantsOnly,m=>m.name===l.nodeName)[0];n[l.propertyKey.toString()]=c??null}),s._AnimationGroups?.forEach(l=>{n[l.propertyKey.toString()]=e.getAnimationGroupByName(l.animationGroupName)}),s._SoundsFromScene?.forEach(l=>{let c=pt(l.soundName,e);c&&k(c)&&(n[l.propertyKey.toString()]=c??null)}),(s._GuiFromAsset??[]).map(async l=>{let c=`${o}assets/${l.pathInAssets}`;try{let m=await w(c),f=Ar.AdvancedDynamicTexture.CreateFullscreenUI(m.name,!0,e);f.parseSerializedObject(m.content,!1),n[l.propertyKey.toString()]=f,l.onGuiCreated?.(n,f)}catch(m){throw console.error(`Failed to load GUI from asset: ${c}`),m}}),s._ParticleSystemsFromScene?.forEach(l=>{let c=e.particleSystems?.find(m=>m.name!==l.particleSystemName?!1:l.directDescendantsOnly?m.emitter===t:m);n[l.propertyKey.toString()]=c}),(s._VisibleInInspector??[]).forEach(l=>{let c=l.propertyKey.toString(),m=r.values;if(!m)throw new Error(`No values found for script with key "${r.key}".`);if(m.hasOwnProperty(c)&&m[c].hasOwnProperty("value")){let f=m[c].value;switch(l.configuration.type){case"number":case"boolean":case"keymap":case"string":n[c]=f;break;case"vector2":n[c]=Te.Vector2.FromArray(f);break;case"vector3":n[c]=Te.Vector3.FromArray(f);break;case"color3":n[c]=Ee.Color3.FromArray(f);break;case"color4":n[c]=Ee.Color4.FromArray(f);break;case"entity":switch(l.configuration.entityType){case"node":case"sound":n[c]=Z(f,e)??null;break;case"animationGroup":n[c]=e.getAnimationGroupByName(f)??null;break;case"particleSystem":n[c]=e.particleSystems?.find(g=>g.id===f)??null;break}break;case"texture":f&&(n[c]=Pr.Texture.Parse(f,e,o));break;case"asset":if(f){let g=l.configuration.assetType,h=O.get(f);switch(g){case"json":case"gui":case"scene":case"navmesh":case"cinematic":n[c]=h;break;case"ragdoll":n[c]=ut(h);break;case"nodeParticleSystemSet":let y=xr.NodeParticleSystemSet.Parse(h);n[c]=y;break;case"material":n[c]=br.Material.Parse(h,e,o);break}}}}});let a=null,p=null;if(s._PointerEvents?.length){if(s._PointerEvents.find(m=>m.options.mode==="attachedMeshOnly")&&!K(t))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(s._PointerEvents.find(m=>m.options.mode!=="global")&&!j(t))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(m=>{let f=null;s._PointerEvents.forEach(d=>{if(!d.eventTypes.includes(m.type))return;let g=d.propertyKey.toString();if(d.options.mode==="global")return n[g]?.(m);f=m.pickInfo,f||(f=e.pick(e.pointerX,e.pointerY,y=>y.isVisible&&y.isPickable&&y.isEnabled(!0)&&!y._masterMesh,!1));let h=f.pickedMesh;if(h&&(d.options.mode==="attachedMeshOnly"&&h===t||d.options.mode==="includeDescendants"&&j(t)&&[t,...t.getDescendants(!1)].find(x=>x===h)))return n[g]?.(m)})})}if(s._KeyboardEvents?.length&&(p=e.onKeyboardObservable.add(l=>{s._KeyboardEvents.forEach(c=>{c.eventTypes.includes(l.type)&&n[c.propertyKey.toString()]?.(l)})})),s._SpritesFromSpriteManager?.length){let l=t;if(!V(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.`);s._SpritesFromSpriteManager?.forEach(c=>{let m=l.spriteManager?.sprites.find(f=>f.name===c.spriteName)||null;n[c.propertyKey.toString()]=m})}if(s._AnimationsFromSprite?.length){if(!Be(t))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let l=t.metadata?.spriteAnimations;if(!l?.length)return console.error(`Sprite "${t.name}" has no sprite animations assigned.`);s._AnimationsFromSprite.forEach(c=>{let m=l.find(f=>f.name===c.animationName);m?n[c.propertyKey.toString()]=m??null:console.warn(`Sprite animation named "${c.animationName}" not found on sprite "${t.name}".`)})}return s._SceneAssets?.forEach(l=>{n[l.propertyKey.toString()]=O.get(l.sceneName)}),{observers:{pointerObserver:a,keyboardObserver:p}}}i(St,"applyDecorators");function N(e,t,r,n){t.metadata?.scripts&&(t.metadata.scripts?.forEach(o=>{if(!o.enabled)return;let s=r[o.key];if(!s)return;let a=s,p={};if(s.default){a=new s.default(t);let l=St(e,t,o,a,n);Object.assign(p,l?.observers??{})}a.onStart&&(p.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>a.onStart(t))),a.onUpdate&&(p.onUpdateObserver=e.onBeforeRenderObservable.add(()=>a.onUpdate(t))),Pt(t,a,o.key,p)}),t.metadata.scripts=void 0)}i(N,"_applyScriptsForObject");function Jn(e,t,r){if(r??=e.getScene?.(),!r)throw new Error("Cannot apply script on object: no scene available.");let n=new t(e),o={};return St(r,e,{values:{}},n,""),n.onStart&&(o.onStartObserver=r.onBeforeRenderObservable.addOnce(()=>n.onStart())),n.onUpdate&&r.onBeforeRenderObservable.add(()=>n.onUpdate()),Pt(e,n,"runtime",o),n}i(Jn,"applyScriptOnObject");var R=new Map;function Pt(e,t,r,n){let o={key:r,observers:n,instance:t};R.has(e)?R.get(e).push(o):R.set(e,[o]),(j(e)||Ve(e)||_e(e)||k(e))&&e.onDisposeObservable.addOnce((()=>{R.get(e)?.slice()?.forEach(a=>{Ie(e,a)}),R.delete(e)}))}i(Pt,"_registerScriptInstance");function Ie(e,t){t.observers.onStartObserver?.remove(),t.observers.onUpdateObserver?.remove(),t.observers.pointerObserver?.remove(),t.observers.keyboardObserver?.remove();try{t.instance.onStop?.(e)}catch(o){console.error(`Failed to call onStop for script ${t.key} on object ${e}`,o)}let r=R.get(e),n=r?.indexOf(t)??-1;n!==-1&&r?.splice(n,1)}i(Ie,"_removeRegisteredScriptInstance");function te(e,t){return R.get(e)?.filter(o=>o.instance.constructor===t)?.map(o=>o.instance)??null}i(te,"getAllScriptsByClassForObject");function bt(e,t){return te(e,t)?.[0]??null}i(bt,"getScriptByClassForObject");var vr=!1;function Zn(e){vr=e}i(Zn,"setUseKtx2CompressedTextures");function de(){return vr}i(de,"isUsingKtx2CompressedTextures");function Oe(e){return`${e.substring(0,e.lastIndexOf("."))}.ktx2`}i(Oe,"_getKtx2TextureName");function Xn(e){e.setCompressedTextureExclusions([".env",".hdr",".dds"]),e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(Xn,"configureEngineToUseCompressedTextures");function De(e,t){e._excludedCompressedTextures&&!e._excludedCompressedTextures?.includes(t)&&e._excludedCompressedTextures?.push(t)}i(De,"addExcludedCompressedTexture");function eo(e,t,r){t.loadingTexturesQuality!==e&&(t.loadingTexturesQuality=e,t.textures.forEach(n=>{if(!ae(n)||!n.url)return;let o=Me(n,t);!o||n.url.includes(o)||n.updateURL(r+o)}))}i(eo,"applyTexturesQuality");function Me(e,t){if(t.loadingTexturesQuality==="high"||!e.metadata?.baseSize)return e.name;let r=e.metadata.baseSize.width,n=e.metadata.baseSize.height,o=r===M(r)||n===M(n),s="";switch(t.loadingTexturesQuality){case"medium":let d=r*.66>>0,g=n*.66>>0;o&&(d=M(d),g=M(g)),s=`_${d}_${g}`;break;case"low":case"very-low":let h=r*.33>>0,y=n*.33>>0;o&&(h=M(h),y=M(y)),s=`_${h}_${y}`;break}let a=e.name;if(!a||!s)return e.name;let p=a.split("/"),l=p.pop();if(!l)return e.name;let c=l.split(".").pop(),f=`${l.replace(`.${c}`,"")}${s}.${c}`;return p.push(f),p.join("/")}i(Me,"getTextureUrl");var xt=require("babylonjs"),Cr=!1;function Ir(){if(Cr)return;Cr=!0;let e=xt.SerializationHelper._TextureParser;xt.SerializationHelper._TextureParser=(t,r,n)=>{de()&&(t.name&&(t.name=Oe(t.name)),t.url&&(t.url=Oe(t.url)));let o=Me(t,r);if(!o)return e(t,r,n);let s=t.name;t.name=o;let a=e(t,r,n);return a&&(a.name=s),a}}i(Ir,"registerTextureParser");var Tr=require("babylonjs"),Or=require("babylonjs"),we=require("babylonjs"),Dr=require("babylonjs"),Er=!1;function Mr(){if(Er)return;Er=!0,(0,Dr.RegisterShadowGeneratorSceneComponent)(Or.ShadowGenerator);let e=(0,we.GetParser)(Tr.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,we.AddParser)("ShadowGeneratorEditorPlugin",(t,r,n,o)=>{let s=new Map;t.shadowGenerators?.forEach(a=>{if(s.set(a.id,a.mapSize),r.loadingShadowsQuality!=="high"){switch(r.loadingShadowsQuality){case"medium":a.mapSize=a.mapSize*.5;break;case"low":a.mapSize=a.mapSize*.25;break;case"very-low":a.mapSize=a.mapSize*.125;break}a.mapSize=Math.max(128,M(a.mapSize))}}),e?.(t,r,n,o),r.lights.forEach(a=>{let p=a.getShadowGenerator();if(p?.getShadowMap()){let c=p.id,m=s.get(c);m&&(p.originalMapSize=m)}})})}i(Mr,"registerShadowGeneratorParser");var Nr=require("babylonjs"),Rr=require("babylonjs"),wr=!1;function Fr(){wr||(wr=!0,(0,Rr.AddParser)("MorphTargetManagerEditorPlugin",(e,t,r,n)=>{e.morphTargetManagers.forEach(o=>{let a=r.meshes.find(c=>c.id===o.meshId)?.morphTargetManager;if(!a||o.targets.find(c=>!c.delayLoadingFile))return;let l=[];o.targets.forEach(c=>{if(!c.delayLoadingFile)return l.push(Promise.resolve(null));let m=`${n}${c.delayLoadingFile}`;t.addPendingData(m);let f=new Nr.WebRequest;f.responseType="arraybuffer",f.open("GET",m),f.send(),l.push(new Promise(d=>{f.addEventListener("load",()=>{t.removePendingData(m),d(f.response)})}))}),Promise.all(l).then(c=>{for(let m=0,f=a.numTargets;m<f;++m){let d=a.getTarget(m),g=o.targets[m],h=c[m];if(g.positionsCount){let y=new Float32Array(h,g.positionsOffset,g.positionsCount);d._positions=y,d.setPositions(y)}if(g.normalsCount){let y=new Float32Array(h,g.normalsOffset,g.normalsCount);d._normals=y,d.setNormals(y)}if(g.tangentsCount){let y=new Float32Array(h,g.tangentsOffset,g.tangentsCount);d._tangents=y,d.setTangents(y)}if(g.uvsCount){let y=new Float32Array(h,g.uvsOffset,g.uvsCount);d._uvs=y,d.setUVs(y)}if(g.uv2sCount){let y=new Float32Array(h,g.uv2sOffset,g.uv2sCount);d._uv2s=y,d.setUV2s(y)}}for(let m=0,f=a.numTargets;m<f;++m)a.getTarget(m)._onDataLayoutChanged.notifyObservers()})})}))}i(Fr,"registerMorphTargetManagerParser");var _r=require("babylonjs");function Lr(e,t){t??=new _r.ClusteredLightContainer("Clustered Light Container",[],e);let r=e.metadata?.clusteredLight;return r&&(r.lights.length>0&&(t.horizontalTiles=r.horizontalTiles,t.verticalTiles=r.verticalTiles,t.depthSlices=r.depthSlices,t.maxRange=r.maxRange),r.lights.forEach(n=>{let o=e.getLightById(n);o&&t?.addLight(o)})),t}i(Lr,"configureLights");function At(e){if(!Array.isArray(e.frames)){let t=[];for(let r of Object.keys(e.frames))t.push({filename:r,...e.frames[r]});e.frames=t}}i(At,"normalizeAtlasJson");function to(e,t,r){let o=(e.metadata?.spriteAnimations??[]).find(s=>s.name===t);if(!o)return console.error(`Animation with name "${t}" not found on sprite.`);e.playAnimation(o.from,o.to,o.loop,o.delay,r)}i(to,"playSpriteAnimationFromName");var Br=require("babylonjs"),Gr=require("babylonjs"),Kr=require("babylonjs"),kr=require("babylonjs"),vt=require("babylonjs"),re=require("babylonjs"),zr=require("babylonjs"),Vr=!1;function $r(){Vr||(Vr=!0,(0,zr.AddParser)("SpriteMapNode",(e,t,r,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSpriteMap)return;let s=r.transformNodes?.find(l=>l.id===o.id);if(!s)return;s.isSpriteMap=o.isSpriteMap;let a=`${n}${o.atlasJsonRelativePath}`;t.addPendingData(a);let p=new Kr.WebRequest;p.open("GET",a),p.send(),p.addEventListener("load",()=>{t.removePendingData(a);let l=JSON.parse(p.responseText);At(l);let c=`${Br.Tools.GetFolderPath(a)}${l.meta.image}`,m=new vt.Texture(c,t,!1,!1,vt.Texture.NEAREST_NEAREST,null,null,null,!1,Gr.Engine.TEXTUREFORMAT_RGBA),f=new kr.SpriteMap(s.name,l,m,{layerCount:o.options.layerCount,stageSize:re.Vector2.FromArray(o.options.stageSize??[10,1]),outputSize:re.Vector2.FromArray(o.options.outputSize??[100,100]),colorMultiply:re.Vector3.FromArray(o.options.colorMultiply??[1,1,1]),flipU:!0},t);o.tiles.forEach(g=>{for(let h=0,y=g.repeatCount.x+1;h<y;++h)for(let b=0,x=g.repeatCount.y+1;b<x;++b){let v=h*(g.repeatOffset.x+1),A=b*(g.repeatOffset.y+1);f.changeTiles(g.layer,new re.Vector2(g.position.x+v,(f.options.stageSize?.y??0)-1-g.position.y-A),g.tile)}});let d=f._output;d.parent=s,s.spriteMap=f})})}))}i($r,"registerSpriteMapParser");var Qr=require("babylonjs"),Wr=require("babylonjs"),Yr=require("babylonjs"),Ct=require("babylonjs"),Hr=require("babylonjs");function jr(e,t){t?.fogEnabled!==void 0&&(e.fogEnabled=t?.fogEnabled),t?.blendMode!==void 0&&(e.blendMode=t?.blendMode),t?.disableDepthWrite!==void 0&&(e.disableDepthWrite=t?.disableDepthWrite),t?.pixelPerfect!==void 0&&(e.pixelPerfect=t?.pixelPerfect),t?.useLogarithmicDepth!==void 0&&(e.useLogarithmicDepth=t?.useLogarithmicDepth),t?.metadata!==void 0&&(e.metadata=t?.metadata);for(let r of t?.sprites??[]){let n=Wr.Sprite.Parse(r,e);n.uniqueId=r.uniqueId,n.metadata=r.metadata}}i(jr,"parseSerializedSpriteManager");var Ur=!1;function qr(){Ur||(Ur=!0,(0,Hr.AddParser)("SpriteManagerNode",(e,t,r,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSpriteManager)return;let s=r.transformNodes?.find(p=>p.id===o.id);if(!s)return;let a=t.getEngine();if(s.isSpriteManager=o.isSpriteManager,o.atlasJsonRelativePath){let p=`${n}${o.atlasJsonRelativePath}`;t.addPendingData(p);let l=new Yr.WebRequest;l.open("GET",p),l.send(),l.addEventListener("load",()=>{t.removePendingData(p);let c=JSON.parse(l.responseText),m=`${Qr.Tools.GetFolderPath(p)}${c.meta.image}`;De(a,m);let f=new Ct.SpriteManager(s.name,m,1e3,64,t,void 0,void 0,!0,c);s.spriteManager=f,o.spriteManager&&jr(f,o.spriteManager)})}else if(o.spriteManager?.textureUrl){De(a,o.spriteManager.textureUrl);let p=`${n}${o.spriteManager.textureUrl}`,l=new Ct.SpriteManager(s.name,p,1e3,{width:o.spriteManager.cellWidth,height:o.spriteManager.cellHeight},t,void 0,void 0,!1);s.spriteManager=l,o.spriteManager&&jr(l,o.spriteManager)}})}))}i(qr,"registerSpriteManagerParser");var Zr=require("babylonjs"),Xr=require("babylonjs"),Jr=!1;function en(){Jr||(Jr=!0,(0,Zr.AddParser)("NodeParticleSystemSetEditorPlugin",(e,t,r,n)=>{e.meshes?.forEach(o=>{if(!o.isNodeParticleSystemMesh)return;let s=r.meshes?.find(a=>a.id===o.id);s&&(o.nodeParticleSystemSet.blocks?.forEach(a=>{a.url&&(a.url=`${n}${a.url}`)}),s.nodeParticleSystemSet=Xr.NodeParticleSystemSet.Parse(o.nodeParticleSystemSet),s.nodeParticleSystemSet.id=o.nodeParticleSystemSet.id,s.nodeParticleSystemSet.uniqueId=o.uniqueId,t.addPendingData(o.id),s.nodeParticleSystemSet.buildAsync(t,!1).then(a=>{t.removePendingData(o.id),s.particleSystemSet=a,a.systems.forEach(p=>{if(Le(p)){let l=p._sizeCreation.process;l&&(p._sizeCreation.process=(c,m)=>{l(c,m),c.scale.x*=100,c.scale.y*=100})}}),a.emitterNode=s,a.start()}))})}))}i(en,"registerNodeParticleSystemSetParser");var nn=require("babylonjs"),It=require("babylonjs"),on=require("babylonjs"),sn=require("babylonjs"),tn=new Map;async function rn(e,t){let r=e.getWaitingItemsCount();for(;!e.isDisposed&&(!e.isReady()||e.getWaitingItemsCount()>0);){await new Promise(o=>setTimeout(o,150));let n=r-e.getWaitingItemsCount();n===r&&e.textures.forEach(o=>{o.delayLoadState===It.Constants.DELAYLOADSTATE_NONE&&(o.delayLoadState=It.Constants.DELAYLOADSTATE_LOADED)}),t(n/r)}}i(rn,"waitForWaitingItems");async function ro(e,t,r,n,o){r.loadingQuality=o?.quality??"high",r.loadingTexturesQuality=o?.texturesQuality??r.loadingQuality,r.loadingShadowsQuality=o?.shadowsQuality??r.loadingQuality,r.loadingLodsQuality=o?.lodsQuality??r.loadingQuality,fr(),Ir(),Mr(),Fr(),$r(),qr(),en();let s=tn.get(r)??{};if(tn.set(r,s),await(0,on.AppendSceneAsync)(`${e}${t}`,r,{pluginExtension:".babylon",onProgress:i(p=>{let l=Math.min(p.loaded/p.total*.5);o?.onProgress?.(l)},"onProgress")}),await rn(r,p=>{o?.onProgress?.(.5+p*.25)}),!o?.skipAssetsPreload){let p=0;do p=await ht(e,r,n);while(p!==0&&!r.isDisposed)}sn.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&r.meshes.forEach(p=>D(p)&&p._checkDelayState());let a=Lr(r,s.clusteredLightContainer);s.clusteredLightContainer=a,await rn(r,p=>{o?.onProgress?.(.75+p*.25)}),o?.onProgress?.(1),Ke(r),ke(r.loadingLodsQuality,r),ze(r),ve(r),r.metadata?.rendering&&(tr(r,r.metadata.rendering),r.activeCamera&&ct(r.activeCamera,e,o?.postProcessConfiguration)),r.metadata?.physicsGravity&&r.getPhysicsEngine()?.setGravity(nn.Vector3.FromArray(r.metadata?.physicsGravity)),N(r,r,n,e),r.transformNodes.forEach(p=>{N(r,p,n,e)}),r.meshes.forEach(p=>{er(p),N(r,p,n,e)}),r.lights.forEach(p=>{N(r,p,n,e)}),r.cameras.forEach(p=>{N(r,p,n,e)}),r.spriteManagers?.forEach(p=>{p.sprites.forEach(l=>{N(r,l,n,e)})}),ee(r)}i(ro,"loadScene");var an=require("babylonjs");async function no(e,t,r){let n=await w(e+t),s=an.Tools.Instantiate(n.customType).Parse(n,r,e);return s.id=n.id,s.uniqueId=n.uniqueId,s}i(no,"loadMaterialFromFile");function oo(e){return Promise.all(e.materials.map(async t=>{let r=t.getBindedMeshes();await Promise.all(r.map(async n=>{se(n)||await t.forceCompilationAsync(n,{clipPlane:!!e.clipPlane,useInstances:n.hasInstances})}))}))}i(oo,"forceCompileAllSceneMaterials");var B=require("babylonjs");function fe(e){if(!isNaN(parseFloat(e))&&isFinite(e))return B.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return B.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return B.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return B.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return B.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return B.Animation.ANIMATIONTYPE_COLOR4;case"Size":return B.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return B.Animation.ANIMATIONTYPE_MATRIX}return null}i(fe,"getAnimationTypeForObject");var ln=require("babylonjs");function io(e){return function(t,r){let n=t.constructor;n._NodesFromScene??=[],n._NodesFromScene.push({propertyKey:r,nodeName:e})}}i(io,"nodeFromScene");function so(e){return function(t,r){let n=t.constructor;n._ComponentsFromScene??=[],n._ComponentsFromScene.push({propertyKey:r,componentConstructor:e})}}i(so,"componentFromScene");function ao(e,t=!1){return function(r,n){let o=r.constructor;o._NodesFromDescendants??=[],o._NodesFromDescendants.push({propertyKey:n,nodeName:e,directDescendantsOnly:t})}}i(ao,"nodeFromDescendants");function lo(e){return function(t,r){let n=t.constructor;n._AnimationGroups??=[],n._AnimationGroups.push({animationGroupName:e,propertyKey:r})}}i(lo,"animationGroupFromScene");function co(e){return function(t,r){let n=t.constructor;n._SceneAssets??=[],n._SceneAssets.push({sceneName:e,propertyKey:r})}}i(co,"sceneAsset");function po(e,t){return function(r,n){let o=r.constructor;o._GuiFromAsset??=[],o._GuiFromAsset.push({propertyKey:n,pathInAssets:e,onGuiCreated:t})}}i(po,"guiFromAsset");function mo(e){return function(t,r){let n=t.constructor;n._SoundsFromScene??=[],n._SoundsFromScene.push({propertyKey:r,soundName:e})}}i(mo,"soundFromScene");function uo(e,t=!1){return function(r,n){let o=r.constructor;o._ParticleSystemsFromScene??=[],o._ParticleSystemsFromScene.push({propertyKey:n,particleSystemName:e,directDescendantsOnly:t})}}i(uo,"particleSystemFromScene");function fo(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"boolean"}})}}i(fo,"visibleAsBoolean");function go(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"string"}})}}i(go,"visibleAsString");function yo(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"number"}})}}i(yo,"visibleAsNumber");function ho(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"vector2"}})}}i(ho,"visibleAsVector2");function So(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"vector3"}})}}i(So,"visibleAsVector3");function bo(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"color3"}})}}i(bo,"visibleAsColor3");function Po(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"color4"}})}}i(Po,"visibleAsColor4");function xo(e,t,r){return function(n,o){let s=n.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:t,propertyKey:o,configuration:{...r,entityType:e,type:"entity"}})}}i(xo,"visibleAsEntity");function Ao(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"texture"}})}}i(Ao,"visibleAsTexture");function vo(e,t){return function(r,n){let o=r.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...t,type:"keymap"}})}}i(vo,"visibleAsKeyMap");function Co(e,t,r){return function(n,o){let s=n.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:t,propertyKey:o,configuration:{...r,assetType:e,type:"asset"}})}}i(Co,"visibleAsAsset");function Io(e,t){return function(r,n){let o=r.constructor;o._PointerEvents??=[],o._PointerEvents.push({propertyKey:n,options:{mode:"global",...t??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(Io,"onPointerEvent");function Eo(e){return function(t,r){let n=t.constructor;n._KeyboardEvents??=[],n._KeyboardEvents.push({propertyKey:r,eventTypes:Array.isArray(e)?e:[e]})}}i(Eo,"onKeyboardEvent");function To(e){return function(t,r){let n=t.constructor;n._SpritesFromSpriteManager??=[],n._SpritesFromSpriteManager.push({propertyKey:r,spriteName:e})}}i(To,"spriteFromSpriteManager");function Oo(e){return function(t,r){let n=t.constructor;n._AnimationsFromSprite??=[],n._AnimationsFromSprite.push({propertyKey:r,animationName:e})}}i(Oo,"animationFromSprite");var Ne=require("babylonjs");function Yu(e,t){let r;return e===Ne.Animation.ANIMATIONTYPE_FLOAT?r=t.value:r=t.value.clone(),{value:r,frame:t.frame,interpolation:t.interpolation,inTangent:e===Ne.Animation.ANIMATIONTYPE_FLOAT?t.inTangent:t.inTangent?.clone(),outTangent:e===Ne.Animation.ANIMATIONTYPE_FLOAT?t.outTangent:t.outTangent?.clone()}}i(Yu,"cloneKey");function Re(e,t){let r=t.split("."),n=e;for(let o=0;o<r.length;++o)n=n[r[o]];return n}i(Re,"getPropertyValue");function Et(e,t,r){let n=null;e.onAnimationGroupPlayObservable.add(()=>{n=t.onAfterAnimationsObservable.add(()=>{r()})}),e.onAnimationGroupPauseObservable.add(()=>{n&&(t.onAfterAnimationsObservable.remove(n),n=null)}),e.onAnimationGroupEndObservable.add(()=>{n&&(t.onAfterAnimationsObservable.remove(n),n=null)})}i(Et,"registerAfterAnimationCallback");var G=require("babylonjs"),Fe=require("babylonjs"),_=require("babylonjs");function Do(e,t){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(r=>{let n=null,o=null;if(r.node?(n=Z(r.node,t),n||(n=t.particleSystems?.find(a=>a.id===r.node)??null)):r.defaultRenderingPipeline&&(n=le()),r.propertyPath){let a=Re(n,r.propertyPath);o=fe(a)}let s=null;return r.sound&&(s=Z(r.sound,t)),{node:n,sound:s,propertyPath:r.propertyPath,defaultRenderingPipeline:r.defaultRenderingPipeline,animationGroup:r.animationGroup?t.getAnimationGroupByName(r.animationGroup):null,animationGroups:r.animationGroups,sounds:r.sounds,soundVolume:Tt(r.soundVolume??[],G.Animation.ANIMATIONTYPE_FLOAT),keyFrameEvents:r.keyFrameEvents?.map(a=>{let p={...a};switch(a.data?.type){case"set-enabled":p.data={type:"set-enabled",value:a.data.value,node:Z(a.data.node,t)};break;case"apply-impulse":p.data={type:"apply-impulse",radius:a.data.radius,mesh:t.getMeshById(a.data.mesh),force:_.Vector3.FromArray(a.data.force),contactPoint:_.Vector3.FromArray(a.data.contactPoint)};break}return p}),keyFrameAnimations:n&&o!==null&&Tt(r.keyFrameAnimations??[],o)}})}}i(Do,"parseCinematic");function F(e,t){if(e===null)return null;if(e!==void 0)switch(t){case G.Animation.ANIMATIONTYPE_FLOAT:return e;case G.Animation.ANIMATIONTYPE_VECTOR2:return _.Vector2.FromArray(e);case G.Animation.ANIMATIONTYPE_VECTOR3:return _.Vector3.FromArray(e);case G.Animation.ANIMATIONTYPE_QUATERNION:return _.Quaternion.FromArray(e);case G.Animation.ANIMATIONTYPE_COLOR3:return Fe.Color3.FromArray(e);case G.Animation.ANIMATIONTYPE_COLOR4:return Fe.Color4.FromArray(e);case G.Animation.ANIMATIONTYPE_MATRIX:return _.Matrix.FromArray(e)}}i(F,"parseCinematicKeyValue");function Tt(e,t){return e?.map(r=>{let n=r.type==="key"?r:null;if(n)return{...n,value:F(n.value,t),inTangent:F(n.inTangent,t),outTangent:F(n.outTangent,t)};let o=r.type==="cut"?r:null;if(o)return{...o,key1:{...o.key1,value:F(o.key1.value,t),inTangent:F(o.key1.inTangent,t),outTangent:F(o.key1.outTangent,t)},key2:{...o.key2,value:F(o.key2.value,t),inTangent:F(o.key2.inTangent,t),outTangent:F(o.key2.outTangent,t)}};throw new Error(`Unknown key frame type: ${r.type}`)})}i(Tt,"parseKeyFrameAnimations");function cn(e,t){e.onEventObservable.notifyObservers(t.eventName)}i(cn,"handleApplyEvent");function pn(e){e.node?.setEnabled(e.value)}i(pn,"handleSetEnabledEvent");var Ot=require("babylonjs"),mn=Ot.Vector3.Zero();function un(e,t){let r=t.mesh?[t.mesh]:e.meshes.filter(n=>n.physicsAggregate);t.radius&&(r=r.filter(n=>{let o=n.getBoundingInfo().boundingBox.centerWorld;return Ot.Vector3.Distance(o,t.contactPoint)<=t.radius})),r.forEach(n=>{if(n.physicsAggregate?.body){let o=t.contactPoint.subtract(n.getBoundingInfo().boundingBox.centerWorld);o.multiplyInPlace(t.force),n.physicsAggregate.body.setLinearVelocity(mn),n.physicsAggregate.body.setAngularVelocity(mn),n.physicsAggregate.body.applyImpulse(o.negateInPlace(),t.contactPoint)}})}i(un,"handleApplyImpulseEvent");var dn=require("babylonjs"),fn=require("babylonjs"),ge=class extends fn.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new dn.Observable;onEvent(t,r){this.onEventObservable.add(n=>{t===n&&r()})}};function Dt(e){return e.type==="key"}i(Dt,"isCinematicKey");function ne(e){return e.type==="cut"}i(ne,"isCinematicKeyCut");function Mo(e){return e.type==="event"}i(Mo,"isCinematicKeyEvent");function wo(e){return e.type==="group"}i(wo,"isCinematicGroup");function No(e){return e.type==="sound"}i(No,"isCinematicSound");var C=require("babylonjs"),oe=require("babylonjs");function Ro(e,t,r){let n=new ge(e.name,t);return e.tracks.forEach(o=>{let s=o.animationGroup;if(s&&o.animationGroups?.length){let d=s.clone(`${s.name}-cinematic-temp`),g=t.animationGroups.indexOf(d);g!==-1&&t.animationGroups.splice(g,1),n.onAnimationEndObservable.add(()=>{s.stop(),d.stop()});let h=o.animationGroups.reduce((v,A)=>Math.min(v,A.frame),Number.MAX_VALUE)??0,y=o.animationGroups.reduce((v,A)=>Math.max(v,A.frame+A.endFrame),0)??0,b={frame:h},x=new C.Animation(d.name,"frame",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1);if(x.setKeys([{frame:h,value:0},{frame:y,value:y}]),o.animationGroups.forEach(v=>{x.addEvent(new oe.AnimationEvent(v.frame,()=>{let A=v.repeatCount??0;if(d.to=v.endFrame,d.speedRatio=v.speed,d.stop(),d.play(A>0),d.from!==v.startFrame&&d.goToFrame(v.startFrame),A){let ie=0;d.onAnimationGroupLoopObservable.add(()=>{++ie,ie>A&&d.stop()})}}))}),n.addTargetedAnimation(x,b),(o.animationGroupWeight?.length??0)>=2&&o.animationGroupWeight.find(A=>ne(A)?A.key1.value!==1||A.key2.value!==1:A.value!==1)){let A={weight:0},ie=new C.Animation(`${d.name}-weights`,"weight",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),Se=[];o.animationGroupWeight.forEach(be=>{ne(be)?(Se.push(be.key1),Se.push(be.key2)):Se.push(be)}),ie.setKeys(Se),n.addTargetedAnimation(ie,A),Et(n,t,()=>{d.weight=A.weight})}}let a=o.sound;if(!r?.ignoreSounds&&a&&a.sound?.buffer&&o.sounds?.length){let d={dummy:0,volume:0},g=new C.Animation(a.name,"dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),h=0;if(o.sounds?.forEach(y=>{let b=y.endFrame-y.startFrame;h=Math.max(h,y.frame+b),g.addEvent(new oe.AnimationEvent(y.frame,x=>{let A=(x-y.frame+y.startFrame)/e.framesPerSecond;a.play({startOffset:A})},!1)),g.addEvent(new oe.AnimationEvent(y.frame+b,()=>{a.stop()}))}),g.setKeys([{frame:0,value:0},{frame:h,value:h}]),n.addTargetedAnimation(g,d),(o.soundVolume?.length??0)>=2){let y=new C.Animation(a.name,"volume",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),b=[];o.soundVolume.forEach(x=>{ne(x)?(b.push(x.key1),b.push(x.key2)):b.push(x)}),y.setKeys(b),n.addTargetedAnimation(y,d),Et(n,t,()=>{a.volume=d.volume})}}if(o.keyFrameEvents){let d={dummy:0},g=new C.Animation("events","dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),h=0;o.keyFrameEvents?.forEach(y=>{h=Math.max(h,y.frame),g.addEvent(new oe.AnimationEvent(y.frame,()=>{switch(y.data?.type){case"event":cn(n,y.data);break;case"set-enabled":pn(y.data);break;case"apply-impulse":un(t,y.data);break}}))}),g.setKeys([{frame:0,value:0},{frame:h+1,value:h+1}]),n.addTargetedAnimation(g,d)}let p=o.defaultRenderingPipeline?le():o.node;if(!p||!o.propertyPath||!o.keyFrameAnimations)return;let l=Re(p,o.propertyPath),c=fe(l);if(c===null)return;let m=new C.Animation(o.propertyPath,o.propertyPath,60,c,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),f=[];o.keyFrameAnimations?.forEach(d=>{if(Dt(d))return f.push(d);ne(d)&&(f.push(d.key1),f.push(d.key2),xe(p)&&o.propertyPath==="position"&&m.addEvent(new oe.AnimationEvent(d.key1.frame,()=>{let g=tt();if(!g)return;let h=g.motionStrength;g.motionStrength=0,requestAnimationFrame(()=>{g.motionStrength=h})})))}),m.setKeys(f),n.addTargetedAnimation(m,p)}),n.normalize(),n}i(Ro,"generateCinematicAnimationGroup");async function Mt(e,t){return new Promise((r,n)=>{let o=indexedDB.open(e,1);o.addEventListener("error",()=>n()),o.addEventListener("blocked",()=>n()),o.addEventListener("upgradeneeded",()=>{try{t(o.result)}catch(s){n(s)}}),o.addEventListener("success",()=>{r(o.result)})})}i(Mt,"openIndexDB");function ye(e,t,r){return new Promise(n=>{let s=e.transaction(t).objectStore(t).get(r);s.addEventListener("error",()=>{n(null)}),s.addEventListener("success",()=>{n(s.result??null)})})}i(ye,"getFromIndexDB");async function L(e,t,r){let o=e.transaction(t,"readwrite").objectStore(t).put(r);await new Promise((s,a)=>{o.addEventListener("error",()=>a()),o.addEventListener("success",()=>s())})}i(L,"putInIndexDB");var gn=require("babylonjs");function Fo(e){gn.AbstractEngine.OfflineProviderFactory=(t,r,n=!1)=>new he(e,t,r,n)}i(Fo,"setupOfflineProvider");async function wt(e,t){let r=await new Promise(n=>{let o=new he(e,t,s=>n(s?o:null),!1)});return await r?.open(),r}i(wt,"createAndOpenDatabase");var he=class{static{i(this,"Database")}enableSceneOffline=!0;enableTexturesOffline=!0;name;_database=null;_manifestVersion=null;_loadFilePromises=new Map;constructor(t,r,n,o){this.name=t,o?n(!1):this._checkManifest(r,n)}async _checkManifest(t,r){try{let n=await w(`${t}.manifest?${Date.now()}`);this._manifestVersion=n.version,r(!0)}catch{this.enableSceneOffline=!1,this.enableTexturesOffline=!1,r(!1)}}async open(t,r){try{this._database=await Mt(this.name,n=>{n.createObjectStore("files",{keyPath:"url"}),n.createObjectStore("images",{keyPath:"url"}),n.createObjectStore("versions",{keyPath:"url"})}),t?.()}catch{r?.()}}close(){this._database?.close(),this._database=null,this._loadFilePromises.clear()}async loadImage(t,r){if(!this._database){r.src=t;return}let n=null;await dt(()=>this._manifestVersion!==null);let o=this._loadFilePromises.get(t);if(o)return o.then(a=>{a!==null?r.src=a:r.src=t});let s=new Promise(async a=>{if(await this._getFileVersionForUrl(t)!==this._manifestVersion?(n=await J(t,"blob"),await Promise.all([L(this._database,"images",{url:t,data:n}),L(this._database,"versions",{url:t,version:this._manifestVersion})])):n=(await ye(this._database,"images",t))?.data??null,n!==null){let l=URL.createObjectURL(n);r.src=l}else r.src=t;a(r.src)});this._loadFilePromises.set(t,s)}async saveImage(t){if(!this._database)throw new Error("Database is not available");let r=await J(t,"blob");await Promise.all([L(this._database,"images",{url:t,data:r}),L(this._database,"versions",{url:t,version:this._manifestVersion})])}async isFileMatchingVersion(t){return await this._getFileVersionForUrl(t)===this._manifestVersion}async loadFile(t,r,n,o,s){if(!this._database)return o?.();let a=null;await dt(()=>this._manifestVersion!==null);let p=this._loadFilePromises.get(t);if(p)return p.then(c=>{c!==null?r(c):o?.()});let l=new Promise(async c=>{await this._getFileVersionForUrl(t)!==this._manifestVersion?(a=await J(t,s?"arraybuffer":"text",n),await Promise.all([L(this._database,"files",{url:t,data:a}),L(this._database,"versions",{url:t,version:this._manifestVersion})])):a=(await ye(this._database,"files",t))?.data??null,a!==null?r(a):o?.(),c(a)});this._loadFilePromises.set(t,l)}async saveFile(t,r,n){if(!this._database)throw new Error("Database is not available");let o=await J(t,r?"arraybuffer":"text",n);await Promise.all([L(this._database,"files",{url:t,data:o}),L(this._database,"versions",{url:t,version:this._manifestVersion})])}async _getFileVersionForUrl(t){return(await ye(this._database,"versions",t))?.version??null}};var yn=["babylon","json"],hn=["jpg","jpeg","png","bmp","webp"],Sn=["bin","babylonbinarymeshdata","mp3","wav","ktx","ktx2"],_o=[...yn,...hn,...Sn];async function Lo(e,t,r){let n=[],o=await w(`${t}scenes-used-files.json`),s=0,a=r?.engine?.textureFormatInUse?r?.engine?.texturesSupported[0]:null,p=Object.values(o).reduce((c,m)=>c+m.length,0);function l(c){++s,r?.onProgress?.(s/p),c?.()}i(l,"notifyProgress");for(let[c,m]of Object.entries(o)){let f=c.replace(".scene",".babylon"),d=await wt(e,`${t}${f}`);if(d){for(let g=0,h=m.length;g<h;++g){let y=m[g],b=y.split(".").pop()?.toLowerCase();if(!b){l();continue}if(b==="ktx")if(a){if(!y.endsWith(a)){l();continue}}else{l();continue}if(b==="ktx2"&&!de()){l();continue}if(n.length>300){try{await Promise.all(n)}catch{}n.splice(0,n.length)}let x=`${t}${y}`;_o.includes(b)&&n.push(new Promise(async v=>{if(await d.isFileMatchingVersion(x))return l(v);try{hn.includes(b)?r?.disableImages||await d.saveImage(x):Sn.includes(b)?await d.saveFile(x,!0):yn.includes(b)&&await d.saveFile(x,!1)}catch{}l(v)}))}await Promise.all(n),d.close()}}await Promise.all(n)}i(Lo,"preloadAssetsToDatabase");0&&(module.exports={AdvancedAssetContainer,AdvancedAssetContainerInstantiatedEntries,Cinematic,Database,NodeParticleSystemSet,_applyScriptsForObject,_getKtx2TextureName,_preloadScriptsAssets,_registerScriptInstance,_removeRegisteredScriptInstance,addExcludedCompressedTexture,animationFromSprite,animationGroupFromScene,applyMeshesLODQuality,applyRenderingConfigurationForCamera,applyScriptOnObject,applyShadowsQuality,applyTexturesQuality,componentFromScene,configureEngineToUseCompressedTextures,configureMeshDistanceOrScreenCoverage,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,copyAndParseRagdollConfiguration,createAndOpenDatabase,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createTAARenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeTAARenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getFromIndexDB,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getTAARenderingPipeline,getTextureUrl,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isClusteredLightContainer,isDecalMesh,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isNodeFromStaticGroup,isParticleSystem,isPointLight,isScene,isSoundNode,isSpotLight,isSprite,isTexture,isTransformNode,isUsingKtx2CompressedTextures,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,normalizeAtlasJson,onKeyboardEvent,onPointerEvent,openIndexDB,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseKeyFrameAnimations,parseMotionBlurPostProcess,parseRagdollConfiguration,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseTAARenderingPipeline,parseVLSPostProcess,particleSystemFromScene,playSpriteAnimationFromName,preloadAssetsToDatabase,putInIndexDB,registerScriptAssetParser,saveRenderingConfigurationForCamera,sceneAsset,scriptAssetsCache,scriptAssetsParsers,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeTAARenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setStaticDecalsEnabled,setTAARenderingPipelineRef,setUseKtx2CompressedTextures,setVLSPostProcessRef,setupOfflineProvider,soundFromScene,spriteFromSpriteManager,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,taaRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
@@ -15,6 +15,7 @@ export * from "./tools/particle";
15
15
  export * from "./tools/ragdoll";
16
16
  export * from "./tools/mesh";
17
17
  export * from "./tools/node";
18
+ export * from "./tools/navmesh";
18
19
  export * from "./rendering/vls";
19
20
  export * from "./rendering/ssr";
20
21
  export * from "./rendering/taa";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAE7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC"}
@@ -1,5 +1,6 @@
1
- import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2
- import { CreateNavigationPluginAsync } from "@babylonjs/addons";
1
+ import { CreateNavigationPluginAsync } from "@babylonjs/addons/navigation/factory/factory.single-thread";
2
+ import { getNodeById } from "../../../../tools/scene";
3
+ import { isAbstractMesh } from "../../../../tools/guards";
3
4
  import { loadFile, loadJsonFile } from "../../../../tools/request";
4
5
  import { registerScriptAssetParser } from "../../preload";
5
6
  export async function preloadNavMeshScriptAsset(parameters) {
@@ -9,24 +10,42 @@ export async function preloadNavMeshScriptAsset(parameters) {
9
10
  loadFile(`${parameters.rootUrl}${parameters.key}/tilecache.bin`, "arraybuffer"),
10
11
  ]);
11
12
  const [recastCore, recastGenerators] = await Promise.all([import("@recast-navigation/core"), import("@recast-navigation/generators")]);
12
- const recast = await CreateNavigationPluginAsync({
13
+ const recast = (await CreateNavigationPluginAsync({
13
14
  instance: {
14
15
  ...recastCore,
15
16
  ...recastGenerators,
16
17
  },
17
- });
18
+ }));
18
19
  recast.buildFromNavmeshData(new Uint8Array(navmeshData));
19
20
  recast.buildFromTileCacheData(new Uint8Array(tilesData));
20
- config.obstacleMeshes.forEach((obstacle) => {
21
- switch (obstacle.type) {
22
- case "box":
23
- recast.addBoxObstacle(Vector3.FromArray(obstacle.position), Vector3.FromArray(obstacle.extent), obstacle.angle);
24
- break;
25
- case "cylinder":
26
- recast.addCylinderObstacle(Vector3.FromArray(obstacle.position), obstacle.radius, obstacle.height);
27
- break;
28
- }
29
- });
21
+ const createdObstacles = [];
22
+ recast.refreshObstacles = function () {
23
+ createdObstacles.forEach((obstacle) => recast.removeObstacle(obstacle));
24
+ createdObstacles.splice(0, createdObstacles.length);
25
+ config.obstacleMeshes.forEach((obstacle) => {
26
+ const node = getNodeById(obstacle.id, parameters.scene);
27
+ if (!isAbstractMesh(node)) {
28
+ return;
29
+ }
30
+ const position = node.getAbsolutePosition();
31
+ const boundingBox = node.getBoundingInfo().boundingBox;
32
+ switch (obstacle.type) {
33
+ case "box":
34
+ const boxObstacle = recast.addBoxObstacle(position, boundingBox.extendSizeWorld, obstacle.angle);
35
+ if (boxObstacle) {
36
+ createdObstacles.push(boxObstacle);
37
+ }
38
+ break;
39
+ case "cylinder":
40
+ const cylinderObstacle = recast.addCylinderObstacle(position, boundingBox.extendSizeWorld.x, boundingBox.extendSizeWorld.y);
41
+ if (cylinderObstacle) {
42
+ createdObstacles.push(cylinderObstacle);
43
+ }
44
+ break;
45
+ }
46
+ });
47
+ };
48
+ recast.refreshObstacles();
30
49
  return recast;
31
50
  }
32
51
  registerScriptAssetParser("navmesh", preloadNavMeshScriptAsset);
@@ -1 +1 @@
1
- {"version":3,"file":"navmesh.js","sourceRoot":"","sources":["../../../../../../src/loading/script/preload/plugins/navmesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAgC,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,UAAwC;IACvF,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1D,YAAY,CAAM,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,cAAc,CAAC;QACvE,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,cAAc,EAAE,aAAa,CAAC;QAC7E,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,gBAAgB,EAAE,aAAa,CAAC;KAC/E,CAAC,CAAC;IAEH,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;IAEvI,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC;QAChD,QAAQ,EAAE;YACT,GAAG,UAAU;YACb,GAAG,gBAAgB;SACnB;KACD,CAAC,CAAC;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,MAAM,CAAC,sBAAsB,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;QAC/C,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvB,KAAK,KAAK;gBACT,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChH,MAAM;YAEP,KAAK,UAAU;gBACd,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnG,MAAM;QACR,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,yBAAyB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"navmesh.js","sourceRoot":"","sources":["../../../../../../src/loading/script/preload/plugins/navmesh.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,4DAA4D,CAAC;AAEzG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAgC,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,UAAwC;IACvF,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1D,YAAY,CAAM,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,cAAc,CAAC;QACvE,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,cAAc,EAAE,aAAa,CAAC;QAC7E,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,gBAAgB,EAAE,aAAa,CAAC;KAC/E,CAAC,CAAC;IAEH,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;IAEvI,MAAM,MAAM,GAAG,CAAC,MAAM,2BAA2B,CAAC;QACjD,QAAQ,EAAE;YACT,GAAG,UAAU;YACb,GAAG,gBAAgB;SACnB;KACD,CAAC,CAA2B,CAAC;IAC9B,MAAM,CAAC,oBAAoB,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,MAAM,CAAC,sBAAsB,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzD,MAAM,gBAAgB,GAAgB,EAAE,CAAC;IAEzC,MAAM,CAAC,gBAAgB,GAAG;QACzB,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEpD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;YAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC;YAEvD,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvB,KAAK,KAAK;oBACT,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACjG,IAAI,WAAW,EAAE,CAAC;wBACjB,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACpC,CAAC;oBACD,MAAM;gBAEP,KAAK,UAAU;oBACd,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBAC5H,IAAI,gBAAgB,EAAE,CAAC;wBACtB,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBACzC,CAAC;oBACD,MAAM;YACR,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAE1B,OAAO,MAAM,CAAC;AACf,CAAC;AAED,yBAAyB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { isAbstractMesh, isTransformNode } from "../tools/guards";
2
2
  export function configureTransformNodes(scene) {
3
3
  const computedMaterials = new Set();
4
- scene.transformNodes.forEach((transformNode) => {
4
+ const nodes = [...scene.transformNodes, ...scene.meshes];
5
+ nodes.forEach((transformNode) => {
5
6
  if (transformNode.metadata?.isStaticGroup) {
6
7
  const descendants = transformNode.getDescendants(false);
7
8
  descendants.push(transformNode);
@@ -1 +1 @@
1
- {"version":3,"file":"transform-node.js","sourceRoot":"","sources":["../../../src/loading/transform-node.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,UAAU,uBAAuB,CAAC,KAA6B;IACpE,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAY,CAAC;IAE9C,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QAC9C,IAAI,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACxD,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEhC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAClF,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC1B,CAAC;gBAED,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC/B,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACxE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAEhC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE;4BACtC,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACnB,CAAC,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"transform-node.js","sourceRoot":"","sources":["../../../src/loading/transform-node.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,UAAU,uBAAuB,CAAC,KAA6B;IACpE,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAY,CAAC;IAC9C,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzD,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QAC/B,IAAI,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACxD,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEhC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAClF,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC1B,CAAC;gBAED,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC/B,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACxE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAEhC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE;4BACtC,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACnB,CAAC,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This interface is used to define extra properties on RecastNavigationJSPluginV2.
3
+ * For example to update the navmesh in runtime or update all obstacles when they are dynamically changed.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=navmesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navmesh.js","sourceRoot":"","sources":["../../../src/tools/navmesh.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -15,6 +15,7 @@ export * from "./tools/particle";
15
15
  export * from "./tools/ragdoll";
16
16
  export * from "./tools/mesh";
17
17
  export * from "./tools/node";
18
+ export * from "./tools/navmesh";
18
19
  export * from "./rendering/vls";
19
20
  export * from "./rendering/ssr";
20
21
  export * from "./rendering/taa";
@@ -1,2 +1,3 @@
1
+ import { RecastNavigationHelper } from "../../../../tools/navmesh";
1
2
  import { IScriptAssetParserParameters } from "../../preload";
2
- export declare function preloadNavMeshScriptAsset(parameters: IScriptAssetParserParameters): Promise<import("@babylonjs/addons").RecastNavigationJSPluginV2>;
3
+ export declare function preloadNavMeshScriptAsset(parameters: IScriptAssetParserParameters): Promise<RecastNavigationHelper>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This interface is used to define extra properties on RecastNavigationJSPluginV2.
3
+ * For example to update the navmesh in runtime or update all obstacles when they are dynamically changed.
4
+ */
5
+ import { RecastNavigationJSPluginV2 } from "@babylonjs/addons/navigation/plugin/RecastNavigationJSPlugin";
6
+ export interface RecastNavigationHelper extends RecastNavigationJSPluginV2 {
7
+ refreshObstacles(): void;
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylonjs-editor-tools",
3
- "version": "5.4.2-alpha.1",
3
+ "version": "5.4.2-alpha.3",
4
4
  "description": "Babylon.js Editor Tools is a set of tools to help you create, edit and manage your Babylon.js scenes made using the Babylon.js Editor",
5
5
  "productName": "Babylon.js Editor Tools",
6
6
  "scripts": {
@@ -25,9 +25,9 @@
25
25
  "typings": "declaration/src/index.d.ts",
26
26
  "license": "(Apache-2.0)",
27
27
  "devDependencies": {
28
- "@babylonjs/addons": "9.9.1",
29
- "@babylonjs/core": "9.9.1",
30
- "@babylonjs/gui": "9.9.1",
28
+ "@babylonjs/addons": "9.12.1",
29
+ "@babylonjs/core": "9.12.1",
30
+ "@babylonjs/gui": "9.12.1",
31
31
  "@vitest/coverage-v8": "4.0.17",
32
32
  "esbuild": "0.27.2",
33
33
  "typescript": "5.9.3",