babylonjs-editor-tools 5.4.1-rc.2 → 5.4.1-rc.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 fe=Object.defineProperty;var Qr=Object.getOwnPropertyDescriptor;var jr=Object.getOwnPropertyNames;var Yr=Object.prototype.hasOwnProperty;var i=(e,r)=>fe(e,"name",{value:r,configurable:!0});var Wr=(e,r)=>{for(var t in r)fe(e,t,{get:r[t],enumerable:!0})},Hr=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of jr(r))!Yr.call(e,o)&&o!==t&&fe(e,o,{get:()=>r[o],enumerable:!(n=Qr(r,o))||n.enumerable});return e};var Ur=e=>Hr(fe({},"__esModule",{value:!0}),e);var en={};Wr(en,{AdvancedAssetContainer:()=>ae,AdvancedAssetContainerInstantiatedEntries:()=>se,Cinematic:()=>pe,NodeParticleSystemSet:()=>Vr.NodeParticleSystemSet,_applyScriptsForObject:()=>N,_preloadScriptsAssets:()=>st,_registerScriptInstance:()=>ct,_removeRegisteredScriptInstance:()=>Se,animationFromSprite:()=>Ho,animationGroupFromScene:()=>Do,applyMeshesLODQuality:()=>Me,applyRenderingConfigurationForCamera:()=>Ze,applyScriptOnObject:()=>bo,applyShadowsQuality:()=>io,applyTexturesQuality:()=>Ao,componentFromScene:()=>To,configureEngineToUseCompressedTextures:()=>Po,configureMeshDistanceOrScreenCoverage:()=>De,configureShadowMapRefreshRate:()=>ye,configureShadowMapRenderListPredicate:()=>Ne,copyAndParseRagdollConfiguration:()=>tt,createDefaultRenderingPipeline:()=>Bt,createMotionBlurPostProcess:()=>wt,createSSAO2RenderingPipeline:()=>Nt,createSSRRenderingPipeline:()=>Tt,createTAARenderingPipeline:()=>Dt,createVLSPostProcess:()=>vt,defaultPipelineCameraConfigurations:()=>Y,disposeDefaultRenderingPipeline:()=>Ue,disposeMotionBlurPostProcess:()=>je,disposeSSAO2RenderingPipeline:()=>ke,disposeSSRRenderingPipeline:()=>Le,disposeTAARenderingPipeline:()=>Be,disposeVLSPostProcess:()=>Re,forceCompileAllSceneMaterials:()=>vo,generateCinematicAnimationGroup:()=>Xo,getAllScriptsByClassForObject:()=>U,getAnimationTypeForObject:()=>ce,getDefaultRenderingPipeline:()=>oe,getMotionBlurPostProcess:()=>Qe,getPowerOfTwoUntil:()=>M,getSSAO2RenderingPipeline:()=>uo,getSSRRenderingPipeline:()=>lo,getScriptByClassForObject:()=>lt,getTAARenderingPipeline:()=>po,getTextureUrl:()=>Pe,getVLSPostProcess:()=>so,guiFromAsset:()=>No,isAbstractMesh:()=>B,isAnyParticleSystem:()=>Te,isArcRotateCamera:()=>Xr,isBone:()=>qr,isCamera:()=>de,isCinematicGroup:()=>Jo,isCinematicKey:()=>ht,isCinematicKeyCut:()=>J,isCinematicKeyEvent:()=>qo,isCinematicSound:()=>Zo,isClusteredLightContainer:()=>ge,isDirectionalLight:()=>to,isFreeCamera:()=>Zr,isGPUParticleSystem:()=>no,isGroundMesh:()=>Jr,isHemisphericLight:()=>oo,isInstancedMesh:()=>ee,isLight:()=>bt,isMesh:()=>D,isNode:()=>K,isParticleSystem:()=>Ee,isPointLight:()=>eo,isScene:()=>ve,isSoundNode:()=>re,isSpotLight:()=>ro,isSprite:()=>Oe,isTexture:()=>te,isTransformNode:()=>L,loadMaterialFromFile:()=>Io,loadScene:()=>xo,motionBlurPostProcessCameraConfigurations:()=>j,nodeFromDescendants:()=>Oo,nodeFromScene:()=>Eo,normalizeAtlasJson:()=>mt,onKeyboardEvent:()=>Yo,onPointerEvent:()=>jo,parseCinematic:()=>Uo,parseCinematicKeyValue:()=>w,parseDefaultRenderingPipeline:()=>Je,parseKeyFrameAnimations:()=>yt,parseMotionBlurPostProcess:()=>We,parseRagdollConfiguration:()=>$t,parseSSAO2RenderingPipeline:()=>$e,parseSSRRenderingPipeline:()=>Ve,parseTAARenderingPipeline:()=>Ke,parseVLSPostProcess:()=>Fe,particleSystemFromScene:()=>wo,playSpriteAnimationFromName:()=>Co,registerScriptAssetParser:()=>ho,saveRenderingConfigurationForCamera:()=>So,sceneAsset:()=>Mo,scriptAssetsCache:()=>O,scriptAssetsParsers:()=>le,scriptsDictionary:()=>R,serializeDefaultRenderingPipeline:()=>qe,serializeMotionBlurPostProcess:()=>Ye,serializeSSAO2RenderingPipeline:()=>ze,serializeSSRRenderingPipeline:()=>_e,serializeTAARenderingPipeline:()=>Ge,serializeVLSPostProcess:()=>we,setDefaultRenderingPipelineRef:()=>yo,setMotionBlurPostProcessRef:()=>go,setSSAO2RenderingPipelineRef:()=>fo,setSSRRenderingPipelineRef:()=>co,setTAARenderingPipelineRef:()=>mo,setVLSPostProcessRef:()=>ao,soundFromScene:()=>Ro,spriteFromSpriteManager:()=>Wo,ssaoRenderingPipelineCameraConfigurations:()=>Q,ssrRenderingPipelineCameraConfigurations:()=>z,taaRenderingPipelineCameraConfigurations:()=>$,visibleAsAsset:()=>Qo,visibleAsBoolean:()=>Fo,visibleAsColor3:()=>Go,visibleAsColor4:()=>Ko,visibleAsEntity:()=>ko,visibleAsKeyMap:()=>$o,visibleAsNumber:()=>_o,visibleAsString:()=>Lo,visibleAsTexture:()=>zo,visibleAsVector2:()=>Vo,visibleAsVector3:()=>Bo,vlsPostProcessCameraConfigurations:()=>k});module.exports=Ur(en);function B(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(B,"isAbstractMesh");function D(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(D,"isMesh");function ee(e){return e.getClassName?.()==="InstancedMesh"}i(ee,"isInstancedMesh");function qr(e){return e.getClassName?.()==="Bone"}i(qr,"isBone");function Jr(e){return e.getClassName?.()==="GroundMesh"}i(Jr,"isGroundMesh");function L(e){return e.getClassName?.()==="TransformNode"}i(L,"isTransformNode");function te(e){return e?.getClassName?.()==="Texture"}i(te,"isTexture");function de(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(de,"isCamera");function Zr(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(Zr,"isFreeCamera");function Xr(e){return e.getClassName?.()==="ArcRotateCamera"}i(Xr,"isArcRotateCamera");function eo(e){return e.getClassName?.()==="PointLight"}i(eo,"isPointLight");function to(e){return e.getClassName?.()==="DirectionalLight"}i(to,"isDirectionalLight");function ro(e){return e.getClassName?.()==="SpotLight"}i(ro,"isSpotLight");function oo(e){return e.getClassName?.()==="HemisphericLight"}i(oo,"isHemisphericLight");function bt(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(bt,"isLight");function ge(e){return e.getClassName?.()==="ClusteredLightContainer"}i(ge,"isClusteredLightContainer");function K(e){return B(e)||L(e)||bt(e)||de(e)}i(K,"isNode");function ve(e){return e.getClassName?.()==="Scene"}i(ve,"isScene");function Ee(e){return e.getClassName?.()==="ParticleSystem"}i(Ee,"isParticleSystem");function no(e){return e.getClassName?.()==="GPUParticleSystem"}i(no,"isGPUParticleSystem");function Te(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(Te,"isAnyParticleSystem");function Oe(e){return e.getClassName?.()==="Sprite"}i(Oe,"isSprite");function re(e){return L(e)&&e.isSoundNode===!0}i(re,"isSoundNode");function De(e){e.meshes.forEach(r=>{D(r)&&r.getLODLevels().forEach(t=>{t.mesh&&(t.mesh.originalDistanceOrScreenCoverage=t.distanceOrScreenCoverage)})})}i(De,"configureMeshDistanceOrScreenCoverage");function Me(e,r){r.meshes.forEach(t=>{D(t)&&t.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(Me,"applyMeshesLODQuality");function M(e){let r=1;for(;r<=e;)r<<=1;return r>>1}i(M,"getPowerOfTwoUntil");var Pt=require("babylonjs"),At=require("babylonjs");function Ne(e){e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=n=>Pt.Vector3.Distance(n.getAbsolutePosition(),r.getAbsolutePosition())<=r.range)})}i(Ne,"configureShadowMapRenderListPredicate");async function ye(e){e.executeWhenReady(()=>{e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=r.metadata?.refreshRate??At.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(ye,"configureShadowMapRefreshRate");function io(e,r){r.lights.forEach(t=>{let n=t.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)}}),ye(r)}i(io,"applyShadowsQuality");var Ct=require("babylonjs"),xt=require("babylonjs"),It=require("babylonjs"),I=null,k=new Map;function so(){return I}i(so,"getVLSPostProcess");function ao(e){I=e}i(ao,"setVLSPostProcessRef");function Re(e){I&&e.activeCamera&&(I.dispose(e.activeCamera),I=null)}i(Re,"disposeVLSPostProcess");function vt(e,r){return r??=e.meshes.find(t=>D(t)),I=new It.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,r,100,xt.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),I}i(vt,"createVLSPostProcess");function we(){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(we,"serializeVLSPostProcess");function Fe(e,r){let t=null;if(r.meshId){let o=e.getMeshById(r.meshId);o&&D(o)&&(t=o)}let n=vt(e,t);return n.exposure=r.exposure,n.decay=r.decay,n.weight=r.weight,n.density=r.density,n.invert=r.invert,n.useCustomMeshPosition=r.useCustomMeshPosition,n.customMeshPosition.copyFrom(Ct.Vector3.FromArray(r.customMeshPosition)),n}i(Fe,"parseVLSPostProcess");var Et=require("babylonjs"),h=null,z=new Map;function lo(){return h}i(lo,"getSSRRenderingPipeline");function co(e){h=e}i(co,"setSSRRenderingPipelineRef");function Le(){h&&(h.dispose(),h=null)}i(Le,"disposeSSRRenderingPipeline");function Tt(e,r){return h=new Et.SSRRenderingPipeline("SSRRenderingPipeline",e,[r]),h.samples=4,h}i(Tt,"createSSRRenderingPipeline");function _e(){return h?{samples:h.samples,step:h.step,thickness:h.thickness,strength:h.strength,reflectionSpecularFalloffExponent:h.reflectionSpecularFalloffExponent,maxSteps:h.maxSteps,maxDistance:h.maxDistance,roughnessFactor:h.roughnessFactor,reflectivityThreshold:h.reflectivityThreshold,blurDispersionStrehgth:h.blurDispersionStrength,clipToFrustum:h.clipToFrustum,enableSmoothReflections:h.enableSmoothReflections,enableAutomaticThicknessComputation:h.enableAutomaticThicknessComputation,attenuateFacingCamera:h.attenuateFacingCamera,attenuateScreenBorders:h.attenuateScreenBorders,attenuateIntersectionDistance:h.attenuateIntersectionDistance,attenuateBackfaceReflection:h.attenuateBackfaceReflection,blurDownsample:h.blurDownsample,selfCollisionNumSkip:h.selfCollisionNumSkip,ssrDownsample:h.ssrDownsample,backfaceDepthTextureDownsample:h.backfaceDepthTextureDownsample}:null}i(_e,"serializeSSRRenderingPipeline");function Ve(e,r,t){if(h)return h;let n=Tt(e,r);return n.samples=t.samples,n.step=t.step,n.thickness=t.thickness,n.strength=t.strength,n.reflectionSpecularFalloffExponent=t.reflectionSpecularFalloffExponent,n.maxSteps=t.maxSteps,n.maxDistance=t.maxDistance,n.roughnessFactor=t.roughnessFactor,n.reflectivityThreshold=t.reflectivityThreshold,n.blurDispersionStrength=t.blurDispersionStrehgth,n.clipToFrustum=t.clipToFrustum,n.enableSmoothReflections=t.enableSmoothReflections,n.enableAutomaticThicknessComputation=t.enableAutomaticThicknessComputation,n.attenuateFacingCamera=t.attenuateFacingCamera,n.attenuateScreenBorders=t.attenuateScreenBorders,n.attenuateIntersectionDistance=t.attenuateIntersectionDistance,n.attenuateBackfaceReflection=t.attenuateBackfaceReflection,n.blurDownsample=t.blurDownsample,n.selfCollisionNumSkip=t.selfCollisionNumSkip,n.ssrDownsample=t.ssrDownsample,n.backfaceDepthTextureDownsample=t.backfaceDepthTextureDownsample,n}i(Ve,"parseSSRRenderingPipeline");var Ot=require("babylonjs"),v=null,$=new Map;function po(){return v}i(po,"getTAARenderingPipeline");function mo(e){v=e}i(mo,"setTAARenderingPipelineRef");function Be(){v&&(v.dispose(),v=null)}i(Be,"disposeTAARenderingPipeline");function Dt(e,r){return v=new Ot.TAARenderingPipeline("TAARenderingPipeline",e,[r]),v.samples=4,v}i(Dt,"createTAARenderingPipeline");function Ge(){return v?{factor:v.factor,samples:v.samples,clampHistory:v.clampHistory,reprojectHistory:v.reprojectHistory,disableOnCameraMove:v.disableOnCameraMove}:null}i(Ge,"serializeTAARenderingPipeline");function Ke(e,r,t){if(v)return v;let n=Dt(e,r);return n.factor=t.factor,n.samples=t.samples,n.clampHistory=t.clampHistory,n.reprojectHistory=t.reprojectHistory,n.disableOnCameraMove=t.disableOnCameraMove,n}i(Ke,"parseTAARenderingPipeline");var Mt=require("babylonjs"),b=null,Q=new Map;function uo(){return b}i(uo,"getSSAO2RenderingPipeline");function fo(e){b=e}i(fo,"setSSAO2RenderingPipelineRef");function ke(){b&&(b.dispose(),b=null)}i(ke,"disposeSSAO2RenderingPipeline");function Nt(e,r){return b=new Mt.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[r]),b.samples=4,b}i(Nt,"createSSAO2RenderingPipeline");function ze(){return b?{radius:b.radius,totalStrength:b.totalStrength,samples:b.samples,maxZ:b.maxZ,minZAspect:b.minZAspect,epsilon:b.epsilon,textureSamples:b.textureSamples,bypassBlur:b.bypassBlur,bilateralSamples:b.bilateralSamples,bilateralSoften:b.bilateralSoften,bilateralTolerance:b.bilateralTolerance,expensiveBlur:b.expensiveBlur}:null}i(ze,"serializeSSAO2RenderingPipeline");function $e(e,r,t){if(b)return b;let n=Nt(e,r);return n.radius=t.radius,n.totalStrength=t.totalStrength,n.samples=t.samples,n.maxZ=t.maxZ,n.minZAspect=t.minZAspect,n.epsilon=t.epsilon,n.textureSamples=t.textureSamples,n.bypassBlur=t.bypassBlur,n.bilateralSamples=t.bilateralSamples,n.bilateralSoften=t.bilateralSoften,n.bilateralTolerance=t.bilateralTolerance,n.expensiveBlur=t.expensiveBlur,n}i($e,"parseSSAO2RenderingPipeline");var Rt=require("babylonjs"),E=null,j=new Map;function Qe(){return E}i(Qe,"getMotionBlurPostProcess");function go(e){E=e}i(go,"setMotionBlurPostProcessRef");function je(){E&&(E.dispose(),E=null)}i(je,"disposeMotionBlurPostProcess");function wt(e,r){return E=new Rt.MotionBlurPostProcess("MotionBlurPostProcess",e,1,r),E.motionStrength=1,E.isObjectBased=!0,E}i(wt,"createMotionBlurPostProcess");function Ye(){return E?{isObjectBased:E.isObjectBased,motionStrength:E.motionStrength,motionBlurSamples:E.motionBlurSamples}:null}i(Ye,"serializeMotionBlurPostProcess");function We(e,r,t){if(E)return E;let n=wt(e,r);return n.isObjectBased=t.isObjectBased,n.motionStrength=t.motionStrength,n.motionBlurSamples=t.motionBlurSamples,n}i(We,"parseMotionBlurPostProcess");var Ft=require("babylonjs"),He=require("babylonjs"),Lt=require("babylonjs"),_t=require("babylonjs"),Vt=require("babylonjs"),m=null,Y=new Map;function oe(){return m}i(oe,"getDefaultRenderingPipeline");function yo(e){m=e}i(yo,"setDefaultRenderingPipelineRef");function Ue(){m&&(m.dispose(),m=null)}i(Ue,"disposeDefaultRenderingPipeline");function Bt(e,r){return m=new Vt.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[r]),m.samples=4,m.depthOfField.lensSize=512,m.depthOfField.fStop=.25,m.depthOfField.focusDistance=55e3,m}i(Bt,"createDefaultRenderingPipeline");function qe(){return m?{samples:m.samples,fxaaEnabled:m.fxaaEnabled,imageProcessingEnabled:m.imageProcessingEnabled,exposure:m.imageProcessing?.exposure,contrast:m.imageProcessing?.contrast,fromLinearSpace:m.imageProcessing?.fromLinearSpace,toneMappingEnabled:m.imageProcessing?.toneMappingEnabled,toneMappingType:m.imageProcessing?.toneMappingType,ditheringEnabled:m.imageProcessing?.ditheringEnabled,ditheringIntensity:m.imageProcessing?.ditheringIntensity,bloomEnabled:m.bloomEnabled,bloomThreshold:m.bloomThreshold,bloomWeight:m.bloomWeight,bloomScale:m.bloomScale,bloomKernel:m.bloomKernel,sharpenEnabled:m.sharpenEnabled,sharpenEdgeAmount:m.sharpen.edgeAmount,sharpenColorAmount:m.sharpen.colorAmount,grainEnabled:m.grainEnabled,grainIntensity:m.grain.intensity,grainAnimated:m.grain.animated,depthOfFieldEnabled:m.depthOfFieldEnabled,depthOfFieldBlurLevel:m.depthOfFieldBlurLevel,lensSize:m.depthOfField.lensSize,fStop:m.depthOfField.fStop,focusDistance:m.depthOfField.focusDistance,focalLength:m.depthOfField.focalLength,vignetteEnabled:m.imageProcessing?.vignetteEnabled,vignetteColor:m.imageProcessing?.vignetteColor.asArray(),vignetteWeight:m.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:m.chromaticAberrationEnabled,aberrationAmount:m.chromaticAberration.aberrationAmount,radialIntensity:m.chromaticAberration.radialIntensity,direction:m.chromaticAberration.direction.asArray(),centerPosition:m.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:m.glowLayerEnabled,glowLayerIntensity:m.glowLayer?.intensity,glowLayerBlurKernelSize:m.glowLayer?.blurKernelSize,colorGradingEnabled:m.imageProcessing.colorGradingEnabled,colorGradingTexture:m.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:m.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:m.imageProcessing.colorCurvesEnabled,globalHue:m.imageProcessing.colorCurves?.globalHue,globalDensity:m.imageProcessing.colorCurves?.globalDensity,globalExposure:m.imageProcessing.colorCurves?.globalExposure,globalSaturation:m.imageProcessing.colorCurves?.globalSaturation,highlightsHue:m.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:m.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:m.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:m.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:m.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:m.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:m.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:m.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:m.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:m.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:m.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:m.imageProcessing.colorCurves?.shadowsSaturation}:null}i(qe,"serializeDefaultRenderingPipeline");function Je(e,r,t,n){if(m)return m;let o=Bt(e,r);if(o.samples=t.samples,o.fxaaEnabled=t.fxaaEnabled,o.imageProcessingEnabled=t.imageProcessingEnabled,o.imageProcessing){if(o.imageProcessing.exposure=t.exposure,o.imageProcessing.contrast=t.contrast,o.imageProcessing.fromLinearSpace=t.fromLinearSpace,o.imageProcessing.toneMappingEnabled=t.toneMappingEnabled,o.imageProcessing.toneMappingType=t.toneMappingType,o.imageProcessing.ditheringEnabled=t.ditheringEnabled,o.imageProcessing.ditheringIntensity=t.ditheringIntensity,o.imageProcessing.vignetteEnabled=t.vignetteEnabled??!1,o.imageProcessing.vignetteColor=Ft.Color4.FromArray(t.vignetteColor??[0,0,0]),o.imageProcessing.vignetteWeight=t.vignetteWeight??.3,o.imageProcessing.colorGradingEnabled=t.colorGradingEnabled??!1,o.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=t.colorGradingWithGreenDepth??!0,t.colorGradingTexture){let s=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let l=n+t.colorGradingTexture.name;s=new _t.ColorGradingTexture(l,e),s.level=t.colorGradingTexture.level}else{let l=Lt.Texture.Parse(t.colorGradingTexture,e,n);te(l)&&(s=l)}o.imageProcessing.colorGradingTexture=s}o.imageProcessing.colorCurvesEnabled=t.colorCurvesEnabled??!1,o.imageProcessing.colorCurves&&(o.imageProcessing.colorCurves.globalHue=t.globalHue??30,o.imageProcessing.colorCurves.globalDensity=t.globalDensity??0,o.imageProcessing.colorCurves.globalExposure=t.globalExposure??0,o.imageProcessing.colorCurves.globalSaturation=t.globalSaturation??0,o.imageProcessing.colorCurves.highlightsHue=t.highlightsHue??30,o.imageProcessing.colorCurves.highlightsDensity=t.highlightsDensity??0,o.imageProcessing.colorCurves.highlightsExposure=t.highlightsExposure??0,o.imageProcessing.colorCurves.highlightsSaturation=t.highlightsSaturation??0,o.imageProcessing.colorCurves.midtonesHue=t.midtonesHue??30,o.imageProcessing.colorCurves.midtonesDensity=t.midtonesDensity??0,o.imageProcessing.colorCurves.midtonesExposure=t.midtonesExposure??0,o.imageProcessing.colorCurves.midtonesSaturation=t.midtonesSaturation??0,o.imageProcessing.colorCurves.shadowsHue=t.shadowsHue??30,o.imageProcessing.colorCurves.shadowsDensity=t.shadowsDensity??0,o.imageProcessing.colorCurves.shadowsExposure=t.shadowsExposure??0,o.imageProcessing.colorCurves.shadowsSaturation=t.shadowsSaturation??0)}return o.bloomEnabled=t.bloomEnabled,o.bloomThreshold=t.bloomThreshold,o.bloomWeight=t.bloomWeight,o.bloomScale=t.bloomScale,o.bloomKernel=t.bloomKernel,o.sharpenEnabled=t.sharpenEnabled,o.sharpen.edgeAmount=t.sharpenEdgeAmount,o.sharpen.colorAmount=t.sharpenColorAmount,o.grainEnabled=t.grainEnabled,o.grain.intensity=t.grainIntensity,o.grain.animated=t.grainAnimated,o.depthOfFieldEnabled=t.depthOfFieldEnabled,o.depthOfFieldBlurLevel=t.depthOfFieldBlurLevel,o.depthOfField.lensSize=t.lensSize,o.depthOfField.fStop=t.fStop,o.depthOfField.focusDistance=t.focusDistance,o.depthOfField.focalLength=t.focalLength,o.chromaticAberrationEnabled=t.chromaticAberrationEnabled??!1,o.chromaticAberration.aberrationAmount=t.aberrationAmount??10,o.chromaticAberration.radialIntensity=t.radialIntensity??1,o.chromaticAberration.direction=He.Vector2.FromArray(t.direction??[0,0]),o.chromaticAberration.centerPosition=He.Vector2.FromArray(t.centerPosition??[0,0]),o.glowLayerEnabled=t.glowLayerEnabled??!1,o.glowLayer&&(o.glowLayer.intensity=t.glowLayerIntensity??1,o.glowLayer.blurKernelSize=t.glowLayerBlurKernelSize??32),o}i(Je,"parseDefaultRenderingPipeline");function So(e){Q.set(e,ze()),k.set(e,we()),z.set(e,_e()),j.set(e,Ye()),Y.set(e,qe()),$.set(e,Ge())}i(So,"saveRenderingConfigurationForCamera");function Ze(e,r,t){ke(),Re(e.getScene()),Le(),je(),Ue(),Be();let n=Q.get(e);n&&!t?.ssao2Disabled&&$e(e.getScene(),e,n);let o=k.get(e);o&&!t?.vlsDisabled&&Fe(e.getScene(),o);let s=z.get(e);s&&!t?.ssrDisabled&&Ve(e.getScene(),e,s);let l=j.get(e);l&&!t?.motionBlurDisabled&&We(e.getScene(),e,l);let u=Y.get(e);u&&!t?.defaultPipelineDisabled&&Je(e.getScene(),e,u,r);let a=$.get(e);a&&!t?.taaDisabled&&Ke(e.getScene(),e,a)}i(Ze,"applyRenderingConfigurationForCamera");var ne=require("babylonjs"),Gt=require("babylonjs");function Kt(e){let r=e.metadata?.physicsAggregate;if(!r)return;let t;D(e)?t=e:ee(e)&&(t=e.sourceMesh);let n=new Gt.PhysicsAggregate(e,r.shape.type,{mesh:t,mass:r.massProperties.mass});n.body.setMassProperties({mass:r.massProperties.mass,inertia:r.massProperties.inertia?ne.Vector3.FromArray(r.massProperties.inertia):void 0,centerOfMass:r.massProperties.centerOfMass?ne.Vector3.FromArray(r.massProperties.centerOfMass):void 0,inertiaOrientation:r.massProperties.inertiaOrientation?ne.Quaternion.FromArray(r.massProperties.inertiaOrientation):void 0}),n.shape.density=r.shape.density,n.body.setMotionType(r.body.motionType),n.shape.material=r.material,e.physicsAggregate=n,e.metadata.physicsAggregate=void 0}i(Kt,"configurePhysicsAggregate");function kt(e,r){(Array.isArray(r)?r:[]).forEach(n=>{let o=e.getCameraById(n.cameraId);o&&(n.ssao2RenderingPipeline&&Q.set(o,n.ssao2RenderingPipeline),n.vlsPostProcess&&k.set(o,n.vlsPostProcess),n.ssrRenderingPipeline&&z.set(o,n.ssrRenderingPipeline),n.motionBlurPostProcess&&j.set(o,n.motionBlurPostProcess),n.defaultRenderingPipeline&&Y.set(o,n.defaultRenderingPipeline),n.taaRenderingPipeline&&$.set(o,n.taaRenderingPipeline))})}i(kt,"applyRenderingConfigurations");function Xe(e,r){let t=r.getNodeByName(e);if(t)return t;let n=r.lights.filter(o=>ge(o));for(let o of n){let s=o.lights.find(l=>l.name===e);if(s)return s}return null}i(Xe,"getNodeByName");function W(e,r){let t=r.getNodeById(e);if(t)return t;let n=r.lights.filter(o=>ge(o));for(let o of n){let s=o.lights.find(l=>l.id===e);if(s)return s}return null}i(W,"getNodeById");var G=require("babylonjs"),zt=require("babylonjs");function et(e){let r=zt.Vector3.FromArray(e);return r.equals(G.Axis.X)?G.Axis.X:r.equals(G.Axis.Y)?G.Axis.Y:r.equals(G.Axis.Z)?G.Axis.Z:r}i(et,"parseAxis");function $t(e){return e.runtimeConfiguration.forEach(r=>{r.rotationAxis&&(r.rotationAxis=et(r.rotationAxis)),r.boneOffsetAxis&&(r.boneOffsetAxis=et(r.boneOffsetAxis))}),e}i($t,"parseRagdollConfiguration");function tt(e){let r={rootNodeId:e.rootNodeId,skeletonName:e.skeletonName,scalingFactor:e.scalingFactor,runtimeConfiguration:e.runtimeConfiguration.map(t=>({name:t.name,bones:t.bones,width:t.width,depth:t.depth,height:t.height,size:t.size,joint:t.joint,min:t.min,max:t.max,boxOffset:t.boxOffset,rotationAxis:t.rotationAxis?.slice(),boneOffsetAxis:t.boneOffsetAxis?.slice()}))};return $t(r)}i(tt,"copyAndParseRagdollConfiguration");function rt(e){return e&&JSON.parse(JSON.stringify(e))}i(rt,"cloneJSObject");var nt=require("babylonjs"),Yt=require("babylonjs"),ie=require("babylonjs"),Qt=!1,ot=new Map;function Wt(e,r){!e.soundRelativePath||!e.sound||(0,ie.CreateSoundAsync)(e.soundRelativePath,e.sound.buffer,{spatialAutoUpdate:!0}).then(t=>{if(r.isDisposed())return t.dispose();t.volume=e.volume,t._isSpatial=e.sound._isSpatial,t._isSpatial&&(t.spatial.attach(r),t.spatial.maxDistance=e.sound.spatial.maxDistance,t.spatial.panningModel=e.sound.spatial.panningModel,t.spatial.distanceModel=e.sound.spatial.distanceModel),r.sound=t,r.isSoundNode=!0,r.soundRelativePath=e.soundRelativePath,r.onDisposeObservable.addOnce(()=>{t.dispose()}),jt(r,t)})}i(Wt,"configureSourceNodeFrom");function jt(e,r){Object.defineProperty(e,"volume",{get:i(()=>r.volume,"get"),set:i(t=>{r.volume=t},"set")}),Object.defineProperty(e,"playbackRate",{get:i(()=>r.playbackRate,"get"),set:i(t=>{r.playbackRate=t},"set")}),e.isPaused=()=>r.state===nt.SoundState.Paused,e.isPlaying=()=>r.state===nt.SoundState.Started,e.pause=()=>r.pause(),e.resume=()=>r.resume(),e.stop=t=>r.stop(t),e.play=t=>r.play(t),e.setVolume=(t,n)=>r.setVolume(t,n),e.attachTo=(t,n,o)=>r.spatial.attach(t,n,o)}i(jt,"configureSoundNodePrototype");function Ht(){Qt||(Qt=!0,(0,Yt.AddParser)("SoundNode",(e,r,t,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSoundNode)return;let s=t.transformNodes?.find(l=>l.id===o.id);if(s&&o.soundRelativePath){let l=`${n}${o.soundRelativePath}`;r.addPendingData(l),ot.has(l)||ot.set(l,(0,ie.CreateSoundBufferAsync)(l)),ot.get(l).then(a=>{(0,ie.CreateSoundAsync)(o.soundRelativePath,a,{spatialAutoUpdate:!0}).then(c=>{if(r.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.onDisposeObservable.addOnce(()=>{c.dispose()}),jt(s,c)})})}})}))}i(Ht,"registerAudioParser");function H(e){let r=new Set;e.transformNodes.forEach(t=>{if(t.metadata?.isStaticGroup){let n=t.getDescendants(!1);n.push(t),n.forEach(o=>{if((B(o)||L(o)&&!o.isWorldMatrixFrozen)&&o.freezeWorldMatrix(),B(o)){let s=o.material;s&&!s.isFrozen&&!r.has(s)&&(r.add(s),s.onBindObservable.addOnce(()=>{s.freeze()}))}})}})}i(H,"configureTransformNodes");var se=class{constructor(r,t){this.entries=r;this.namingId=t}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(r){let t=`${r}-${this.namingId}`;return this.entries.rootNodes.find(n=>n.name===t)??null}getNodeByName(r){let t=`${r}-${this.namingId}`;for(let n of this.entries.rootNodes){let o=this._recursivelyGetNodeByName(t,n);if(o)return o}return null}_recursivelyGetNodeByName(r,t){if(t.name===r)return t;for(let n of t.getDescendants(!0)){let o=this._recursivelyGetNodeByName(r,n);if(o)return o}return null}getScriptByClassByObjectName(r,t){let n=this.getNodeByName(r);if(n){let o=U(n,t);if(o?.length===1)return o[0]}return null}};var it=require("babylonjs"),ae=class{static{i(this,"AdvancedAssetContainer")}container;_rootUrl;_scriptsMap;_originalDescendants=[];_nodesMap=new Map;_animationGroupsMap=new Map;constructor(r,t,n){this.container=r,this._rootUrl=t,this._scriptsMap=n,r.populateRootNodes(),r.rootNodes.forEach(o=>{this._originalDescendants.push(o,...o.getDescendants(!1))}),r.animationGroups.forEach(o=>{this._animationGroupsMap.set(o.name,o)}),this._originalDescendants.forEach(o=>{this._nodesMap.set(o,{node:o,metadata:rt(o.metadata)})})}removeDefault(){this.container.getNodes().forEach(r=>{R.get(r)?.forEach(n=>{Se(r,n)})}),this.container.removeAllFromScene()}getRootNodeByName(r){return this.container.rootNodes.find(t=>t.name===r)??null}getScriptByClassByObjectName(r,t){let n=this.container.getNodes();for(let o of n)if(o.name===r){let s=U(o,t);if(s?.length===1)return s[0]}return null}instantiate(r){let t=it.Tools.RandomId(),n=i(a=>a,"nameFunction"),o=this.container.instantiateModelsToScene(n,!1,{...r,predicate:i(a=>(a.name=`${a.name}@editor-tools@${t}_${a.id}`,r?.predicate?.(a)??!0),"predicate")}),s=new se(o,t);[...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]}-${t}`});let u=[];return o.rootNodes.forEach(a=>{u.push(a,...a.getDescendants(!1))}),u.forEach(a=>{let c=a.name.split("@editor-tools@"),p=c[1].split("_").pop();a.name=`${c[0]}-${t}`;let g=this._originalDescendants.find(f=>f.id===p);re(g)&&L(a)&&Wt(g,a),a.id=it.Tools.RandomId(),a.metadata=rt(this._nodesMap.get(g).metadata),a.metadata??={},a.metadata.originalId=p,u.forEach(f=>{f.metadata.scripts?.forEach(d=>{Object.keys(d.values||{}).forEach(y=>{let P=d.values[y];if(P.type==="entity"){P.value===p&&(P.value=a.id),P.value===g.name&&(P.value=a.name);let x=this._animationGroupsMap.get(P.value);x&&(P.value=`${x.name}-${t}`)}})})})}),u.forEach(a=>{N(this.container.scene,a,this._scriptsMap,this._rootUrl)}),H(this.container.scene),s}};var Ut=require("babylonjs"),qt=require("babylonjs");async function Jt(e,r,t){let o=e.split("/").pop().replace(".scene",".babylon"),s=await(0,qt.LoadAssetContainerAsync)(o,t,{rootUrl:r,pluginExtension:".babylon"});return Ut.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(l=>D(l)&&l._checkDelayState()),s.addAllToScene(),H(t),s}i(Jt,"preloadSceneScriptAsset");async function Zt(e,r){return await(await fetch(`${r}${e}`)).json()}i(Zt,"preloadCommonScriptAsset");var O=new Map,le=new Map;function ho(e,r){le.has(e)&&console.warn(`A parser for the extension '${e}' was already registered. It will be overwritten.`),le.set(e,r)}i(ho,"registerScriptAssetParser");async function st(e,r,t){[r,...r.transformNodes,...r.meshes,...r.lights,...r.cameras].filter(u=>u.metadata?.scripts?.length).map(u=>u.metadata.scripts).flat().forEach(u=>{if(t[u.key]?.default?._SceneAssets?.forEach(c=>{O.get(c.sceneName)||O.set(c.sceneName,null)}),u.values)for(let c in u.values){if(!u.values.hasOwnProperty(c))continue;let p=u.values[c];p.type==="asset"&&p.value&&!O.get(p.value)&&O.set(p.value,null)}});let s=0;for(let u of O.values())u===null&&++s;if(s===0)return s;let l=[];return O.forEach((u,a)=>{O.get(a)||l.push(new Promise(async c=>{try{let p=a.split(".").pop();switch(p){case"scene":O.set(a,new ae(await Jt(a,e,r),e,t));break;default:if(le.has(p)){let g=le.get(p);O.set(a,await g({key:a,rootUrl:e,scene:r}));break}else O.set(a,await Zt(a,e));break}}catch(p){console.error(p)}c()}))}),await Promise.all(l),s}i(st,"_preloadScriptsAssets");var Xt=require("babylonjs"),he=require("babylonjs"),er=require("babylonjs"),be=require("babylonjs"),tr=require("babylonjs"),rr=require("babylonjs-gui");function at(e,r,t,n,o){let s=n.constructor;if(!s)return;s._NodesFromScene?.forEach(a=>{n[a.propertyKey.toString()]=Xe(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(g=>{let f=lt(g,a.componentConstructor);f&&c.push(f)}),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=r.getDescendants?.(a.directDescendantsOnly,p=>p.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=Xe(a.soundName,e);c&&re(c)&&(n[a.propertyKey.toString()]=c??null)}),(s._GuiFromAsset??[]).map(async a=>{let c=`${o}assets/${a.pathInAssets}`;try{let g=await(await fetch(c)).json(),f=rr.AdvancedDynamicTexture.CreateFullscreenUI(g.name,!0,e);f.parseSerializedObject(g.content,!1),n[a.propertyKey.toString()]=f,a.onGuiCreated?.(n,f)}catch(p){throw console.error(`Failed to load GUI from asset: ${c}`),p}}),s._ParticleSystemsFromScene?.forEach(a=>{let c=e.particleSystems?.find(p=>p.name!==a.particleSystemName?!1:a.directDescendantsOnly?p.emitter===r:p);n[a.propertyKey.toString()]=c}),(s._VisibleInInspector??[]).forEach(a=>{let c=a.propertyKey.toString(),p=t.values;if(!p)throw new Error(`No values found for script with key "${t.key}".`);if(p.hasOwnProperty(c)&&p[c].hasOwnProperty("value")){let g=p[c].value;switch(a.configuration.type){case"number":case"boolean":case"keymap":case"string":n[c]=g;break;case"vector2":n[c]=be.Vector2.FromArray(g);break;case"vector3":n[c]=be.Vector3.FromArray(g);break;case"color3":n[c]=he.Color3.FromArray(g);break;case"color4":n[c]=he.Color4.FromArray(g);break;case"entity":switch(a.configuration.entityType){case"node":case"sound":n[c]=W(g,e)??null;break;case"animationGroup":n[c]=e.getAnimationGroupByName(g)??null;break;case"particleSystem":n[c]=e.particleSystems?.find(d=>d.id===g)??null;break}break;case"texture":g&&(n[c]=er.Texture.Parse(g,e,o));break;case"asset":if(g){let d=a.configuration.assetType,S=O.get(g);switch(d){case"json":case"gui":case"scene":case"navmesh":case"cinematic":n[c]=S;break;case"ragdoll":n[c]=tt(S);break;case"nodeParticleSystemSet":let y=tr.NodeParticleSystemSet.Parse(S);n[c]=y;break;case"material":n[c]=Xt.Material.Parse(S,e,o);break}}}}});let l=null,u=null;if(s._PointerEvents?.length){if(s._PointerEvents.find(p=>p.options.mode==="attachedMeshOnly")&&!B(r))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(s._PointerEvents.find(p=>p.options.mode!=="global")&&!K(r))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(p=>{let g=null;s._PointerEvents.forEach(f=>{if(!f.eventTypes.includes(p.type))return;let d=f.propertyKey.toString();if(f.options.mode==="global")return n[d]?.(p);g=p.pickInfo,g||(g=e.pick(e.pointerX,e.pointerY,y=>y.isVisible&&y.isPickable&&y.isEnabled(!0)&&!y._masterMesh,!1));let S=g.pickedMesh;if(S&&(f.options.mode==="attachedMeshOnly"&&S===r||f.options.mode==="includeDescendants"&&K(r)&&[r,...r.getDescendants(!1)].find(x=>x===S)))return n[d]?.(p)})})}if(s._KeyboardEvents?.length&&(u=e.onKeyboardObservable.add(a=>{s._KeyboardEvents.forEach(c=>{c.eventTypes.includes(a.type)&&n[c.propertyKey.toString()]?.(a)})})),s._SpritesFromSpriteManager?.length){let a=r;if(!L(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 p=a.spriteManager?.sprites.find(g=>g.name===c.spriteName)||null;n[c.propertyKey.toString()]=p})}if(s._AnimationsFromSprite?.length){if(!Oe(r))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let a=r.metadata?.spriteAnimations;if(!a?.length)return console.error(`Sprite "${r.name}" has no sprite animations assigned.`);s._AnimationsFromSprite.forEach(c=>{let p=a.find(g=>g.name===c.animationName);p?n[c.propertyKey.toString()]=p??null:console.warn(`Sprite animation named "${c.animationName}" not found on sprite "${r.name}".`)})}return s._SceneAssets?.forEach(a=>{n[a.propertyKey.toString()]=O.get(a.sceneName)}),{observers:{pointerObserver:l,keyboardObserver:u}}}i(at,"applyDecorators");function N(e,r,t,n){r.metadata?.scripts&&(r.metadata.scripts?.forEach(o=>{if(!o.enabled)return;let s=t[o.key];if(!s)return;let l=s,u={};if(s.default){l=new s.default(r);let a=at(e,r,o,l,n);Object.assign(u,a?.observers??{})}l.onStart&&(u.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>l.onStart(r))),l.onUpdate&&(u.onUpdateObserver=e.onBeforeRenderObservable.add(()=>l.onUpdate(r))),ct(r,l,o.key,u)}),r.metadata.scripts=void 0)}i(N,"_applyScriptsForObject");function bo(e,r,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let n=new r(e),o={};return at(t,e,{values:{}},n,""),n.onStart&&(o.onStartObserver=t.onBeforeRenderObservable.addOnce(()=>n.onStart())),n.onUpdate&&t.onBeforeRenderObservable.add(()=>n.onUpdate()),ct(e,n,"runtime",o),n}i(bo,"applyScriptOnObject");var R=new Map;function ct(e,r,t,n){let o={key:t,observers:n,instance:r};R.has(e)?R.get(e).push(o):R.set(e,[o]),(K(e)||Te(e)||ve(e))&&e.onDisposeObservable.addOnce((()=>{R.get(e)?.slice()?.forEach(l=>{Se(e,l)}),R.delete(e)}))}i(ct,"_registerScriptInstance");function Se(e,r){r.observers.onStartObserver?.remove(),r.observers.onUpdateObserver?.remove(),r.observers.pointerObserver?.remove(),r.observers.keyboardObserver?.remove();try{r.instance.onStop?.(e)}catch(o){console.error(`Failed to call onStop for script ${r.key} on object ${e}`,o)}let t=R.get(e),n=t?.indexOf(r)??-1;n!==-1&&t?.splice(n,1)}i(Se,"_removeRegisteredScriptInstance");function U(e,r){return R.get(e)?.filter(o=>o.instance.constructor===r)?.map(o=>o.instance)??null}i(U,"getAllScriptsByClassForObject");function lt(e,r){return U(e,r)?.[0]??null}i(lt,"getScriptByClassForObject");function Po(e){e.setCompressedTextureExclusions([".env",".hdr",".dds"]),e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(Po,"configureEngineToUseCompressedTextures");function Ao(e,r,t){r.loadingTexturesQuality!==e&&(r.loadingTexturesQuality=e,r.textures.forEach(n=>{if(!te(n)||!n.url)return;let o=Pe(n,r);!o||n.url.includes(o)||n.updateURL(t+o)}))}i(Ao,"applyTexturesQuality");function Pe(e,r){if(r.loadingTexturesQuality==="high"||!e.metadata?.baseSize)return e.name;let t=e.metadata.baseSize.width,n=e.metadata.baseSize.height,o=t===M(t)||n===M(n),s="";switch(r.loadingTexturesQuality){case"medium":let f=t*.66>>0,d=n*.66>>0;o&&(f=M(f),d=M(d)),s=`_${f}_${d}`;break;case"low":case"very-low":let S=t*.33>>0,y=n*.33>>0;o&&(S=M(S),y=M(y)),s=`_${S}_${y}`;break}let l=e.name;if(!l||!s)return e.name;let u=l.split("/"),a=u.pop();if(!a)return e.name;let c=a.split(".").pop(),g=`${a.replace(`.${c}`,"")}${s}.${c}`;return u.push(g),u.join("/")}i(Pe,"getTextureUrl");var pt=require("babylonjs"),or=!1;function nr(){if(or)return;or=!0;let e=pt.SerializationHelper._TextureParser;pt.SerializationHelper._TextureParser=(r,t,n)=>{let o=Pe(r,t);if(!o)return e(r,t,n);let s=r.name;r.name=o;let l=e(r,t,n);return l&&(l.name=s),l}}i(nr,"registerTextureParser");var sr=require("babylonjs"),Ae=require("babylonjs"),ir=!1;function ar(){if(ir)return;ir=!0;let e=(0,Ae.GetParser)(sr.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,Ae.AddParser)("ShadowGeneratorEditorPlugin",(r,t,n,o)=>{let s=new Map;r.shadowGenerators?.forEach(l=>{if(s.set(l.id,l.mapSize),t.loadingShadowsQuality!=="high"){switch(t.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?.(r,t,n,o),t.lights.forEach(l=>{let u=l.getShadowGenerator();if(u?.getShadowMap()){let c=u.id,p=s.get(c);p&&(u.originalMapSize=p)}})})}i(ar,"registerShadowGeneratorParser");var cr=require("babylonjs"),pr=require("babylonjs"),lr=!1;function mr(){lr||(lr=!0,(0,pr.AddParser)("MorphTargetManagerEditorPlugin",(e,r,t,n)=>{e.morphTargetManagers.forEach(o=>{let l=t.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 p=`${n}${c.delayLoadingFile}`;r.addPendingData(p);let g=new cr.WebRequest;g.responseType="arraybuffer",g.open("GET",p),g.send(),a.push(new Promise(f=>{g.addEventListener("load",()=>{r.removePendingData(p),f(g.response)})}))}),Promise.all(a).then(c=>{for(let p=0,g=l.numTargets;p<g;++p){let f=l.getTarget(p),d=o.targets[p],S=c[p];if(d.positionsCount){let y=new Float32Array(S,d.positionsOffset,d.positionsCount);f._positions=y,f.setPositions(y)}if(d.normalsCount){let y=new Float32Array(S,d.normalsOffset,d.normalsCount);f._normals=y,f.setNormals(y)}if(d.tangentsCount){let y=new Float32Array(S,d.tangentsOffset,d.tangentsCount);f._tangents=y,f.setTangents(y)}if(d.uvsCount){let y=new Float32Array(S,d.uvsOffset,d.uvsCount);f._uvs=y,f.setUVs(y)}if(d.uv2sCount){let y=new Float32Array(S,d.uv2sOffset,d.uv2sCount);f._uv2s=y,f.setUV2s(y)}}for(let p=0,g=l.numTargets;p<g;++p)l.getTarget(p)._onDataLayoutChanged.notifyObservers()})})}))}i(mr,"registerMorphTargetManagerParser");var ur=require("babylonjs");function fr(e,r){let t=e.metadata?.clusteredLight;return t&&(t.lights.length>0&&(r??=new ur.ClusteredLightContainer("Clustered Light Container",[],e),r.horizontalTiles=t.horizontalTiles,r.verticalTiles=t.verticalTiles,r.depthSlices=t.depthSlices,r.maxRange=t.maxRange),t.lights.forEach(n=>{let o=e.getLightById(n);o&&r?.addLight(o)})),r}i(fr,"configureLights");function mt(e){if(!Array.isArray(e.frames)){let r=[];for(let t of Object.keys(e.frames))r.push({filename:t,...e.frames[t]});e.frames=r}}i(mt,"normalizeAtlasJson");function Co(e,r,t){let o=(e.metadata?.spriteAnimations??[]).find(s=>s.name===r);if(!o)return console.error(`Animation with name "${r}" not found on sprite.`);e.playAnimation(o.from,o.to,o.loop,o.delay,t)}i(Co,"playSpriteAnimationFromName");var gr=require("babylonjs"),yr=require("babylonjs"),Sr=require("babylonjs"),hr=require("babylonjs"),ut=require("babylonjs"),q=require("babylonjs"),br=require("babylonjs"),dr=!1;function Pr(){dr||(dr=!0,(0,br.AddParser)("SpriteMapNode",(e,r,t,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSpriteMap)return;let s=t.transformNodes?.find(a=>a.id===o.id);if(!s)return;s.isSpriteMap=o.isSpriteMap;let l=`${n}${o.atlasJsonRelativePath}`;r.addPendingData(l);let u=new Sr.WebRequest;u.open("GET",l),u.send(),u.addEventListener("load",()=>{r.removePendingData(l);let a=JSON.parse(u.responseText);mt(a);let c=`${gr.Tools.GetFolderPath(l)}${a.meta.image}`,p=new ut.Texture(c,r,!1,!1,ut.Texture.NEAREST_NEAREST,null,null,null,!1,yr.Engine.TEXTUREFORMAT_RGBA),g=new hr.SpriteMap(s.name,a,p,{layerCount:o.options.layerCount,stageSize:q.Vector2.FromArray(o.options.stageSize??[10,1]),outputSize:q.Vector2.FromArray(o.options.outputSize??[100,100]),colorMultiply:q.Vector3.FromArray(o.options.colorMultiply??[1,1,1]),flipU:!0},r);o.tiles.forEach(d=>{for(let S=0,y=d.repeatCount.x+1;S<y;++S)for(let P=0,x=d.repeatCount.y+1;P<x;++P){let T=S*(d.repeatOffset.x+1),A=P*(d.repeatOffset.y+1);g.changeTiles(d.layer,new q.Vector2(d.position.x+T,(g.options.stageSize?.y??0)-1-d.position.y-A),d.tile)}});let f=g._output;f.parent=s,s.spriteMap=g})})}))}i(Pr,"registerSpriteMapParser");var xr=require("babylonjs"),Ir=require("babylonjs"),vr=require("babylonjs"),ft=require("babylonjs"),Er=require("babylonjs");function Ar(e,r){r?.fogEnabled!==void 0&&(e.fogEnabled=r?.fogEnabled),r?.blendMode!==void 0&&(e.blendMode=r?.blendMode),r?.disableDepthWrite!==void 0&&(e.disableDepthWrite=r?.disableDepthWrite),r?.pixelPerfect!==void 0&&(e.pixelPerfect=r?.pixelPerfect),r?.useLogarithmicDepth!==void 0&&(e.useLogarithmicDepth=r?.useLogarithmicDepth),r?.metadata!==void 0&&(e.metadata=r?.metadata);for(let t of r?.sprites??[]){let n=Ir.Sprite.Parse(t,e);n.uniqueId=t.uniqueId,n.metadata=t.metadata}}i(Ar,"parseSerializedSpriteManager");var Cr=!1;function Tr(){Cr||(Cr=!0,(0,Er.AddParser)("SpriteManagerNode",(e,r,t,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSpriteManager)return;let s=t.transformNodes?.find(l=>l.id===o.id);if(s){if(s.isSpriteManager=o.isSpriteManager,o.atlasJsonRelativePath){let l=`${n}${o.atlasJsonRelativePath}`;r.addPendingData(l);let u=new vr.WebRequest;u.open("GET",l),u.send(),u.addEventListener("load",()=>{r.removePendingData(l);let a=JSON.parse(u.responseText),c=`${xr.Tools.GetFolderPath(l)}${a.meta.image}`,p=new ft.SpriteManager(s.name,c,1e3,64,r,void 0,void 0,!0,a);s.spriteManager=p,o.spriteManager&&Ar(p,o.spriteManager)})}else if(o.spriteManager?.textureUrl){let l=`${n}${o.spriteManager.textureUrl}`,u=new ft.SpriteManager(s.name,l,1e3,{width:o.spriteManager.cellWidth,height:o.spriteManager.cellHeight},r,void 0,void 0,!1);s.spriteManager=u,o.spriteManager&&Ar(u,o.spriteManager)}}})}))}i(Tr,"registerSpriteManagerParser");var Dr=require("babylonjs"),Mr=require("babylonjs"),Or=!1;function Nr(){Or||(Or=!0,(0,Dr.AddParser)("NodeParticleSystemSetEditorPlugin",(e,r,t,n)=>{e.meshes?.forEach(o=>{if(!o.isNodeParticleSystemMesh)return;let s=t.meshes?.find(l=>l.id===o.id);s&&(o.nodeParticleSystemSet.blocks?.forEach(l=>{l.url&&(l.url=`${n}${l.url}`)}),s.nodeParticleSystemSet=Mr.NodeParticleSystemSet.Parse(o.nodeParticleSystemSet),s.nodeParticleSystemSet.id=o.nodeParticleSystemSet.id,s.nodeParticleSystemSet.uniqueId=o.uniqueId,r.addPendingData(o.id),s.nodeParticleSystemSet.buildAsync(r,!1).then(l=>{r.removePendingData(o.id),s.particleSystemSet=l,l.systems.forEach(u=>{if(Ee(u)){let a=u._sizeCreation.process;a&&(u._sizeCreation.process=(c,p)=>{a(c,p),c.scale.x*=100,c.scale.y*=100})}}),l.emitterNode=s,l.start()}))})}))}i(Nr,"registerNodeParticleSystemSetParser");var wr=require("babylonjs"),dt=require("babylonjs"),Fr=require("babylonjs"),Lr=require("babylonjs"),Rr=new Map;async function xo(e,r,t,n,o){t.loadingQuality=o?.quality??"high",t.loadingTexturesQuality=o?.texturesQuality??t.loadingQuality,t.loadingShadowsQuality=o?.shadowsQuality??t.loadingQuality,t.loadingLodsQuality=o?.lodsQuality??t.loadingQuality,Ht(),nr(),ar(),mr(),Pr(),Tr(),Nr();let s=Rr.get(t)??{};if(Rr.set(t,s),await(0,Fr.AppendSceneAsync)(`${e}${r}`,t,{pluginExtension:".babylon",onProgress:i(a=>{let c=Math.min(a.loaded/a.total*.5);o?.onProgress?.(c)},"onProgress")}),!o?.skipAssetsPreload){let a=0;do a=await st(e,t,n);while(a!==0)}Lr.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(a=>D(a)&&a._checkDelayState());let l=fr(t,s.clusteredLightContainer);s.clusteredLightContainer=l;let u=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(c=>setTimeout(c,150));let a=u-t.getWaitingItemsCount();a===u&&t.textures.forEach(c=>{c.delayLoadState===dt.Constants.DELAYLOADSTATE_NONE&&(c.delayLoadState=dt.Constants.DELAYLOADSTATE_LOADED)}),o?.onProgress?.(.5+a/u*.5)}o?.onProgress?.(1),De(t),Me(t.loadingLodsQuality,t),Ne(t),ye(t),t.metadata?.rendering&&(kt(t,t.metadata.rendering),t.activeCamera&&Ze(t.activeCamera,e,o?.postProcessConfiguration)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(wr.Vector3.FromArray(t.metadata?.physicsGravity)),N(t,t,n,e),t.transformNodes.forEach(a=>{N(t,a,n,e)}),t.meshes.forEach(a=>{Kt(a),N(t,a,n,e)}),t.lights.forEach(a=>{N(t,a,n,e)}),t.cameras.forEach(a=>{N(t,a,n,e)}),t.spriteManagers?.forEach(a=>{a.sprites.forEach(c=>{N(t,c,n,e)})}),H(t)}i(xo,"loadScene");var _r=require("babylonjs");async function Io(e,r,t){let o=await(await fetch(e+r)).json(),l=_r.Tools.Instantiate(o.customType).Parse(o,t,e);return l.id=o.id,l.uniqueId=o.uniqueId,l}i(Io,"loadMaterialFromFile");function vo(e){return Promise.all(e.materials.map(async r=>{let t=r.getBindedMeshes();await Promise.all(t.map(async n=>{ee(n)||await r.forceCompilationAsync(n,{clipPlane:!!e.clipPlane,useInstances:n.hasInstances})}))}))}i(vo,"forceCompileAllSceneMaterials");var _=require("babylonjs");function ce(e){if(!isNaN(parseFloat(e))&&isFinite(e))return _.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return _.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return _.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return _.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return _.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return _.Animation.ANIMATIONTYPE_COLOR4;case"Size":return _.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return _.Animation.ANIMATIONTYPE_MATRIX}return null}i(ce,"getAnimationTypeForObject");var Vr=require("babylonjs");function Eo(e){return function(r,t){let n=r.constructor;n._NodesFromScene??=[],n._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(Eo,"nodeFromScene");function To(e){return function(r,t){let n=r.constructor;n._ComponentsFromScene??=[],n._ComponentsFromScene.push({propertyKey:t,componentConstructor:e})}}i(To,"componentFromScene");function Oo(e,r=!1){return function(t,n){let o=t.constructor;o._NodesFromDescendants??=[],o._NodesFromDescendants.push({propertyKey:n,nodeName:e,directDescendantsOnly:r})}}i(Oo,"nodeFromDescendants");function Do(e){return function(r,t){let n=r.constructor;n._AnimationGroups??=[],n._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(Do,"animationGroupFromScene");function Mo(e){return function(r,t){let n=r.constructor;n._SceneAssets??=[],n._SceneAssets.push({sceneName:e,propertyKey:t})}}i(Mo,"sceneAsset");function No(e,r){return function(t,n){let o=t.constructor;o._GuiFromAsset??=[],o._GuiFromAsset.push({propertyKey:n,pathInAssets:e,onGuiCreated:r})}}i(No,"guiFromAsset");function Ro(e){return function(r,t){let n=r.constructor;n._SoundsFromScene??=[],n._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(Ro,"soundFromScene");function wo(e,r=!1){return function(t,n){let o=t.constructor;o._ParticleSystemsFromScene??=[],o._ParticleSystemsFromScene.push({propertyKey:n,particleSystemName:e,directDescendantsOnly:r})}}i(wo,"particleSystemFromScene");function Fo(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"boolean"}})}}i(Fo,"visibleAsBoolean");function Lo(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"string"}})}}i(Lo,"visibleAsString");function _o(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"number"}})}}i(_o,"visibleAsNumber");function Vo(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"vector2"}})}}i(Vo,"visibleAsVector2");function Bo(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"vector3"}})}}i(Bo,"visibleAsVector3");function Go(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"color3"}})}}i(Go,"visibleAsColor3");function Ko(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"color4"}})}}i(Ko,"visibleAsColor4");function ko(e,r,t){return function(n,o){let s=n.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:r,propertyKey:o,configuration:{...t,entityType:e,type:"entity"}})}}i(ko,"visibleAsEntity");function zo(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"texture"}})}}i(zo,"visibleAsTexture");function $o(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"keymap"}})}}i($o,"visibleAsKeyMap");function Qo(e,r,t){return function(n,o){let s=n.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:r,propertyKey:o,configuration:{...t,assetType:e,type:"asset"}})}}i(Qo,"visibleAsAsset");function jo(e,r){return function(t,n){let o=t.constructor;o._PointerEvents??=[],o._PointerEvents.push({propertyKey:n,options:{mode:"global",...r??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(jo,"onPointerEvent");function Yo(e){return function(r,t){let n=r.constructor;n._KeyboardEvents??=[],n._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(Yo,"onKeyboardEvent");function Wo(e){return function(r,t){let n=r.constructor;n._SpritesFromSpriteManager??=[],n._SpritesFromSpriteManager.push({propertyKey:t,spriteName:e})}}i(Wo,"spriteFromSpriteManager");function Ho(e){return function(r,t){let n=r.constructor;n._AnimationsFromSprite??=[],n._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(Ho,"animationFromSprite");var Ce=require("babylonjs");function Hm(e,r){let t;return e===Ce.Animation.ANIMATIONTYPE_FLOAT?t=r.value:t=r.value.clone(),{value:t,frame:r.frame,interpolation:r.interpolation,inTangent:e===Ce.Animation.ANIMATIONTYPE_FLOAT?r.inTangent:r.inTangent?.clone(),outTangent:e===Ce.Animation.ANIMATIONTYPE_FLOAT?r.outTangent:r.outTangent?.clone()}}i(Hm,"cloneKey");function xe(e,r){let t=r.split("."),n=e;for(let o=0;o<t.length;++o)n=n[t[o]];return n}i(xe,"getPropertyValue");function gt(e,r,t){let n=null;e.onAnimationGroupPlayObservable.add(()=>{n=r.onAfterAnimationsObservable.add(()=>{t()})}),e.onAnimationGroupPauseObservable.add(()=>{n&&(r.onAfterAnimationsObservable.remove(n),n=null)}),e.onAnimationGroupEndObservable.add(()=>{n&&(r.onAfterAnimationsObservable.remove(n),n=null)})}i(gt,"registerAfterAnimationCallback");var V=require("babylonjs"),Ie=require("babylonjs"),F=require("babylonjs");function Uo(e,r){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(t=>{let n=null,o=null;if(t.node?(n=W(t.node,r),n||(n=r.particleSystems?.find(l=>l.id===t.node)??null)):t.defaultRenderingPipeline&&(n=oe()),t.propertyPath){let l=xe(n,t.propertyPath);o=ce(l)}let s=null;return t.sound&&(s=W(t.sound,r)),{node:n,sound:s,propertyPath:t.propertyPath,defaultRenderingPipeline:t.defaultRenderingPipeline,animationGroup:t.animationGroup?r.getAnimationGroupByName(t.animationGroup):null,animationGroups:t.animationGroups,sounds:t.sounds,soundVolume:yt(t.soundVolume??[],V.Animation.ANIMATIONTYPE_FLOAT),keyFrameEvents:t.keyFrameEvents?.map(l=>{let u={...l};switch(l.data?.type){case"set-enabled":u.data={type:"set-enabled",value:l.data.value,node:W(l.data.node,r)};break;case"apply-impulse":u.data={type:"apply-impulse",radius:l.data.radius,mesh:r.getMeshById(l.data.mesh),force:F.Vector3.FromArray(l.data.force),contactPoint:F.Vector3.FromArray(l.data.contactPoint)};break}return u}),keyFrameAnimations:n&&o!==null&&yt(t.keyFrameAnimations??[],o)}})}}i(Uo,"parseCinematic");function w(e,r){if(e===null)return null;if(e!==void 0)switch(r){case V.Animation.ANIMATIONTYPE_FLOAT:return e;case V.Animation.ANIMATIONTYPE_VECTOR2:return F.Vector2.FromArray(e);case V.Animation.ANIMATIONTYPE_VECTOR3:return F.Vector3.FromArray(e);case V.Animation.ANIMATIONTYPE_QUATERNION:return F.Quaternion.FromArray(e);case V.Animation.ANIMATIONTYPE_COLOR3:return Ie.Color3.FromArray(e);case V.Animation.ANIMATIONTYPE_COLOR4:return Ie.Color4.FromArray(e);case V.Animation.ANIMATIONTYPE_MATRIX:return F.Matrix.FromArray(e)}}i(w,"parseCinematicKeyValue");function yt(e,r){return e?.map(t=>{let n=t.type==="key"?t:null;if(n)return{...n,value:w(n.value,r),inTangent:w(n.inTangent,r),outTangent:w(n.outTangent,r)};let o=t.type==="cut"?t:null;if(o)return{...o,key1:{...o.key1,value:w(o.key1.value,r),inTangent:w(o.key1.inTangent,r),outTangent:w(o.key1.outTangent,r)},key2:{...o.key2,value:w(o.key2.value,r),inTangent:w(o.key2.inTangent,r),outTangent:w(o.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${t.type}`)})}i(yt,"parseKeyFrameAnimations");function Br(e,r){e.onEventObservable.notifyObservers(r.eventName)}i(Br,"handleApplyEvent");function Gr(e){e.node?.setEnabled(e.value)}i(Gr,"handleSetEnabledEvent");var St=require("babylonjs"),Kr=St.Vector3.Zero();function kr(e,r){let t=r.mesh?[r.mesh]:e.meshes.filter(n=>n.physicsAggregate);r.radius&&(t=t.filter(n=>{let o=n.getBoundingInfo().boundingBox.centerWorld;return St.Vector3.Distance(o,r.contactPoint)<=r.radius})),t.forEach(n=>{if(n.physicsAggregate?.body){let o=r.contactPoint.subtract(n.getBoundingInfo().boundingBox.centerWorld);o.multiplyInPlace(r.force),n.physicsAggregate.body.setLinearVelocity(Kr),n.physicsAggregate.body.setAngularVelocity(Kr),n.physicsAggregate.body.applyImpulse(o.negateInPlace(),r.contactPoint)}})}i(kr,"handleApplyImpulseEvent");var zr=require("babylonjs"),$r=require("babylonjs"),pe=class extends $r.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new zr.Observable;onEvent(r,t){this.onEventObservable.add(n=>{r===n&&t()})}};function ht(e){return e.type==="key"}i(ht,"isCinematicKey");function J(e){return e.type==="cut"}i(J,"isCinematicKeyCut");function qo(e){return e.type==="event"}i(qo,"isCinematicKeyEvent");function Jo(e){return e.type==="group"}i(Jo,"isCinematicGroup");function Zo(e){return e.type==="sound"}i(Zo,"isCinematicSound");var C=require("babylonjs"),Z=require("babylonjs");function Xo(e,r,t){let n=new pe(e.name,r);return e.tracks.forEach(o=>{let s=o.animationGroup;if(s&&o.animationGroups?.length){let f=s.clone(`${s.name}-cinematic-temp`),d=r.animationGroups.indexOf(f);d!==-1&&r.animationGroups.splice(d,1),n.onAnimationEndObservable.add(()=>{s.stop(),f.stop()});let S=o.animationGroups.reduce((T,A)=>Math.min(T,A.frame),Number.MAX_VALUE)??0,y=o.animationGroups.reduce((T,A)=>Math.max(T,A.frame+A.endFrame),0)??0,P={frame:S},x=new C.Animation(f.name,"frame",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1);if(x.setKeys([{frame:S,value:0},{frame:y,value:y}]),o.animationGroups.forEach(T=>{x.addEvent(new Z.AnimationEvent(T.frame,()=>{let A=T.repeatCount??0;if(f.to=T.endFrame,f.speedRatio=T.speed,f.stop(),f.play(A>0),f.from!==T.startFrame&&f.goToFrame(T.startFrame),A){let X=0;f.onAnimationGroupLoopObservable.add(()=>{++X,X>A&&f.stop()})}}))}),n.addTargetedAnimation(x,P),(o.animationGroupWeight?.length??0)>=2&&o.animationGroupWeight.find(A=>J(A)?A.key1.value!==1||A.key2.value!==1:A.value!==1)){let A={weight:0},X=new C.Animation(`${f.name}-weights`,"weight",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),me=[];o.animationGroupWeight.forEach(ue=>{J(ue)?(me.push(ue.key1),me.push(ue.key2)):me.push(ue)}),X.setKeys(me),n.addTargetedAnimation(X,A),gt(n,r,()=>{f.weight=A.weight})}}let l=o.sound;if(!t?.ignoreSounds&&l&&l.sound?.buffer&&o.sounds?.length){let f={dummy:0,volume:0},d=new C.Animation(l.name,"dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),S=0;if(o.sounds?.forEach(y=>{let P=y.endFrame-y.startFrame;S=Math.max(S,y.frame+P),d.addEvent(new Z.AnimationEvent(y.frame,x=>{let A=(x-y.frame+y.startFrame)/e.framesPerSecond;l.play({startOffset:A})},!1)),d.addEvent(new Z.AnimationEvent(y.frame+P,()=>{l.stop()}))}),d.setKeys([{frame:0,value:0},{frame:S,value:S}]),n.addTargetedAnimation(d,f),(o.soundVolume?.length??0)>=2){let y=new C.Animation(l.name,"volume",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),P=[];o.soundVolume.forEach(x=>{J(x)?(P.push(x.key1),P.push(x.key2)):P.push(x)}),y.setKeys(P),n.addTargetedAnimation(y,f),gt(n,r,()=>{l.volume=f.volume})}}if(o.keyFrameEvents){let f={dummy:0},d=new C.Animation("events","dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),S=0;o.keyFrameEvents?.forEach(y=>{S=Math.max(S,y.frame),d.addEvent(new Z.AnimationEvent(y.frame,()=>{switch(y.data?.type){case"event":Br(n,y.data);break;case"set-enabled":Gr(y.data);break;case"apply-impulse":kr(r,y.data);break}}))}),d.setKeys([{frame:0,value:0},{frame:S+1,value:S+1}]),n.addTargetedAnimation(d,f)}let u=o.defaultRenderingPipeline?oe():o.node;if(!u||!o.propertyPath||!o.keyFrameAnimations)return;let a=xe(u,o.propertyPath),c=ce(a);if(c===null)return;let p=new C.Animation(o.propertyPath,o.propertyPath,60,c,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),g=[];o.keyFrameAnimations?.forEach(f=>{if(ht(f))return g.push(f);J(f)&&(g.push(f.key1),g.push(f.key2),de(u)&&o.propertyPath==="position"&&p.addEvent(new Z.AnimationEvent(f.key1.frame,()=>{let d=Qe();if(!d)return;let S=d.motionStrength;d.motionStrength=0,requestAnimationFrame(()=>{d.motionStrength=S})})))}),p.setKeys(g),n.addTargetedAnimation(p,u)}),n.normalize(),n}i(Xo,"generateCinematicAnimationGroup");0&&(module.exports={AdvancedAssetContainer,AdvancedAssetContainerInstantiatedEntries,Cinematic,NodeParticleSystemSet,_applyScriptsForObject,_preloadScriptsAssets,_registerScriptInstance,_removeRegisteredScriptInstance,animationFromSprite,animationGroupFromScene,applyMeshesLODQuality,applyRenderingConfigurationForCamera,applyScriptOnObject,applyShadowsQuality,applyTexturesQuality,componentFromScene,configureEngineToUseCompressedTextures,configureMeshDistanceOrScreenCoverage,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,copyAndParseRagdollConfiguration,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createTAARenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeTAARenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getTAARenderingPipeline,getTextureUrl,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isClusteredLightContainer,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isParticleSystem,isPointLight,isScene,isSoundNode,isSpotLight,isSprite,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,normalizeAtlasJson,onKeyboardEvent,onPointerEvent,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseKeyFrameAnimations,parseMotionBlurPostProcess,parseRagdollConfiguration,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseTAARenderingPipeline,parseVLSPostProcess,particleSystemFromScene,playSpriteAnimationFromName,registerScriptAssetParser,saveRenderingConfigurationForCamera,sceneAsset,scriptAssetsCache,scriptAssetsParsers,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeTAARenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setTAARenderingPipelineRef,setVLSPostProcessRef,soundFromScene,spriteFromSpriteManager,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,taaRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
1
+ var Se=Object.defineProperty;var Xr=Object.getOwnPropertyDescriptor;var en=Object.getOwnPropertyNames;var tn=Object.prototype.hasOwnProperty;var i=(e,r)=>Se(e,"name",{value:r,configurable:!0});var rn=(e,r)=>{for(var t in r)Se(e,t,{get:r[t],enumerable:!0})},nn=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of en(r))!tn.call(e,o)&&o!==t&&Se(e,o,{get:()=>r[o],enumerable:!(n=Xr(r,o))||n.enumerable});return e};var on=e=>nn(Se({},"__esModule",{value:!0}),e);var mo={};rn(mo,{AdvancedAssetContainer:()=>pe,AdvancedAssetContainerInstantiatedEntries:()=>ce,Cinematic:()=>fe,Database:()=>ge,NodeParticleSystemSet:()=>Qr.NodeParticleSystemSet,_applyScriptsForObject:()=>w,_preloadScriptsAssets:()=>mt,_registerScriptInstance:()=>dt,_removeRegisteredScriptInstance:()=>xe,animationFromSprite:()=>no,animationGroupFromScene:()=>Bn,applyMeshesLODQuality:()=>_e,applyRenderingConfigurationForCamera:()=>nt,applyScriptOnObject:()=>On,applyShadowsQuality:()=>gn,applyTexturesQuality:()=>Mn,componentFromScene:()=>Ln,configureEngineToUseCompressedTextures:()=>Dn,configureMeshDistanceOrScreenCoverage:()=>Fe,configureShadowMapRefreshRate:()=>Ae,configureShadowMapRenderListPredicate:()=>Le,copyAndParseRagdollConfiguration:()=>st,createAndOpenDatabase:()=>po,createDefaultRenderingPipeline:()=>jt,createMotionBlurPostProcess:()=>Gt,createSSAO2RenderingPipeline:()=>Vt,createSSRRenderingPipeline:()=>Rt,createTAARenderingPipeline:()=>_t,createVLSPostProcess:()=>wt,defaultPipelineCameraConfigurations:()=>U,disposeDefaultRenderingPipeline:()=>et,disposeMotionBlurPostProcess:()=>qe,disposeSSAO2RenderingPipeline:()=>Ye,disposeSSRRenderingPipeline:()=>Ke,disposeTAARenderingPipeline:()=>$e,disposeVLSPostProcess:()=>Ve,forceCompileAllSceneMaterials:()=>Fn,generateCinematicAnimationGroup:()=>lo,getAllScriptsByClassForObject:()=>Z,getAnimationTypeForObject:()=>ue,getDefaultRenderingPipeline:()=>se,getFromIndexDB:()=>de,getMotionBlurPostProcess:()=>He,getPowerOfTwoUntil:()=>M,getSSAO2RenderingPipeline:()=>xn,getSSRRenderingPipeline:()=>Sn,getScriptByClassForObject:()=>ft,getTAARenderingPipeline:()=>Pn,getTextureUrl:()=>Ie,getVLSPostProcess:()=>yn,guiFromAsset:()=>Kn,isAbstractMesh:()=>K,isAnyParticleSystem:()=>Ne,isArcRotateCamera:()=>cn,isBone:()=>sn,isCamera:()=>be,isCinematicGroup:()=>so,isCinematicKey:()=>vt,isCinematicKeyCut:()=>ee,isCinematicKeyEvent:()=>io,isCinematicSound:()=>ao,isClusteredLightContainer:()=>Pe,isDirectionalLight:()=>mn,isFreeCamera:()=>ln,isGPUParticleSystem:()=>dn,isGroundMesh:()=>an,isHemisphericLight:()=>fn,isInstancedMesh:()=>ne,isLight:()=>It,isMesh:()=>D,isNode:()=>z,isParticleSystem:()=>we,isPointLight:()=>pn,isScene:()=>Me,isSoundNode:()=>ie,isSpotLight:()=>un,isSprite:()=>Re,isTexture:()=>oe,isTransformNode:()=>_,loadMaterialFromFile:()=>Rn,loadScene:()=>Nn,motionBlurPostProcessCameraConfigurations:()=>W,nodeFromDescendants:()=>Vn,nodeFromScene:()=>_n,normalizeAtlasJson:()=>yt,onKeyboardEvent:()=>to,onPointerEvent:()=>eo,openIndexDB:()=>Ct,parseCinematic:()=>oo,parseCinematicKeyValue:()=>R,parseDefaultRenderingPipeline:()=>rt,parseKeyFrameAnimations:()=>At,parseMotionBlurPostProcess:()=>Ze,parseRagdollConfiguration:()=>qt,parseSSAO2RenderingPipeline:()=>Ue,parseSSRRenderingPipeline:()=>ze,parseTAARenderingPipeline:()=>Qe,parseVLSPostProcess:()=>Ge,particleSystemFromScene:()=>zn,playSpriteAnimationFromName:()=>wn,putInIndexDB:()=>G,registerScriptAssetParser:()=>Tn,saveRenderingConfigurationForCamera:()=>En,sceneAsset:()=>Gn,scriptAssetsCache:()=>O,scriptAssetsParsers:()=>me,scriptsDictionary:()=>N,serializeDefaultRenderingPipeline:()=>tt,serializeMotionBlurPostProcess:()=>Je,serializeSSAO2RenderingPipeline:()=>We,serializeSSRRenderingPipeline:()=>ke,serializeTAARenderingPipeline:()=>je,serializeVLSPostProcess:()=>Be,setDefaultRenderingPipelineRef:()=>In,setMotionBlurPostProcessRef:()=>Cn,setSSAO2RenderingPipelineRef:()=>vn,setSSRRenderingPipelineRef:()=>bn,setTAARenderingPipelineRef:()=>An,setVLSPostProcessRef:()=>hn,setupOfflineProvider:()=>co,soundFromScene:()=>kn,spriteFromSpriteManager:()=>ro,ssaoRenderingPipelineCameraConfigurations:()=>Y,ssrRenderingPipelineCameraConfigurations:()=>j,taaRenderingPipelineCameraConfigurations:()=>Q,visibleAsAsset:()=>Xn,visibleAsBoolean:()=>$n,visibleAsColor3:()=>Un,visibleAsColor4:()=>Hn,visibleAsEntity:()=>qn,visibleAsKeyMap:()=>Zn,visibleAsNumber:()=>Qn,visibleAsString:()=>jn,visibleAsTexture:()=>Jn,visibleAsVector2:()=>Yn,visibleAsVector3:()=>Wn,vlsPostProcessCameraConfigurations:()=>$});module.exports=on(mo);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 ne(e){return e.getClassName?.()==="InstancedMesh"}i(ne,"isInstancedMesh");function sn(e){return e.getClassName?.()==="Bone"}i(sn,"isBone");function an(e){return e.getClassName?.()==="GroundMesh"}i(an,"isGroundMesh");function _(e){return e.getClassName?.()==="TransformNode"}i(_,"isTransformNode");function oe(e){return e?.getClassName?.()==="Texture"}i(oe,"isTexture");function be(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(be,"isCamera");function ln(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(ln,"isFreeCamera");function cn(e){return e.getClassName?.()==="ArcRotateCamera"}i(cn,"isArcRotateCamera");function pn(e){return e.getClassName?.()==="PointLight"}i(pn,"isPointLight");function mn(e){return e.getClassName?.()==="DirectionalLight"}i(mn,"isDirectionalLight");function un(e){return e.getClassName?.()==="SpotLight"}i(un,"isSpotLight");function fn(e){return e.getClassName?.()==="HemisphericLight"}i(fn,"isHemisphericLight");function It(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(It,"isLight");function Pe(e){return e.getClassName?.()==="ClusteredLightContainer"}i(Pe,"isClusteredLightContainer");function z(e){return K(e)||_(e)||It(e)||be(e)}i(z,"isNode");function Me(e){return e.getClassName?.()==="Scene"}i(Me,"isScene");function we(e){return e.getClassName?.()==="ParticleSystem"}i(we,"isParticleSystem");function dn(e){return e.getClassName?.()==="GPUParticleSystem"}i(dn,"isGPUParticleSystem");function Ne(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(Ne,"isAnyParticleSystem");function Re(e){return e.getClassName?.()==="Sprite"}i(Re,"isSprite");function ie(e){return _(e)&&e.isSoundNode===!0}i(ie,"isSoundNode");function Fe(e){e.meshes.forEach(r=>{D(r)&&r.getLODLevels().forEach(t=>{t.mesh&&(t.mesh.originalDistanceOrScreenCoverage=t.distanceOrScreenCoverage)})})}i(Fe,"configureMeshDistanceOrScreenCoverage");function _e(e,r){r.meshes.forEach(t=>{D(t)&&t.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(_e,"applyMeshesLODQuality");function M(e){let r=1;for(;r<=e;)r<<=1;return r>>1}i(M,"getPowerOfTwoUntil");var Et=require("babylonjs"),Tt=require("babylonjs");function Le(e){e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=n=>Et.Vector3.Distance(n.getAbsolutePosition(),r.getAbsolutePosition())<=r.range)})}i(Le,"configureShadowMapRenderListPredicate");async function Ae(e){e.executeWhenReady(()=>{e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=r.metadata?.refreshRate??Tt.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(Ae,"configureShadowMapRefreshRate");function gn(e,r){r.lights.forEach(t=>{let n=t.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)}}),Ae(r)}i(gn,"applyShadowsQuality");var Ot=require("babylonjs"),Dt=require("babylonjs"),Mt=require("babylonjs"),C=null,$=new Map;function yn(){return C}i(yn,"getVLSPostProcess");function hn(e){C=e}i(hn,"setVLSPostProcessRef");function Ve(e){C&&e.activeCamera&&(C.dispose(e.activeCamera),C=null)}i(Ve,"disposeVLSPostProcess");function wt(e,r){return r??=e.meshes.find(t=>D(t)),C=new Mt.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,r,100,Dt.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),C}i(wt,"createVLSPostProcess");function Be(){return C?{meshId:C.mesh?.id,exposure:C.exposure,decay:C.decay,weight:C.weight,density:C.density,invert:C.invert,useCustomMeshPosition:C.useCustomMeshPosition,customMeshPosition:C.customMeshPosition.asArray()}:null}i(Be,"serializeVLSPostProcess");function Ge(e,r){let t=null;if(r.meshId){let o=e.getMeshById(r.meshId);o&&D(o)&&(t=o)}let n=wt(e,t);return n.exposure=r.exposure,n.decay=r.decay,n.weight=r.weight,n.density=r.density,n.invert=r.invert,n.useCustomMeshPosition=r.useCustomMeshPosition,n.customMeshPosition.copyFrom(Ot.Vector3.FromArray(r.customMeshPosition)),n}i(Ge,"parseVLSPostProcess");var Nt=require("babylonjs"),S=null,j=new Map;function Sn(){return S}i(Sn,"getSSRRenderingPipeline");function bn(e){S=e}i(bn,"setSSRRenderingPipelineRef");function Ke(){S&&(S.dispose(),S=null)}i(Ke,"disposeSSRRenderingPipeline");function Rt(e,r){return S=new Nt.SSRRenderingPipeline("SSRRenderingPipeline",e,[r]),S.samples=4,S}i(Rt,"createSSRRenderingPipeline");function ke(){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(ke,"serializeSSRRenderingPipeline");function ze(e,r,t){if(S)return S;let n=Rt(e,r);return n.samples=t.samples,n.step=t.step,n.thickness=t.thickness,n.strength=t.strength,n.reflectionSpecularFalloffExponent=t.reflectionSpecularFalloffExponent,n.maxSteps=t.maxSteps,n.maxDistance=t.maxDistance,n.roughnessFactor=t.roughnessFactor,n.reflectivityThreshold=t.reflectivityThreshold,n.blurDispersionStrength=t.blurDispersionStrehgth,n.clipToFrustum=t.clipToFrustum,n.enableSmoothReflections=t.enableSmoothReflections,n.enableAutomaticThicknessComputation=t.enableAutomaticThicknessComputation,n.attenuateFacingCamera=t.attenuateFacingCamera,n.attenuateScreenBorders=t.attenuateScreenBorders,n.attenuateIntersectionDistance=t.attenuateIntersectionDistance,n.attenuateBackfaceReflection=t.attenuateBackfaceReflection,n.blurDownsample=t.blurDownsample,n.selfCollisionNumSkip=t.selfCollisionNumSkip,n.ssrDownsample=t.ssrDownsample,n.backfaceDepthTextureDownsample=t.backfaceDepthTextureDownsample,n}i(ze,"parseSSRRenderingPipeline");var Ft=require("babylonjs"),I=null,Q=new Map;function Pn(){return I}i(Pn,"getTAARenderingPipeline");function An(e){I=e}i(An,"setTAARenderingPipelineRef");function $e(){I&&(I.dispose(),I=null)}i($e,"disposeTAARenderingPipeline");function _t(e,r){return I=new Ft.TAARenderingPipeline("TAARenderingPipeline",e,[r]),I.samples=4,I}i(_t,"createTAARenderingPipeline");function je(){return I?{factor:I.factor,samples:I.samples,clampHistory:I.clampHistory,reprojectHistory:I.reprojectHistory,disableOnCameraMove:I.disableOnCameraMove}:null}i(je,"serializeTAARenderingPipeline");function Qe(e,r,t){if(I)return I;let n=_t(e,r);return n.factor=t.factor,n.samples=t.samples,n.clampHistory=t.clampHistory,n.reprojectHistory=t.reprojectHistory,n.disableOnCameraMove=t.disableOnCameraMove,n}i(Qe,"parseTAARenderingPipeline");var Lt=require("babylonjs"),b=null,Y=new Map;function xn(){return b}i(xn,"getSSAO2RenderingPipeline");function vn(e){b=e}i(vn,"setSSAO2RenderingPipelineRef");function Ye(){b&&(b.dispose(),b=null)}i(Ye,"disposeSSAO2RenderingPipeline");function Vt(e,r){return b=new Lt.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[r]),b.samples=4,b}i(Vt,"createSSAO2RenderingPipeline");function We(){return b?{radius:b.radius,totalStrength:b.totalStrength,samples:b.samples,maxZ:b.maxZ,minZAspect:b.minZAspect,epsilon:b.epsilon,textureSamples:b.textureSamples,bypassBlur:b.bypassBlur,bilateralSamples:b.bilateralSamples,bilateralSoften:b.bilateralSoften,bilateralTolerance:b.bilateralTolerance,expensiveBlur:b.expensiveBlur}:null}i(We,"serializeSSAO2RenderingPipeline");function Ue(e,r,t){if(b)return b;let n=Vt(e,r);return n.radius=t.radius,n.totalStrength=t.totalStrength,n.samples=t.samples,n.maxZ=t.maxZ,n.minZAspect=t.minZAspect,n.epsilon=t.epsilon,n.textureSamples=t.textureSamples,n.bypassBlur=t.bypassBlur,n.bilateralSamples=t.bilateralSamples,n.bilateralSoften=t.bilateralSoften,n.bilateralTolerance=t.bilateralTolerance,n.expensiveBlur=t.expensiveBlur,n}i(Ue,"parseSSAO2RenderingPipeline");var Bt=require("babylonjs"),E=null,W=new Map;function He(){return E}i(He,"getMotionBlurPostProcess");function Cn(e){E=e}i(Cn,"setMotionBlurPostProcessRef");function qe(){E&&(E.dispose(),E=null)}i(qe,"disposeMotionBlurPostProcess");function Gt(e,r){return E=new Bt.MotionBlurPostProcess("MotionBlurPostProcess",e,1,r),E.motionStrength=1,E.isObjectBased=!0,E}i(Gt,"createMotionBlurPostProcess");function Je(){return E?{isObjectBased:E.isObjectBased,motionStrength:E.motionStrength,motionBlurSamples:E.motionBlurSamples}:null}i(Je,"serializeMotionBlurPostProcess");function Ze(e,r,t){if(E)return E;let n=Gt(e,r);return n.isObjectBased=t.isObjectBased,n.motionStrength=t.motionStrength,n.motionBlurSamples=t.motionBlurSamples,n}i(Ze,"parseMotionBlurPostProcess");var Kt=require("babylonjs"),Xe=require("babylonjs"),kt=require("babylonjs"),zt=require("babylonjs"),$t=require("babylonjs"),u=null,U=new Map;function se(){return u}i(se,"getDefaultRenderingPipeline");function In(e){u=e}i(In,"setDefaultRenderingPipelineRef");function et(){u&&(u.dispose(),u=null)}i(et,"disposeDefaultRenderingPipeline");function jt(e,r){return u=new $t.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[r]),u.samples=4,u.depthOfField.lensSize=512,u.depthOfField.fStop=.25,u.depthOfField.focusDistance=55e3,u}i(jt,"createDefaultRenderingPipeline");function tt(){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(tt,"serializeDefaultRenderingPipeline");function rt(e,r,t,n){if(u)return u;let o=jt(e,r);if(o.samples=t.samples,o.fxaaEnabled=t.fxaaEnabled,o.imageProcessingEnabled=t.imageProcessingEnabled,o.imageProcessing){if(o.imageProcessing.exposure=t.exposure,o.imageProcessing.contrast=t.contrast,o.imageProcessing.fromLinearSpace=t.fromLinearSpace,o.imageProcessing.toneMappingEnabled=t.toneMappingEnabled,o.imageProcessing.toneMappingType=t.toneMappingType,o.imageProcessing.ditheringEnabled=t.ditheringEnabled,o.imageProcessing.ditheringIntensity=t.ditheringIntensity,o.imageProcessing.vignetteEnabled=t.vignetteEnabled??!1,o.imageProcessing.vignetteColor=Kt.Color4.FromArray(t.vignetteColor??[0,0,0]),o.imageProcessing.vignetteWeight=t.vignetteWeight??.3,o.imageProcessing.colorGradingEnabled=t.colorGradingEnabled??!1,o.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=t.colorGradingWithGreenDepth??!0,t.colorGradingTexture){let s=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let a=n+t.colorGradingTexture.name;s=new zt.ColorGradingTexture(a,e),s.level=t.colorGradingTexture.level}else{let a=kt.Texture.Parse(t.colorGradingTexture,e,n);oe(a)&&(s=a)}o.imageProcessing.colorGradingTexture=s}o.imageProcessing.colorCurvesEnabled=t.colorCurvesEnabled??!1,o.imageProcessing.colorCurves&&(o.imageProcessing.colorCurves.globalHue=t.globalHue??30,o.imageProcessing.colorCurves.globalDensity=t.globalDensity??0,o.imageProcessing.colorCurves.globalExposure=t.globalExposure??0,o.imageProcessing.colorCurves.globalSaturation=t.globalSaturation??0,o.imageProcessing.colorCurves.highlightsHue=t.highlightsHue??30,o.imageProcessing.colorCurves.highlightsDensity=t.highlightsDensity??0,o.imageProcessing.colorCurves.highlightsExposure=t.highlightsExposure??0,o.imageProcessing.colorCurves.highlightsSaturation=t.highlightsSaturation??0,o.imageProcessing.colorCurves.midtonesHue=t.midtonesHue??30,o.imageProcessing.colorCurves.midtonesDensity=t.midtonesDensity??0,o.imageProcessing.colorCurves.midtonesExposure=t.midtonesExposure??0,o.imageProcessing.colorCurves.midtonesSaturation=t.midtonesSaturation??0,o.imageProcessing.colorCurves.shadowsHue=t.shadowsHue??30,o.imageProcessing.colorCurves.shadowsDensity=t.shadowsDensity??0,o.imageProcessing.colorCurves.shadowsExposure=t.shadowsExposure??0,o.imageProcessing.colorCurves.shadowsSaturation=t.shadowsSaturation??0)}return o.bloomEnabled=t.bloomEnabled,o.bloomThreshold=t.bloomThreshold,o.bloomWeight=t.bloomWeight,o.bloomScale=t.bloomScale,o.bloomKernel=t.bloomKernel,o.sharpenEnabled=t.sharpenEnabled,o.sharpen.edgeAmount=t.sharpenEdgeAmount,o.sharpen.colorAmount=t.sharpenColorAmount,o.grainEnabled=t.grainEnabled,o.grain.intensity=t.grainIntensity,o.grain.animated=t.grainAnimated,o.depthOfFieldEnabled=t.depthOfFieldEnabled,o.depthOfFieldBlurLevel=t.depthOfFieldBlurLevel,o.depthOfField.lensSize=t.lensSize,o.depthOfField.fStop=t.fStop,o.depthOfField.focusDistance=t.focusDistance,o.depthOfField.focalLength=t.focalLength,o.chromaticAberrationEnabled=t.chromaticAberrationEnabled??!1,o.chromaticAberration.aberrationAmount=t.aberrationAmount??10,o.chromaticAberration.radialIntensity=t.radialIntensity??1,o.chromaticAberration.direction=Xe.Vector2.FromArray(t.direction??[0,0]),o.chromaticAberration.centerPosition=Xe.Vector2.FromArray(t.centerPosition??[0,0]),o.glowLayerEnabled=t.glowLayerEnabled??!1,o.glowLayer&&(o.glowLayer.intensity=t.glowLayerIntensity??1,o.glowLayer.blurKernelSize=t.glowLayerBlurKernelSize??32),o}i(rt,"parseDefaultRenderingPipeline");function En(e){Y.set(e,We()),$.set(e,Be()),j.set(e,ke()),W.set(e,Je()),U.set(e,tt()),Q.set(e,je())}i(En,"saveRenderingConfigurationForCamera");function nt(e,r,t){Ye(),Ve(e.getScene()),Ke(),qe(),et(),$e();let n=Y.get(e);n&&!t?.ssao2Disabled&&Ue(e.getScene(),e,n);let o=$.get(e);o&&!t?.vlsDisabled&&Ge(e.getScene(),o);let s=j.get(e);s&&!t?.ssrDisabled&&ze(e.getScene(),e,s);let a=W.get(e);a&&!t?.motionBlurDisabled&&Ze(e.getScene(),e,a);let p=U.get(e);p&&!t?.defaultPipelineDisabled&&rt(e.getScene(),e,p,r);let l=Q.get(e);l&&!t?.taaDisabled&&Qe(e.getScene(),e,l)}i(nt,"applyRenderingConfigurationForCamera");var ae=require("babylonjs"),Qt=require("babylonjs");function Yt(e){let r=e.metadata?.physicsAggregate;if(!r)return;let t;D(e)?t=e:ne(e)&&(t=e.sourceMesh);let n=new Qt.PhysicsAggregate(e,r.shape.type,{mesh:t,mass:r.massProperties.mass});n.body.setMassProperties({mass:r.massProperties.mass,inertia:r.massProperties.inertia?ae.Vector3.FromArray(r.massProperties.inertia):void 0,centerOfMass:r.massProperties.centerOfMass?ae.Vector3.FromArray(r.massProperties.centerOfMass):void 0,inertiaOrientation:r.massProperties.inertiaOrientation?ae.Quaternion.FromArray(r.massProperties.inertiaOrientation):void 0}),n.shape.density=r.shape.density,n.body.setMotionType(r.body.motionType),n.shape.material=r.material,e.physicsAggregate=n,e.metadata.physicsAggregate=void 0}i(Yt,"configurePhysicsAggregate");function Wt(e,r){(Array.isArray(r)?r:[]).forEach(n=>{let o=e.getCameraById(n.cameraId);o&&(n.ssao2RenderingPipeline&&Y.set(o,n.ssao2RenderingPipeline),n.vlsPostProcess&&$.set(o,n.vlsPostProcess),n.ssrRenderingPipeline&&j.set(o,n.ssrRenderingPipeline),n.motionBlurPostProcess&&W.set(o,n.motionBlurPostProcess),n.defaultRenderingPipeline&&U.set(o,n.defaultRenderingPipeline),n.taaRenderingPipeline&&Q.set(o,n.taaRenderingPipeline))})}i(Wt,"applyRenderingConfigurations");var Ut=require("babylonjs");function le(e,r,t){return new Promise((n,o)=>{let s=new Ut.WebRequest;s.open("GET",e),s.responseType=r,s.send(),s.addEventListener("progress",a=>{t?.({total:a.total,loaded:a.loaded})}),s.addEventListener("load",()=>{n(r==="text"?s.responseText:s.response)}),s.addEventListener("error",a=>o(a))})}i(le,"loadFile");async function B(e,r){let t=await le(e,"text",r);return JSON.parse(t)}i(B,"loadJsonFile");function ot(e,r){let t=r.getNodeByName(e);if(t)return t;let n=r.lights.filter(o=>Pe(o));for(let o of n){let s=o.lights.find(a=>a.name===e);if(s)return s}return null}i(ot,"getNodeByName");function H(e,r){let t=r.getNodeById(e);if(t)return t;let n=r.lights.filter(o=>Pe(o));for(let o of n){let s=o.lights.find(a=>a.id===e);if(s)return s}return null}i(H,"getNodeById");var k=require("babylonjs"),Ht=require("babylonjs");function it(e){let r=Ht.Vector3.FromArray(e);return r.equals(k.Axis.X)?k.Axis.X:r.equals(k.Axis.Y)?k.Axis.Y:r.equals(k.Axis.Z)?k.Axis.Z:r}i(it,"parseAxis");function qt(e){return e.runtimeConfiguration.forEach(r=>{r.rotationAxis&&(r.rotationAxis=it(r.rotationAxis)),r.boneOffsetAxis&&(r.boneOffsetAxis=it(r.boneOffsetAxis))}),e}i(qt,"parseRagdollConfiguration");function st(e){let r={rootNodeId:e.rootNodeId,skeletonName:e.skeletonName,scalingFactor:e.scalingFactor,runtimeConfiguration:e.runtimeConfiguration.map(t=>({name:t.name,bones:t.bones,width:t.width,depth:t.depth,height:t.height,size:t.size,joint:t.joint,min:t.min,max:t.max,boxOffset:t.boxOffset,rotationAxis:t.rotationAxis?.slice(),boneOffsetAxis:t.boneOffsetAxis?.slice()}))};return qt(r)}i(st,"copyAndParseRagdollConfiguration");function at(e){return e&&JSON.parse(JSON.stringify(e))}i(at,"cloneJSObject");var ct=require("babylonjs"),Xt=require("babylonjs"),q=require("babylonjs"),Jt=!1,lt=new Map;function er(e,r){!e.soundRelativePath||!e.sound||(0,q.CreateSoundAsync)(e.soundRelativePath,e.sound.buffer,{spatialAutoUpdate:!0}).then(t=>{if(r.isDisposed())return t.dispose();t.volume=e.volume,t._isSpatial=e.sound._isSpatial,t._isSpatial&&(t.spatial.attach(r),t.spatial.maxDistance=e.sound.spatial.maxDistance,t.spatial.panningModel=e.sound.spatial.panningModel,t.spatial.distanceModel=e.sound.spatial.distanceModel),r.sound=t,r.isSoundNode=!0,r.soundRelativePath=e.soundRelativePath,r.onDisposeObservable.addOnce(()=>{t.dispose()}),Zt(r,t)})}i(er,"configureSourceNodeFrom");function Zt(e,r){Object.defineProperty(e,"volume",{get:i(()=>r.volume,"get"),set:i(t=>{r.volume=t},"set")}),Object.defineProperty(e,"playbackRate",{get:i(()=>r.playbackRate,"get"),set:i(t=>{r.playbackRate=t},"set")}),e.isPaused=()=>r.state===ct.SoundState.Paused,e.isPlaying=()=>r.state===ct.SoundState.Started,e.pause=()=>r.pause(),e.resume=()=>r.resume(),e.stop=t=>r.stop(t),e.play=t=>r.play(t),e.setVolume=(t,n)=>r.setVolume(t,n),e.attachTo=(t,n,o)=>r.spatial.attach(t,n,o)}i(Zt,"configureSoundNodePrototype");function tr(){Jt||(Jt=!0,(0,Xt.AddParser)("SoundNode",(e,r,t,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSoundNode)return;let s=t.transformNodes?.find(a=>a.id===o.id);if(s&&o.soundRelativePath){let a=`${n}${o.soundRelativePath}`;if(r.addPendingData(a),!lt.has(a)){let l=new Promise(async(c,m)=>{if(!r.offlineProvider)return(0,q.CreateSoundBufferAsync)(a).then(d=>c(d)).catch(d=>m(d));r.offlineProvider.loadFile(a,d=>{(0,q.CreateSoundBufferAsync)(d).then(f=>c(f)).catch(f=>m(f))},void 0,()=>{m(null)},!0)});lt.set(a,l)}lt.get(a).then(l=>{(0,q.CreateSoundAsync)(o.soundRelativePath,l,{spatialAutoUpdate:!0}).then(c=>{if(r.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.onDisposeObservable.addOnce(()=>{c.dispose()}),Zt(s,c)})})}})}))}i(tr,"registerAudioParser");function J(e){let r=new Set;e.transformNodes.forEach(t=>{if(t.metadata?.isStaticGroup){let n=t.getDescendants(!1);n.push(t),n.forEach(o=>{if((K(o)||_(o)&&!o.isWorldMatrixFrozen)&&o.freezeWorldMatrix(),K(o)){let s=o.material;s&&!s.isFrozen&&!r.has(s)&&(r.add(s),s.onBindObservable.addOnce(()=>{s.freeze()}))}})}})}i(J,"configureTransformNodes");var ce=class{constructor(r,t){this.entries=r;this.namingId=t}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(r){let t=`${r}-${this.namingId}`;return this.entries.rootNodes.find(n=>n.name===t)??null}getNodeByName(r){let t=`${r}-${this.namingId}`;for(let n of this.entries.rootNodes){let o=this._recursivelyGetNodeByName(t,n);if(o)return o}return null}_recursivelyGetNodeByName(r,t){if(t.name===r)return t;for(let n of t.getDescendants(!0)){let o=this._recursivelyGetNodeByName(r,n);if(o)return o}return null}getScriptByClassByObjectName(r,t){let n=this.getNodeByName(r);if(n){let o=Z(n,t);if(o?.length===1)return o[0]}return null}};var pt=require("babylonjs"),pe=class{static{i(this,"AdvancedAssetContainer")}container;_rootUrl;_scriptsMap;_originalDescendants=[];_nodesMap=new Map;_animationGroupsMap=new Map;constructor(r,t,n){this.container=r,this._rootUrl=t,this._scriptsMap=n,r.populateRootNodes(),r.rootNodes.forEach(o=>{this._originalDescendants.push(o,...o.getDescendants(!1))}),r.animationGroups.forEach(o=>{this._animationGroupsMap.set(o.name,o)}),this._originalDescendants.forEach(o=>{this._nodesMap.set(o,{node:o,metadata:at(o.metadata)})})}removeDefault(){this.container.getNodes().forEach(r=>{N.get(r)?.forEach(n=>{xe(r,n)})}),this.container.removeAllFromScene()}getRootNodeByName(r){return this.container.rootNodes.find(t=>t.name===r)??null}getScriptByClassByObjectName(r,t){let n=this.container.getNodes();for(let o of n)if(o.name===r){let s=Z(o,t);if(s?.length===1)return s[0]}return null}instantiate(r){let t=pt.Tools.RandomId(),n=i(l=>l,"nameFunction"),o=this.container.instantiateModelsToScene(n,!1,{...r,predicate:i(l=>(l.name=`${l.name}@editor-tools@${t}_${l.id}`,r?.predicate?.(l)??!0),"predicate")}),s=new ce(o,t);[...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]}-${t}`});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]}-${t}`;let d=this._originalDescendants.find(f=>f.id===m);ie(d)&&_(l)&&er(d,l),l.id=pt.Tools.RandomId(),l.metadata=at(this._nodesMap.get(d).metadata),l.metadata??={},l.metadata.originalId=m,p.forEach(f=>{f.metadata.scripts?.forEach(g=>{Object.keys(g.values||{}).forEach(y=>{let P=g.values[y];if(P.type==="entity"){P.value===m&&(P.value=l.id),P.value===d.name&&(P.value=l.name);let v=this._animationGroupsMap.get(P.value);v&&(P.value=`${v.name}-${t}`)}})})})}),p.forEach(l=>{w(this.container.scene,l,this._scriptsMap,this._rootUrl)}),J(this.container.scene),s}};var rr=require("babylonjs"),nr=require("babylonjs");async function or(e,r,t){let o=e.split("/").pop().replace(".scene",".babylon"),s=await(0,nr.LoadAssetContainerAsync)(o,t,{rootUrl:r,pluginExtension:".babylon"});return rr.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(a=>D(a)&&a._checkDelayState()),s.addAllToScene(),J(t),s}i(or,"preloadSceneScriptAsset");async function ir(e,r){return B(`${r}${e}`)}i(ir,"preloadCommonScriptAsset");var O=new Map,me=new Map;function Tn(e,r){me.has(e)&&console.warn(`A parser for the extension '${e}' was already registered. It will be overwritten.`),me.set(e,r)}i(Tn,"registerScriptAssetParser");async function mt(e,r,t){[r,...r.transformNodes,...r.meshes,...r.lights,...r.cameras].filter(p=>p.metadata?.scripts?.length).map(p=>p.metadata.scripts).flat().forEach(p=>{if(t[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":O.set(l,new pe(await or(l,e,r),e,t));break;default:if(me.has(m)){let d=me.get(m);O.set(l,await d({key:l,rootUrl:e,scene:r}));break}else O.set(l,await ir(l,e));break}}catch(m){console.error(m)}c()}))}),await Promise.all(a),s}i(mt,"_preloadScriptsAssets");var sr=require("babylonjs"),ve=require("babylonjs"),ar=require("babylonjs"),Ce=require("babylonjs"),lr=require("babylonjs"),cr=require("babylonjs-gui");function ut(e,r,t,n,o){let s=n.constructor;if(!s)return;s._NodesFromScene?.forEach(l=>{n[l.propertyKey.toString()]=ot(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(d=>{let f=ft(d,l.componentConstructor);f&&c.push(f)}),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=r.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=ot(l.soundName,e);c&&ie(c)&&(n[l.propertyKey.toString()]=c??null)}),(s._GuiFromAsset??[]).map(async l=>{let c=`${o}assets/${l.pathInAssets}`;try{let m=await B(c),d=cr.AdvancedDynamicTexture.CreateFullscreenUI(m.name,!0,e);d.parseSerializedObject(m.content,!1),n[l.propertyKey.toString()]=d,l.onGuiCreated?.(n,d)}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===r:m);n[l.propertyKey.toString()]=c}),(s._VisibleInInspector??[]).forEach(l=>{let c=l.propertyKey.toString(),m=t.values;if(!m)throw new Error(`No values found for script with key "${t.key}".`);if(m.hasOwnProperty(c)&&m[c].hasOwnProperty("value")){let d=m[c].value;switch(l.configuration.type){case"number":case"boolean":case"keymap":case"string":n[c]=d;break;case"vector2":n[c]=Ce.Vector2.FromArray(d);break;case"vector3":n[c]=Ce.Vector3.FromArray(d);break;case"color3":n[c]=ve.Color3.FromArray(d);break;case"color4":n[c]=ve.Color4.FromArray(d);break;case"entity":switch(l.configuration.entityType){case"node":case"sound":n[c]=H(d,e)??null;break;case"animationGroup":n[c]=e.getAnimationGroupByName(d)??null;break;case"particleSystem":n[c]=e.particleSystems?.find(g=>g.id===d)??null;break}break;case"texture":d&&(n[c]=ar.Texture.Parse(d,e,o));break;case"asset":if(d){let g=l.configuration.assetType,h=O.get(d);switch(g){case"json":case"gui":case"scene":case"navmesh":case"cinematic":n[c]=h;break;case"ragdoll":n[c]=st(h);break;case"nodeParticleSystemSet":let y=lr.NodeParticleSystemSet.Parse(h);n[c]=y;break;case"material":n[c]=sr.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(r))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")&&!z(r))throw new Error('@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.');a=e.onPointerObservable.add(m=>{let d=null;s._PointerEvents.forEach(f=>{if(!f.eventTypes.includes(m.type))return;let g=f.propertyKey.toString();if(f.options.mode==="global")return n[g]?.(m);d=m.pickInfo,d||(d=e.pick(e.pointerX,e.pointerY,y=>y.isVisible&&y.isPickable&&y.isEnabled(!0)&&!y._masterMesh,!1));let h=d.pickedMesh;if(h&&(f.options.mode==="attachedMeshOnly"&&h===r||f.options.mode==="includeDescendants"&&z(r)&&[r,...r.getDescendants(!1)].find(v=>v===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=r;if(!_(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(d=>d.name===c.spriteName)||null;n[c.propertyKey.toString()]=m})}if(s._AnimationsFromSprite?.length){if(!Re(r))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let l=r.metadata?.spriteAnimations;if(!l?.length)return console.error(`Sprite "${r.name}" has no sprite animations assigned.`);s._AnimationsFromSprite.forEach(c=>{let m=l.find(d=>d.name===c.animationName);m?n[c.propertyKey.toString()]=m??null:console.warn(`Sprite animation named "${c.animationName}" not found on sprite "${r.name}".`)})}return s._SceneAssets?.forEach(l=>{n[l.propertyKey.toString()]=O.get(l.sceneName)}),{observers:{pointerObserver:a,keyboardObserver:p}}}i(ut,"applyDecorators");function w(e,r,t,n){r.metadata?.scripts&&(r.metadata.scripts?.forEach(o=>{if(!o.enabled)return;let s=t[o.key];if(!s)return;let a=s,p={};if(s.default){a=new s.default(r);let l=ut(e,r,o,a,n);Object.assign(p,l?.observers??{})}a.onStart&&(p.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>a.onStart(r))),a.onUpdate&&(p.onUpdateObserver=e.onBeforeRenderObservable.add(()=>a.onUpdate(r))),dt(r,a,o.key,p)}),r.metadata.scripts=void 0)}i(w,"_applyScriptsForObject");function On(e,r,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let n=new r(e),o={};return ut(t,e,{values:{}},n,""),n.onStart&&(o.onStartObserver=t.onBeforeRenderObservable.addOnce(()=>n.onStart())),n.onUpdate&&t.onBeforeRenderObservable.add(()=>n.onUpdate()),dt(e,n,"runtime",o),n}i(On,"applyScriptOnObject");var N=new Map;function dt(e,r,t,n){let o={key:t,observers:n,instance:r};N.has(e)?N.get(e).push(o):N.set(e,[o]),(z(e)||Ne(e)||Me(e))&&e.onDisposeObservable.addOnce((()=>{N.get(e)?.slice()?.forEach(a=>{xe(e,a)}),N.delete(e)}))}i(dt,"_registerScriptInstance");function xe(e,r){r.observers.onStartObserver?.remove(),r.observers.onUpdateObserver?.remove(),r.observers.pointerObserver?.remove(),r.observers.keyboardObserver?.remove();try{r.instance.onStop?.(e)}catch(o){console.error(`Failed to call onStop for script ${r.key} on object ${e}`,o)}let t=N.get(e),n=t?.indexOf(r)??-1;n!==-1&&t?.splice(n,1)}i(xe,"_removeRegisteredScriptInstance");function Z(e,r){return N.get(e)?.filter(o=>o.instance.constructor===r)?.map(o=>o.instance)??null}i(Z,"getAllScriptsByClassForObject");function ft(e,r){return Z(e,r)?.[0]??null}i(ft,"getScriptByClassForObject");function Dn(e){e.setCompressedTextureExclusions([".env",".hdr",".dds"]),e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(Dn,"configureEngineToUseCompressedTextures");function Mn(e,r,t){r.loadingTexturesQuality!==e&&(r.loadingTexturesQuality=e,r.textures.forEach(n=>{if(!oe(n)||!n.url)return;let o=Ie(n,r);!o||n.url.includes(o)||n.updateURL(t+o)}))}i(Mn,"applyTexturesQuality");function Ie(e,r){if(r.loadingTexturesQuality==="high"||!e.metadata?.baseSize)return e.name;let t=e.metadata.baseSize.width,n=e.metadata.baseSize.height,o=t===M(t)||n===M(n),s="";switch(r.loadingTexturesQuality){case"medium":let f=t*.66>>0,g=n*.66>>0;o&&(f=M(f),g=M(g)),s=`_${f}_${g}`;break;case"low":case"very-low":let h=t*.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(),d=`${l.replace(`.${c}`,"")}${s}.${c}`;return p.push(d),p.join("/")}i(Ie,"getTextureUrl");var gt=require("babylonjs"),pr=!1;function mr(){if(pr)return;pr=!0;let e=gt.SerializationHelper._TextureParser;gt.SerializationHelper._TextureParser=(r,t,n)=>{let o=Ie(r,t);if(!o)return e(r,t,n);let s=r.name;r.name=o;let a=e(r,t,n);return a&&(a.name=s),a}}i(mr,"registerTextureParser");var fr=require("babylonjs"),Ee=require("babylonjs"),ur=!1;function dr(){if(ur)return;ur=!0;let e=(0,Ee.GetParser)(fr.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,Ee.AddParser)("ShadowGeneratorEditorPlugin",(r,t,n,o)=>{let s=new Map;r.shadowGenerators?.forEach(a=>{if(s.set(a.id,a.mapSize),t.loadingShadowsQuality!=="high"){switch(t.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?.(r,t,n,o),t.lights.forEach(a=>{let p=a.getShadowGenerator();if(p?.getShadowMap()){let c=p.id,m=s.get(c);m&&(p.originalMapSize=m)}})})}i(dr,"registerShadowGeneratorParser");var yr=require("babylonjs"),hr=require("babylonjs"),gr=!1;function Sr(){gr||(gr=!0,(0,hr.AddParser)("MorphTargetManagerEditorPlugin",(e,r,t,n)=>{e.morphTargetManagers.forEach(o=>{let a=t.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}`;r.addPendingData(m);let d=new yr.WebRequest;d.responseType="arraybuffer",d.open("GET",m),d.send(),l.push(new Promise(f=>{d.addEventListener("load",()=>{r.removePendingData(m),f(d.response)})}))}),Promise.all(l).then(c=>{for(let m=0,d=a.numTargets;m<d;++m){let f=a.getTarget(m),g=o.targets[m],h=c[m];if(g.positionsCount){let y=new Float32Array(h,g.positionsOffset,g.positionsCount);f._positions=y,f.setPositions(y)}if(g.normalsCount){let y=new Float32Array(h,g.normalsOffset,g.normalsCount);f._normals=y,f.setNormals(y)}if(g.tangentsCount){let y=new Float32Array(h,g.tangentsOffset,g.tangentsCount);f._tangents=y,f.setTangents(y)}if(g.uvsCount){let y=new Float32Array(h,g.uvsOffset,g.uvsCount);f._uvs=y,f.setUVs(y)}if(g.uv2sCount){let y=new Float32Array(h,g.uv2sOffset,g.uv2sCount);f._uv2s=y,f.setUV2s(y)}}for(let m=0,d=a.numTargets;m<d;++m)a.getTarget(m)._onDataLayoutChanged.notifyObservers()})})}))}i(Sr,"registerMorphTargetManagerParser");var br=require("babylonjs");function Pr(e,r){let t=e.metadata?.clusteredLight;return t&&(t.lights.length>0&&(r??=new br.ClusteredLightContainer("Clustered Light Container",[],e),r.horizontalTiles=t.horizontalTiles,r.verticalTiles=t.verticalTiles,r.depthSlices=t.depthSlices,r.maxRange=t.maxRange),t.lights.forEach(n=>{let o=e.getLightById(n);o&&r?.addLight(o)})),r}i(Pr,"configureLights");function yt(e){if(!Array.isArray(e.frames)){let r=[];for(let t of Object.keys(e.frames))r.push({filename:t,...e.frames[t]});e.frames=r}}i(yt,"normalizeAtlasJson");function wn(e,r,t){let o=(e.metadata?.spriteAnimations??[]).find(s=>s.name===r);if(!o)return console.error(`Animation with name "${r}" not found on sprite.`);e.playAnimation(o.from,o.to,o.loop,o.delay,t)}i(wn,"playSpriteAnimationFromName");var xr=require("babylonjs"),vr=require("babylonjs"),Cr=require("babylonjs"),Ir=require("babylonjs"),ht=require("babylonjs"),X=require("babylonjs"),Er=require("babylonjs"),Ar=!1;function Tr(){Ar||(Ar=!0,(0,Er.AddParser)("SpriteMapNode",(e,r,t,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSpriteMap)return;let s=t.transformNodes?.find(l=>l.id===o.id);if(!s)return;s.isSpriteMap=o.isSpriteMap;let a=`${n}${o.atlasJsonRelativePath}`;r.addPendingData(a);let p=new Cr.WebRequest;p.open("GET",a),p.send(),p.addEventListener("load",()=>{r.removePendingData(a);let l=JSON.parse(p.responseText);yt(l);let c=`${xr.Tools.GetFolderPath(a)}${l.meta.image}`,m=new ht.Texture(c,r,!1,!1,ht.Texture.NEAREST_NEAREST,null,null,null,!1,vr.Engine.TEXTUREFORMAT_RGBA),d=new Ir.SpriteMap(s.name,l,m,{layerCount:o.options.layerCount,stageSize:X.Vector2.FromArray(o.options.stageSize??[10,1]),outputSize:X.Vector2.FromArray(o.options.outputSize??[100,100]),colorMultiply:X.Vector3.FromArray(o.options.colorMultiply??[1,1,1]),flipU:!0},r);o.tiles.forEach(g=>{for(let h=0,y=g.repeatCount.x+1;h<y;++h)for(let P=0,v=g.repeatCount.y+1;P<v;++P){let T=h*(g.repeatOffset.x+1),A=P*(g.repeatOffset.y+1);d.changeTiles(g.layer,new X.Vector2(g.position.x+T,(d.options.stageSize?.y??0)-1-g.position.y-A),g.tile)}});let f=d._output;f.parent=s,s.spriteMap=d})})}))}i(Tr,"registerSpriteMapParser");var Mr=require("babylonjs"),wr=require("babylonjs"),Nr=require("babylonjs"),St=require("babylonjs"),Rr=require("babylonjs");function Or(e,r){r?.fogEnabled!==void 0&&(e.fogEnabled=r?.fogEnabled),r?.blendMode!==void 0&&(e.blendMode=r?.blendMode),r?.disableDepthWrite!==void 0&&(e.disableDepthWrite=r?.disableDepthWrite),r?.pixelPerfect!==void 0&&(e.pixelPerfect=r?.pixelPerfect),r?.useLogarithmicDepth!==void 0&&(e.useLogarithmicDepth=r?.useLogarithmicDepth),r?.metadata!==void 0&&(e.metadata=r?.metadata);for(let t of r?.sprites??[]){let n=wr.Sprite.Parse(t,e);n.uniqueId=t.uniqueId,n.metadata=t.metadata}}i(Or,"parseSerializedSpriteManager");var Dr=!1;function Fr(){Dr||(Dr=!0,(0,Rr.AddParser)("SpriteManagerNode",(e,r,t,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSpriteManager)return;let s=t.transformNodes?.find(a=>a.id===o.id);if(s){if(s.isSpriteManager=o.isSpriteManager,o.atlasJsonRelativePath){let a=`${n}${o.atlasJsonRelativePath}`;r.addPendingData(a);let p=new Nr.WebRequest;p.open("GET",a),p.send(),p.addEventListener("load",()=>{r.removePendingData(a);let l=JSON.parse(p.responseText),c=`${Mr.Tools.GetFolderPath(a)}${l.meta.image}`,m=new St.SpriteManager(s.name,c,1e3,64,r,void 0,void 0,!0,l);s.spriteManager=m,o.spriteManager&&Or(m,o.spriteManager)})}else if(o.spriteManager?.textureUrl){let a=`${n}${o.spriteManager.textureUrl}`,p=new St.SpriteManager(s.name,a,1e3,{width:o.spriteManager.cellWidth,height:o.spriteManager.cellHeight},r,void 0,void 0,!1);s.spriteManager=p,o.spriteManager&&Or(p,o.spriteManager)}}})}))}i(Fr,"registerSpriteManagerParser");var Lr=require("babylonjs"),Vr=require("babylonjs"),_r=!1;function Br(){_r||(_r=!0,(0,Lr.AddParser)("NodeParticleSystemSetEditorPlugin",(e,r,t,n)=>{e.meshes?.forEach(o=>{if(!o.isNodeParticleSystemMesh)return;let s=t.meshes?.find(a=>a.id===o.id);s&&(o.nodeParticleSystemSet.blocks?.forEach(a=>{a.url&&(a.url=`${n}${a.url}`)}),s.nodeParticleSystemSet=Vr.NodeParticleSystemSet.Parse(o.nodeParticleSystemSet),s.nodeParticleSystemSet.id=o.nodeParticleSystemSet.id,s.nodeParticleSystemSet.uniqueId=o.uniqueId,r.addPendingData(o.id),s.nodeParticleSystemSet.buildAsync(r,!1).then(a=>{r.removePendingData(o.id),s.particleSystemSet=a,a.systems.forEach(p=>{if(we(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(Br,"registerNodeParticleSystemSetParser");var kr=require("babylonjs"),bt=require("babylonjs"),zr=require("babylonjs"),$r=require("babylonjs"),Gr=new Map;async function Kr(e,r){let t=e.getWaitingItemsCount();for(;!e.isDisposed&&(!e.isReady()||e.getWaitingItemsCount()>0);){await new Promise(o=>setTimeout(o,150));let n=t-e.getWaitingItemsCount();n===t&&e.textures.forEach(o=>{o.delayLoadState===bt.Constants.DELAYLOADSTATE_NONE&&(o.delayLoadState=bt.Constants.DELAYLOADSTATE_LOADED)}),r(n/t)}}i(Kr,"waitForWaitingItems");async function Nn(e,r,t,n,o){t.loadingQuality=o?.quality??"high",t.loadingTexturesQuality=o?.texturesQuality??t.loadingQuality,t.loadingShadowsQuality=o?.shadowsQuality??t.loadingQuality,t.loadingLodsQuality=o?.lodsQuality??t.loadingQuality,tr(),mr(),dr(),Sr(),Tr(),Fr(),Br();let s=Gr.get(t)??{};if(Gr.set(t,s),await(0,zr.AppendSceneAsync)(`${e}${r}`,t,{pluginExtension:".babylon",onProgress:i(p=>{let l=Math.min(p.loaded/p.total*.5);o?.onProgress?.(l)},"onProgress")}),await Kr(t,p=>{o?.onProgress?.(.5+p*.25)}),!o?.skipAssetsPreload){let p=0;do p=await mt(e,t,n);while(p!==0)}$r.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(p=>D(p)&&p._checkDelayState());let a=Pr(t,s.clusteredLightContainer);s.clusteredLightContainer=a,await Kr(t,p=>{o?.onProgress?.(.75+p*.25)}),o?.onProgress?.(1),Fe(t),_e(t.loadingLodsQuality,t),Le(t),Ae(t),t.metadata?.rendering&&(Wt(t,t.metadata.rendering),t.activeCamera&&nt(t.activeCamera,e,o?.postProcessConfiguration)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(kr.Vector3.FromArray(t.metadata?.physicsGravity)),w(t,t,n,e),t.transformNodes.forEach(p=>{w(t,p,n,e)}),t.meshes.forEach(p=>{Yt(p),w(t,p,n,e)}),t.lights.forEach(p=>{w(t,p,n,e)}),t.cameras.forEach(p=>{w(t,p,n,e)}),t.spriteManagers?.forEach(p=>{p.sprites.forEach(l=>{w(t,l,n,e)})}),J(t)}i(Nn,"loadScene");var jr=require("babylonjs");async function Rn(e,r,t){let n=await B(e+r),s=jr.Tools.Instantiate(n.customType).Parse(n,t,e);return s.id=n.id,s.uniqueId=n.uniqueId,s}i(Rn,"loadMaterialFromFile");function Fn(e){return Promise.all(e.materials.map(async r=>{let t=r.getBindedMeshes();await Promise.all(t.map(async n=>{ne(n)||await r.forceCompilationAsync(n,{clipPlane:!!e.clipPlane,useInstances:n.hasInstances})}))}))}i(Fn,"forceCompileAllSceneMaterials");var L=require("babylonjs");function ue(e){if(!isNaN(parseFloat(e))&&isFinite(e))return L.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return L.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return L.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return L.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return L.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return L.Animation.ANIMATIONTYPE_COLOR4;case"Size":return L.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return L.Animation.ANIMATIONTYPE_MATRIX}return null}i(ue,"getAnimationTypeForObject");var Qr=require("babylonjs");function _n(e){return function(r,t){let n=r.constructor;n._NodesFromScene??=[],n._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(_n,"nodeFromScene");function Ln(e){return function(r,t){let n=r.constructor;n._ComponentsFromScene??=[],n._ComponentsFromScene.push({propertyKey:t,componentConstructor:e})}}i(Ln,"componentFromScene");function Vn(e,r=!1){return function(t,n){let o=t.constructor;o._NodesFromDescendants??=[],o._NodesFromDescendants.push({propertyKey:n,nodeName:e,directDescendantsOnly:r})}}i(Vn,"nodeFromDescendants");function Bn(e){return function(r,t){let n=r.constructor;n._AnimationGroups??=[],n._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(Bn,"animationGroupFromScene");function Gn(e){return function(r,t){let n=r.constructor;n._SceneAssets??=[],n._SceneAssets.push({sceneName:e,propertyKey:t})}}i(Gn,"sceneAsset");function Kn(e,r){return function(t,n){let o=t.constructor;o._GuiFromAsset??=[],o._GuiFromAsset.push({propertyKey:n,pathInAssets:e,onGuiCreated:r})}}i(Kn,"guiFromAsset");function kn(e){return function(r,t){let n=r.constructor;n._SoundsFromScene??=[],n._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(kn,"soundFromScene");function zn(e,r=!1){return function(t,n){let o=t.constructor;o._ParticleSystemsFromScene??=[],o._ParticleSystemsFromScene.push({propertyKey:n,particleSystemName:e,directDescendantsOnly:r})}}i(zn,"particleSystemFromScene");function $n(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"boolean"}})}}i($n,"visibleAsBoolean");function jn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"string"}})}}i(jn,"visibleAsString");function Qn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"number"}})}}i(Qn,"visibleAsNumber");function Yn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"vector2"}})}}i(Yn,"visibleAsVector2");function Wn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"vector3"}})}}i(Wn,"visibleAsVector3");function Un(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"color3"}})}}i(Un,"visibleAsColor3");function Hn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"color4"}})}}i(Hn,"visibleAsColor4");function qn(e,r,t){return function(n,o){let s=n.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:r,propertyKey:o,configuration:{...t,entityType:e,type:"entity"}})}}i(qn,"visibleAsEntity");function Jn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"texture"}})}}i(Jn,"visibleAsTexture");function Zn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"keymap"}})}}i(Zn,"visibleAsKeyMap");function Xn(e,r,t){return function(n,o){let s=n.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:r,propertyKey:o,configuration:{...t,assetType:e,type:"asset"}})}}i(Xn,"visibleAsAsset");function eo(e,r){return function(t,n){let o=t.constructor;o._PointerEvents??=[],o._PointerEvents.push({propertyKey:n,options:{mode:"global",...r??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(eo,"onPointerEvent");function to(e){return function(r,t){let n=r.constructor;n._KeyboardEvents??=[],n._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(to,"onKeyboardEvent");function ro(e){return function(r,t){let n=r.constructor;n._SpritesFromSpriteManager??=[],n._SpritesFromSpriteManager.push({propertyKey:t,spriteName:e})}}i(ro,"spriteFromSpriteManager");function no(e){return function(r,t){let n=r.constructor;n._AnimationsFromSprite??=[],n._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(no,"animationFromSprite");var Te=require("babylonjs");function pu(e,r){let t;return e===Te.Animation.ANIMATIONTYPE_FLOAT?t=r.value:t=r.value.clone(),{value:t,frame:r.frame,interpolation:r.interpolation,inTangent:e===Te.Animation.ANIMATIONTYPE_FLOAT?r.inTangent:r.inTangent?.clone(),outTangent:e===Te.Animation.ANIMATIONTYPE_FLOAT?r.outTangent:r.outTangent?.clone()}}i(pu,"cloneKey");function Oe(e,r){let t=r.split("."),n=e;for(let o=0;o<t.length;++o)n=n[t[o]];return n}i(Oe,"getPropertyValue");function Pt(e,r,t){let n=null;e.onAnimationGroupPlayObservable.add(()=>{n=r.onAfterAnimationsObservable.add(()=>{t()})}),e.onAnimationGroupPauseObservable.add(()=>{n&&(r.onAfterAnimationsObservable.remove(n),n=null)}),e.onAnimationGroupEndObservable.add(()=>{n&&(r.onAfterAnimationsObservable.remove(n),n=null)})}i(Pt,"registerAfterAnimationCallback");var V=require("babylonjs"),De=require("babylonjs"),F=require("babylonjs");function oo(e,r){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(t=>{let n=null,o=null;if(t.node?(n=H(t.node,r),n||(n=r.particleSystems?.find(a=>a.id===t.node)??null)):t.defaultRenderingPipeline&&(n=se()),t.propertyPath){let a=Oe(n,t.propertyPath);o=ue(a)}let s=null;return t.sound&&(s=H(t.sound,r)),{node:n,sound:s,propertyPath:t.propertyPath,defaultRenderingPipeline:t.defaultRenderingPipeline,animationGroup:t.animationGroup?r.getAnimationGroupByName(t.animationGroup):null,animationGroups:t.animationGroups,sounds:t.sounds,soundVolume:At(t.soundVolume??[],V.Animation.ANIMATIONTYPE_FLOAT),keyFrameEvents:t.keyFrameEvents?.map(a=>{let p={...a};switch(a.data?.type){case"set-enabled":p.data={type:"set-enabled",value:a.data.value,node:H(a.data.node,r)};break;case"apply-impulse":p.data={type:"apply-impulse",radius:a.data.radius,mesh:r.getMeshById(a.data.mesh),force:F.Vector3.FromArray(a.data.force),contactPoint:F.Vector3.FromArray(a.data.contactPoint)};break}return p}),keyFrameAnimations:n&&o!==null&&At(t.keyFrameAnimations??[],o)}})}}i(oo,"parseCinematic");function R(e,r){if(e===null)return null;if(e!==void 0)switch(r){case V.Animation.ANIMATIONTYPE_FLOAT:return e;case V.Animation.ANIMATIONTYPE_VECTOR2:return F.Vector2.FromArray(e);case V.Animation.ANIMATIONTYPE_VECTOR3:return F.Vector3.FromArray(e);case V.Animation.ANIMATIONTYPE_QUATERNION:return F.Quaternion.FromArray(e);case V.Animation.ANIMATIONTYPE_COLOR3:return De.Color3.FromArray(e);case V.Animation.ANIMATIONTYPE_COLOR4:return De.Color4.FromArray(e);case V.Animation.ANIMATIONTYPE_MATRIX:return F.Matrix.FromArray(e)}}i(R,"parseCinematicKeyValue");function At(e,r){return e?.map(t=>{let n=t.type==="key"?t:null;if(n)return{...n,value:R(n.value,r),inTangent:R(n.inTangent,r),outTangent:R(n.outTangent,r)};let o=t.type==="cut"?t:null;if(o)return{...o,key1:{...o.key1,value:R(o.key1.value,r),inTangent:R(o.key1.inTangent,r),outTangent:R(o.key1.outTangent,r)},key2:{...o.key2,value:R(o.key2.value,r),inTangent:R(o.key2.inTangent,r),outTangent:R(o.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${t.type}`)})}i(At,"parseKeyFrameAnimations");function Yr(e,r){e.onEventObservable.notifyObservers(r.eventName)}i(Yr,"handleApplyEvent");function Wr(e){e.node?.setEnabled(e.value)}i(Wr,"handleSetEnabledEvent");var xt=require("babylonjs"),Ur=xt.Vector3.Zero();function Hr(e,r){let t=r.mesh?[r.mesh]:e.meshes.filter(n=>n.physicsAggregate);r.radius&&(t=t.filter(n=>{let o=n.getBoundingInfo().boundingBox.centerWorld;return xt.Vector3.Distance(o,r.contactPoint)<=r.radius})),t.forEach(n=>{if(n.physicsAggregate?.body){let o=r.contactPoint.subtract(n.getBoundingInfo().boundingBox.centerWorld);o.multiplyInPlace(r.force),n.physicsAggregate.body.setLinearVelocity(Ur),n.physicsAggregate.body.setAngularVelocity(Ur),n.physicsAggregate.body.applyImpulse(o.negateInPlace(),r.contactPoint)}})}i(Hr,"handleApplyImpulseEvent");var qr=require("babylonjs"),Jr=require("babylonjs"),fe=class extends Jr.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new qr.Observable;onEvent(r,t){this.onEventObservable.add(n=>{r===n&&t()})}};function vt(e){return e.type==="key"}i(vt,"isCinematicKey");function ee(e){return e.type==="cut"}i(ee,"isCinematicKeyCut");function io(e){return e.type==="event"}i(io,"isCinematicKeyEvent");function so(e){return e.type==="group"}i(so,"isCinematicGroup");function ao(e){return e.type==="sound"}i(ao,"isCinematicSound");var x=require("babylonjs"),te=require("babylonjs");function lo(e,r,t){let n=new fe(e.name,r);return e.tracks.forEach(o=>{let s=o.animationGroup;if(s&&o.animationGroups?.length){let f=s.clone(`${s.name}-cinematic-temp`),g=r.animationGroups.indexOf(f);g!==-1&&r.animationGroups.splice(g,1),n.onAnimationEndObservable.add(()=>{s.stop(),f.stop()});let h=o.animationGroups.reduce((T,A)=>Math.min(T,A.frame),Number.MAX_VALUE)??0,y=o.animationGroups.reduce((T,A)=>Math.max(T,A.frame+A.endFrame),0)??0,P={frame:h},v=new x.Animation(f.name,"frame",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1);if(v.setKeys([{frame:h,value:0},{frame:y,value:y}]),o.animationGroups.forEach(T=>{v.addEvent(new te.AnimationEvent(T.frame,()=>{let A=T.repeatCount??0;if(f.to=T.endFrame,f.speedRatio=T.speed,f.stop(),f.play(A>0),f.from!==T.startFrame&&f.goToFrame(T.startFrame),A){let re=0;f.onAnimationGroupLoopObservable.add(()=>{++re,re>A&&f.stop()})}}))}),n.addTargetedAnimation(v,P),(o.animationGroupWeight?.length??0)>=2&&o.animationGroupWeight.find(A=>ee(A)?A.key1.value!==1||A.key2.value!==1:A.value!==1)){let A={weight:0},re=new x.Animation(`${f.name}-weights`,"weight",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),ye=[];o.animationGroupWeight.forEach(he=>{ee(he)?(ye.push(he.key1),ye.push(he.key2)):ye.push(he)}),re.setKeys(ye),n.addTargetedAnimation(re,A),Pt(n,r,()=>{f.weight=A.weight})}}let a=o.sound;if(!t?.ignoreSounds&&a&&a.sound?.buffer&&o.sounds?.length){let f={dummy:0,volume:0},g=new x.Animation(a.name,"dummy",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),h=0;if(o.sounds?.forEach(y=>{let P=y.endFrame-y.startFrame;h=Math.max(h,y.frame+P),g.addEvent(new te.AnimationEvent(y.frame,v=>{let A=(v-y.frame+y.startFrame)/e.framesPerSecond;a.play({startOffset:A})},!1)),g.addEvent(new te.AnimationEvent(y.frame+P,()=>{a.stop()}))}),g.setKeys([{frame:0,value:0},{frame:h,value:h}]),n.addTargetedAnimation(g,f),(o.soundVolume?.length??0)>=2){let y=new x.Animation(a.name,"volume",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),P=[];o.soundVolume.forEach(v=>{ee(v)?(P.push(v.key1),P.push(v.key2)):P.push(v)}),y.setKeys(P),n.addTargetedAnimation(y,f),Pt(n,r,()=>{a.volume=f.volume})}}if(o.keyFrameEvents){let f={dummy:0},g=new x.Animation("events","dummy",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),h=0;o.keyFrameEvents?.forEach(y=>{h=Math.max(h,y.frame),g.addEvent(new te.AnimationEvent(y.frame,()=>{switch(y.data?.type){case"event":Yr(n,y.data);break;case"set-enabled":Wr(y.data);break;case"apply-impulse":Hr(r,y.data);break}}))}),g.setKeys([{frame:0,value:0},{frame:h+1,value:h+1}]),n.addTargetedAnimation(g,f)}let p=o.defaultRenderingPipeline?se():o.node;if(!p||!o.propertyPath||!o.keyFrameAnimations)return;let l=Oe(p,o.propertyPath),c=ue(l);if(c===null)return;let m=new x.Animation(o.propertyPath,o.propertyPath,60,c,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),d=[];o.keyFrameAnimations?.forEach(f=>{if(vt(f))return d.push(f);ee(f)&&(d.push(f.key1),d.push(f.key2),be(p)&&o.propertyPath==="position"&&m.addEvent(new te.AnimationEvent(f.key1.frame,()=>{let g=He();if(!g)return;let h=g.motionStrength;g.motionStrength=0,requestAnimationFrame(()=>{g.motionStrength=h})})))}),m.setKeys(d),n.addTargetedAnimation(m,p)}),n.normalize(),n}i(lo,"generateCinematicAnimationGroup");async function Ct(e,r){return new Promise((t,n)=>{let o=indexedDB.open(e,1);o.addEventListener("error",()=>n()),o.addEventListener("blocked",()=>n()),o.addEventListener("upgradeneeded",()=>{try{r(o.result)}catch(s){n(s)}}),o.addEventListener("success",()=>{t(o.result)})})}i(Ct,"openIndexDB");function de(e,r,t){return new Promise(n=>{let s=e.transaction(r).objectStore(r).get(t);s.addEventListener("error",()=>{n(null)}),s.addEventListener("success",()=>{n(s.result??null)})})}i(de,"getFromIndexDB");async function G(e,r,t){let o=e.transaction(r,"readwrite").objectStore(r).put(t);await new Promise((s,a)=>{o.addEventListener("error",()=>a()),o.addEventListener("success",()=>s())})}i(G,"putInIndexDB");var Zr=require("babylonjs");function co(e){Zr.AbstractEngine.OfflineProviderFactory=(r,t,n=!1)=>new ge(e,r,t,n)}i(co,"setupOfflineProvider");async function po(e,r){let t=await new Promise(n=>{let o=new ge(e,r,s=>n(s?o:null),!1)});return await t?.open(),t}i(po,"createAndOpenDatabase");var ge=class{static{i(this,"Database")}enableSceneOffline=!0;enableTexturesOffline=!0;name;_database=null;_manifestVersion=null;constructor(r,t,n,o){this.name=r,o?n(!1):this._checkManifest(t,n)}async _checkManifest(r,t){try{let n=await B(`${r}.manifest?${Date.now()}`);this._manifestVersion=n.version,t(!0)}catch{this.enableSceneOffline=!1,this.enableTexturesOffline=!1,t(!1)}}async open(r,t){try{this._database=await Ct(this.name,n=>{n.createObjectStore("files",{keyPath:"url"}),n.createObjectStore("images",{keyPath:"url"}),n.createObjectStore("versions",{keyPath:"url"})}),r?.()}catch{t?.()}}async loadImage(r,t){if(!this._database){t.src=r;return}let n=null;if(await this._getFileVersionForUrl(r)!==this._manifestVersion?(n=await le(r,"blob"),await Promise.all([G(this._database,"images",{url:r,data:n}),G(this._database,"versions",{url:r,version:this._manifestVersion})])):n=(await de(this._database,"images",r))?.data??null,n!==null){let s=URL.createObjectURL(n);t.src=s}else t.src=r}async isFileMatchingVersion(r){return await this._getFileVersionForUrl(r)===this._manifestVersion}async loadFile(r,t,n,o,s){if(!this._database)return o?.();let a=null;await this._getFileVersionForUrl(r)!==this._manifestVersion?(a=await le(r,s?"arraybuffer":"text",n),await Promise.all([G(this._database,"files",{url:r,data:a}),G(this._database,"versions",{url:r,version:this._manifestVersion})])):a=(await de(this._database,"files",r))?.data??null,a!==null?t(a):o?.()}async saveFile(r,t,n){if(!this._database)throw new Error("Database is not available");let o=await le(r,t?"arraybuffer":"text",n);await Promise.all([G(this._database,"files",{url:r,data:o}),G(this._database,"versions",{url:r,version:this._manifestVersion})])}async _getFileVersionForUrl(r){return(await de(this._database,"versions",r))?.version??null}};0&&(module.exports={AdvancedAssetContainer,AdvancedAssetContainerInstantiatedEntries,Cinematic,Database,NodeParticleSystemSet,_applyScriptsForObject,_preloadScriptsAssets,_registerScriptInstance,_removeRegisteredScriptInstance,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,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isParticleSystem,isPointLight,isScene,isSoundNode,isSpotLight,isSprite,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,normalizeAtlasJson,onKeyboardEvent,onPointerEvent,openIndexDB,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseKeyFrameAnimations,parseMotionBlurPostProcess,parseRagdollConfiguration,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseTAARenderingPipeline,parseVLSPostProcess,particleSystemFromScene,playSpriteAnimationFromName,putInIndexDB,registerScriptAssetParser,saveRenderingConfigurationForCamera,sceneAsset,scriptAssetsCache,scriptAssetsParsers,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeTAARenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setTAARenderingPipelineRef,setVLSPostProcessRef,setupOfflineProvider,soundFromScene,spriteFromSpriteManager,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,taaRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
@@ -4,6 +4,7 @@ import { Texture } from "@babylonjs/core/Materials/Textures/texture";
4
4
  import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
5
5
  import { NodeParticleSystemSet } from "@babylonjs/core/Particles/Node/nodeParticleSystemSet";
6
6
  import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
7
+ import { loadJsonFile } from "../tools/request";
7
8
  import { getNodeById, getNodeByName } from "../tools/scene";
8
9
  import { copyAndParseRagdollConfiguration } from "../tools/ragdoll";
9
10
  import { isAbstractMesh, isNode, isSoundNode, isSprite, isTransformNode } from "../tools/guards";
@@ -57,8 +58,7 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
57
58
  (ctor._GuiFromAsset ?? []).map(async (params) => {
58
59
  const guiUrl = `${rootUrl}assets/${params.pathInAssets}`;
59
60
  try {
60
- const response = await fetch(guiUrl);
61
- const data = await response.json();
61
+ const data = await loadJsonFile(guiUrl);
62
62
  const gui = AdvancedDynamicTexture.CreateFullscreenUI(data.name, true, scene);
63
63
  gui.parseSerializedObject(data.content, false);
64
64
  instance[params.propertyKey.toString()] = gui;
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/decorators/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/decorators/apply.ts"],"names":[],"mappings":"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"}
@@ -34,4 +34,6 @@ export * from "./cinematic/typings";
34
34
  export * from "./cinematic/generate";
35
35
  export * from "./cinematic/guards";
36
36
  export * from "./cinematic/cinematic";
37
+ export * from "./loading/database/indexdb";
38
+ export * from "./loading/database/database";
37
39
  //# sourceMappingURL=index.js.map
@@ -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;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"}
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;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"}
@@ -0,0 +1,169 @@
1
+ import { AbstractEngine } from "@babylonjs/core/Engines/abstractEngine";
2
+ import { loadFile, loadJsonFile } from "../../tools/request";
3
+ import { getFromIndexDB, openIndexDB, putInIndexDB } from "./indexdb";
4
+ /**
5
+ * Setups offline support for the scene loading using IndexedDB as offline storage.
6
+ * This allows scenes and assets to be loaded from the local database when offline.
7
+ * @param name defines the name of the database to setup
8
+ */
9
+ export function setupOfflineProvider(name) {
10
+ AbstractEngine.OfflineProviderFactory = (urlToScene, callbackManifestChecked, disableManifestCheck = false) => {
11
+ return new Database(name, urlToScene, callbackManifestChecked, disableManifestCheck);
12
+ };
13
+ }
14
+ /**
15
+ * Creates a database for offline support and opens it.
16
+ * If the database already exists in indexDB, it will be opened and returned. Otherwise, a new database will be created and opened.
17
+ * @param name defines the name of the database to create (if doesn't exists) and open
18
+ * @param urlToScene defines the Url of the scene to load.
19
+ */
20
+ export async function createAndOpenDatabase(name, urlToScene) {
21
+ const database = await new Promise((resolve) => {
22
+ const databaseInstance = new Database(name, urlToScene, (checked) => resolve(checked ? databaseInstance : null), false);
23
+ });
24
+ await database?.open();
25
+ return database;
26
+ }
27
+ export class Database {
28
+ /**
29
+ * Gets a boolean indicating if scene must be saved in the database
30
+ */
31
+ enableSceneOffline = true;
32
+ /**
33
+ * Gets a boolean indicating if textures must be saved in the database
34
+ */
35
+ enableTexturesOffline = true;
36
+ /**
37
+ * Defines the name of the database.
38
+ */
39
+ name;
40
+ _database = null;
41
+ _manifestVersion = null;
42
+ constructor(name, urlToScene, callbackManifestChecked, disableManifestCheck) {
43
+ this.name = name;
44
+ if (disableManifestCheck) {
45
+ callbackManifestChecked(false);
46
+ }
47
+ else {
48
+ this._checkManifest(urlToScene, callbackManifestChecked);
49
+ }
50
+ }
51
+ async _checkManifest(urlToScene, callbackManifestChecked) {
52
+ try {
53
+ const manifest = await loadJsonFile(`${urlToScene}.manifest?${Date.now()}`);
54
+ this._manifestVersion = manifest.version;
55
+ callbackManifestChecked(true);
56
+ }
57
+ catch (e) {
58
+ this.enableSceneOffline = false;
59
+ this.enableTexturesOffline = false;
60
+ callbackManifestChecked(false);
61
+ }
62
+ }
63
+ /**
64
+ * Open the offline support and make it available
65
+ * @param successCallback defines the callback to call on success
66
+ * @param errorCallback defines the callback to call on error
67
+ */
68
+ async open(successCallback, errorCallback) {
69
+ try {
70
+ this._database = await openIndexDB(this.name, (database) => {
71
+ database.createObjectStore("files", { keyPath: "url" });
72
+ database.createObjectStore("images", { keyPath: "url" });
73
+ database.createObjectStore("versions", { keyPath: "url" });
74
+ });
75
+ successCallback?.();
76
+ }
77
+ catch (e) {
78
+ errorCallback?.();
79
+ }
80
+ }
81
+ /**
82
+ * Loads an image from the offline support
83
+ * @param url defines the url to load from
84
+ * @param image defines the target DOM image
85
+ */
86
+ async loadImage(url, image) {
87
+ if (!this._database) {
88
+ image.src = url;
89
+ return;
90
+ }
91
+ let data = null;
92
+ const version = await this._getFileVersionForUrl(url);
93
+ if (version !== this._manifestVersion) {
94
+ data = await loadFile(url, "blob");
95
+ await Promise.all([
96
+ putInIndexDB(this._database, "images", { url, data }),
97
+ putInIndexDB(this._database, "versions", {
98
+ url,
99
+ version: this._manifestVersion,
100
+ }),
101
+ ]);
102
+ }
103
+ else {
104
+ data = (await getFromIndexDB(this._database, "images", url))?.data ?? null;
105
+ }
106
+ if (data !== null) {
107
+ const objectUrl = URL.createObjectURL(data);
108
+ image.src = objectUrl;
109
+ }
110
+ else {
111
+ image.src = url;
112
+ }
113
+ }
114
+ async isFileMatchingVersion(url) {
115
+ return (await this._getFileVersionForUrl(url)) === this._manifestVersion;
116
+ }
117
+ /**
118
+ * Loads a file from offline support
119
+ * @param url defines the URL to load from
120
+ * @param sceneLoaded defines a callback to call on success
121
+ * @param progressCallBack defines a callback to call when progress changed
122
+ * @param errorCallback defines a callback to call on error
123
+ * @param useArrayBuffer defines a boolean to use array buffer instead of text string
124
+ */
125
+ async loadFile(url, sceneLoaded, progressCallBack, errorCallback, useArrayBuffer) {
126
+ if (!this._database) {
127
+ return errorCallback?.();
128
+ }
129
+ let data = null;
130
+ const version = await this._getFileVersionForUrl(url);
131
+ if (version !== this._manifestVersion) {
132
+ data = await loadFile(url, useArrayBuffer ? "arraybuffer" : "text", progressCallBack);
133
+ await Promise.all([
134
+ putInIndexDB(this._database, "files", { url, data }),
135
+ putInIndexDB(this._database, "versions", {
136
+ url,
137
+ version: this._manifestVersion,
138
+ }),
139
+ ]);
140
+ }
141
+ else {
142
+ data = (await getFromIndexDB(this._database, "files", url))?.data ?? null;
143
+ }
144
+ if (data !== null) {
145
+ sceneLoaded(data);
146
+ }
147
+ else {
148
+ errorCallback?.();
149
+ }
150
+ }
151
+ async saveFile(url, useArrayBuffer, progress) {
152
+ if (!this._database) {
153
+ throw new Error("Database is not available");
154
+ }
155
+ const data = await loadFile(url, useArrayBuffer ? "arraybuffer" : "text", progress);
156
+ await Promise.all([
157
+ putInIndexDB(this._database, "files", { url, data }),
158
+ putInIndexDB(this._database, "versions", {
159
+ url,
160
+ version: this._manifestVersion,
161
+ }),
162
+ ]);
163
+ }
164
+ async _getFileVersionForUrl(url) {
165
+ const data = await getFromIndexDB(this._database, "versions", url);
166
+ return data?.version ?? null;
167
+ }
168
+ }
169
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../src/loading/database/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Opens an IndexedDB database with the given name and calls the upgradeNeeded callback if the database needs to be created or upgraded.
3
+ * @param name The name of the database to open
4
+ * @param upgradeNeeded The callback to call if the database needs to be created or upgraded
5
+ */
6
+ export async function openIndexDB(name, upgradeNeeded) {
7
+ return new Promise((resolve, reject) => {
8
+ const request = indexedDB.open(name, 1);
9
+ request.addEventListener("error", () => reject());
10
+ request.addEventListener("blocked", () => reject());
11
+ request.addEventListener("upgradeneeded", () => {
12
+ try {
13
+ upgradeNeeded(request.result);
14
+ }
15
+ catch (e) {
16
+ reject(e);
17
+ }
18
+ });
19
+ request.addEventListener("success", () => {
20
+ resolve(request.result);
21
+ });
22
+ });
23
+ }
24
+ /**
25
+ * Gets a value from the database for the given store and key.
26
+ * @param database defines the database to get the value from
27
+ * @param storeName defines the name of the store to get the value from
28
+ * @param key defines the key of the value to get
29
+ */
30
+ export function getFromIndexDB(database, storeName, key) {
31
+ return new Promise((resolve) => {
32
+ const transaction = database.transaction(storeName);
33
+ const request = transaction.objectStore(storeName).get(key);
34
+ request.addEventListener("error", () => {
35
+ resolve(null);
36
+ });
37
+ request.addEventListener("success", () => {
38
+ resolve(request.result ?? null);
39
+ });
40
+ });
41
+ }
42
+ /**
43
+ * Puts a value in the database for the given store and key.
44
+ * @param database defines the database to put the value in
45
+ * @param storeName defines the name of the store to put the value in
46
+ * @param data defines the value to put in the database
47
+ */
48
+ export async function putInIndexDB(database, storeName, data) {
49
+ const versionTransation = database.transaction(storeName, "readwrite");
50
+ const versionRequest = versionTransation.objectStore(storeName).put(data);
51
+ await new Promise((resolve, reject) => {
52
+ versionRequest.addEventListener("error", () => reject());
53
+ versionRequest.addEventListener("success", () => resolve());
54
+ });
55
+ }
56
+ //# sourceMappingURL=indexdb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexdb.js","sourceRoot":"","sources":["../../../../src/loading/database/indexdb.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,aAA8C;IAC7F,OAAO,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAExC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAEpD,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC;gBACJ,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,CAAC,CAAC,CAAC,CAAC;YACX,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;YACxC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAI,QAAqB,EAAE,SAAiB,EAAE,GAAW;IACtF,OAAO,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5D,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;YACxC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,QAAqB,EAAE,SAAiB,EAAE,IAAO;IACtF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1E,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -20,6 +20,21 @@ import { configureTransformNodes } from "./transform-node";
20
20
  import { registerSpriteManagerParser } from "./sprite-manager";
21
21
  import { registerNodeParticleSystemSetParser } from "./node-particle-system-set";
22
22
  const sceneConfigurationMap = new Map();
23
+ async function waitForWaitingItems(scene, onProgress) {
24
+ const waitingItemsCount = scene.getWaitingItemsCount();
25
+ while (!scene.isDisposed && (!scene.isReady() || scene.getWaitingItemsCount() > 0)) {
26
+ await new Promise((resolve) => setTimeout(resolve, 150));
27
+ const loadedItemsCount = waitingItemsCount - scene.getWaitingItemsCount();
28
+ if (loadedItemsCount === waitingItemsCount) {
29
+ scene.textures.forEach((texture) => {
30
+ if (texture.delayLoadState === Constants.DELAYLOADSTATE_NONE) {
31
+ texture.delayLoadState = Constants.DELAYLOADSTATE_LOADED;
32
+ }
33
+ });
34
+ }
35
+ onProgress(loadedItemsCount / waitingItemsCount);
36
+ }
37
+ }
23
38
  export async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, options) {
24
39
  scene.loadingQuality = options?.quality ?? "high";
25
40
  scene.loadingTexturesQuality = options?.texturesQuality ?? scene.loadingQuality;
@@ -43,6 +58,10 @@ export async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, optio
43
58
  options?.onProgress?.(progress);
44
59
  },
45
60
  });
61
+ // Wait until scene is ready.
62
+ await waitForWaitingItems(scene, (progress) => {
63
+ options?.onProgress?.(0.5 + progress * 0.25);
64
+ });
46
65
  if (!options?.skipAssetsPreload) {
47
66
  // Loop until all assets are loaded.
48
67
  // This is required as some assets can be linked to scripts that are themselves linked to .scene files
@@ -60,19 +79,9 @@ export async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, optio
60
79
  const clusteredLightContainer = configureLights(scene, configuration.clusteredLightContainer);
61
80
  configuration.clusteredLightContainer = clusteredLightContainer;
62
81
  // Wait until scene is ready.
63
- const waitingItemsCount = scene.getWaitingItemsCount();
64
- while (!scene.isDisposed && (!scene.isReady() || scene.getWaitingItemsCount() > 0)) {
65
- await new Promise((resolve) => setTimeout(resolve, 150));
66
- const loadedItemsCount = waitingItemsCount - scene.getWaitingItemsCount();
67
- if (loadedItemsCount === waitingItemsCount) {
68
- scene.textures.forEach((texture) => {
69
- if (texture.delayLoadState === Constants.DELAYLOADSTATE_NONE) {
70
- texture.delayLoadState = Constants.DELAYLOADSTATE_LOADED;
71
- }
72
- });
73
- }
74
- options?.onProgress?.(0.5 + (loadedItemsCount / waitingItemsCount) * 0.5);
75
- }
82
+ await waitForWaitingItems(scene, (progress) => {
83
+ options?.onProgress?.(0.75 + progress * 0.25);
84
+ });
76
85
  options?.onProgress?.(1);
77
86
  configureMeshDistanceOrScreenCoverage(scene);
78
87
  applyMeshesLODQuality(scene.loadingLodsQuality, scene);
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/loading/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/loading/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAG5E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,qCAAqC,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAItG,OAAO,EAAE,oCAAoC,EAAuC,MAAM,oBAAoB,CAAC;AAE/G,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AA+EjF,MAAM,qBAAqB,GAKvB,IAAI,GAAG,EAAE,CAAC;AAEd,KAAK,UAAU,mBAAmB,CAAC,KAAY,EAAE,UAAmC;IACnF,MAAM,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAEvD,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAE/D,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAE1E,IAAI,gBAAgB,KAAK,iBAAiB,EAAE,CAAC;YAC5C,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,mBAAmB,EAAE,CAAC;oBAC9D,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,qBAAqB,CAAC;gBAC1D,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,UAAU,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;IAClD,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAY,EAAE,aAAqB,EAAE,KAAY,EAAE,UAAqB,EAAE,OAA4B;IACrI,KAAK,CAAC,cAAc,GAAG,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC;IAElD,KAAK,CAAC,sBAAsB,GAAG,OAAO,EAAE,eAAe,IAAI,KAAK,CAAC,cAAc,CAAC;IAChF,KAAK,CAAC,qBAAqB,GAAG,OAAO,EAAE,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC;IAC9E,KAAK,CAAC,kBAAkB,GAAG,OAAO,EAAE,WAAW,IAAI,KAAK,CAAC,cAAc,CAAC;IAExE,mBAAmB,EAAE,CAAC;IACtB,qBAAqB,EAAE,CAAC;IACxB,6BAA6B,EAAE,CAAC;IAEhC,gCAAgC,EAAE,CAAC;IAEnC,uBAAuB,EAAE,CAAC;IAC1B,2BAA2B,EAAE,CAAC;IAE9B,mCAAmC,EAAE,CAAC;IAEtC,sBAAsB;IACtB,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7D,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAEhD,4BAA4B;IAC5B,MAAM,gBAAgB,CAAC,GAAG,OAAO,GAAG,aAAa,EAAE,EAAE,KAAK,EAAE;QAC3D,eAAe,EAAE,UAAU;QAC3B,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;YAC9D,OAAO,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;KACD,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC7C,OAAO,EAAE,UAAU,EAAE,CAAC,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;QACjC,oCAAoC;QACpC,sGAAsG;QACtG,8EAA8E;QAC9E,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,GAAG,CAAC;YACH,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7E,CAAC,QAAQ,iBAAiB,KAAK,CAAC,EAAE;IACnC,CAAC;IAED,oDAAoD;IACpD,IAAI,gBAAgB,CAAC,mCAAmC,EAAE,CAAC;QAC1D,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,6BAA6B;IAC7B,MAAM,uBAAuB,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IAC9F,aAAa,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;IAEhE,6BAA6B;IAC7B,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC7C,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzB,qCAAqC,CAAC,KAAK,CAAC,CAAC;IAC7C,qBAAqB,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAEvD,qCAAqC,CAAC,KAAK,CAAC,CAAC;IAC7C,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAErC,IAAI,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC/B,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE9D,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,oCAAoC,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC;QACtG,CAAC;IACF,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;QACpC,KAAK,CAAC,gBAAgB,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAE1D,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QAC9C,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAChC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAChC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QAC/C,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACxC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { Tools } from "@babylonjs/core/Misc/tools";
2
+ import { loadJsonFile } from "../tools/request";
2
3
  import { isInstancedMesh } from "../tools/guards";
3
4
  /**
4
5
  * Loads the file located at `rootUrl + relativePath` and creates a new material from it.
@@ -9,8 +10,7 @@ import { isInstancedMesh } from "../tools/guards";
9
10
  * @example await loadMaterialFromFile<PBRMaterial>("/scene/", "assets/floor.material", scene);
10
11
  */
11
12
  export async function loadMaterialFromFile(rootUrl, relativePath, scene) {
12
- const response = await fetch(rootUrl + relativePath);
13
- const data = await response.json();
13
+ const data = await loadJsonFile(rootUrl + relativePath);
14
14
  const ctor = Tools.Instantiate(data.customType);
15
15
  const material = ctor.Parse(data, scene, rootUrl);
16
16
  material.id = data.id;
@@ -1 +1 @@
1
- {"version":3,"file":"material.js","sourceRoot":"","sources":["../../../src/loading/material.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAqB,OAAe,EAAE,YAAoB,EAAE,KAAY;IACjH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAElD,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACtB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAElC,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAY;IACzD,OAAO,OAAO,CAAC,GAAG,CACjB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;QAE1C,MAAM,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACzB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACR,CAAC;YAED,MAAM,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE;gBAC1C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS;gBAC5B,YAAY,EAAE,IAAI,CAAC,YAAY;aAC/B,CAAC,CAAC;QACJ,CAAC,CAAC,CACF,CAAC;IACH,CAAC,CAAC,CACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"material.js","sourceRoot":"","sources":["../../../src/loading/material.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAqB,OAAe,EAAE,YAAoB,EAAE,KAAY;IACjH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAM,OAAO,GAAG,YAAY,CAAC,CAAC;IAE7D,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAElD,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACtB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAElC,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAY;IACzD,OAAO,OAAO,CAAC,GAAG,CACjB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;QAE1C,MAAM,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACzB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACR,CAAC;YAED,MAAM,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE;gBAC1C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS;gBAC5B,YAAY,EAAE,IAAI,CAAC,YAAY;aAC/B,CAAC,CAAC;QACJ,CAAC,CAAC,CACF,CAAC;IACH,CAAC,CAAC,CACF,CAAC;AACH,CAAC"}
@@ -1,6 +1,5 @@
1
+ import { loadJsonFile } from "../../../tools/request";
1
2
  export async function preloadCommonScriptAsset(key, rootUrl) {
2
- const response = await fetch(`${rootUrl}${key}`);
3
- const data = await response.json();
4
- return data;
3
+ return loadJsonFile(`${rootUrl}${key}`);
5
4
  }
6
5
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../src/loading/script/preload/common.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,GAAW,EAAE,OAAe;IAC1E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../src/loading/script/preload/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,GAAW,EAAE,OAAe;IAC1E,OAAO,YAAY,CAAM,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
2
+ import { loadJsonFile } from "../../../../tools/request";
2
3
  import { registerScriptAssetParser } from "../../preload";
3
4
  export async function preloadFullScreenScriptAsset(parameters) {
4
- const response = await fetch(`${parameters.rootUrl}${parameters.key}`);
5
- const data = await response.json();
5
+ const data = await loadJsonFile(`${parameters.rootUrl}${parameters.key}`);
6
6
  let gui = null;
7
7
  try {
8
8
  switch (data.guiType) {
@@ -1 +1 @@
1
- {"version":3,"file":"gui.js","sourceRoot":"","sources":["../../../../../../src/loading/script/preload/plugins/gui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAElF,OAAO,EAAgC,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,UAAwC;IAC1F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,GAAG,GAAkC,IAAI,CAAC;IAE9C,IAAI,CAAC;QACJ,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,KAAK,YAAY;gBAChB,GAAG,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBACnF,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC/C,MAAM;YACP;gBACC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,6BAA6B,UAAU,CAAC,GAAG,kFAAkF,CAAC,CAAC;QAC7I,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,yBAAyB,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC"}
1
+ {"version":3,"file":"gui.js","sourceRoot":"","sources":["../../../../../../src/loading/script/preload/plugins/gui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAElF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAgC,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,UAAwC;IAC1F,MAAM,IAAI,GAAG,MAAM,YAAY,CAAM,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IAE/E,IAAI,GAAG,GAAkC,IAAI,CAAC;IAE9C,IAAI,CAAC;QACJ,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,KAAK,YAAY;gBAChB,GAAG,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBACnF,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC/C,MAAM;YACP;gBACC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,6BAA6B,UAAU,CAAC,GAAG,kFAAkF,CAAC,CAAC;QAC7I,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,yBAAyB,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2
2
  import { CreateNavigationPluginAsync } from "@babylonjs/addons";
3
+ import { loadFile, loadJsonFile } from "../../../../tools/request";
3
4
  import { registerScriptAssetParser } from "../../preload";
4
5
  export async function preloadNavMeshScriptAsset(parameters) {
5
- const [configResponse, navmeshResponse, tilesResponse] = await Promise.all([
6
- fetch(`${parameters.rootUrl}${parameters.key}/config.json`),
7
- fetch(`${parameters.rootUrl}${parameters.key}/navmesh.bin`),
8
- fetch(`${parameters.rootUrl}${parameters.key}/tilecache.bin`),
6
+ const [config, navmeshData, tilesData] = await Promise.all([
7
+ loadJsonFile(`${parameters.rootUrl}${parameters.key}/config.json`),
8
+ loadFile(`${parameters.rootUrl}${parameters.key}/navmesh.bin`, "arraybuffer"),
9
+ loadFile(`${parameters.rootUrl}${parameters.key}/tilecache.bin`, "arraybuffer"),
9
10
  ]);
10
- const [config, navmeshData, tilesData] = await Promise.all([configResponse.json(), navmeshResponse.arrayBuffer(), tilesResponse.arrayBuffer()]);
11
11
  const [recastCore, recastGenerators] = await Promise.all([import("@recast-navigation/core"), import("@recast-navigation/generators")]);
12
12
  const recast = await CreateNavigationPluginAsync({
13
13
  instance: {
@@ -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,EAAgC,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,UAAwC;IACvF,MAAM,CAAC,cAAc,EAAE,eAAe,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1E,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,cAAc,CAAC;QAC3D,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,cAAc,CAAC;QAC3D,KAAK,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,gBAAgB,CAAC;KAC7D,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEhJ,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":"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"}
@@ -74,7 +74,21 @@ export function registerAudioParser() {
74
74
  const soundAbsolutePath = `${rootUrl}${transformNode.soundRelativePath}`;
75
75
  scene.addPendingData(soundAbsolutePath);
76
76
  if (!cachedSoundBuffers.has(soundAbsolutePath)) {
77
- cachedSoundBuffers.set(soundAbsolutePath, CreateSoundBufferAsync(soundAbsolutePath));
77
+ const promise = new Promise(async (resolve, reject) => {
78
+ if (!scene.offlineProvider) {
79
+ return CreateSoundBufferAsync(soundAbsolutePath)
80
+ .then((buffer) => resolve(buffer))
81
+ .catch((e) => reject(e));
82
+ }
83
+ scene.offlineProvider.loadFile(soundAbsolutePath, (data) => {
84
+ CreateSoundBufferAsync(data)
85
+ .then((buffer) => resolve(buffer))
86
+ .catch((e) => reject(e));
87
+ }, undefined, () => {
88
+ reject(null);
89
+ }, true);
90
+ });
91
+ cachedSoundBuffers.set(soundAbsolutePath, promise);
78
92
  }
79
93
  const promise = cachedSoundBuffers.get(soundAbsolutePath);
80
94
  promise.then((buffer) => {
@@ -1 +1 @@
1
- {"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../src/loading/sound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../src/loading/sound.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { WebRequest } from "@babylonjs/core/Misc/webRequest";
2
+ /**
3
+ * Loads the file located at the given url and returns a promise with its content. The promise is rejected if an error occurs while loading the file.
4
+ * @param url defines the url to load from
5
+ * @param responseType defines the type of response expected ("text", "arraybuffer", or "blob")
6
+ * @param progressCallback defines a callback to call when progress changes
7
+ * @returns a promise with the loaded file content
8
+ */
9
+ export function loadFile(url, responseType, progressCallback) {
10
+ return new Promise((resolve, reject) => {
11
+ const request = new WebRequest();
12
+ request.open("GET", url);
13
+ request.responseType = responseType;
14
+ request.send();
15
+ request.addEventListener("progress", (ev) => {
16
+ progressCallback?.({
17
+ total: ev.total,
18
+ loaded: ev.loaded,
19
+ });
20
+ });
21
+ request.addEventListener("load", () => {
22
+ resolve(responseType === "text" ? request.responseText : request.response);
23
+ });
24
+ request.addEventListener("error", (e) => reject(e));
25
+ });
26
+ }
27
+ /**
28
+ * Loads a JSON file from the given url and returns a promise with its content. The promise is rejected if an error occurs while loading the file or if the loaded content cannot be parsed as JSON.
29
+ * @param url defines the url to load from
30
+ * @param progressCallback defines a callback to call when progress changes
31
+ * @returns a promise with the loaded JSON content
32
+ */
33
+ export async function loadJsonFile(url, progressCallback) {
34
+ const response = await loadFile(url, "text", progressCallback);
35
+ return JSON.parse(response);
36
+ }
37
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/tools/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAS7D;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACvB,GAAW,EACX,YAAe,EACf,gBAAyD;IAEzD,OAAO,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC/D,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzB,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;QACpC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;YAC3C,gBAAgB,EAAE,CAAC;gBAClB,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,MAAM,EAAE,EAAE,CAAC,MAAM;aACjB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YACrC,OAAO,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,GAAW,EAAE,gBAAyD;IAC3G,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAM,CAAC;AAClC,CAAC"}
@@ -34,3 +34,5 @@ export * from "./cinematic/typings";
34
34
  export * from "./cinematic/generate";
35
35
  export * from "./cinematic/guards";
36
36
  export * from "./cinematic/cinematic";
37
+ export * from "./loading/database/indexdb";
38
+ export * from "./loading/database/database";
@@ -0,0 +1,61 @@
1
+ import { IOfflineProvider } from "@babylonjs/core/Offline/IOfflineProvider";
2
+ import { ILoadFileProgressEvent } from "../../tools/request";
3
+ /**
4
+ * Setups offline support for the scene loading using IndexedDB as offline storage.
5
+ * This allows scenes and assets to be loaded from the local database when offline.
6
+ * @param name defines the name of the database to setup
7
+ */
8
+ export declare function setupOfflineProvider(name: string): void;
9
+ /**
10
+ * Creates a database for offline support and opens it.
11
+ * If the database already exists in indexDB, it will be opened and returned. Otherwise, a new database will be created and opened.
12
+ * @param name defines the name of the database to create (if doesn't exists) and open
13
+ * @param urlToScene defines the Url of the scene to load.
14
+ */
15
+ export declare function createAndOpenDatabase(name: string, urlToScene: string): Promise<Database | null>;
16
+ export interface _IFilesObjectStore {
17
+ url: string;
18
+ data: string | ArrayBuffer | Blob;
19
+ }
20
+ export declare class Database implements IOfflineProvider {
21
+ /**
22
+ * Gets a boolean indicating if scene must be saved in the database
23
+ */
24
+ enableSceneOffline: boolean;
25
+ /**
26
+ * Gets a boolean indicating if textures must be saved in the database
27
+ */
28
+ enableTexturesOffline: boolean;
29
+ /**
30
+ * Defines the name of the database.
31
+ */
32
+ readonly name: string;
33
+ private _database;
34
+ private _manifestVersion;
35
+ constructor(name: string, urlToScene: string, callbackManifestChecked: (checked: boolean) => any, disableManifestCheck: boolean);
36
+ private _checkManifest;
37
+ /**
38
+ * Open the offline support and make it available
39
+ * @param successCallback defines the callback to call on success
40
+ * @param errorCallback defines the callback to call on error
41
+ */
42
+ open(successCallback?: () => void, errorCallback?: () => void): Promise<void>;
43
+ /**
44
+ * Loads an image from the offline support
45
+ * @param url defines the url to load from
46
+ * @param image defines the target DOM image
47
+ */
48
+ loadImage(url: string, image: HTMLImageElement): Promise<void>;
49
+ isFileMatchingVersion(url: string): Promise<boolean>;
50
+ /**
51
+ * Loads a file from offline support
52
+ * @param url defines the URL to load from
53
+ * @param sceneLoaded defines a callback to call on success
54
+ * @param progressCallBack defines a callback to call when progress changed
55
+ * @param errorCallback defines a callback to call on error
56
+ * @param useArrayBuffer defines a boolean to use array buffer instead of text string
57
+ */
58
+ loadFile(url: string, sceneLoaded: (data: any) => void, progressCallBack?: (data: ILoadFileProgressEvent) => void, errorCallback?: () => void, useArrayBuffer?: boolean): Promise<void>;
59
+ saveFile(url: string, useArrayBuffer: boolean, progress?: (data: ILoadFileProgressEvent) => void): Promise<void>;
60
+ private _getFileVersionForUrl;
61
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Opens an IndexedDB database with the given name and calls the upgradeNeeded callback if the database needs to be created or upgraded.
3
+ * @param name The name of the database to open
4
+ * @param upgradeNeeded The callback to call if the database needs to be created or upgraded
5
+ */
6
+ export declare function openIndexDB(name: string, upgradeNeeded: (database: IDBDatabase) => void): Promise<IDBDatabase>;
7
+ /**
8
+ * Gets a value from the database for the given store and key.
9
+ * @param database defines the database to get the value from
10
+ * @param storeName defines the name of the store to get the value from
11
+ * @param key defines the key of the value to get
12
+ */
13
+ export declare function getFromIndexDB<T>(database: IDBDatabase, storeName: string, key: string): Promise<T | null>;
14
+ /**
15
+ * Puts a value in the database for the given store and key.
16
+ * @param database defines the database to put the value in
17
+ * @param storeName defines the name of the store to put the value in
18
+ * @param data defines the value to put in the database
19
+ */
20
+ export declare function putInIndexDB<T>(database: IDBDatabase, storeName: string, data: T): Promise<void>;
@@ -0,0 +1,20 @@
1
+ export interface ILoadFileProgressEvent {
2
+ total: number;
3
+ loaded: number;
4
+ }
5
+ export type LoadFileResponseType<T> = T extends "text" ? string : T extends "arraybuffer" ? ArrayBuffer : Blob;
6
+ /**
7
+ * Loads the file located at the given url and returns a promise with its content. The promise is rejected if an error occurs while loading the file.
8
+ * @param url defines the url to load from
9
+ * @param responseType defines the type of response expected ("text", "arraybuffer", or "blob")
10
+ * @param progressCallback defines a callback to call when progress changes
11
+ * @returns a promise with the loaded file content
12
+ */
13
+ export declare function loadFile<T extends "text" | "arraybuffer" | "blob">(url: string, responseType: T, progressCallback?: (data: ILoadFileProgressEvent) => void): Promise<LoadFileResponseType<T>>;
14
+ /**
15
+ * Loads a JSON file from the given url and returns a promise with its content. The promise is rejected if an error occurs while loading the file or if the loaded content cannot be parsed as JSON.
16
+ * @param url defines the url to load from
17
+ * @param progressCallback defines a callback to call when progress changes
18
+ * @returns a promise with the loaded JSON content
19
+ */
20
+ export declare function loadJsonFile<T>(url: string, progressCallback?: (data: ILoadFileProgressEvent) => void): Promise<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylonjs-editor-tools",
3
- "version": "5.4.1-rc.2",
3
+ "version": "5.4.1-rc.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": {