babylonjs-editor-tools 5.4.1-alpha.8 → 5.4.1-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.node.js +1 -1
- package/build/src/index.js +1 -0
- package/build/src/index.js.map +1 -1
- package/build/src/loading/container/container.js +85 -1
- package/build/src/loading/container/container.js.map +1 -1
- package/build/src/loading/container/entries.js +45 -1
- package/build/src/loading/container/entries.js.map +1 -1
- package/build/src/loading/sound.js +101 -2
- package/build/src/loading/sound.js.map +1 -1
- package/build/src/tools/guards.js +7 -0
- package/build/src/tools/guards.js.map +1 -1
- package/build/src/tools/sound.js.map +1 -1
- package/declaration/src/index.d.ts +1 -0
- package/declaration/src/loading/container/container.d.ts +27 -0
- package/declaration/src/loading/container/entries.d.ts +30 -0
- package/declaration/src/loading/sound.d.ts +4 -0
- package/declaration/src/tools/guards.d.ts +6 -0
- package/declaration/src/tools/sound.d.ts +24 -0
- package/package.json +1 -1
package/build/index.node.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var pe=Object.defineProperty;var Kr=Object.getOwnPropertyDescriptor;var kr=Object.getOwnPropertyNames;var zr=Object.prototype.hasOwnProperty;var i=(e,r)=>pe(e,"name",{value:r,configurable:!0});var $r=(e,r)=>{for(var t in r)pe(e,t,{get:r[t],enumerable:!0})},Qr=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of kr(r))!zr.call(e,o)&&o!==t&&pe(e,o,{get:()=>r[o],enumerable:!(n=Kr(r,o))||n.enumerable});return e};var Yr=e=>Qr(pe({},"__esModule",{value:!0}),e);var qn={};$r(qn,{AdvancedAssetContainer:()=>ie,AdvancedAssetContainerInstantiatedEntries:()=>oe,Cinematic:()=>le,NodeParticleSystemSet:()=>Nr.NodeParticleSystemSet,_applyScriptsForObject:()=>R,_preloadScriptsAssets:()=>rt,_registerScriptInstance:()=>it,_removeRegisteredScriptInstance:()=>ye,animationFromSprite:()=>Qn,animationGroupFromScene:()=>vn,applyMeshesLODQuality:()=>De,applyRenderingConfigurationForCamera:()=>Je,applyScriptOnObject:()=>dn,applyShadowsQuality:()=>tn,applyTexturesQuality:()=>hn,componentFromScene:()=>xn,configureEngineToUseCompressedTextures:()=>yn,configureMeshDistanceOrScreenCoverage:()=>Oe,configureShadowMapRefreshRate:()=>ge,configureShadowMapRenderListPredicate:()=>Me,copyAndParseRagdollConfiguration:()=>Xe,createDefaultRenderingPipeline:()=>Ft,createMotionBlurPostProcess:()=>Dt,createSSAO2RenderingPipeline:()=>Tt,createSSRRenderingPipeline:()=>xt,createTAARenderingPipeline:()=>vt,createVLSPostProcess:()=>At,defaultPipelineCameraConfigurations:()=>W,disposeDefaultRenderingPipeline:()=>He,disposeMotionBlurPostProcess:()=>Qe,disposeSSAO2RenderingPipeline:()=>Ke,disposeSSRRenderingPipeline:()=>Fe,disposeTAARenderingPipeline:()=>Ve,disposeVLSPostProcess:()=>we,forceCompileAllSceneMaterials:()=>An,generateCinematicAnimationGroup:()=>Un,getAllScriptsByClassForObject:()=>Ut,getAnimationTypeForObject:()=>ae,getDefaultRenderingPipeline:()=>te,getMotionBlurPostProcess:()=>$e,getPowerOfTwoUntil:()=>w,getSSAO2RenderingPipeline:()=>cn,getSSRRenderingPipeline:()=>on,getScriptByClassForObject:()=>ot,getTAARenderingPipeline:()=>an,getTextureUrl:()=>be,getVLSPostProcess:()=>rn,guiFromAsset:()=>Tn,isAbstractMesh:()=>G,isAnyParticleSystem:()=>Ee,isArcRotateCamera:()=>Ur,isBone:()=>jr,isCamera:()=>ue,isCinematicGroup:()=>Wn,isCinematicKey:()=>gt,isCinematicKeyCut:()=>q,isCinematicKeyEvent:()=>jn,isCinematicSound:()=>Hn,isClusteredLightContainer:()=>fe,isDirectionalLight:()=>Jr,isFreeCamera:()=>Hr,isGPUParticleSystem:()=>en,isGroundMesh:()=>Wr,isHemisphericLight:()=>Xr,isInstancedMesh:()=>X,isLight:()=>dt,isMesh:()=>D,isNode:()=>k,isParticleSystem:()=>ve,isPointLight:()=>qr,isScene:()=>Ie,isSpotLight:()=>Zr,isSprite:()=>Te,isTexture:()=>ee,isTransformNode:()=>K,loadMaterialFromFile:()=>Pn,loadScene:()=>bn,motionBlurPostProcessCameraConfigurations:()=>j,nodeFromDescendants:()=>In,nodeFromScene:()=>Cn,normalizeAtlasJson:()=>at,onKeyboardEvent:()=>zn,onPointerEvent:()=>kn,parseCinematic:()=>Yn,parseCinematicKeyValue:()=>F,parseDefaultRenderingPipeline:()=>qe,parseKeyFrameAnimations:()=>ut,parseMotionBlurPostProcess:()=>je,parseRagdollConfiguration:()=>Kt,parseSSAO2RenderingPipeline:()=>ze,parseSSRRenderingPipeline:()=>_e,parseTAARenderingPipeline:()=>Be,parseVLSPostProcess:()=>Ne,particleSystemFromScene:()=>Dn,playSpriteAnimationFromName:()=>Sn,registerScriptAssetParser:()=>gn,saveRenderingConfigurationForCamera:()=>fn,sceneAsset:()=>En,scriptAssetsCache:()=>O,scriptAssetsParsers:()=>se,scriptsDictionary:()=>N,serializeDefaultRenderingPipeline:()=>Ue,serializeMotionBlurPostProcess:()=>Ye,serializeSSAO2RenderingPipeline:()=>ke,serializeSSRRenderingPipeline:()=>Le,serializeTAARenderingPipeline:()=>Ge,serializeVLSPostProcess:()=>Re,setDefaultRenderingPipelineRef:()=>un,setMotionBlurPostProcessRef:()=>pn,setSSAO2RenderingPipelineRef:()=>mn,setSSRRenderingPipelineRef:()=>sn,setTAARenderingPipelineRef:()=>ln,setVLSPostProcessRef:()=>nn,soundFromScene:()=>On,spriteFromSpriteManager:()=>$n,ssaoRenderingPipelineCameraConfigurations:()=>Y,ssrRenderingPipelineCameraConfigurations:()=>$,taaRenderingPipelineCameraConfigurations:()=>Q,visibleAsAsset:()=>Kn,visibleAsBoolean:()=>Mn,visibleAsColor3:()=>Ln,visibleAsColor4:()=>_n,visibleAsEntity:()=>Vn,visibleAsKeyMap:()=>Bn,visibleAsNumber:()=>Rn,visibleAsString:()=>wn,visibleAsTexture:()=>Gn,visibleAsVector2:()=>Nn,visibleAsVector3:()=>Fn,vlsPostProcessCameraConfigurations:()=>z});module.exports=Yr(qn);function G(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(G,"isAbstractMesh");function D(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(D,"isMesh");function X(e){return e.getClassName?.()==="InstancedMesh"}i(X,"isInstancedMesh");function jr(e){return e.getClassName?.()==="Bone"}i(jr,"isBone");function Wr(e){return e.getClassName?.()==="GroundMesh"}i(Wr,"isGroundMesh");function K(e){return e.getClassName?.()==="TransformNode"}i(K,"isTransformNode");function ee(e){return e?.getClassName?.()==="Texture"}i(ee,"isTexture");function ue(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(ue,"isCamera");function Hr(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(Hr,"isFreeCamera");function Ur(e){return e.getClassName?.()==="ArcRotateCamera"}i(Ur,"isArcRotateCamera");function qr(e){return e.getClassName?.()==="PointLight"}i(qr,"isPointLight");function Jr(e){return e.getClassName?.()==="DirectionalLight"}i(Jr,"isDirectionalLight");function Zr(e){return e.getClassName?.()==="SpotLight"}i(Zr,"isSpotLight");function Xr(e){return e.getClassName?.()==="HemisphericLight"}i(Xr,"isHemisphericLight");function dt(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(dt,"isLight");function fe(e){return e.getClassName?.()==="ClusteredLightContainer"}i(fe,"isClusteredLightContainer");function k(e){return G(e)||K(e)||dt(e)||ue(e)}i(k,"isNode");function Ie(e){return e.getClassName?.()==="Scene"}i(Ie,"isScene");function ve(e){return e.getClassName?.()==="ParticleSystem"}i(ve,"isParticleSystem");function en(e){return e.getClassName?.()==="GPUParticleSystem"}i(en,"isGPUParticleSystem");function Ee(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(Ee,"isAnyParticleSystem");function Te(e){return e.getClassName?.()==="Sprite"}i(Te,"isSprite");function Oe(e){e.meshes.forEach(r=>{D(r)&&r.getLODLevels().forEach(t=>{t.mesh&&(t.mesh.originalDistanceOrScreenCoverage=t.distanceOrScreenCoverage)})})}i(Oe,"configureMeshDistanceOrScreenCoverage");function De(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(De,"applyMeshesLODQuality");function w(e){let r=1;for(;r<=e;)r<<=1;return r>>1}i(w,"getPowerOfTwoUntil");var yt=require("babylonjs"),ht=require("babylonjs");function Me(e){e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=n=>yt.Vector3.Distance(n.getAbsolutePosition(),r.getAbsolutePosition())<=r.range)})}i(Me,"configureShadowMapRenderListPredicate");async function ge(e){e.executeWhenReady(()=>{e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=r.metadata?.refreshRate??ht.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(ge,"configureShadowMapRefreshRate");function tn(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,w(s)),o?.getSize().width!==s&&o.resize(s)}}),ge(r)}i(tn,"applyShadowsQuality");var St=require("babylonjs"),bt=require("babylonjs"),Pt=require("babylonjs"),I=null,z=new Map;function rn(){return I}i(rn,"getVLSPostProcess");function nn(e){I=e}i(nn,"setVLSPostProcessRef");function we(e){I&&e.activeCamera&&(I.dispose(e.activeCamera),I=null)}i(we,"disposeVLSPostProcess");function At(e,r){return r??=e.meshes.find(t=>D(t)),I=new Pt.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,r,100,bt.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),I}i(At,"createVLSPostProcess");function Re(){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(Re,"serializeVLSPostProcess");function Ne(e,r){let t=null;if(r.meshId){let o=e.getMeshById(r.meshId);o&&D(o)&&(t=o)}let n=At(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(St.Vector3.FromArray(r.customMeshPosition)),n}i(Ne,"parseVLSPostProcess");var Ct=require("babylonjs"),b=null,$=new Map;function on(){return b}i(on,"getSSRRenderingPipeline");function sn(e){b=e}i(sn,"setSSRRenderingPipelineRef");function Fe(){b&&(b.dispose(),b=null)}i(Fe,"disposeSSRRenderingPipeline");function xt(e,r){return b=new Ct.SSRRenderingPipeline("SSRRenderingPipeline",e,[r]),b.samples=4,b}i(xt,"createSSRRenderingPipeline");function Le(){return b?{samples:b.samples,step:b.step,thickness:b.thickness,strength:b.strength,reflectionSpecularFalloffExponent:b.reflectionSpecularFalloffExponent,maxSteps:b.maxSteps,maxDistance:b.maxDistance,roughnessFactor:b.roughnessFactor,reflectivityThreshold:b.reflectivityThreshold,blurDispersionStrehgth:b.blurDispersionStrength,clipToFrustum:b.clipToFrustum,enableSmoothReflections:b.enableSmoothReflections,enableAutomaticThicknessComputation:b.enableAutomaticThicknessComputation,attenuateFacingCamera:b.attenuateFacingCamera,attenuateScreenBorders:b.attenuateScreenBorders,attenuateIntersectionDistance:b.attenuateIntersectionDistance,attenuateBackfaceReflection:b.attenuateBackfaceReflection,blurDownsample:b.blurDownsample,selfCollisionNumSkip:b.selfCollisionNumSkip,ssrDownsample:b.ssrDownsample,backfaceDepthTextureDownsample:b.backfaceDepthTextureDownsample}:null}i(Le,"serializeSSRRenderingPipeline");function _e(e,r,t){if(b)return b;let n=xt(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(_e,"parseSSRRenderingPipeline");var It=require("babylonjs"),v=null,Q=new Map;function an(){return v}i(an,"getTAARenderingPipeline");function ln(e){v=e}i(ln,"setTAARenderingPipelineRef");function Ve(){v&&(v.dispose(),v=null)}i(Ve,"disposeTAARenderingPipeline");function vt(e,r){return v=new It.TAARenderingPipeline("TAARenderingPipeline",e,[r]),v.samples=4,v}i(vt,"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 Be(e,r,t){if(v)return v;let n=vt(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(Be,"parseTAARenderingPipeline");var Et=require("babylonjs"),P=null,Y=new Map;function cn(){return P}i(cn,"getSSAO2RenderingPipeline");function mn(e){P=e}i(mn,"setSSAO2RenderingPipelineRef");function Ke(){P&&(P.dispose(),P=null)}i(Ke,"disposeSSAO2RenderingPipeline");function Tt(e,r){return P=new Et.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[r]),P.samples=4,P}i(Tt,"createSSAO2RenderingPipeline");function ke(){return P?{radius:P.radius,totalStrength:P.totalStrength,samples:P.samples,maxZ:P.maxZ,minZAspect:P.minZAspect,epsilon:P.epsilon,textureSamples:P.textureSamples,bypassBlur:P.bypassBlur,bilateralSamples:P.bilateralSamples,bilateralSoften:P.bilateralSoften,bilateralTolerance:P.bilateralTolerance,expensiveBlur:P.expensiveBlur}:null}i(ke,"serializeSSAO2RenderingPipeline");function ze(e,r,t){if(P)return P;let n=Tt(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(ze,"parseSSAO2RenderingPipeline");var Ot=require("babylonjs"),E=null,j=new Map;function $e(){return E}i($e,"getMotionBlurPostProcess");function pn(e){E=e}i(pn,"setMotionBlurPostProcessRef");function Qe(){E&&(E.dispose(),E=null)}i(Qe,"disposeMotionBlurPostProcess");function Dt(e,r){return E=new Ot.MotionBlurPostProcess("MotionBlurPostProcess",e,1,r),E.motionStrength=1,E.isObjectBased=!0,E}i(Dt,"createMotionBlurPostProcess");function Ye(){return E?{isObjectBased:E.isObjectBased,motionStrength:E.motionStrength,motionBlurSamples:E.motionBlurSamples}:null}i(Ye,"serializeMotionBlurPostProcess");function je(e,r,t){if(E)return E;let n=Dt(e,r);return n.isObjectBased=t.isObjectBased,n.motionStrength=t.motionStrength,n.motionBlurSamples=t.motionBlurSamples,n}i(je,"parseMotionBlurPostProcess");var Mt=require("babylonjs"),We=require("babylonjs"),wt=require("babylonjs"),Rt=require("babylonjs"),Nt=require("babylonjs"),m=null,W=new Map;function te(){return m}i(te,"getDefaultRenderingPipeline");function un(e){m=e}i(un,"setDefaultRenderingPipelineRef");function He(){m&&(m.dispose(),m=null)}i(He,"disposeDefaultRenderingPipeline");function Ft(e,r){return m=new Nt.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[r]),m.samples=4,m.depthOfField.lensSize=512,m.depthOfField.fStop=.25,m.depthOfField.focusDistance=55e3,m}i(Ft,"createDefaultRenderingPipeline");function Ue(){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(Ue,"serializeDefaultRenderingPipeline");function qe(e,r,t,n){if(m)return m;let o=Ft(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=Mt.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 Rt.ColorGradingTexture(l,e),s.level=t.colorGradingTexture.level}else{let l=wt.Texture.Parse(t.colorGradingTexture,e,n);ee(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=We.Vector2.FromArray(t.direction??[0,0]),o.chromaticAberration.centerPosition=We.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(qe,"parseDefaultRenderingPipeline");function fn(e){Y.set(e,ke()),z.set(e,Re()),$.set(e,Le()),j.set(e,Ye()),W.set(e,Ue()),Q.set(e,Ge())}i(fn,"saveRenderingConfigurationForCamera");function Je(e,r,t){Ke(),we(e.getScene()),Fe(),Qe(),He(),Ve();let n=Y.get(e);n&&!t?.ssao2Disabled&&ze(e.getScene(),e,n);let o=z.get(e);o&&!t?.vlsDisabled&&Ne(e.getScene(),o);let s=$.get(e);s&&!t?.ssrDisabled&&_e(e.getScene(),e,s);let l=j.get(e);l&&!t?.motionBlurDisabled&&je(e.getScene(),e,l);let f=W.get(e);f&&!t?.defaultPipelineDisabled&&qe(e.getScene(),e,f,r);let a=Q.get(e);a&&!t?.taaDisabled&&Be(e.getScene(),e,a)}i(Je,"applyRenderingConfigurationForCamera");var re=require("babylonjs"),Lt=require("babylonjs");function _t(e){let r=e.metadata?.physicsAggregate;if(!r)return;let t;D(e)?t=e:X(e)&&(t=e.sourceMesh);let n=new Lt.PhysicsAggregate(e,r.shape.type,{mesh:t,mass:r.massProperties.mass});n.body.setMassProperties({mass:r.massProperties.mass,inertia:r.massProperties.inertia?re.Vector3.FromArray(r.massProperties.inertia):void 0,centerOfMass:r.massProperties.centerOfMass?re.Vector3.FromArray(r.massProperties.centerOfMass):void 0,inertiaOrientation:r.massProperties.inertiaOrientation?re.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(_t,"configurePhysicsAggregate");function Vt(e,r){(Array.isArray(r)?r:[]).forEach(n=>{let o=e.getCameraById(n.cameraId);o&&(n.ssao2RenderingPipeline&&Y.set(o,n.ssao2RenderingPipeline),n.vlsPostProcess&&z.set(o,n.vlsPostProcess),n.ssrRenderingPipeline&&$.set(o,n.ssrRenderingPipeline),n.motionBlurPostProcess&&j.set(o,n.motionBlurPostProcess),n.defaultRenderingPipeline&&W.set(o,n.defaultRenderingPipeline),n.taaRenderingPipeline&&Q.set(o,n.taaRenderingPipeline))})}i(Vt,"applyRenderingConfigurations");function de(e,r){let t=r.soundTracks??[];t.length||t.push(r.mainSoundTrack);for(let n=0,o=t.length;n<o;n++){let s=t[n].soundCollection.find(l=>l.id===e);if(s)return s}return null}i(de,"getSoundById");function Gt(e,r){let t=r.getNodeByName(e);if(t)return t;let n=r.lights.filter(o=>fe(o));for(let o of n){let s=o.lights.find(l=>l.name===e);if(s)return s}return null}i(Gt,"getNodeByName");function ne(e,r){let t=r.getNodeById(e);if(t)return t;let n=r.lights.filter(o=>fe(o));for(let o of n){let s=o.lights.find(l=>l.id===e);if(s)return s}return null}i(ne,"getNodeById");var B=require("babylonjs"),Bt=require("babylonjs");function Ze(e){let r=Bt.Vector3.FromArray(e);return r.equals(B.Axis.X)?B.Axis.X:r.equals(B.Axis.Y)?B.Axis.Y:r.equals(B.Axis.Z)?B.Axis.Z:r}i(Ze,"parseAxis");function Kt(e){return e.runtimeConfiguration.forEach(r=>{r.rotationAxis&&(r.rotationAxis=Ze(r.rotationAxis)),r.boneOffsetAxis&&(r.boneOffsetAxis=Ze(r.boneOffsetAxis))}),e}i(Kt,"parseRagdollConfiguration");function Xe(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 Kt(r)}i(Xe,"copyAndParseRagdollConfiguration");function et(e){return e&&JSON.parse(JSON.stringify(e))}i(et,"cloneJSObject");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((G(o)||K(o)&&!o.isWorldMatrixFrozen)&&o.freezeWorldMatrix(),G(o)){let s=o.material;s&&!s.isFrozen&&!r.has(s)&&(r.add(s),s.onBindObservable.addOnce(()=>{s.freeze()}))}})}})}i(H,"configureTransformNodes");var oe=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()}getNodeByName(r){for(let t of this.entries.rootNodes){let n=this._recursivelyGetNodeByName(`${r}-${this.namingId}`,t);if(n)return n}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}};var tt=require("babylonjs"),ie=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:et(o.metadata)})})}removeDefault(){this.container.getNodes().forEach(r=>{N.get(r)?.forEach(n=>{ye(r,n)})}),this.container.removeAllFromScene()}instantiate(r){let t=tt.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 oe(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 f=[];return o.rootNodes.forEach(a=>{f.push(a,...a.getDescendants(!1))}),f.forEach(a=>{let c=a.name.split("@editor-tools@"),p=c[1].split("_").pop();a.name=`${c[0]}-${t}`;let g=this._originalDescendants.find(y=>y.id===p);a.id=tt.Tools.RandomId(),a.metadata=et(this._nodesMap.get(g).metadata),f.forEach(y=>{y.metadata.scripts?.forEach(u=>{Object.keys(u.values||{}).forEach(d=>{let S=u.values[d];if(S.type==="entity"){S.value===p&&(S.value=a.id),S.value===g.name&&(S.value=a.name);let x=this._animationGroupsMap.get(S.value);x&&(S.value=`${x.name}-${t}`)}})})})}),f.forEach(a=>{R(this.container.scene,a,this._scriptsMap,this._rootUrl)}),H(this.container.scene),s}};var kt=require("babylonjs"),zt=require("babylonjs");async function $t(e,r,t){let o=e.split("/").pop().replace(".scene",".babylon"),s=await(0,zt.LoadAssetContainerAsync)(o,t,{rootUrl:r,pluginExtension:".babylon"});return kt.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(l=>D(l)&&l._checkDelayState()),s.addAllToScene(),H(t),s}i($t,"preloadSceneScriptAsset");async function Qt(e,r){return await(await fetch(`${r}${e}`)).json()}i(Qt,"preloadCommonScriptAsset");var O=new Map,se=new Map;function gn(e,r){se.has(e)&&console.warn(`A parser for the extension '${e}' was already registered. It will be overwritten.`),se.set(e,r)}i(gn,"registerScriptAssetParser");async function rt(e,r,t){[r,...r.transformNodes,...r.meshes,...r.lights,...r.cameras].filter(f=>f.metadata?.scripts?.length).map(f=>f.metadata.scripts).flat().forEach(f=>{if(t[f.key]?.default?._SceneAssets?.forEach(c=>{O.get(c.sceneName)||O.set(c.sceneName,null)}),f.values)for(let c in f.values){if(!f.values.hasOwnProperty(c))continue;let p=f.values[c];p.type==="asset"&&p.value&&!O.get(p.value)&&O.set(p.value,null)}});let s=0;for(let f of O.values())f===null&&++s;if(s===0)return s;let l=[];return O.forEach((f,a)=>{O.get(a)||l.push(new Promise(async c=>{try{let p=a.split(".").pop();switch(p){case"scene":O.set(a,new ie(await $t(a,e,r),e,t));break;default:if(se.has(p)){let g=se.get(p);O.set(a,await g({key:a,rootUrl:e,scene:r}));break}else O.set(a,await Qt(a,e));break}}catch(p){console.error(p)}c()}))}),await Promise.all(l),s}i(rt,"_preloadScriptsAssets");var Yt=require("babylonjs"),he=require("babylonjs"),jt=require("babylonjs"),Se=require("babylonjs"),Wt=require("babylonjs"),Ht=require("babylonjs-gui");function nt(e,r,t,n,o){let s=n.constructor;if(!s)return;s._NodesFromScene?.forEach(a=>{n[a.propertyKey.toString()]=Gt(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 y=ot(g,a.componentConstructor);y&&c.push(y)}),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=e.getSoundByName?.(a.soundName);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(),y=Ht.AdvancedDynamicTexture.CreateFullscreenUI(g.name,!0,e);y.parseSerializedObject(g.content,!1),n[a.propertyKey.toString()]=y,a.onGuiCreated?.(n,y)}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]=Se.Vector2.FromArray(g);break;case"vector3":n[c]=Se.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":n[c]=ne(g,e)??null;break;case"animationGroup":n[c]=e.getAnimationGroupByName(g)??null;break;case"sound":n[c]=de(g,e);break;case"particleSystem":n[c]=e.particleSystems?.find(u=>u.id===g)??null;break}break;case"texture":g&&(n[c]=jt.Texture.Parse(g,e,o));break;case"asset":if(g){let u=a.configuration.assetType,h=O.get(g);switch(u){case"json":case"gui":case"scene":case"navmesh":n[c]=h;break;case"ragdoll":n[c]=Xe(h);break;case"nodeParticleSystemSet":let d=Wt.NodeParticleSystemSet.Parse(h);n[c]=d;break;case"material":n[c]=Yt.Material.Parse(h,e,o);break}}}}});let l=null,f=null;if(s._PointerEvents?.length){if(s._PointerEvents.find(p=>p.options.mode==="attachedMeshOnly")&&!G(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(y=>{if(!y.eventTypes.includes(p.type))return;let u=y.propertyKey.toString();if(y.options.mode==="global")return n[u]?.(p);g=p.pickInfo,g||(g=e.pick(e.pointerX,e.pointerY,d=>d.isVisible&&d.isPickable&&d.isEnabled(!0)&&!d._masterMesh,!1));let h=g.pickedMesh;if(h&&(y.options.mode==="attachedMeshOnly"&&h===r||y.options.mode==="includeDescendants"&&k(r)&&[r,...r.getDescendants(!1)].find(x=>x===h)))return n[u]?.(p)})})}if(s._KeyboardEvents?.length&&(f=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(!K(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(!Te(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:f}}}i(nt,"applyDecorators");function R(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,f={};if(s.default){l=new s.default(r);let a=nt(e,r,o,l,n);Object.assign(f,a?.observers??{})}l.onStart&&(f.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>l.onStart(r))),l.onUpdate&&(f.onUpdateObserver=e.onBeforeRenderObservable.add(()=>l.onUpdate(r))),it(r,l,o.key,f)}),r.metadata.scripts=void 0)}i(R,"_applyScriptsForObject");function dn(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 nt(t,e,{values:{}},n,""),n.onStart&&(o.onStartObserver=t.onBeforeRenderObservable.addOnce(()=>n.onStart())),n.onUpdate&&t.onBeforeRenderObservable.add(()=>n.onUpdate()),it(e,n,"runtime",o),n}i(dn,"applyScriptOnObject");var N=new Map;function it(e,r,t,n){let o={key:t,observers:n,instance:r};N.has(e)?N.get(e).push(o):N.set(e,[o]),(k(e)||Ee(e)||Ie(e))&&e.onDisposeObservable.addOnce((()=>{N.get(e)?.slice()?.forEach(l=>{ye(e,l)}),N.delete(e)}))}i(it,"_registerScriptInstance");function ye(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(ye,"_removeRegisteredScriptInstance");function Ut(e,r){return N.get(e)?.filter(o=>o.instance.constructor===r)?.map(o=>o.instance)??null}i(Ut,"getAllScriptsByClassForObject");function ot(e,r){return Ut(e,r)?.[0]??null}i(ot,"getScriptByClassForObject");var Jt=require("babylonjs"),qt=!1;function Zt(){qt||(qt=!0,(0,Jt.AddParser)("AudioEditorPlugin",(e,r,t,n)=>{e.sounds?.forEach(o=>{let s=t.sounds?.find(l=>l.name===o.name);s&&(s.id=o.id,s.uniqueId=o.uniqueId,r.onBeforeRenderObservable.addOnce(()=>{try{s.spatialSound=o.spatialSound}catch{}}))})}))}i(Zt,"registerAudioParser");function yn(e){e.setCompressedTextureExclusions([".env",".hdr",".dds"]),e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(yn,"configureEngineToUseCompressedTextures");function hn(e,r,t){r.loadingTexturesQuality!==e&&(r.loadingTexturesQuality=e,r.textures.forEach(n=>{if(!ee(n)||!n.url)return;let o=be(n,r);!o||n.url.includes(o)||n.updateURL(t+o)}))}i(hn,"applyTexturesQuality");function be(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===w(t)||n===w(n),s="";switch(r.loadingTexturesQuality){case"medium":let y=t*.66>>0,u=n*.66>>0;o&&(y=w(y),u=w(u)),s=`_${y}_${u}`;break;case"low":case"very-low":let h=t*.33>>0,d=n*.33>>0;o&&(h=w(h),d=w(d)),s=`_${h}_${d}`;break}let l=e.name;if(!l||!s)return e.name;let f=l.split("/"),a=f.pop();if(!a)return e.name;let c=a.split(".").pop(),g=`${a.replace(`.${c}`,"")}${s}.${c}`;return f.push(g),f.join("/")}i(be,"getTextureUrl");var st=require("babylonjs"),Xt=!1;function er(){if(Xt)return;Xt=!0;let e=st.SerializationHelper._TextureParser;st.SerializationHelper._TextureParser=(r,t,n)=>{let o=be(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(er,"registerTextureParser");var rr=require("babylonjs"),Pe=require("babylonjs"),tr=!1;function nr(){if(tr)return;tr=!0;let e=(0,Pe.GetParser)(rr.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,Pe.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,w(l.mapSize))}}),e?.(r,t,n,o),t.lights.forEach(l=>{let f=l.getShadowGenerator();if(f?.getShadowMap()){let c=f.id,p=s.get(c);p&&(f.originalMapSize=p)}})})}i(nr,"registerShadowGeneratorParser");var ir=require("babylonjs"),sr=require("babylonjs"),or=!1;function ar(){or||(or=!0,(0,sr.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 ir.WebRequest;g.responseType="arraybuffer",g.open("GET",p),g.send(),a.push(new Promise(y=>{g.addEventListener("load",()=>{r.removePendingData(p),y(g.response)})}))}),Promise.all(a).then(c=>{for(let p=0,g=l.numTargets;p<g;++p){let y=l.getTarget(p),u=o.targets[p],h=c[p];if(u.positionsCount){let d=new Float32Array(h,u.positionsOffset,u.positionsCount);y._positions=d,y.setPositions(d)}if(u.normalsCount){let d=new Float32Array(h,u.normalsOffset,u.normalsCount);y._normals=d,y.setNormals(d)}if(u.tangentsCount){let d=new Float32Array(h,u.tangentsOffset,u.tangentsCount);y._tangents=d,y.setTangents(d)}if(u.uvsCount){let d=new Float32Array(h,u.uvsOffset,u.uvsCount);y._uvs=d,y.setUVs(d)}if(u.uv2sCount){let d=new Float32Array(h,u.uv2sOffset,u.uv2sCount);y._uv2s=d,y.setUV2s(d)}}for(let p=0,g=l.numTargets;p<g;++p)l.getTarget(p)._onDataLayoutChanged.notifyObservers()})})}))}i(ar,"registerMorphTargetManagerParser");var lr=require("babylonjs");function cr(e,r){let t=e.metadata?.clusteredLight;return t&&(t.lights.length>0&&(r??=new lr.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(cr,"configureLights");function at(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(at,"normalizeAtlasJson");function Sn(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(Sn,"playSpriteAnimationFromName");var pr=require("babylonjs"),ur=require("babylonjs"),fr=require("babylonjs"),gr=require("babylonjs"),lt=require("babylonjs"),U=require("babylonjs"),dr=require("babylonjs"),mr=!1;function yr(){mr||(mr=!0,(0,dr.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 f=new fr.WebRequest;f.open("GET",l),f.send(),f.addEventListener("load",()=>{r.removePendingData(l);let a=JSON.parse(f.responseText);at(a);let c=`${pr.Tools.GetFolderPath(l)}${a.meta.image}`,p=new lt.Texture(c,r,!1,!1,lt.Texture.NEAREST_NEAREST,null,null,null,!1,ur.Engine.TEXTUREFORMAT_RGBA),g=new gr.SpriteMap(s.name,a,p,{layerCount:o.options.layerCount,stageSize:U.Vector2.FromArray(o.options.stageSize??[10,1]),outputSize:U.Vector2.FromArray(o.options.outputSize??[100,100]),colorMultiply:U.Vector3.FromArray(o.options.colorMultiply??[1,1,1]),flipU:!0},r);o.tiles.forEach(u=>{for(let h=0,d=u.repeatCount.x+1;h<d;++h)for(let S=0,x=u.repeatCount.y+1;S<x;++S){let M=h*(u.repeatOffset.x+1),T=S*(u.repeatOffset.y+1);g.changeTiles(u.layer,new U.Vector2(u.position.x+M,(g.options.stageSize?.y??0)-1-u.position.y-T),u.tile)}});let y=g._output;y.parent=s,s.spriteMap=g})})}))}i(yr,"registerSpriteMapParser");var br=require("babylonjs"),Pr=require("babylonjs"),Ar=require("babylonjs"),ct=require("babylonjs"),Cr=require("babylonjs");function hr(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=Pr.Sprite.Parse(t,e);n.uniqueId=t.uniqueId,n.metadata=t.metadata}}i(hr,"parseSerializedSpriteManager");var Sr=!1;function xr(){Sr||(Sr=!0,(0,Cr.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 f=new Ar.WebRequest;f.open("GET",l),f.send(),f.addEventListener("load",()=>{r.removePendingData(l);let a=JSON.parse(f.responseText),c=`${br.Tools.GetFolderPath(l)}${a.meta.image}`,p=new ct.SpriteManager(s.name,c,1e3,64,r,void 0,void 0,!0,a);s.spriteManager=p,o.spriteManager&&hr(p,o.spriteManager)})}else if(o.spriteManager?.textureUrl){let l=`${n}${o.spriteManager.textureUrl}`,f=new ct.SpriteManager(s.name,l,1e3,{width:o.spriteManager.cellWidth,height:o.spriteManager.cellHeight},r,void 0,void 0,!1);s.spriteManager=f,o.spriteManager&&hr(f,o.spriteManager)}}})}))}i(xr,"registerSpriteManagerParser");var vr=require("babylonjs"),Er=require("babylonjs"),Ir=!1;function Tr(){Ir||(Ir=!0,(0,vr.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=Er.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(f=>{if(ve(f)){let a=f._sizeCreation.process;a&&(f._sizeCreation.process=(c,p)=>{a(c,p),c.scale.x*=100,c.scale.y*=100})}}),l.emitterNode=s,l.start()}))})}))}i(Tr,"registerNodeParticleSystemSetParser");var Dr=require("babylonjs"),mt=require("babylonjs"),Mr=require("babylonjs"),wr=require("babylonjs"),Or=new Map;async function bn(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,Zt(),er(),nr(),ar(),yr(),xr(),Tr();let s=Or.get(t)??{};if(Or.set(t,s),await(0,Mr.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 rt(e,t,n);while(a!==0)}wr.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(a=>D(a)&&a._checkDelayState());let l=cr(t,s.clusteredLightContainer);s.clusteredLightContainer=l;let f=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(c=>setTimeout(c,150));let a=f-t.getWaitingItemsCount();a===f&&t.textures.forEach(c=>{c.delayLoadState===mt.Constants.DELAYLOADSTATE_NONE&&(c.delayLoadState=mt.Constants.DELAYLOADSTATE_LOADED)}),o?.onProgress?.(.5+a/f*.5)}o?.onProgress?.(1),Oe(t),De(t.loadingLodsQuality,t),Me(t),ge(t),t.metadata?.rendering&&(Vt(t,t.metadata.rendering),t.activeCamera&&Je(t.activeCamera,e,o?.postProcessConfiguration)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(Dr.Vector3.FromArray(t.metadata?.physicsGravity)),R(t,t,n,e),t.transformNodes.forEach(a=>{R(t,a,n,e)}),t.meshes.forEach(a=>{_t(a),R(t,a,n,e)}),t.lights.forEach(a=>{R(t,a,n,e)}),t.cameras.forEach(a=>{R(t,a,n,e)}),t.spriteManagers?.forEach(a=>{a.sprites.forEach(c=>{R(t,c,n,e)})}),H(t)}i(bn,"loadScene");var Rr=require("babylonjs");async function Pn(e,r,t){let o=await(await fetch(e+r)).json(),l=Rr.Tools.Instantiate(o.customType).Parse(o,t,e);return l.id=o.id,l.uniqueId=o.uniqueId,l}i(Pn,"loadMaterialFromFile");function An(e){return Promise.all(e.materials.map(async r=>{let t=r.getBindedMeshes();await Promise.all(t.map(async n=>{X(n)||await r.forceCompilationAsync(n,{clipPlane:!!e.clipPlane,useInstances:n.hasInstances})}))}))}i(An,"forceCompileAllSceneMaterials");var _=require("babylonjs");function ae(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(ae,"getAnimationTypeForObject");var Nr=require("babylonjs");function Cn(e){return function(r,t){let n=r.constructor;n._NodesFromScene??=[],n._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(Cn,"nodeFromScene");function xn(e){return function(r,t){let n=r.constructor;n._ComponentsFromScene??=[],n._ComponentsFromScene.push({propertyKey:t,componentConstructor:e})}}i(xn,"componentFromScene");function In(e,r=!1){return function(t,n){let o=t.constructor;o._NodesFromDescendants??=[],o._NodesFromDescendants.push({propertyKey:n,nodeName:e,directDescendantsOnly:r})}}i(In,"nodeFromDescendants");function vn(e){return function(r,t){let n=r.constructor;n._AnimationGroups??=[],n._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(vn,"animationGroupFromScene");function En(e){return function(r,t){let n=r.constructor;n._SceneAssets??=[],n._SceneAssets.push({sceneName:e,propertyKey:t})}}i(En,"sceneAsset");function Tn(e,r){return function(t,n){let o=t.constructor;o._GuiFromAsset??=[],o._GuiFromAsset.push({propertyKey:n,pathInAssets:e,onGuiCreated:r})}}i(Tn,"guiFromAsset");function On(e){return function(r,t){let n=r.constructor;n._SoundsFromScene??=[],n._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(On,"soundFromScene");function Dn(e,r=!1){return function(t,n){let o=t.constructor;o._ParticleSystemsFromScene??=[],o._ParticleSystemsFromScene.push({propertyKey:n,particleSystemName:e,directDescendantsOnly:r})}}i(Dn,"particleSystemFromScene");function Mn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"boolean"}})}}i(Mn,"visibleAsBoolean");function wn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"string"}})}}i(wn,"visibleAsString");function Rn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"number"}})}}i(Rn,"visibleAsNumber");function Nn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"vector2"}})}}i(Nn,"visibleAsVector2");function Fn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"vector3"}})}}i(Fn,"visibleAsVector3");function Ln(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"color3"}})}}i(Ln,"visibleAsColor3");function _n(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"color4"}})}}i(_n,"visibleAsColor4");function Vn(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(Vn,"visibleAsEntity");function Gn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"texture"}})}}i(Gn,"visibleAsTexture");function Bn(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"keymap"}})}}i(Bn,"visibleAsKeyMap");function Kn(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(Kn,"visibleAsAsset");function kn(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(kn,"onPointerEvent");function zn(e){return function(r,t){let n=r.constructor;n._KeyboardEvents??=[],n._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(zn,"onKeyboardEvent");function $n(e){return function(r,t){let n=r.constructor;n._SpritesFromSpriteManager??=[],n._SpritesFromSpriteManager.push({propertyKey:t,spriteName:e})}}i($n,"spriteFromSpriteManager");function Qn(e){return function(r,t){let n=r.constructor;n._AnimationsFromSprite??=[],n._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(Qn,"animationFromSprite");var Ae=require("babylonjs");function _p(e,r){let t;return e===Ae.Animation.ANIMATIONTYPE_FLOAT?t=r.value:t=r.value.clone(),{value:t,frame:r.frame,interpolation:r.interpolation,inTangent:e===Ae.Animation.ANIMATIONTYPE_FLOAT?r.inTangent:r.inTangent?.clone(),outTangent:e===Ae.Animation.ANIMATIONTYPE_FLOAT?r.outTangent:r.outTangent?.clone()}}i(_p,"cloneKey");function Ce(e,r){let t=r.split("."),n=e;for(let o=0;o<t.length;++o)n=n[t[o]];return n}i(Ce,"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"),xe=require("babylonjs"),L=require("babylonjs");function Yn(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=ne(t.node,r),n||(n=r.particleSystems?.find(l=>l.id===t.node)??null)):t.defaultRenderingPipeline&&(n=te()),t.propertyPath){let l=Ce(n,t.propertyPath);o=ae(l)}let s=null;return t.sound&&(s=de(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:ut(t.soundVolume??[],V.Animation.ANIMATIONTYPE_FLOAT),keyFrameEvents:t.keyFrameEvents?.map(l=>{let f={...l};switch(l.data?.type){case"set-enabled":f.data={type:"set-enabled",value:l.data.value,node:ne(l.data.node,r)};break;case"apply-impulse":f.data={type:"apply-impulse",radius:l.data.radius,mesh:r.getMeshById(l.data.mesh),force:L.Vector3.FromArray(l.data.force),contactPoint:L.Vector3.FromArray(l.data.contactPoint)};break}return f}),keyFrameAnimations:n&&o!==null&&ut(t.keyFrameAnimations??[],o)}})}}i(Yn,"parseCinematic");function F(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 L.Vector2.FromArray(e);case V.Animation.ANIMATIONTYPE_VECTOR3:return L.Vector3.FromArray(e);case V.Animation.ANIMATIONTYPE_QUATERNION:return L.Quaternion.FromArray(e);case V.Animation.ANIMATIONTYPE_COLOR3:return xe.Color3.FromArray(e);case V.Animation.ANIMATIONTYPE_COLOR4:return xe.Color4.FromArray(e);case V.Animation.ANIMATIONTYPE_MATRIX:return L.Matrix.FromArray(e)}}i(F,"parseCinematicKeyValue");function ut(e,r){return e?.map(t=>{let n=t.type==="key"?t:null;if(n)return{...n,value:F(n.value,r),inTangent:F(n.inTangent,r),outTangent:F(n.outTangent,r)};let o=t.type==="cut"?t:null;if(o)return{...o,key1:{...o.key1,value:F(o.key1.value,r),inTangent:F(o.key1.inTangent,r),outTangent:F(o.key1.outTangent,r)},key2:{...o.key2,value:F(o.key2.value,r),inTangent:F(o.key2.inTangent,r),outTangent:F(o.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${t.type}`)})}i(ut,"parseKeyFrameAnimations");function Fr(e,r){e.onEventObservable.notifyObservers(r.eventName)}i(Fr,"handleApplyEvent");function Lr(e){e.node?.setEnabled(e.value)}i(Lr,"handleSetEnabledEvent");var ft=require("babylonjs"),_r=ft.Vector3.Zero();function Vr(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 ft.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(_r),n.physicsAggregate.body.setAngularVelocity(_r),n.physicsAggregate.body.applyImpulse(o.negateInPlace(),r.contactPoint)}})}i(Vr,"handleApplyImpulseEvent");var Gr=require("babylonjs"),Br=require("babylonjs"),le=class extends Br.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new Gr.Observable;onEvent(r,t){this.onEventObservable.add(n=>{r===n&&t()})}};function gt(e){return e.type==="key"}i(gt,"isCinematicKey");function q(e){return e.type==="cut"}i(q,"isCinematicKeyCut");function jn(e){return e.type==="event"}i(jn,"isCinematicKeyEvent");function Wn(e){return e.type==="group"}i(Wn,"isCinematicGroup");function Hn(e){return e.type==="sound"}i(Hn,"isCinematicSound");var C=require("babylonjs"),J=require("babylonjs");function Un(e,r,t){let n=new le(e.name,r);return e.tracks.forEach(o=>{let s=o.animationGroup;if(s&&o.animationGroups?.length){let u=s.clone(`${s.name}-cinematic-temp`),h=r.animationGroups.indexOf(u);h!==-1&&r.animationGroups.splice(h,1),n.onAnimationEndObservable.add(()=>{s.stop(),u.stop()});let d=o.animationGroups.reduce((T,A)=>Math.min(T,A.frame),Number.MAX_VALUE)??0,S=o.animationGroups.reduce((T,A)=>Math.max(T,A.frame+A.endFrame),0)??0,x={frame:d},M=new C.Animation(u.name,"frame",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1);if(M.setKeys([{frame:d,value:0},{frame:S,value:S}]),o.animationGroups.forEach(T=>{M.addEvent(new J.AnimationEvent(T.frame,()=>{let A=T.repeatCount??0;if(u.to=T.endFrame,u.speedRatio=T.speed,u.stop(),u.play(A>0),u.from!==T.startFrame&&u.goToFrame(T.startFrame),A){let Z=0;u.onAnimationGroupLoopObservable.add(()=>{++Z,Z>A&&u.stop()})}}))}),n.addTargetedAnimation(M,x),(o.animationGroupWeight?.length??0)>=2&&o.animationGroupWeight.find(A=>q(A)?A.key1.value!==1||A.key2.value!==1:A.value!==1)){let A={weight:0},Z=new C.Animation(`${u.name}-weights`,"weight",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),ce=[];o.animationGroupWeight.forEach(me=>{q(me)?(ce.push(me.key1),ce.push(me.key2)):ce.push(me)}),Z.setKeys(ce),n.addTargetedAnimation(Z,A),pt(n,r,()=>{u.weight=A.weight})}}let l=o.sound,f=l?.getAudioBuffer();if(!t?.ignoreSounds&&l&&f&&o.sounds?.length){let u={dummy:0,volume:0},h=new C.Animation(l.name,"dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),d=0;if(o.sounds?.forEach(S=>{let x=S.endFrame-S.startFrame;d=Math.max(d,S.frame+x),h.addEvent(new J.AnimationEvent(S.frame,M=>{let A=(M-S.frame+S.startFrame)/e.framesPerSecond;l.play(0,A)},!1)),h.addEvent(new J.AnimationEvent(S.frame+x,()=>{l.stop()}))}),h.setKeys([{frame:0,value:0},{frame:d,value:d}]),n.addTargetedAnimation(h,u),(o.soundVolume?.length??0)>=2){let S=new C.Animation(l.name,"volume",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),x=[];o.soundVolume.forEach(M=>{q(M)?(x.push(M.key1),x.push(M.key2)):x.push(M)}),S.setKeys(x),n.addTargetedAnimation(S,u),pt(n,r,()=>{l.setVolume(u.volume)})}}if(o.keyFrameEvents){let u={dummy:0},h=new C.Animation("events","dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),d=0;o.keyFrameEvents?.forEach(S=>{d=Math.max(d,S.frame),h.addEvent(new J.AnimationEvent(S.frame,()=>{switch(S.data?.type){case"event":Fr(n,S.data);break;case"set-enabled":Lr(S.data);break;case"apply-impulse":Vr(r,S.data);break}}))}),h.setKeys([{frame:0,value:0},{frame:d+1,value:d+1}]),n.addTargetedAnimation(h,u)}let a=o.defaultRenderingPipeline?te():o.node;if(!a||!o.propertyPath||!o.keyFrameAnimations)return;let c=Ce(a,o.propertyPath),p=ae(c);if(p===null)return;let g=new C.Animation(o.propertyPath,o.propertyPath,60,p,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=[];o.keyFrameAnimations?.forEach(u=>{if(gt(u))return y.push(u);q(u)&&(y.push(u.key1),y.push(u.key2),ue(a)&&o.propertyPath==="position"&&g.addEvent(new J.AnimationEvent(u.key1.frame,()=>{let h=$e();if(!h)return;let d=h.motionStrength;h.motionStrength=0,requestAnimationFrame(()=>{h.motionStrength=d})})))}),g.setKeys(y),n.addTargetedAnimation(g,a)}),n.normalize(),n}i(Un,"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,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 de=Object.defineProperty;var Wr=Object.getOwnPropertyDescriptor;var Hr=Object.getOwnPropertyNames;var Ur=Object.prototype.hasOwnProperty;var i=(e,r)=>de(e,"name",{value:r,configurable:!0});var qr=(e,r)=>{for(var t in r)de(e,t,{get:r[t],enumerable:!0})},Jr=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Hr(r))!Ur.call(e,o)&&o!==t&&de(e,o,{get:()=>r[o],enumerable:!(n=Wr(r,o))||n.enumerable});return e};var Zr=e=>Jr(de({},"__esModule",{value:!0}),e);var on={};qr(on,{AdvancedAssetContainer:()=>le,AdvancedAssetContainerInstantiatedEntries:()=>ae,Cinematic:()=>pe,NodeParticleSystemSet:()=>kr.NodeParticleSystemSet,_applyScriptsForObject:()=>w,_preloadScriptsAssets:()=>at,_registerScriptInstance:()=>mt,_removeRegisteredScriptInstance:()=>be,animationFromSprite:()=>Jo,animationGroupFromScene:()=>Ro,applyMeshesLODQuality:()=>we,applyRenderingConfigurationForCamera:()=>tt,applyScriptOnObject:()=>Co,applyShadowsQuality:()=>lo,applyTexturesQuality:()=>Io,componentFromScene:()=>Mo,configureEngineToUseCompressedTextures:()=>xo,configureMeshDistanceOrScreenCoverage:()=>Re,configureShadowMapRefreshRate:()=>Se,configureShadowMapRenderListPredicate:()=>Fe,copyAndParseRagdollConfiguration:()=>ot,createDefaultRenderingPipeline:()=>Gt,createMotionBlurPostProcess:()=>Ft,createSSAO2RenderingPipeline:()=>Rt,createSSRRenderingPipeline:()=>Ot,createTAARenderingPipeline:()=>Mt,createVLSPostProcess:()=>Et,defaultPipelineCameraConfigurations:()=>W,disposeDefaultRenderingPipeline:()=>Ze,disposeMotionBlurPostProcess:()=>He,disposeSSAO2RenderingPipeline:()=>Qe,disposeSSRRenderingPipeline:()=>Be,disposeTAARenderingPipeline:()=>Ke,disposeVLSPostProcess:()=>_e,forceCompileAllSceneMaterials:()=>Oo,generateCinematicAnimationGroup:()=>rn,getAllScriptsByClassForObject:()=>U,getAnimationTypeForObject:()=>me,getDefaultRenderingPipeline:()=>re,getMotionBlurPostProcess:()=>We,getPowerOfTwoUntil:()=>N,getSSAO2RenderingPipeline:()=>yo,getSSRRenderingPipeline:()=>po,getScriptByClassForObject:()=>ct,getSoundById:()=>ne,getTAARenderingPipeline:()=>fo,getTextureUrl:()=>Ce,getVLSPostProcess:()=>co,guiFromAsset:()=>Fo,isAbstractMesh:()=>V,isAnyParticleSystem:()=>De,isArcRotateCamera:()=>ro,isBone:()=>Xr,isCamera:()=>ge,isCinematicGroup:()=>en,isCinematicKey:()=>bt,isCinematicKeyCut:()=>J,isCinematicKeyEvent:()=>Xo,isCinematicSound:()=>tn,isClusteredLightContainer:()=>ye,isDirectionalLight:()=>no,isFreeCamera:()=>to,isGPUParticleSystem:()=>ao,isGroundMesh:()=>eo,isHemisphericLight:()=>so,isInstancedMesh:()=>ee,isLight:()=>Pt,isMesh:()=>M,isNode:()=>K,isParticleSystem:()=>Oe,isPointLight:()=>oo,isScene:()=>Te,isSoundNode:()=>Ne,isSpotLight:()=>io,isSprite:()=>Me,isTexture:()=>te,isTransformNode:()=>R,loadMaterialFromFile:()=>To,loadScene:()=>Eo,motionBlurPostProcessCameraConfigurations:()=>Y,nodeFromDescendants:()=>No,nodeFromScene:()=>Do,normalizeAtlasJson:()=>ut,onKeyboardEvent:()=>Uo,onPointerEvent:()=>Ho,parseCinematic:()=>Zo,parseCinematicKeyValue:()=>_,parseDefaultRenderingPipeline:()=>et,parseKeyFrameAnimations:()=>St,parseMotionBlurPostProcess:()=>qe,parseRagdollConfiguration:()=>jt,parseSSAO2RenderingPipeline:()=>Ye,parseSSRRenderingPipeline:()=>ke,parseTAARenderingPipeline:()=>$e,parseVLSPostProcess:()=>Ve,particleSystemFromScene:()=>Lo,playSpriteAnimationFromName:()=>vo,registerScriptAssetParser:()=>Ao,saveRenderingConfigurationForCamera:()=>Po,sceneAsset:()=>wo,scriptAssetsCache:()=>D,scriptAssetsParsers:()=>ce,scriptsDictionary:()=>F,serializeDefaultRenderingPipeline:()=>Xe,serializeMotionBlurPostProcess:()=>Ue,serializeSSAO2RenderingPipeline:()=>je,serializeSSRRenderingPipeline:()=>Ge,serializeTAARenderingPipeline:()=>ze,serializeVLSPostProcess:()=>Le,setDefaultRenderingPipelineRef:()=>bo,setMotionBlurPostProcessRef:()=>ho,setSSAO2RenderingPipelineRef:()=>So,setSSRRenderingPipelineRef:()=>uo,setTAARenderingPipelineRef:()=>go,setVLSPostProcessRef:()=>mo,soundFromScene:()=>_o,spriteFromSpriteManager:()=>qo,ssaoRenderingPipelineCameraConfigurations:()=>j,ssrRenderingPipelineCameraConfigurations:()=>$,taaRenderingPipelineCameraConfigurations:()=>Q,visibleAsAsset:()=>Wo,visibleAsBoolean:()=>Vo,visibleAsColor3:()=>zo,visibleAsColor4:()=>$o,visibleAsEntity:()=>Qo,visibleAsKeyMap:()=>Yo,visibleAsNumber:()=>Go,visibleAsString:()=>Bo,visibleAsTexture:()=>jo,visibleAsVector2:()=>ko,visibleAsVector3:()=>Ko,vlsPostProcessCameraConfigurations:()=>z});module.exports=Zr(on);function V(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(V,"isAbstractMesh");function M(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(M,"isMesh");function ee(e){return e.getClassName?.()==="InstancedMesh"}i(ee,"isInstancedMesh");function Xr(e){return e.getClassName?.()==="Bone"}i(Xr,"isBone");function eo(e){return e.getClassName?.()==="GroundMesh"}i(eo,"isGroundMesh");function R(e){return e.getClassName?.()==="TransformNode"}i(R,"isTransformNode");function te(e){return e?.getClassName?.()==="Texture"}i(te,"isTexture");function ge(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(ge,"isCamera");function to(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(to,"isFreeCamera");function ro(e){return e.getClassName?.()==="ArcRotateCamera"}i(ro,"isArcRotateCamera");function oo(e){return e.getClassName?.()==="PointLight"}i(oo,"isPointLight");function no(e){return e.getClassName?.()==="DirectionalLight"}i(no,"isDirectionalLight");function io(e){return e.getClassName?.()==="SpotLight"}i(io,"isSpotLight");function so(e){return e.getClassName?.()==="HemisphericLight"}i(so,"isHemisphericLight");function Pt(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(Pt,"isLight");function ye(e){return e.getClassName?.()==="ClusteredLightContainer"}i(ye,"isClusteredLightContainer");function K(e){return V(e)||R(e)||Pt(e)||ge(e)}i(K,"isNode");function Te(e){return e.getClassName?.()==="Scene"}i(Te,"isScene");function Oe(e){return e.getClassName?.()==="ParticleSystem"}i(Oe,"isParticleSystem");function ao(e){return e.getClassName?.()==="GPUParticleSystem"}i(ao,"isGPUParticleSystem");function De(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(De,"isAnyParticleSystem");function Me(e){return e.getClassName?.()==="Sprite"}i(Me,"isSprite");function Ne(e){return R(e)&&e.isSoundNode===!0}i(Ne,"isSoundNode");function Re(e){e.meshes.forEach(r=>{M(r)&&r.getLODLevels().forEach(t=>{t.mesh&&(t.mesh.originalDistanceOrScreenCoverage=t.distanceOrScreenCoverage)})})}i(Re,"configureMeshDistanceOrScreenCoverage");function we(e,r){r.meshes.forEach(t=>{M(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(we,"applyMeshesLODQuality");function N(e){let r=1;for(;r<=e;)r<<=1;return r>>1}i(N,"getPowerOfTwoUntil");var At=require("babylonjs"),Ct=require("babylonjs");function Fe(e){e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=n=>At.Vector3.Distance(n.getAbsolutePosition(),r.getAbsolutePosition())<=r.range)})}i(Fe,"configureShadowMapRenderListPredicate");async function Se(e){e.executeWhenReady(()=>{e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=r.metadata?.refreshRate??Ct.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(Se,"configureShadowMapRefreshRate");function lo(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,N(s)),o?.getSize().width!==s&&o.resize(s)}}),Se(r)}i(lo,"applyShadowsQuality");var xt=require("babylonjs"),It=require("babylonjs"),vt=require("babylonjs"),E=null,z=new Map;function co(){return E}i(co,"getVLSPostProcess");function mo(e){E=e}i(mo,"setVLSPostProcessRef");function _e(e){E&&e.activeCamera&&(E.dispose(e.activeCamera),E=null)}i(_e,"disposeVLSPostProcess");function Et(e,r){return r??=e.meshes.find(t=>M(t)),E=new vt.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,r,100,It.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),E}i(Et,"createVLSPostProcess");function Le(){return E?{meshId:E.mesh?.id,exposure:E.exposure,decay:E.decay,weight:E.weight,density:E.density,invert:E.invert,useCustomMeshPosition:E.useCustomMeshPosition,customMeshPosition:E.customMeshPosition.asArray()}:null}i(Le,"serializeVLSPostProcess");function Ve(e,r){let t=null;if(r.meshId){let o=e.getMeshById(r.meshId);o&&M(o)&&(t=o)}let n=Et(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(xt.Vector3.FromArray(r.customMeshPosition)),n}i(Ve,"parseVLSPostProcess");var Tt=require("babylonjs"),h=null,$=new Map;function po(){return h}i(po,"getSSRRenderingPipeline");function uo(e){h=e}i(uo,"setSSRRenderingPipelineRef");function Be(){h&&(h.dispose(),h=null)}i(Be,"disposeSSRRenderingPipeline");function Ot(e,r){return h=new Tt.SSRRenderingPipeline("SSRRenderingPipeline",e,[r]),h.samples=4,h}i(Ot,"createSSRRenderingPipeline");function Ge(){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(Ge,"serializeSSRRenderingPipeline");function ke(e,r,t){if(h)return h;let n=Ot(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(ke,"parseSSRRenderingPipeline");var Dt=require("babylonjs"),T=null,Q=new Map;function fo(){return T}i(fo,"getTAARenderingPipeline");function go(e){T=e}i(go,"setTAARenderingPipelineRef");function Ke(){T&&(T.dispose(),T=null)}i(Ke,"disposeTAARenderingPipeline");function Mt(e,r){return T=new Dt.TAARenderingPipeline("TAARenderingPipeline",e,[r]),T.samples=4,T}i(Mt,"createTAARenderingPipeline");function ze(){return T?{factor:T.factor,samples:T.samples,clampHistory:T.clampHistory,reprojectHistory:T.reprojectHistory,disableOnCameraMove:T.disableOnCameraMove}:null}i(ze,"serializeTAARenderingPipeline");function $e(e,r,t){if(T)return T;let n=Mt(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($e,"parseTAARenderingPipeline");var Nt=require("babylonjs"),x=null,j=new Map;function yo(){return x}i(yo,"getSSAO2RenderingPipeline");function So(e){x=e}i(So,"setSSAO2RenderingPipelineRef");function Qe(){x&&(x.dispose(),x=null)}i(Qe,"disposeSSAO2RenderingPipeline");function Rt(e,r){return x=new Nt.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[r]),x.samples=4,x}i(Rt,"createSSAO2RenderingPipeline");function je(){return x?{radius:x.radius,totalStrength:x.totalStrength,samples:x.samples,maxZ:x.maxZ,minZAspect:x.minZAspect,epsilon:x.epsilon,textureSamples:x.textureSamples,bypassBlur:x.bypassBlur,bilateralSamples:x.bilateralSamples,bilateralSoften:x.bilateralSoften,bilateralTolerance:x.bilateralTolerance,expensiveBlur:x.expensiveBlur}:null}i(je,"serializeSSAO2RenderingPipeline");function Ye(e,r,t){if(x)return x;let n=Rt(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(Ye,"parseSSAO2RenderingPipeline");var wt=require("babylonjs"),O=null,Y=new Map;function We(){return O}i(We,"getMotionBlurPostProcess");function ho(e){O=e}i(ho,"setMotionBlurPostProcessRef");function He(){O&&(O.dispose(),O=null)}i(He,"disposeMotionBlurPostProcess");function Ft(e,r){return O=new wt.MotionBlurPostProcess("MotionBlurPostProcess",e,1,r),O.motionStrength=1,O.isObjectBased=!0,O}i(Ft,"createMotionBlurPostProcess");function Ue(){return O?{isObjectBased:O.isObjectBased,motionStrength:O.motionStrength,motionBlurSamples:O.motionBlurSamples}:null}i(Ue,"serializeMotionBlurPostProcess");function qe(e,r,t){if(O)return O;let n=Ft(e,r);return n.isObjectBased=t.isObjectBased,n.motionStrength=t.motionStrength,n.motionBlurSamples=t.motionBlurSamples,n}i(qe,"parseMotionBlurPostProcess");var _t=require("babylonjs"),Je=require("babylonjs"),Lt=require("babylonjs"),Vt=require("babylonjs"),Bt=require("babylonjs"),p=null,W=new Map;function re(){return p}i(re,"getDefaultRenderingPipeline");function bo(e){p=e}i(bo,"setDefaultRenderingPipelineRef");function Ze(){p&&(p.dispose(),p=null)}i(Ze,"disposeDefaultRenderingPipeline");function Gt(e,r){return p=new Bt.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[r]),p.samples=4,p.depthOfField.lensSize=512,p.depthOfField.fStop=.25,p.depthOfField.focusDistance=55e3,p}i(Gt,"createDefaultRenderingPipeline");function Xe(){return p?{samples:p.samples,fxaaEnabled:p.fxaaEnabled,imageProcessingEnabled:p.imageProcessingEnabled,exposure:p.imageProcessing?.exposure,contrast:p.imageProcessing?.contrast,fromLinearSpace:p.imageProcessing?.fromLinearSpace,toneMappingEnabled:p.imageProcessing?.toneMappingEnabled,toneMappingType:p.imageProcessing?.toneMappingType,ditheringEnabled:p.imageProcessing?.ditheringEnabled,ditheringIntensity:p.imageProcessing?.ditheringIntensity,bloomEnabled:p.bloomEnabled,bloomThreshold:p.bloomThreshold,bloomWeight:p.bloomWeight,bloomScale:p.bloomScale,bloomKernel:p.bloomKernel,sharpenEnabled:p.sharpenEnabled,sharpenEdgeAmount:p.sharpen.edgeAmount,sharpenColorAmount:p.sharpen.colorAmount,grainEnabled:p.grainEnabled,grainIntensity:p.grain.intensity,grainAnimated:p.grain.animated,depthOfFieldEnabled:p.depthOfFieldEnabled,depthOfFieldBlurLevel:p.depthOfFieldBlurLevel,lensSize:p.depthOfField.lensSize,fStop:p.depthOfField.fStop,focusDistance:p.depthOfField.focusDistance,focalLength:p.depthOfField.focalLength,vignetteEnabled:p.imageProcessing?.vignetteEnabled,vignetteColor:p.imageProcessing?.vignetteColor.asArray(),vignetteWeight:p.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:p.chromaticAberrationEnabled,aberrationAmount:p.chromaticAberration.aberrationAmount,radialIntensity:p.chromaticAberration.radialIntensity,direction:p.chromaticAberration.direction.asArray(),centerPosition:p.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:p.glowLayerEnabled,glowLayerIntensity:p.glowLayer?.intensity,glowLayerBlurKernelSize:p.glowLayer?.blurKernelSize,colorGradingEnabled:p.imageProcessing.colorGradingEnabled,colorGradingTexture:p.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:p.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:p.imageProcessing.colorCurvesEnabled,globalHue:p.imageProcessing.colorCurves?.globalHue,globalDensity:p.imageProcessing.colorCurves?.globalDensity,globalExposure:p.imageProcessing.colorCurves?.globalExposure,globalSaturation:p.imageProcessing.colorCurves?.globalSaturation,highlightsHue:p.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:p.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:p.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:p.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:p.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:p.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:p.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:p.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:p.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:p.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:p.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:p.imageProcessing.colorCurves?.shadowsSaturation}:null}i(Xe,"serializeDefaultRenderingPipeline");function et(e,r,t,n){if(p)return p;let o=Gt(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=_t.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 Vt.ColorGradingTexture(a,e),s.level=t.colorGradingTexture.level}else{let a=Lt.Texture.Parse(t.colorGradingTexture,e,n);te(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=Je.Vector2.FromArray(t.direction??[0,0]),o.chromaticAberration.centerPosition=Je.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(et,"parseDefaultRenderingPipeline");function Po(e){j.set(e,je()),z.set(e,Le()),$.set(e,Ge()),Y.set(e,Ue()),W.set(e,Xe()),Q.set(e,ze())}i(Po,"saveRenderingConfigurationForCamera");function tt(e,r,t){Qe(),_e(e.getScene()),Be(),He(),Ze(),Ke();let n=j.get(e);n&&!t?.ssao2Disabled&&Ye(e.getScene(),e,n);let o=z.get(e);o&&!t?.vlsDisabled&&Ve(e.getScene(),o);let s=$.get(e);s&&!t?.ssrDisabled&&ke(e.getScene(),e,s);let a=Y.get(e);a&&!t?.motionBlurDisabled&&qe(e.getScene(),e,a);let f=W.get(e);f&&!t?.defaultPipelineDisabled&&et(e.getScene(),e,f,r);let c=Q.get(e);c&&!t?.taaDisabled&&$e(e.getScene(),e,c)}i(tt,"applyRenderingConfigurationForCamera");var oe=require("babylonjs"),kt=require("babylonjs");function Kt(e){let r=e.metadata?.physicsAggregate;if(!r)return;let t;M(e)?t=e:ee(e)&&(t=e.sourceMesh);let n=new kt.PhysicsAggregate(e,r.shape.type,{mesh:t,mass:r.massProperties.mass});n.body.setMassProperties({mass:r.massProperties.mass,inertia:r.massProperties.inertia?oe.Vector3.FromArray(r.massProperties.inertia):void 0,centerOfMass:r.massProperties.centerOfMass?oe.Vector3.FromArray(r.massProperties.centerOfMass):void 0,inertiaOrientation:r.massProperties.inertiaOrientation?oe.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 zt(e,r){(Array.isArray(r)?r:[]).forEach(n=>{let o=e.getCameraById(n.cameraId);o&&(n.ssao2RenderingPipeline&&j.set(o,n.ssao2RenderingPipeline),n.vlsPostProcess&&z.set(o,n.vlsPostProcess),n.ssrRenderingPipeline&&$.set(o,n.ssrRenderingPipeline),n.motionBlurPostProcess&&Y.set(o,n.motionBlurPostProcess),n.defaultRenderingPipeline&&W.set(o,n.defaultRenderingPipeline),n.taaRenderingPipeline&&Q.set(o,n.taaRenderingPipeline))})}i(zt,"applyRenderingConfigurations");function ne(e,r){let t=r.soundTracks??[];t.length||t.push(r.mainSoundTrack);for(let n=0,o=t.length;n<o;n++){let s=t[n].soundCollection.find(a=>a.id===e);if(s)return s}return null}i(ne,"getSoundById");function $t(e,r){let t=r.getNodeByName(e);if(t)return t;let n=r.lights.filter(o=>ye(o));for(let o of n){let s=o.lights.find(a=>a.name===e);if(s)return s}return null}i($t,"getNodeByName");function ie(e,r){let t=r.getNodeById(e);if(t)return t;let n=r.lights.filter(o=>ye(o));for(let o of n){let s=o.lights.find(a=>a.id===e);if(s)return s}return null}i(ie,"getNodeById");var k=require("babylonjs"),Qt=require("babylonjs");function rt(e){let r=Qt.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(rt,"parseAxis");function jt(e){return e.runtimeConfiguration.forEach(r=>{r.rotationAxis&&(r.rotationAxis=rt(r.rotationAxis)),r.boneOffsetAxis&&(r.boneOffsetAxis=rt(r.boneOffsetAxis))}),e}i(jt,"parseRagdollConfiguration");function ot(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 jt(r)}i(ot,"copyAndParseRagdollConfiguration");function nt(e){return e&&JSON.parse(JSON.stringify(e))}i(nt,"cloneJSObject");var Ht=require("babylonjs"),st=require("babylonjs"),se=require("babylonjs"),Yt=!1,it=new Map;function Ut(e,r){!e.soundRelativePath||!e.sound||(0,se.CreateSoundAsync)(e.soundRelativePath,e.sound.buffer,{spatialAutoUpdate:!0}).then(t=>{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,Wt(r,t)})}i(Ut,"configureSourceNodeFrom");function Wt(e,r){e.isPlaying=()=>r.state===Ht.SoundState.Started,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.setVolume=(t,n)=>r.setVolume(t,n),e.stop=t=>r.stop(t),e.play=t=>r.play(t),e.pause=()=>r.pause(),e.resume=()=>r.resume(),e.attachTo=(t,n,o)=>r.spatial.attach(t,n,o)}i(Wt,"configureSoundNodePrototype");function qt(){Yt||(Yt=!0,(0,st.AddParser)("AudioEditorPlugin",(e,r,t,n)=>{e.sounds?.forEach(o=>{let s=t.sounds?.find(a=>a.name===o.name);s&&(s.id=o.id,s.uniqueId=o.uniqueId,r.onBeforeRenderObservable.addOnce(()=>{try{s.spatialSound=o.spatialSound}catch{}}))})}),(0,st.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}`;r.addPendingData(a),it.has(a)||it.set(a,(0,se.CreateSoundBufferAsync)(a)),it.get(a).then(c=>{(0,se.CreateSoundAsync)(o.soundRelativePath,c,{spatialAutoUpdate:!0}).then(l=>{l.volume=o.volume,l._isSpatial=o.isSpatial,o.isSpatial&&(l.spatial.attach(s),l.spatial.maxDistance=o.maxDistance,l.spatial.panningModel=o.panningModel,l.spatial.distanceModel=o.distanceModel),s.sound=l,s.isSoundNode=!0,s.soundRelativePath=o.soundRelativePath,Wt(s,l),r.removePendingData(a)})})}})}))}i(qt,"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((V(o)||R(o)&&!o.isWorldMatrixFrozen)&&o.freezeWorldMatrix(),V(o)){let s=o.material;s&&!s.isFrozen&&!r.has(s)&&(r.add(s),s.onBindObservable.addOnce(()=>{s.freeze()}))}})}})}i(H,"configureTransformNodes");var ae=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 he=require("babylonjs"),Jt=require("babylonjs"),le=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:nt(o.metadata)})})}removeDefault(){this.container.getNodes().forEach(r=>{F.get(r)?.forEach(n=>{be(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=he.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 ae(o,t);[...this.container.transformNodes,...this.container.meshes,...this.container.lights,...this.container.cameras,...this.container.animationGroups,...this.container.skeletons].forEach(l=>{let m=l.name.split("@editor-tools@");l.name=m[0]}),o.animationGroups.forEach(l=>{let m=l.name.split("@editor-tools@");l.name=`${m[0]}-${t}`});let f=[];o.rootNodes.forEach(l=>{f.push(l,...l.getDescendants(!1))});let c={};return f.forEach(l=>{let m=l.name.split("@editor-tools@"),d=m[1].split("_").pop();l.name=`${m[0]}-${t}`;let g=this._originalDescendants.find(u=>u.id===d);Ne(g)&&R(l)&&Ut(g,l),l.id=he.Tools.RandomId(),l.metadata=nt(this._nodesMap.get(g).metadata),l.metadata??={},l.metadata.originalId=d,f.forEach(u=>{u.metadata.scripts?.forEach(S=>{Object.keys(S.values||{}).forEach(P=>{let C=S.values[P];if(C.type==="entity"){C.value===d&&(C.value=l.id),C.value===g.name&&(C.value=l.name);let A=this.container.sounds?.find(b=>b.id===C.value);if(A){let b=c[A.id];b||(b=new Jt.Sound(A.name,A._url,this.container.scene,null,{autoplay:!1,loop:A.loop,volume:A.getVolume(),playbackRate:A.getPlaybackRate(),maxDistance:A.maxDistance,refDistance:A.refDistance,spatialSound:A.spatialSound,distanceModel:A.distanceModel,rolloffFactor:A.rolloffFactor}),b.id=he.Tools.RandomId(),b.metadata={originalSourceId:A._connectedTransformNode?.id},c[A.id]=b,this.container.scene.mainSoundTrack?.addSound(b)),C.value=b.id}let v=this._animationGroupsMap.get(C.value);v&&(C.value=`${v.name}-${t}`)}})})})}),Object.values(c).forEach(l=>{let m=l.metadata?.originalSourceId;if(m){let d=f.find(g=>g.metadata?.originalId===m);d&&(V(d)||R(d))&&l.attachToMesh(d)}}),f.forEach(l=>{w(this.container.scene,l,this._scriptsMap,this._rootUrl)}),H(this.container.scene),s}};var Zt=require("babylonjs"),Xt=require("babylonjs");async function er(e,r,t){let o=e.split("/").pop().replace(".scene",".babylon"),s=await(0,Xt.LoadAssetContainerAsync)(o,t,{rootUrl:r,pluginExtension:".babylon"});return Zt.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(a=>M(a)&&a._checkDelayState()),s.addAllToScene(),H(t),s}i(er,"preloadSceneScriptAsset");async function tr(e,r){return await(await fetch(`${r}${e}`)).json()}i(tr,"preloadCommonScriptAsset");var D=new Map,ce=new Map;function Ao(e,r){ce.has(e)&&console.warn(`A parser for the extension '${e}' was already registered. It will be overwritten.`),ce.set(e,r)}i(Ao,"registerScriptAssetParser");async function at(e,r,t){[r,...r.transformNodes,...r.meshes,...r.lights,...r.cameras].filter(f=>f.metadata?.scripts?.length).map(f=>f.metadata.scripts).flat().forEach(f=>{if(t[f.key]?.default?._SceneAssets?.forEach(l=>{D.get(l.sceneName)||D.set(l.sceneName,null)}),f.values)for(let l in f.values){if(!f.values.hasOwnProperty(l))continue;let m=f.values[l];m.type==="asset"&&m.value&&!D.get(m.value)&&D.set(m.value,null)}});let s=0;for(let f of D.values())f===null&&++s;if(s===0)return s;let a=[];return D.forEach((f,c)=>{D.get(c)||a.push(new Promise(async l=>{try{let m=c.split(".").pop();switch(m){case"scene":D.set(c,new le(await er(c,e,r),e,t));break;default:if(ce.has(m)){let d=ce.get(m);D.set(c,await d({key:c,rootUrl:e,scene:r}));break}else D.set(c,await tr(c,e));break}}catch(m){console.error(m)}l()}))}),await Promise.all(a),s}i(at,"_preloadScriptsAssets");var rr=require("babylonjs"),Pe=require("babylonjs"),or=require("babylonjs"),Ae=require("babylonjs"),nr=require("babylonjs"),ir=require("babylonjs-gui");function lt(e,r,t,n,o){let s=n.constructor;if(!s)return;s._NodesFromScene?.forEach(c=>{n[c.propertyKey.toString()]=$t(c.nodeName,e)}),s._ComponentsFromScene?.length&&e.getEngine().onBeginFrameObservable.addOnce(()=>{s._ComponentsFromScene?.forEach(c=>{let l=[];if([e,...e.transformNodes,...e.meshes,...e.lights,...e.cameras].forEach(d=>{let g=ct(d,c.componentConstructor);g&&l.push(g)}),l.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[c.propertyKey.toString()]=l[0]??null})}),s._NodesFromDescendants?.forEach(c=>{let l=r.getDescendants?.(c.directDescendantsOnly,m=>m.name===c.nodeName)[0];n[c.propertyKey.toString()]=l??null}),s._AnimationGroups?.forEach(c=>{n[c.propertyKey.toString()]=e.getAnimationGroupByName(c.animationGroupName)}),s._SoundsFromScene?.forEach(c=>{let l=e.getSoundByName?.(c.soundName);n[c.propertyKey.toString()]=l??null}),(s._GuiFromAsset??[]).map(async c=>{let l=`${o}assets/${c.pathInAssets}`;try{let d=await(await fetch(l)).json(),g=ir.AdvancedDynamicTexture.CreateFullscreenUI(d.name,!0,e);g.parseSerializedObject(d.content,!1),n[c.propertyKey.toString()]=g,c.onGuiCreated?.(n,g)}catch(m){throw console.error(`Failed to load GUI from asset: ${l}`),m}}),s._ParticleSystemsFromScene?.forEach(c=>{let l=e.particleSystems?.find(m=>m.name!==c.particleSystemName?!1:c.directDescendantsOnly?m.emitter===r:m);n[c.propertyKey.toString()]=l}),(s._VisibleInInspector??[]).forEach(c=>{let l=c.propertyKey.toString(),m=t.values;if(!m)throw new Error(`No values found for script with key "${t.key}".`);if(m.hasOwnProperty(l)&&m[l].hasOwnProperty("value")){let d=m[l].value;switch(c.configuration.type){case"number":case"boolean":case"keymap":case"string":n[l]=d;break;case"vector2":n[l]=Ae.Vector2.FromArray(d);break;case"vector3":n[l]=Ae.Vector3.FromArray(d);break;case"color3":n[l]=Pe.Color3.FromArray(d);break;case"color4":n[l]=Pe.Color4.FromArray(d);break;case"entity":switch(c.configuration.entityType){case"node":n[l]=ie(d,e)??null;break;case"animationGroup":n[l]=e.getAnimationGroupByName(d)??null;break;case"sound":n[l]=ne(d,e);break;case"particleSystem":n[l]=e.particleSystems?.find(u=>u.id===d)??null;break}break;case"texture":d&&(n[l]=or.Texture.Parse(d,e,o));break;case"asset":if(d){let u=c.configuration.assetType,S=D.get(d);switch(u){case"json":case"gui":case"scene":case"navmesh":n[l]=S;break;case"ragdoll":n[l]=ot(S);break;case"nodeParticleSystemSet":let y=nr.NodeParticleSystemSet.Parse(S);n[l]=y;break;case"material":n[l]=rr.Material.Parse(S,e,o);break}}}}});let a=null,f=null;if(s._PointerEvents?.length){if(s._PointerEvents.find(m=>m.options.mode==="attachedMeshOnly")&&!V(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")&&!K(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(g=>{if(!g.eventTypes.includes(m.type))return;let u=g.propertyKey.toString();if(g.options.mode==="global")return n[u]?.(m);d=m.pickInfo,d||(d=e.pick(e.pointerX,e.pointerY,y=>y.isVisible&&y.isPickable&&y.isEnabled(!0)&&!y._masterMesh,!1));let S=d.pickedMesh;if(S&&(g.options.mode==="attachedMeshOnly"&&S===r||g.options.mode==="includeDescendants"&&K(r)&&[r,...r.getDescendants(!1)].find(C=>C===S)))return n[u]?.(m)})})}if(s._KeyboardEvents?.length&&(f=e.onKeyboardObservable.add(c=>{s._KeyboardEvents.forEach(l=>{l.eventTypes.includes(c.type)&&n[l.propertyKey.toString()]?.(c)})})),s._SpritesFromSpriteManager?.length){let c=r;if(!R(c)||!c.isSpriteManager)return console.error("@spriteFromSpriteManager decorator can only be used on SpriteManagerNode.");if(!c.spriteManager)return console.error(`SpriteManagerNode "${c.name}" has no sprite manager assigned.`);s._SpritesFromSpriteManager?.forEach(l=>{let m=c.spriteManager?.sprites.find(d=>d.name===l.spriteName)||null;n[l.propertyKey.toString()]=m})}if(s._AnimationsFromSprite?.length){if(!Me(r))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let c=r.metadata?.spriteAnimations;if(!c?.length)return console.error(`Sprite "${r.name}" has no sprite animations assigned.`);s._AnimationsFromSprite.forEach(l=>{let m=c.find(d=>d.name===l.animationName);m?n[l.propertyKey.toString()]=m??null:console.warn(`Sprite animation named "${l.animationName}" not found on sprite "${r.name}".`)})}return s._SceneAssets?.forEach(c=>{n[c.propertyKey.toString()]=D.get(c.sceneName)}),{observers:{pointerObserver:a,keyboardObserver:f}}}i(lt,"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,f={};if(s.default){a=new s.default(r);let c=lt(e,r,o,a,n);Object.assign(f,c?.observers??{})}a.onStart&&(f.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>a.onStart(r))),a.onUpdate&&(f.onUpdateObserver=e.onBeforeRenderObservable.add(()=>a.onUpdate(r))),mt(r,a,o.key,f)}),r.metadata.scripts=void 0)}i(w,"_applyScriptsForObject");function Co(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 lt(t,e,{values:{}},n,""),n.onStart&&(o.onStartObserver=t.onBeforeRenderObservable.addOnce(()=>n.onStart())),n.onUpdate&&t.onBeforeRenderObservable.add(()=>n.onUpdate()),mt(e,n,"runtime",o),n}i(Co,"applyScriptOnObject");var F=new Map;function mt(e,r,t,n){let o={key:t,observers:n,instance:r};F.has(e)?F.get(e).push(o):F.set(e,[o]),(K(e)||De(e)||Te(e))&&e.onDisposeObservable.addOnce((()=>{F.get(e)?.slice()?.forEach(a=>{be(e,a)}),F.delete(e)}))}i(mt,"_registerScriptInstance");function be(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=F.get(e),n=t?.indexOf(r)??-1;n!==-1&&t?.splice(n,1)}i(be,"_removeRegisteredScriptInstance");function U(e,r){return F.get(e)?.filter(o=>o.instance.constructor===r)?.map(o=>o.instance)??null}i(U,"getAllScriptsByClassForObject");function ct(e,r){return U(e,r)?.[0]??null}i(ct,"getScriptByClassForObject");function xo(e){e.setCompressedTextureExclusions([".env",".hdr",".dds"]),e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(xo,"configureEngineToUseCompressedTextures");function Io(e,r,t){r.loadingTexturesQuality!==e&&(r.loadingTexturesQuality=e,r.textures.forEach(n=>{if(!te(n)||!n.url)return;let o=Ce(n,r);!o||n.url.includes(o)||n.updateURL(t+o)}))}i(Io,"applyTexturesQuality");function Ce(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===N(t)||n===N(n),s="";switch(r.loadingTexturesQuality){case"medium":let g=t*.66>>0,u=n*.66>>0;o&&(g=N(g),u=N(u)),s=`_${g}_${u}`;break;case"low":case"very-low":let S=t*.33>>0,y=n*.33>>0;o&&(S=N(S),y=N(y)),s=`_${S}_${y}`;break}let a=e.name;if(!a||!s)return e.name;let f=a.split("/"),c=f.pop();if(!c)return e.name;let l=c.split(".").pop(),d=`${c.replace(`.${l}`,"")}${s}.${l}`;return f.push(d),f.join("/")}i(Ce,"getTextureUrl");var pt=require("babylonjs"),sr=!1;function ar(){if(sr)return;sr=!0;let e=pt.SerializationHelper._TextureParser;pt.SerializationHelper._TextureParser=(r,t,n)=>{let o=Ce(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(ar,"registerTextureParser");var cr=require("babylonjs"),xe=require("babylonjs"),lr=!1;function mr(){if(lr)return;lr=!0;let e=(0,xe.GetParser)(cr.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,xe.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,N(a.mapSize))}}),e?.(r,t,n,o),t.lights.forEach(a=>{let f=a.getShadowGenerator();if(f?.getShadowMap()){let l=f.id,m=s.get(l);m&&(f.originalMapSize=m)}})})}i(mr,"registerShadowGeneratorParser");var ur=require("babylonjs"),fr=require("babylonjs"),pr=!1;function dr(){pr||(pr=!0,(0,fr.AddParser)("MorphTargetManagerEditorPlugin",(e,r,t,n)=>{e.morphTargetManagers.forEach(o=>{let a=t.meshes.find(l=>l.id===o.meshId)?.morphTargetManager;if(!a||o.targets.find(l=>!l.delayLoadingFile))return;let c=[];o.targets.forEach(l=>{if(!l.delayLoadingFile)return c.push(Promise.resolve(null));let m=`${n}${l.delayLoadingFile}`;r.addPendingData(m);let d=new ur.WebRequest;d.responseType="arraybuffer",d.open("GET",m),d.send(),c.push(new Promise(g=>{d.addEventListener("load",()=>{r.removePendingData(m),g(d.response)})}))}),Promise.all(c).then(l=>{for(let m=0,d=a.numTargets;m<d;++m){let g=a.getTarget(m),u=o.targets[m],S=l[m];if(u.positionsCount){let y=new Float32Array(S,u.positionsOffset,u.positionsCount);g._positions=y,g.setPositions(y)}if(u.normalsCount){let y=new Float32Array(S,u.normalsOffset,u.normalsCount);g._normals=y,g.setNormals(y)}if(u.tangentsCount){let y=new Float32Array(S,u.tangentsOffset,u.tangentsCount);g._tangents=y,g.setTangents(y)}if(u.uvsCount){let y=new Float32Array(S,u.uvsOffset,u.uvsCount);g._uvs=y,g.setUVs(y)}if(u.uv2sCount){let y=new Float32Array(S,u.uv2sOffset,u.uv2sCount);g._uv2s=y,g.setUV2s(y)}}for(let m=0,d=a.numTargets;m<d;++m)a.getTarget(m)._onDataLayoutChanged.notifyObservers()})})}))}i(dr,"registerMorphTargetManagerParser");var gr=require("babylonjs");function yr(e,r){let t=e.metadata?.clusteredLight;return t&&(t.lights.length>0&&(r??=new gr.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(yr,"configureLights");function ut(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(ut,"normalizeAtlasJson");function vo(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(vo,"playSpriteAnimationFromName");var hr=require("babylonjs"),br=require("babylonjs"),Pr=require("babylonjs"),Ar=require("babylonjs"),ft=require("babylonjs"),q=require("babylonjs"),Cr=require("babylonjs"),Sr=!1;function xr(){Sr||(Sr=!0,(0,Cr.AddParser)("SpriteMapNode",(e,r,t,n)=>{e.transformNodes?.forEach(o=>{if(!o.isSpriteMap)return;let s=t.transformNodes?.find(c=>c.id===o.id);if(!s)return;s.isSpriteMap=o.isSpriteMap;let a=`${n}${o.atlasJsonRelativePath}`;r.addPendingData(a);let f=new Pr.WebRequest;f.open("GET",a),f.send(),f.addEventListener("load",()=>{r.removePendingData(a);let c=JSON.parse(f.responseText);ut(c);let l=`${hr.Tools.GetFolderPath(a)}${c.meta.image}`,m=new ft.Texture(l,r,!1,!1,ft.Texture.NEAREST_NEAREST,null,null,null,!1,br.Engine.TEXTUREFORMAT_RGBA),d=new Ar.SpriteMap(s.name,c,m,{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(u=>{for(let S=0,y=u.repeatCount.x+1;S<y;++S)for(let P=0,C=u.repeatCount.y+1;P<C;++P){let A=S*(u.repeatOffset.x+1),v=P*(u.repeatOffset.y+1);d.changeTiles(u.layer,new q.Vector2(u.position.x+A,(d.options.stageSize?.y??0)-1-u.position.y-v),u.tile)}});let g=d._output;g.parent=s,s.spriteMap=d})})}))}i(xr,"registerSpriteMapParser");var Er=require("babylonjs"),Tr=require("babylonjs"),Or=require("babylonjs"),dt=require("babylonjs"),Dr=require("babylonjs");function Ir(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=Tr.Sprite.Parse(t,e);n.uniqueId=t.uniqueId,n.metadata=t.metadata}}i(Ir,"parseSerializedSpriteManager");var vr=!1;function Mr(){vr||(vr=!0,(0,Dr.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 f=new Or.WebRequest;f.open("GET",a),f.send(),f.addEventListener("load",()=>{r.removePendingData(a);let c=JSON.parse(f.responseText),l=`${Er.Tools.GetFolderPath(a)}${c.meta.image}`,m=new dt.SpriteManager(s.name,l,1e3,64,r,void 0,void 0,!0,c);s.spriteManager=m,o.spriteManager&&Ir(m,o.spriteManager)})}else if(o.spriteManager?.textureUrl){let a=`${n}${o.spriteManager.textureUrl}`,f=new dt.SpriteManager(s.name,a,1e3,{width:o.spriteManager.cellWidth,height:o.spriteManager.cellHeight},r,void 0,void 0,!1);s.spriteManager=f,o.spriteManager&&Ir(f,o.spriteManager)}}})}))}i(Mr,"registerSpriteManagerParser");var Rr=require("babylonjs"),wr=require("babylonjs"),Nr=!1;function Fr(){Nr||(Nr=!0,(0,Rr.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=wr.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(f=>{if(Oe(f)){let c=f._sizeCreation.process;c&&(f._sizeCreation.process=(l,m)=>{c(l,m),l.scale.x*=100,l.scale.y*=100})}}),a.emitterNode=s,a.start()}))})}))}i(Fr,"registerNodeParticleSystemSetParser");var Lr=require("babylonjs"),gt=require("babylonjs"),Vr=require("babylonjs"),Br=require("babylonjs"),_r=new Map;async function Eo(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,qt(),ar(),mr(),dr(),xr(),Mr(),Fr();let s=_r.get(t)??{};if(_r.set(t,s),await(0,Vr.AppendSceneAsync)(`${e}${r}`,t,{pluginExtension:".babylon",onProgress:i(c=>{let l=Math.min(c.loaded/c.total*.5);o?.onProgress?.(l)},"onProgress")}),!o?.skipAssetsPreload){let c=0;do c=await at(e,t,n);while(c!==0)}Br.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(c=>M(c)&&c._checkDelayState());let a=yr(t,s.clusteredLightContainer);s.clusteredLightContainer=a;let f=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(l=>setTimeout(l,150));let c=f-t.getWaitingItemsCount();c===f&&t.textures.forEach(l=>{l.delayLoadState===gt.Constants.DELAYLOADSTATE_NONE&&(l.delayLoadState=gt.Constants.DELAYLOADSTATE_LOADED)}),o?.onProgress?.(.5+c/f*.5)}o?.onProgress?.(1),Re(t),we(t.loadingLodsQuality,t),Fe(t),Se(t),t.metadata?.rendering&&(zt(t,t.metadata.rendering),t.activeCamera&&tt(t.activeCamera,e,o?.postProcessConfiguration)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(Lr.Vector3.FromArray(t.metadata?.physicsGravity)),w(t,t,n,e),t.transformNodes.forEach(c=>{w(t,c,n,e)}),t.meshes.forEach(c=>{Kt(c),w(t,c,n,e)}),t.lights.forEach(c=>{w(t,c,n,e)}),t.cameras.forEach(c=>{w(t,c,n,e)}),t.spriteManagers?.forEach(c=>{c.sprites.forEach(l=>{w(t,l,n,e)})}),H(t)}i(Eo,"loadScene");var Gr=require("babylonjs");async function To(e,r,t){let o=await(await fetch(e+r)).json(),a=Gr.Tools.Instantiate(o.customType).Parse(o,t,e);return a.id=o.id,a.uniqueId=o.uniqueId,a}i(To,"loadMaterialFromFile");function Oo(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(Oo,"forceCompileAllSceneMaterials");var B=require("babylonjs");function me(e){if(!isNaN(parseFloat(e))&&isFinite(e))return B.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return B.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return B.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return B.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return B.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return B.Animation.ANIMATIONTYPE_COLOR4;case"Size":return B.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return B.Animation.ANIMATIONTYPE_MATRIX}return null}i(me,"getAnimationTypeForObject");var kr=require("babylonjs");function Do(e){return function(r,t){let n=r.constructor;n._NodesFromScene??=[],n._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(Do,"nodeFromScene");function Mo(e){return function(r,t){let n=r.constructor;n._ComponentsFromScene??=[],n._ComponentsFromScene.push({propertyKey:t,componentConstructor:e})}}i(Mo,"componentFromScene");function No(e,r=!1){return function(t,n){let o=t.constructor;o._NodesFromDescendants??=[],o._NodesFromDescendants.push({propertyKey:n,nodeName:e,directDescendantsOnly:r})}}i(No,"nodeFromDescendants");function Ro(e){return function(r,t){let n=r.constructor;n._AnimationGroups??=[],n._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(Ro,"animationGroupFromScene");function wo(e){return function(r,t){let n=r.constructor;n._SceneAssets??=[],n._SceneAssets.push({sceneName:e,propertyKey:t})}}i(wo,"sceneAsset");function Fo(e,r){return function(t,n){let o=t.constructor;o._GuiFromAsset??=[],o._GuiFromAsset.push({propertyKey:n,pathInAssets:e,onGuiCreated:r})}}i(Fo,"guiFromAsset");function _o(e){return function(r,t){let n=r.constructor;n._SoundsFromScene??=[],n._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(_o,"soundFromScene");function Lo(e,r=!1){return function(t,n){let o=t.constructor;o._ParticleSystemsFromScene??=[],o._ParticleSystemsFromScene.push({propertyKey:n,particleSystemName:e,directDescendantsOnly:r})}}i(Lo,"particleSystemFromScene");function Vo(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"boolean"}})}}i(Vo,"visibleAsBoolean");function Bo(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"string"}})}}i(Bo,"visibleAsString");function Go(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"number"}})}}i(Go,"visibleAsNumber");function ko(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"vector2"}})}}i(ko,"visibleAsVector2");function Ko(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"vector3"}})}}i(Ko,"visibleAsVector3");function zo(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"color3"}})}}i(zo,"visibleAsColor3");function $o(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"color4"}})}}i($o,"visibleAsColor4");function Qo(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(Qo,"visibleAsEntity");function jo(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"texture"}})}}i(jo,"visibleAsTexture");function Yo(e,r){return function(t,n){let o=t.constructor;o._VisibleInInspector??=[],o._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...r,type:"keymap"}})}}i(Yo,"visibleAsKeyMap");function Wo(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(Wo,"visibleAsAsset");function Ho(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(Ho,"onPointerEvent");function Uo(e){return function(r,t){let n=r.constructor;n._KeyboardEvents??=[],n._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(Uo,"onKeyboardEvent");function qo(e){return function(r,t){let n=r.constructor;n._SpritesFromSpriteManager??=[],n._SpritesFromSpriteManager.push({propertyKey:t,spriteName:e})}}i(qo,"spriteFromSpriteManager");function Jo(e){return function(r,t){let n=r.constructor;n._AnimationsFromSprite??=[],n._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(Jo,"animationFromSprite");var Ie=require("babylonjs");function du(e,r){let t;return e===Ie.Animation.ANIMATIONTYPE_FLOAT?t=r.value:t=r.value.clone(),{value:t,frame:r.frame,interpolation:r.interpolation,inTangent:e===Ie.Animation.ANIMATIONTYPE_FLOAT?r.inTangent:r.inTangent?.clone(),outTangent:e===Ie.Animation.ANIMATIONTYPE_FLOAT?r.outTangent:r.outTangent?.clone()}}i(du,"cloneKey");function ve(e,r){let t=r.split("."),n=e;for(let o=0;o<t.length;++o)n=n[t[o]];return n}i(ve,"getPropertyValue");function yt(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(yt,"registerAfterAnimationCallback");var G=require("babylonjs"),Ee=require("babylonjs"),L=require("babylonjs");function Zo(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=ie(t.node,r),n||(n=r.particleSystems?.find(a=>a.id===t.node)??null)):t.defaultRenderingPipeline&&(n=re()),t.propertyPath){let a=ve(n,t.propertyPath);o=me(a)}let s=null;return t.sound&&(s=ne(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:St(t.soundVolume??[],G.Animation.ANIMATIONTYPE_FLOAT),keyFrameEvents:t.keyFrameEvents?.map(a=>{let f={...a};switch(a.data?.type){case"set-enabled":f.data={type:"set-enabled",value:a.data.value,node:ie(a.data.node,r)};break;case"apply-impulse":f.data={type:"apply-impulse",radius:a.data.radius,mesh:r.getMeshById(a.data.mesh),force:L.Vector3.FromArray(a.data.force),contactPoint:L.Vector3.FromArray(a.data.contactPoint)};break}return f}),keyFrameAnimations:n&&o!==null&&St(t.keyFrameAnimations??[],o)}})}}i(Zo,"parseCinematic");function _(e,r){if(e===null)return null;if(e!==void 0)switch(r){case G.Animation.ANIMATIONTYPE_FLOAT:return e;case G.Animation.ANIMATIONTYPE_VECTOR2:return L.Vector2.FromArray(e);case G.Animation.ANIMATIONTYPE_VECTOR3:return L.Vector3.FromArray(e);case G.Animation.ANIMATIONTYPE_QUATERNION:return L.Quaternion.FromArray(e);case G.Animation.ANIMATIONTYPE_COLOR3:return Ee.Color3.FromArray(e);case G.Animation.ANIMATIONTYPE_COLOR4:return Ee.Color4.FromArray(e);case G.Animation.ANIMATIONTYPE_MATRIX:return L.Matrix.FromArray(e)}}i(_,"parseCinematicKeyValue");function St(e,r){return e?.map(t=>{let n=t.type==="key"?t:null;if(n)return{...n,value:_(n.value,r),inTangent:_(n.inTangent,r),outTangent:_(n.outTangent,r)};let o=t.type==="cut"?t:null;if(o)return{...o,key1:{...o.key1,value:_(o.key1.value,r),inTangent:_(o.key1.inTangent,r),outTangent:_(o.key1.outTangent,r)},key2:{...o.key2,value:_(o.key2.value,r),inTangent:_(o.key2.inTangent,r),outTangent:_(o.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${t.type}`)})}i(St,"parseKeyFrameAnimations");function Kr(e,r){e.onEventObservable.notifyObservers(r.eventName)}i(Kr,"handleApplyEvent");function zr(e){e.node?.setEnabled(e.value)}i(zr,"handleSetEnabledEvent");var ht=require("babylonjs"),$r=ht.Vector3.Zero();function Qr(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 ht.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($r),n.physicsAggregate.body.setAngularVelocity($r),n.physicsAggregate.body.applyImpulse(o.negateInPlace(),r.contactPoint)}})}i(Qr,"handleApplyImpulseEvent");var jr=require("babylonjs"),Yr=require("babylonjs"),pe=class extends Yr.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new jr.Observable;onEvent(r,t){this.onEventObservable.add(n=>{r===n&&t()})}};function bt(e){return e.type==="key"}i(bt,"isCinematicKey");function J(e){return e.type==="cut"}i(J,"isCinematicKeyCut");function Xo(e){return e.type==="event"}i(Xo,"isCinematicKeyEvent");function en(e){return e.type==="group"}i(en,"isCinematicGroup");function tn(e){return e.type==="sound"}i(tn,"isCinematicSound");var I=require("babylonjs"),Z=require("babylonjs");function rn(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 u=s.clone(`${s.name}-cinematic-temp`),S=r.animationGroups.indexOf(u);S!==-1&&r.animationGroups.splice(S,1),n.onAnimationEndObservable.add(()=>{s.stop(),u.stop()});let y=o.animationGroups.reduce((v,b)=>Math.min(v,b.frame),Number.MAX_VALUE)??0,P=o.animationGroups.reduce((v,b)=>Math.max(v,b.frame+b.endFrame),0)??0,C={frame:y},A=new I.Animation(u.name,"frame",60,I.Animation.ANIMATIONTYPE_FLOAT,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1);if(A.setKeys([{frame:y,value:0},{frame:P,value:P}]),o.animationGroups.forEach(v=>{A.addEvent(new Z.AnimationEvent(v.frame,()=>{let b=v.repeatCount??0;if(u.to=v.endFrame,u.speedRatio=v.speed,u.stop(),u.play(b>0),u.from!==v.startFrame&&u.goToFrame(v.startFrame),b){let X=0;u.onAnimationGroupLoopObservable.add(()=>{++X,X>b&&u.stop()})}}))}),n.addTargetedAnimation(A,C),(o.animationGroupWeight?.length??0)>=2&&o.animationGroupWeight.find(b=>J(b)?b.key1.value!==1||b.key2.value!==1:b.value!==1)){let b={weight:0},X=new I.Animation(`${u.name}-weights`,"weight",60,I.Animation.ANIMATIONTYPE_FLOAT,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1),ue=[];o.animationGroupWeight.forEach(fe=>{J(fe)?(ue.push(fe.key1),ue.push(fe.key2)):ue.push(fe)}),X.setKeys(ue),n.addTargetedAnimation(X,b),yt(n,r,()=>{u.weight=b.weight})}}let a=o.sound,f=a?.getAudioBuffer();if(!t?.ignoreSounds&&a&&f&&o.sounds?.length){let u={dummy:0,volume:0},S=new I.Animation(a.name,"dummy",60,I.Animation.ANIMATIONTYPE_FLOAT,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=0;if(o.sounds?.forEach(P=>{let C=P.endFrame-P.startFrame;y=Math.max(y,P.frame+C),S.addEvent(new Z.AnimationEvent(P.frame,A=>{let b=(A-P.frame+P.startFrame)/e.framesPerSecond;a.play(0,b)},!1)),S.addEvent(new Z.AnimationEvent(P.frame+C,()=>{a.stop()}))}),S.setKeys([{frame:0,value:0},{frame:y,value:y}]),n.addTargetedAnimation(S,u),(o.soundVolume?.length??0)>=2){let P=new I.Animation(a.name,"volume",60,I.Animation.ANIMATIONTYPE_FLOAT,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1),C=[];o.soundVolume.forEach(A=>{J(A)?(C.push(A.key1),C.push(A.key2)):C.push(A)}),P.setKeys(C),n.addTargetedAnimation(P,u),yt(n,r,()=>{a.setVolume(u.volume)})}}if(o.keyFrameEvents){let u={dummy:0},S=new I.Animation("events","dummy",60,I.Animation.ANIMATIONTYPE_FLOAT,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=0;o.keyFrameEvents?.forEach(P=>{y=Math.max(y,P.frame),S.addEvent(new Z.AnimationEvent(P.frame,()=>{switch(P.data?.type){case"event":Kr(n,P.data);break;case"set-enabled":zr(P.data);break;case"apply-impulse":Qr(r,P.data);break}}))}),S.setKeys([{frame:0,value:0},{frame:y+1,value:y+1}]),n.addTargetedAnimation(S,u)}let c=o.defaultRenderingPipeline?re():o.node;if(!c||!o.propertyPath||!o.keyFrameAnimations)return;let l=ve(c,o.propertyPath),m=me(l);if(m===null)return;let d=new I.Animation(o.propertyPath,o.propertyPath,60,m,I.Animation.ANIMATIONLOOPMODE_CYCLE,!1),g=[];o.keyFrameAnimations?.forEach(u=>{if(bt(u))return g.push(u);J(u)&&(g.push(u.key1),g.push(u.key2),ge(c)&&o.propertyPath==="position"&&d.addEvent(new Z.AnimationEvent(u.key1.frame,()=>{let S=We();if(!S)return;let y=S.motionStrength;S.motionStrength=0,requestAnimationFrame(()=>{S.motionStrength=y})})))}),d.setKeys(g),n.addTargetedAnimation(d,c)}),n.normalize(),n}i(rn,"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,getSoundById,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});
|
package/build/src/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * from "./tools/light";
|
|
|
10
10
|
export * from "./tools/scalar";
|
|
11
11
|
export * from "./tools/animation";
|
|
12
12
|
export * from "./tools/sprite";
|
|
13
|
+
export * from "./tools/sound";
|
|
13
14
|
export * from "./tools/particle";
|
|
14
15
|
export * from "./tools/ragdoll";
|
|
15
16
|
export * from "./tools/mesh";
|
package/build/src/index.js.map
CHANGED
|
@@ -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,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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { Tools } from "@babylonjs/core/Misc/tools";
|
|
2
|
+
import { Sound } from "@babylonjs/core/Audio/sound";
|
|
2
3
|
import { cloneJSObject } from "../../tools/tools";
|
|
4
|
+
import { isAbstractMesh, isSoundNode, isTransformNode } from "../../tools/guards";
|
|
5
|
+
import { configureSourceNodeFrom } from "../sound";
|
|
3
6
|
import { configureTransformNodes } from "../transform-node";
|
|
4
|
-
import { _applyScriptsForObject, _removeRegisteredScriptInstance, scriptsDictionary } from "../script/apply";
|
|
7
|
+
import { _applyScriptsForObject, _removeRegisteredScriptInstance, getAllScriptsByClassForObject, scriptsDictionary } from "../script/apply";
|
|
5
8
|
import { AdvancedAssetContainerInstantiatedEntries } from "./entries";
|
|
6
9
|
export class AdvancedAssetContainer {
|
|
7
10
|
/**
|
|
@@ -31,6 +34,11 @@ export class AdvancedAssetContainer {
|
|
|
31
34
|
});
|
|
32
35
|
});
|
|
33
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* By default, loaded advanced asset containers add their nodes in the scene.
|
|
39
|
+
* As it is not always wanted, this method allows to remove those nodes from the scene and only keep them in the container.
|
|
40
|
+
* This is particularely useful when you want to instantiate the container several times in the scene, but not use the original nodes of the container itself.
|
|
41
|
+
*/
|
|
34
42
|
removeDefault() {
|
|
35
43
|
this.container.getNodes().forEach((node) => {
|
|
36
44
|
const scripts = scriptsDictionary.get(node);
|
|
@@ -40,6 +48,41 @@ export class AdvancedAssetContainer {
|
|
|
40
48
|
});
|
|
41
49
|
this.container.removeAllFromScene();
|
|
42
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Retrieve the reference to a node present in the root nodes of the container by its name.
|
|
53
|
+
* This is useful only if the container is not intended to be instantiated so you never call `.removeDefault()`.
|
|
54
|
+
* @param name defines the name of the root node to retrieve.
|
|
55
|
+
*/
|
|
56
|
+
getRootNodeByName(name) {
|
|
57
|
+
return this.container.rootNodes.find((node) => node.name === name) ?? null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Retrieve the reference to a script instance of the given type attached to a node with the given name.
|
|
61
|
+
* @param name defines the name of the object to retrieve the script from.
|
|
62
|
+
* @param classType defines the class of the type to retrieve.
|
|
63
|
+
* @returns the reference to the script instance attached to the node which matches the given class type.
|
|
64
|
+
*/
|
|
65
|
+
getScriptByClassByObjectName(name, classType) {
|
|
66
|
+
const nodes = this.container.getNodes();
|
|
67
|
+
for (const node of nodes) {
|
|
68
|
+
if (node.name === name) {
|
|
69
|
+
const scripts = getAllScriptsByClassForObject(node, classType);
|
|
70
|
+
if (scripts?.length === 1) {
|
|
71
|
+
return scripts[0];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Instantiate or clone all meshes, skeletons and animations groups, and add the new ones to the scene.
|
|
79
|
+
* If the container contains scripts attached to its nodes, those scripts will also be applied on the instantiated/cloned nodes.
|
|
80
|
+
* @param options defines an optional list of options to control how to instantiate / clone models
|
|
81
|
+
* @param options.doNotInstantiate defines if the model must be instantiated or just cloned
|
|
82
|
+
* @param options.predicate defines a predicate used to filter whih mesh to instantiate/clone
|
|
83
|
+
* @returns a new reference to instantiated entries with the instantiated nodes, skeletons and animation groups.
|
|
84
|
+
* @see `BABYLON.AssetContainer.instantiateModelsToScene` for options.
|
|
85
|
+
*/
|
|
43
86
|
instantiate(options) {
|
|
44
87
|
const namingId = Tools.RandomId();
|
|
45
88
|
const nameFunction = (sourceName) => sourceName;
|
|
@@ -71,13 +114,19 @@ export class AdvancedAssetContainer {
|
|
|
71
114
|
entries.rootNodes.forEach((node) => {
|
|
72
115
|
newDescendants.push(node, ...node.getDescendants(false));
|
|
73
116
|
});
|
|
117
|
+
const clonedSounds = {};
|
|
74
118
|
newDescendants.forEach((newNode) => {
|
|
75
119
|
const nameSplit = newNode.name.split("@editor-tools@");
|
|
76
120
|
const originalId = nameSplit[1].split("_").pop();
|
|
77
121
|
newNode.name = `${nameSplit[0]}-${namingId}`;
|
|
78
122
|
const originalNode = this._originalDescendants.find((n) => n.id === originalId);
|
|
123
|
+
if (isSoundNode(originalNode) && isTransformNode(newNode)) {
|
|
124
|
+
configureSourceNodeFrom(originalNode, newNode);
|
|
125
|
+
}
|
|
79
126
|
newNode.id = Tools.RandomId();
|
|
80
127
|
newNode.metadata = cloneJSObject(this._nodesMap.get(originalNode).metadata);
|
|
128
|
+
newNode.metadata ??= {};
|
|
129
|
+
newNode.metadata.originalId = originalId;
|
|
81
130
|
newDescendants.forEach((node) => {
|
|
82
131
|
node.metadata.scripts?.forEach((script) => {
|
|
83
132
|
const valueKeys = Object.keys(script.values || {});
|
|
@@ -90,6 +139,30 @@ export class AdvancedAssetContainer {
|
|
|
90
139
|
if (obj.value === originalNode.name) {
|
|
91
140
|
obj.value = newNode.name;
|
|
92
141
|
}
|
|
142
|
+
const originalSound = this.container.sounds?.find((s) => s.id === obj.value);
|
|
143
|
+
if (originalSound) {
|
|
144
|
+
let clonedSound = clonedSounds[originalSound.id];
|
|
145
|
+
if (!clonedSound) {
|
|
146
|
+
clonedSound = new Sound(originalSound.name, originalSound["_url"], this.container.scene, null, {
|
|
147
|
+
autoplay: false,
|
|
148
|
+
loop: originalSound.loop,
|
|
149
|
+
volume: originalSound.getVolume(),
|
|
150
|
+
playbackRate: originalSound.getPlaybackRate(),
|
|
151
|
+
maxDistance: originalSound.maxDistance,
|
|
152
|
+
refDistance: originalSound.refDistance,
|
|
153
|
+
spatialSound: originalSound.spatialSound,
|
|
154
|
+
distanceModel: originalSound.distanceModel,
|
|
155
|
+
rolloffFactor: originalSound.rolloffFactor,
|
|
156
|
+
});
|
|
157
|
+
clonedSound.id = Tools.RandomId();
|
|
158
|
+
clonedSound.metadata = {
|
|
159
|
+
originalSourceId: originalSound["_connectedTransformNode"]?.id,
|
|
160
|
+
};
|
|
161
|
+
clonedSounds[originalSound.id] = clonedSound;
|
|
162
|
+
this.container.scene.mainSoundTrack?.addSound(clonedSound);
|
|
163
|
+
}
|
|
164
|
+
obj.value = clonedSound.id;
|
|
165
|
+
}
|
|
93
166
|
const originalAnimationGroup = this._animationGroupsMap.get(obj.value);
|
|
94
167
|
if (originalAnimationGroup) {
|
|
95
168
|
obj.value = `${originalAnimationGroup.name}-${namingId}`;
|
|
@@ -99,6 +172,17 @@ export class AdvancedAssetContainer {
|
|
|
99
172
|
});
|
|
100
173
|
});
|
|
101
174
|
});
|
|
175
|
+
// Connect sounds to the new nodes based on the original source node they were connected to in the container
|
|
176
|
+
Object.values(clonedSounds).forEach((sound) => {
|
|
177
|
+
const originalSourceId = sound.metadata?.originalSourceId;
|
|
178
|
+
if (originalSourceId) {
|
|
179
|
+
const node = newDescendants.find((n) => n.metadata?.originalId === originalSourceId);
|
|
180
|
+
if (node && (isAbstractMesh(node) || isTransformNode(node))) {
|
|
181
|
+
sound.attachToMesh(node);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
// Apply scripts after everything else is set up to avoid issues with dependencies between scripts
|
|
102
186
|
newDescendants.forEach((node) => {
|
|
103
187
|
_applyScriptsForObject(this.container.scene, node, this._scriptsMap, this._rootUrl);
|
|
104
188
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/loading/container/container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/loading/container/container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getAllScriptsByClassForObject } from "../script/apply";
|
|
1
2
|
export class AdvancedAssetContainerInstantiatedEntries {
|
|
2
3
|
entries;
|
|
3
4
|
namingId;
|
|
@@ -5,21 +6,48 @@ export class AdvancedAssetContainerInstantiatedEntries {
|
|
|
5
6
|
this.entries = entries;
|
|
6
7
|
this.namingId = namingId;
|
|
7
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Returns the list of root nodes of the instantiated container.
|
|
11
|
+
*/
|
|
8
12
|
get rootNodes() {
|
|
9
13
|
return this.entries.rootNodes;
|
|
10
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Returns the list of all nodes of the instantiated container.
|
|
17
|
+
*/
|
|
11
18
|
get skeletons() {
|
|
12
19
|
return this.entries.skeletons;
|
|
13
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Returns the list of all animation groups of the instantiated container.
|
|
23
|
+
*/
|
|
14
24
|
get animationGroups() {
|
|
15
25
|
return this.entries.animationGroups;
|
|
16
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Disposes all the instantiated entries (meshes, skeletons, animation groups)
|
|
29
|
+
*/
|
|
17
30
|
dispose() {
|
|
18
31
|
this.entries.dispose();
|
|
19
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Retrieve the reference to a root node of the instantiated container by its name.
|
|
35
|
+
* @param name defines the name of the root node to retrieve.
|
|
36
|
+
* @returns the reference to the root node of the instantiated container which matches the given name, or null if not found.
|
|
37
|
+
*/
|
|
38
|
+
getRootNodeByName(name) {
|
|
39
|
+
const effectiveName = `${name}-${this.namingId}`;
|
|
40
|
+
return this.entries.rootNodes.find((node) => node.name === effectiveName) ?? null;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Retrieve the reference to a node present in the instantiated container by its name recursively.
|
|
44
|
+
* @param name defines the name of the node to retrieve.
|
|
45
|
+
* @returns the reference to the node of the instantiated container which matches the given name, or null if not found.
|
|
46
|
+
*/
|
|
20
47
|
getNodeByName(name) {
|
|
48
|
+
const effectiveName = `${name}-${this.namingId}`;
|
|
21
49
|
for (const node of this.entries.rootNodes) {
|
|
22
|
-
const result = this._recursivelyGetNodeByName(
|
|
50
|
+
const result = this._recursivelyGetNodeByName(effectiveName, node);
|
|
23
51
|
if (result) {
|
|
24
52
|
return result;
|
|
25
53
|
}
|
|
@@ -38,5 +66,21 @@ export class AdvancedAssetContainerInstantiatedEntries {
|
|
|
38
66
|
}
|
|
39
67
|
return null;
|
|
40
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Retrieve the reference to a script instance of the given type attached to a node with the given name.
|
|
71
|
+
* @param name defines the name of the object to retrieve the script from.
|
|
72
|
+
* @param classType defines the class of the type to retrieve.
|
|
73
|
+
* @returns the reference to the script instance attached to the node which matches the given class type.
|
|
74
|
+
*/
|
|
75
|
+
getScriptByClassByObjectName(name, classType) {
|
|
76
|
+
const node = this.getNodeByName(name);
|
|
77
|
+
if (node) {
|
|
78
|
+
const scripts = getAllScriptsByClassForObject(node, classType);
|
|
79
|
+
if (scripts?.length === 1) {
|
|
80
|
+
return scripts[0];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
41
85
|
}
|
|
42
86
|
//# sourceMappingURL=entries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entries.js","sourceRoot":"","sources":["../../../../src/loading/container/entries.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,yCAAyC;IAEpC;IACA;IAFjB,YACiB,OAA4B,EAC5B,QAAgB;QADhB,YAAO,GAAP,OAAO,CAAqB;QAC5B,aAAQ,GAAR,QAAQ,CAAQ;IAC9B,CAAC;IAEJ,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAW,eAAe;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;IACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"entries.js","sourceRoot":"","sources":["../../../../src/loading/container/entries.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,OAAO,yCAAyC;IAEpC;IACA;IAFjB,YACiB,OAA4B,EAC5B,QAAgB;QADhB,YAAO,GAAP,OAAO,CAAqB;QAC5B,aAAQ,GAAR,QAAQ,CAAQ;IAC9B,CAAC;IAEJ;;OAEG;IACH,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAW,eAAe;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,OAAO;QACb,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,IAAY;QACpC,MAAM,aAAa,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,IAAI,CAAC;IACnF,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,IAAY;QAChC,MAAM,aAAa,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEjD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACnE,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,MAAM,CAAC;YACf,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,yBAAyB,CAAC,IAAY,EAAE,IAAU;QACzD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3D,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,MAAM,CAAC;YACf,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACI,4BAA4B,CAAsC,IAAY,EAAE,SAAY;QAClG,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,6BAA6B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC/D,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
|
@@ -1,13 +1,74 @@
|
|
|
1
|
+
import { SoundState } from "@babylonjs/core/AudioV2/soundState";
|
|
1
2
|
import { AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
|
|
3
|
+
import { CreateSoundAsync, CreateSoundBufferAsync } from "@babylonjs/core/AudioV2/abstractAudio/audioEngineV2";
|
|
2
4
|
let registered = false;
|
|
5
|
+
const cachedSoundBuffers = new Map();
|
|
6
|
+
export function configureSourceNodeFrom(source, target) {
|
|
7
|
+
if (!source.soundRelativePath || !source.sound) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
CreateSoundAsync(source.soundRelativePath, source.sound.buffer, {
|
|
11
|
+
spatialAutoUpdate: true,
|
|
12
|
+
}).then((sound) => {
|
|
13
|
+
sound.volume = source.volume;
|
|
14
|
+
sound._isSpatial = source.sound._isSpatial;
|
|
15
|
+
if (sound._isSpatial) {
|
|
16
|
+
sound.spatial.attach(target);
|
|
17
|
+
sound.spatial.maxDistance = source.sound.spatial.maxDistance;
|
|
18
|
+
sound.spatial.panningModel = source.sound.spatial.panningModel;
|
|
19
|
+
sound.spatial.distanceModel = source.sound.spatial.distanceModel;
|
|
20
|
+
}
|
|
21
|
+
target.sound = sound;
|
|
22
|
+
target.isSoundNode = true;
|
|
23
|
+
target.soundRelativePath = source.soundRelativePath;
|
|
24
|
+
configureSoundNodePrototype(target, sound);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export function configureSoundNodePrototype(instance, sound) {
|
|
28
|
+
instance.isPlaying = () => {
|
|
29
|
+
return sound.state === SoundState.Started;
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(instance, "volume", {
|
|
32
|
+
get: () => {
|
|
33
|
+
return sound.volume;
|
|
34
|
+
},
|
|
35
|
+
set: (volume) => {
|
|
36
|
+
sound.volume = volume;
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(instance, "playbackRate", {
|
|
40
|
+
get: () => {
|
|
41
|
+
return sound.playbackRate;
|
|
42
|
+
},
|
|
43
|
+
set: (playbackRate) => {
|
|
44
|
+
sound.playbackRate = playbackRate;
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
instance.setVolume = (volume, options) => {
|
|
48
|
+
return sound.setVolume(volume, options);
|
|
49
|
+
};
|
|
50
|
+
instance.stop = (options) => {
|
|
51
|
+
return sound.stop(options);
|
|
52
|
+
};
|
|
53
|
+
instance.play = (options) => {
|
|
54
|
+
return sound.play(options);
|
|
55
|
+
};
|
|
56
|
+
instance.pause = () => {
|
|
57
|
+
return sound.pause();
|
|
58
|
+
};
|
|
59
|
+
instance.resume = () => {
|
|
60
|
+
return sound.resume();
|
|
61
|
+
};
|
|
62
|
+
instance.attachTo = (node, useBoundingBox, attachmentType) => {
|
|
63
|
+
return sound.spatial.attach(node, useBoundingBox, attachmentType);
|
|
64
|
+
};
|
|
65
|
+
}
|
|
3
66
|
export function registerAudioParser() {
|
|
4
67
|
if (registered) {
|
|
5
68
|
return;
|
|
6
69
|
}
|
|
7
70
|
registered = true;
|
|
8
|
-
// const audioParser = GetParser(SceneComponentConstants.NAME_AUDIO);
|
|
9
71
|
AddParser("AudioEditorPlugin", (parsedData, scene, container, _rootUrl) => {
|
|
10
|
-
// audioParser?.(parsedData, scene, container, rootUrl);
|
|
11
72
|
parsedData.sounds?.forEach((sound) => {
|
|
12
73
|
const instance = container.sounds?.find((s) => s.name === sound.name);
|
|
13
74
|
if (instance) {
|
|
@@ -25,5 +86,43 @@ export function registerAudioParser() {
|
|
|
25
86
|
}
|
|
26
87
|
});
|
|
27
88
|
});
|
|
89
|
+
AddParser("SoundNode", (parsedData, scene, container, rootUrl) => {
|
|
90
|
+
parsedData.transformNodes?.forEach((transformNode) => {
|
|
91
|
+
if (!transformNode.isSoundNode) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const instance = container.transformNodes?.find((t) => t.id === transformNode.id);
|
|
95
|
+
if (!instance) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (transformNode.soundRelativePath) {
|
|
99
|
+
const soundAbsolutePath = `${rootUrl}${transformNode.soundRelativePath}`;
|
|
100
|
+
scene.addPendingData(soundAbsolutePath);
|
|
101
|
+
if (!cachedSoundBuffers.has(soundAbsolutePath)) {
|
|
102
|
+
cachedSoundBuffers.set(soundAbsolutePath, CreateSoundBufferAsync(soundAbsolutePath));
|
|
103
|
+
}
|
|
104
|
+
const promise = cachedSoundBuffers.get(soundAbsolutePath);
|
|
105
|
+
promise.then((buffer) => {
|
|
106
|
+
CreateSoundAsync(transformNode.soundRelativePath, buffer, {
|
|
107
|
+
spatialAutoUpdate: true,
|
|
108
|
+
}).then((sound) => {
|
|
109
|
+
sound.volume = transformNode.volume;
|
|
110
|
+
sound._isSpatial = transformNode.isSpatial;
|
|
111
|
+
if (transformNode.isSpatial) {
|
|
112
|
+
sound.spatial.attach(instance);
|
|
113
|
+
sound.spatial.maxDistance = transformNode.maxDistance;
|
|
114
|
+
sound.spatial.panningModel = transformNode.panningModel;
|
|
115
|
+
sound.spatial.distanceModel = transformNode.distanceModel;
|
|
116
|
+
}
|
|
117
|
+
instance.sound = sound;
|
|
118
|
+
instance.isSoundNode = true;
|
|
119
|
+
instance.soundRelativePath = transformNode.soundRelativePath;
|
|
120
|
+
configureSoundNodePrototype(instance, sound);
|
|
121
|
+
scene.removePendingData(soundAbsolutePath);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
});
|
|
28
127
|
}
|
|
29
128
|
//# sourceMappingURL=sound.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../src/loading/sound.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../src/loading/sound.ts"],"names":[],"mappings":"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"}
|
|
@@ -191,4 +191,11 @@ export function isAnyParticleSystem(object) {
|
|
|
191
191
|
export function isSprite(object) {
|
|
192
192
|
return object.getClassName?.() === "Sprite";
|
|
193
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* Returns wether or not the given object is a SoundNode.
|
|
196
|
+
* @param object defines the reference to the object to test its class name.
|
|
197
|
+
*/
|
|
198
|
+
export function isSoundNode(object) {
|
|
199
|
+
return isTransformNode(object) && object.isSoundNode === true;
|
|
200
|
+
}
|
|
194
201
|
//# sourceMappingURL=guards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../src/tools/guards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../src/tools/guards.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../src/tools/sound.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../src/tools/sound.ts"],"names":[],"mappings":"AA0CA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU,EAAE,KAAY;IACpD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACzB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -10,6 +10,7 @@ export * from "./tools/light";
|
|
|
10
10
|
export * from "./tools/scalar";
|
|
11
11
|
export * from "./tools/animation";
|
|
12
12
|
export * from "./tools/sprite";
|
|
13
|
+
export * from "./tools/sound";
|
|
13
14
|
export * from "./tools/particle";
|
|
14
15
|
export * from "./tools/ragdoll";
|
|
15
16
|
export * from "./tools/mesh";
|
|
@@ -23,6 +23,33 @@ export declare class AdvancedAssetContainer {
|
|
|
23
23
|
private _nodesMap;
|
|
24
24
|
private _animationGroupsMap;
|
|
25
25
|
constructor(container: AssetContainer, rootUrl: string, scriptsMap: ScriptMap);
|
|
26
|
+
/**
|
|
27
|
+
* By default, loaded advanced asset containers add their nodes in the scene.
|
|
28
|
+
* As it is not always wanted, this method allows to remove those nodes from the scene and only keep them in the container.
|
|
29
|
+
* This is particularely useful when you want to instantiate the container several times in the scene, but not use the original nodes of the container itself.
|
|
30
|
+
*/
|
|
26
31
|
removeDefault(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Retrieve the reference to a node present in the root nodes of the container by its name.
|
|
34
|
+
* This is useful only if the container is not intended to be instantiated so you never call `.removeDefault()`.
|
|
35
|
+
* @param name defines the name of the root node to retrieve.
|
|
36
|
+
*/
|
|
37
|
+
getRootNodeByName(name: string): Node | null;
|
|
38
|
+
/**
|
|
39
|
+
* Retrieve the reference to a script instance of the given type attached to a node with the given name.
|
|
40
|
+
* @param name defines the name of the object to retrieve the script from.
|
|
41
|
+
* @param classType defines the class of the type to retrieve.
|
|
42
|
+
* @returns the reference to the script instance attached to the node which matches the given class type.
|
|
43
|
+
*/
|
|
44
|
+
getScriptByClassByObjectName<T extends new (...args: any) => any>(name: string, classType: T): InstanceType<T> | null;
|
|
45
|
+
/**
|
|
46
|
+
* Instantiate or clone all meshes, skeletons and animations groups, and add the new ones to the scene.
|
|
47
|
+
* If the container contains scripts attached to its nodes, those scripts will also be applied on the instantiated/cloned nodes.
|
|
48
|
+
* @param options defines an optional list of options to control how to instantiate / clone models
|
|
49
|
+
* @param options.doNotInstantiate defines if the model must be instantiated or just cloned
|
|
50
|
+
* @param options.predicate defines a predicate used to filter whih mesh to instantiate/clone
|
|
51
|
+
* @returns a new reference to instantiated entries with the instantiated nodes, skeletons and animation groups.
|
|
52
|
+
* @see `BABYLON.AssetContainer.instantiateModelsToScene` for options.
|
|
53
|
+
*/
|
|
27
54
|
instantiate(options?: IAdvancedAssetContainerInstantiateOptions): AdvancedAssetContainerInstantiatedEntries;
|
|
28
55
|
}
|
|
@@ -6,10 +6,40 @@ export declare class AdvancedAssetContainerInstantiatedEntries implements Instan
|
|
|
6
6
|
readonly entries: InstantiatedEntries;
|
|
7
7
|
readonly namingId: string;
|
|
8
8
|
constructor(entries: InstantiatedEntries, namingId: string);
|
|
9
|
+
/**
|
|
10
|
+
* Returns the list of root nodes of the instantiated container.
|
|
11
|
+
*/
|
|
9
12
|
get rootNodes(): Node[];
|
|
13
|
+
/**
|
|
14
|
+
* Returns the list of all nodes of the instantiated container.
|
|
15
|
+
*/
|
|
10
16
|
get skeletons(): Skeleton[];
|
|
17
|
+
/**
|
|
18
|
+
* Returns the list of all animation groups of the instantiated container.
|
|
19
|
+
*/
|
|
11
20
|
get animationGroups(): AnimationGroup[];
|
|
21
|
+
/**
|
|
22
|
+
* Disposes all the instantiated entries (meshes, skeletons, animation groups)
|
|
23
|
+
*/
|
|
12
24
|
dispose(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Retrieve the reference to a root node of the instantiated container by its name.
|
|
27
|
+
* @param name defines the name of the root node to retrieve.
|
|
28
|
+
* @returns the reference to the root node of the instantiated container which matches the given name, or null if not found.
|
|
29
|
+
*/
|
|
30
|
+
getRootNodeByName(name: string): Node | null;
|
|
31
|
+
/**
|
|
32
|
+
* Retrieve the reference to a node present in the instantiated container by its name recursively.
|
|
33
|
+
* @param name defines the name of the node to retrieve.
|
|
34
|
+
* @returns the reference to the node of the instantiated container which matches the given name, or null if not found.
|
|
35
|
+
*/
|
|
13
36
|
getNodeByName(name: string): Node | null;
|
|
14
37
|
private _recursivelyGetNodeByName;
|
|
38
|
+
/**
|
|
39
|
+
* Retrieve the reference to a script instance of the given type attached to a node with the given name.
|
|
40
|
+
* @param name defines the name of the object to retrieve the script from.
|
|
41
|
+
* @param classType defines the class of the type to retrieve.
|
|
42
|
+
* @returns the reference to the script instance attached to the node which matches the given class type.
|
|
43
|
+
*/
|
|
44
|
+
getScriptByClassByObjectName<T extends new (...args: any) => any>(name: string, classType: T): InstanceType<T> | null;
|
|
15
45
|
}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
+
import { StaticSound } from "@babylonjs/core/AudioV2/abstractAudio/staticSound";
|
|
2
|
+
import { SoundNode } from "../tools/sound";
|
|
3
|
+
export declare function configureSourceNodeFrom(source: SoundNode, target: SoundNode): void;
|
|
4
|
+
export declare function configureSoundNodePrototype(instance: SoundNode, sound: StaticSound): void;
|
|
1
5
|
export declare function registerAudioParser(): void;
|
|
@@ -20,6 +20,7 @@ import { ParticleSystem } from "@babylonjs/core/Particles/particleSystem";
|
|
|
20
20
|
import { IParticleSystem } from "@babylonjs/core/Particles/IParticleSystem";
|
|
21
21
|
import { GPUParticleSystem } from "@babylonjs/core/Particles/gpuParticleSystem";
|
|
22
22
|
import { Sprite } from "@babylonjs/core/Sprites/sprite";
|
|
23
|
+
import { SoundNode } from "./sound";
|
|
23
24
|
/**
|
|
24
25
|
* Returns wether or not the given object is an AbstractMesh.
|
|
25
26
|
* @param object defines the reference to the object to test its class name.
|
|
@@ -130,3 +131,8 @@ export declare function isAnyParticleSystem(object: any): object is IParticleSys
|
|
|
130
131
|
* @param object defines the reference to the object to test its class name.
|
|
131
132
|
*/
|
|
132
133
|
export declare function isSprite(object: any): object is Sprite;
|
|
134
|
+
/**
|
|
135
|
+
* Returns wether or not the given object is a SoundNode.
|
|
136
|
+
* @param object defines the reference to the object to test its class name.
|
|
137
|
+
*/
|
|
138
|
+
export declare function isSoundNode(object: any): object is SoundNode;
|
|
@@ -1,10 +1,34 @@
|
|
|
1
|
+
import { Node } from "@babylonjs/core/node";
|
|
1
2
|
import { Scene } from "@babylonjs/core/scene";
|
|
3
|
+
import { TransformNode } from "@babylonjs/core/Meshes/transformNode";
|
|
4
|
+
import { IAudioParameterRampOptions } from "@babylonjs/core/AudioV2/audioParameter";
|
|
5
|
+
import { SpatialAudioAttachmentType } from "@babylonjs/core/AudioV2/spatialAudioAttachmentType";
|
|
6
|
+
import { IStaticSoundPlayOptions, IStaticSoundStopOptions, StaticSound } from "@babylonjs/core/AudioV2/abstractAudio/staticSound";
|
|
2
7
|
declare module "@babylonjs/core/Audio/sound" {
|
|
3
8
|
interface Sound {
|
|
4
9
|
id: string;
|
|
5
10
|
uniqueId: number;
|
|
6
11
|
}
|
|
7
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* This interface is used to define extra properties on TransformNode. For example for SoundNode support.
|
|
15
|
+
*/
|
|
16
|
+
export interface SoundNode extends TransformNode {
|
|
17
|
+
isSoundNode?: boolean;
|
|
18
|
+
soundRelativePath?: string;
|
|
19
|
+
sound?: StaticSound;
|
|
20
|
+
isPlaying(): boolean;
|
|
21
|
+
get volume(): number;
|
|
22
|
+
set volume(value: number);
|
|
23
|
+
get playbackRate(): number;
|
|
24
|
+
set playbackRate(value: number);
|
|
25
|
+
setVolume(volume: number, options?: Partial<IAudioParameterRampOptions> | null): void;
|
|
26
|
+
pause(): void;
|
|
27
|
+
resume(): void;
|
|
28
|
+
stop(options?: Partial<IStaticSoundStopOptions>): void;
|
|
29
|
+
play(options?: Partial<IStaticSoundPlayOptions>): void;
|
|
30
|
+
attachTo(sceneNode: Node | null, useBoundingBox?: boolean, attachmentType?: SpatialAudioAttachmentType): void;
|
|
31
|
+
}
|
|
8
32
|
/**
|
|
9
33
|
* Searches for a sound by its id in the scene by traversing all soundtracks.
|
|
10
34
|
* @param id defines the id of the sound to retrieve.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "babylonjs-editor-tools",
|
|
3
|
-
"version": "5.4.1-
|
|
3
|
+
"version": "5.4.1-rc.1",
|
|
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": {
|