babylonjs-editor-tools 5.1.9 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/build/index.node.js +1 -1
  2. package/build/src/decorators/apply.js +44 -3
  3. package/build/src/decorators/apply.js.map +1 -1
  4. package/build/src/decorators/sprite.js +31 -0
  5. package/build/src/decorators/sprite.js.map +1 -0
  6. package/build/src/index.js +2 -0
  7. package/build/src/index.js.map +1 -1
  8. package/build/src/loading/loader.js +8 -0
  9. package/build/src/loading/loader.js.map +1 -1
  10. package/build/src/loading/script.js +39 -23
  11. package/build/src/loading/script.js.map +1 -1
  12. package/build/src/loading/shadows.js +21 -0
  13. package/build/src/loading/shadows.js.map +1 -0
  14. package/build/src/loading/sprite-manager.js +71 -0
  15. package/build/src/loading/sprite-manager.js.map +1 -0
  16. package/build/src/loading/sprite-map.js +52 -0
  17. package/build/src/loading/sprite-map.js.map +1 -0
  18. package/build/src/tools/guards.js +7 -0
  19. package/build/src/tools/guards.js.map +1 -1
  20. package/build/src/tools/sprite.js +27 -0
  21. package/build/src/tools/sprite.js.map +1 -0
  22. package/declaration/src/decorators/apply.d.ts +17 -1
  23. package/declaration/src/decorators/sprite.d.ts +18 -0
  24. package/declaration/src/index.d.ts +2 -0
  25. package/declaration/src/loading/loader.d.ts +6 -7
  26. package/declaration/src/loading/script.d.ts +20 -4
  27. package/declaration/src/loading/shadows.d.ts +1 -0
  28. package/declaration/src/loading/sprite-manager.d.ts +1 -0
  29. package/declaration/src/loading/sprite-map.d.ts +1 -0
  30. package/declaration/src/script.d.ts +6 -2
  31. package/declaration/src/tools/guards.d.ts +6 -0
  32. package/declaration/src/tools/sprite.d.ts +48 -0
  33. package/package.json +3 -3
@@ -1 +1 @@
1
- var U=Object.defineProperty;var Pt=Object.getOwnPropertyDescriptor;var It=Object.getOwnPropertyNames;var Ct=Object.prototype.hasOwnProperty;var i=(e,o)=>U(e,"name",{value:o,configurable:!0});var xt=(e,o)=>{for(var t in o)U(e,t,{get:o[t],enumerable:!0})},At=(e,o,t,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of It(o))!Ct.call(e,r)&&r!==t&&U(e,r,{get:()=>o[r],enumerable:!(n=Pt(o,r))||n.enumerable});return e};var Et=e=>At(U({},"__esModule",{value:!0}),e);var An={};xt(An,{_applyScriptsForObject:()=>M,_preloadScriptsAssets:()=>ve,animationGroupFromScene:()=>Jt,applyScriptOnObject:()=>Ht,configureEngineToUseCompressedTextures:()=>Zt,configureShadowMapRefreshRate:()=>le,configureShadowMapRenderListPredicate:()=>ce,createDefaultRenderingPipeline:()=>Xe,createMotionBlurPostProcess:()=>Ue,createSSAO2RenderingPipeline:()=>je,createSSRRenderingPipeline:()=>Ye,createVLSPostProcess:()=>ke,defaultPipelineCameraConfigurations:()=>G,disposeDefaultRenderingPipeline:()=>Ae,disposeMotionBlurPostProcess:()=>Pe,disposeSSAO2RenderingPipeline:()=>ye,disposeSSRRenderingPipeline:()=>ge,disposeVLSPostProcess:()=>me,forceCompileAllSceneMaterials:()=>Qt,generateCinematicAnimationGroup:()=>Sn,getAllScriptsByClassForObject:()=>ct,getAnimationTypeForObject:()=>H,getDefaultRenderingPipeline:()=>z,getMotionBlurPostProcess:()=>be,getPowerOfTwoUntil:()=>O,getSSAO2RenderingPipeline:()=>Kt,getSSRRenderingPipeline:()=>Bt,getScriptByClassForObject:()=>jt,getVLSPostProcess:()=>Lt,guiFromAsset:()=>en,isAbstractMesh:()=>$,isAnyParticleSystem:()=>ae,isArcRotateCamera:()=>Ot,isBone:()=>Dt,isCamera:()=>Q,isCinematicGroup:()=>Cn,isCinematicKey:()=>bn,isCinematicKeyCut:()=>Pn,isCinematicKeyEvent:()=>In,isCinematicSound:()=>xn,isDirectionalLight:()=>wt,isFreeCamera:()=>vt,isGPUParticleSystem:()=>Vt,isGroundMesh:()=>Tt,isHemisphericLight:()=>Ft,isInstancedMesh:()=>k,isLight:()=>Ve,isMesh:()=>v,isNode:()=>N,isParticleSystem:()=>Nt,isPointLight:()=>Rt,isScene:()=>se,isSpotLight:()=>Mt,isTexture:()=>ie,isTransformNode:()=>Ne,loadMaterialFromFile:()=>$t,loadScene:()=>Ut,motionBlurPostProcessCameraConfigurations:()=>B,nodeFromDescendants:()=>Xt,nodeFromScene:()=>qt,onKeyboardEvent:()=>yn,onPointerEvent:()=>dn,parseCinematic:()=>hn,parseCinematicKeyValue:()=>x,parseDefaultRenderingPipeline:()=>De,parseMotionBlurPostProcess:()=>Ce,parseSSAO2RenderingPipeline:()=>Se,parseSSRRenderingPipeline:()=>de,parseVLSPostProcess:()=>ue,particleSystemFromScene:()=>nn,registerScriptInstance:()=>at,scriptAssetsCache:()=>w,scriptsDictionary:()=>K,serializeDefaultRenderingPipeline:()=>Ee,serializeMotionBlurPostProcess:()=>Ie,serializeSSAO2RenderingPipeline:()=>he,serializeSSRRenderingPipeline:()=>fe,serializeVLSPostProcess:()=>pe,setDefaultRenderingPipelineRef:()=>Yt,setMotionBlurPostProcessRef:()=>zt,setSSAO2RenderingPipelineRef:()=>kt,setSSRRenderingPipelineRef:()=>Gt,setVLSPostProcessRef:()=>_t,soundFromScene:()=>tn,ssaoRenderingPipelineCameraConfigurations:()=>_,ssrRenderingPipelineCameraConfigurations:()=>L,visibleAsAsset:()=>fn,visibleAsBoolean:()=>rn,visibleAsColor3:()=>ln,visibleAsColor4:()=>mn,visibleAsEntity:()=>pn,visibleAsKeyMap:()=>gn,visibleAsNumber:()=>sn,visibleAsString:()=>on,visibleAsTexture:()=>un,visibleAsVector2:()=>an,visibleAsVector3:()=>cn,vlsPostProcessCameraConfigurations:()=>V});module.exports=Et(An);function $(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i($,"isAbstractMesh");function v(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(v,"isMesh");function k(e){return e.getClassName?.()==="InstancedMesh"}i(k,"isInstancedMesh");function Dt(e){return e.getClassName?.()==="Bone"}i(Dt,"isBone");function Tt(e){return e.getClassName?.()==="GroundMesh"}i(Tt,"isGroundMesh");function Ne(e){return e.getClassName?.()==="TransformNode"}i(Ne,"isTransformNode");function ie(e){return e?.getClassName?.()==="Texture"}i(ie,"isTexture");function Q(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(Q,"isCamera");function vt(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(vt,"isFreeCamera");function Ot(e){return e.getClassName?.()==="ArcRotateCamera"}i(Ot,"isArcRotateCamera");function Rt(e){return e.getClassName?.()==="PointLight"}i(Rt,"isPointLight");function wt(e){return e.getClassName?.()==="DirectionalLight"}i(wt,"isDirectionalLight");function Mt(e){return e.getClassName?.()==="SpotLight"}i(Mt,"isSpotLight");function Ft(e){return e.getClassName?.()==="HemisphericLight"}i(Ft,"isHemisphericLight");function Ve(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(Ve,"isLight");function N(e){return $(e)||Ne(e)||Ve(e)||Q(e)}i(N,"isNode");function se(e){return e.getClassName?.()==="Scene"}i(se,"isScene");function Nt(e){return e.getClassName?.()==="ParticleSystem"}i(Nt,"isParticleSystem");function Vt(e){return e.getClassName?.()==="GPUParticleSystem"}i(Vt,"isGPUParticleSystem");function ae(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(ae,"isAnyParticleSystem");var Le=require("babylonjs"),_e=require("babylonjs");function ce(e){e.lights.forEach(o=>{let t=o.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=n=>Le.Vector3.Distance(n.getAbsolutePosition(),o.getAbsolutePosition())<=o.range)})}i(ce,"configureShadowMapRenderListPredicate");async function le(e){e.executeWhenReady(()=>{e.lights.forEach(o=>{let t=o.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=o.metadata?.refreshRate??_e.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(le,"configureShadowMapRefreshRate");var Be=require("babylonjs"),Ge=require("babylonjs"),Ke=require("babylonjs"),b=null,V=new Map;function Lt(){return b}i(Lt,"getVLSPostProcess");function _t(e){b=e}i(_t,"setVLSPostProcessRef");function me(e){b&&e.activeCamera&&(b.dispose(e.activeCamera),b=null)}i(me,"disposeVLSPostProcess");function ke(e,o){return o??=e.meshes.find(t=>v(t)),b=new Ke.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,o,100,Ge.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),b}i(ke,"createVLSPostProcess");function pe(){return b?{meshId:b.mesh?.id,exposure:b.exposure,decay:b.decay,weight:b.weight,density:b.density,invert:b.invert,useCustomMeshPosition:b.useCustomMeshPosition,customMeshPosition:b.customMeshPosition.asArray()}:null}i(pe,"serializeVLSPostProcess");function ue(e,o){let t=null;if(o.meshId){let r=e.getMeshById(o.meshId);r&&v(r)&&(t=r)}let n=ke(e,t);return n.exposure=o.exposure,n.decay=o.decay,n.weight=o.weight,n.density=o.density,n.invert=o.invert,n.useCustomMeshPosition=o.useCustomMeshPosition,n.customMeshPosition.copyFrom(Be.Vector3.FromArray(o.customMeshPosition)),n}i(ue,"parseVLSPostProcess");var ze=require("babylonjs"),p=null,L=new Map;function Bt(){return p}i(Bt,"getSSRRenderingPipeline");function Gt(e){p=e}i(Gt,"setSSRRenderingPipelineRef");function ge(){p&&(p.dispose(),p=null)}i(ge,"disposeSSRRenderingPipeline");function Ye(e,o){return p=new ze.SSRRenderingPipeline("SSRRenderingPipeline",e,[o]),p.samples=4,p}i(Ye,"createSSRRenderingPipeline");function fe(){return p?{samples:p.samples,step:p.step,thickness:p.thickness,strength:p.strength,reflectionSpecularFalloffExponent:p.reflectionSpecularFalloffExponent,maxSteps:p.maxSteps,maxDistance:p.maxDistance,roughnessFactor:p.roughnessFactor,reflectivityThreshold:p.reflectivityThreshold,blurDispersionStrehgth:p.blurDispersionStrength,clipToFrustum:p.clipToFrustum,enableSmoothReflections:p.enableSmoothReflections,enableAutomaticThicknessComputation:p.enableAutomaticThicknessComputation,attenuateFacingCamera:p.attenuateFacingCamera,attenuateScreenBorders:p.attenuateScreenBorders,attenuateIntersectionDistance:p.attenuateIntersectionDistance,attenuateBackfaceReflection:p.attenuateBackfaceReflection,blurDownsample:p.blurDownsample,selfCollisionNumSkip:p.selfCollisionNumSkip,ssrDownsample:p.ssrDownsample,backfaceDepthTextureDownsample:p.backfaceDepthTextureDownsample}:null}i(fe,"serializeSSRRenderingPipeline");function de(e,o,t){if(p)return p;let n=Ye(e,o);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(de,"parseSSRRenderingPipeline");var He=require("babylonjs"),h=null,_=new Map;function Kt(){return h}i(Kt,"getSSAO2RenderingPipeline");function kt(e){h=e}i(kt,"setSSAO2RenderingPipelineRef");function ye(){h&&(h.dispose(),h=null)}i(ye,"disposeSSAO2RenderingPipeline");function je(e,o){return h=new He.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[o]),h.samples=4,h}i(je,"createSSAO2RenderingPipeline");function he(){return h?{radius:h.radius,totalStrength:h.totalStrength,samples:h.samples,maxZ:h.maxZ,minZAspect:h.minZAspect,epsilon:h.epsilon,textureSamples:h.textureSamples,bypassBlur:h.bypassBlur,bilateralSamples:h.bilateralSamples,bilateralSoften:h.bilateralSoften,bilateralTolerance:h.bilateralTolerance,expensiveBlur:h.expensiveBlur}:null}i(he,"serializeSSAO2RenderingPipeline");function Se(e,o,t){if(h)return h;let n=je(e,o);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(Se,"parseSSAO2RenderingPipeline");var We=require("babylonjs"),P=null,B=new Map;function be(){return P}i(be,"getMotionBlurPostProcess");function zt(e){P=e}i(zt,"setMotionBlurPostProcessRef");function Pe(){P&&(P.dispose(),P=null)}i(Pe,"disposeMotionBlurPostProcess");function Ue(e,o){return P=new We.MotionBlurPostProcess("MotionBlurPostProcess",e,1,o),P.motionStrength=1,P.isObjectBased=!0,P}i(Ue,"createMotionBlurPostProcess");function Ie(){return P?{isObjectBased:P.isObjectBased,motionStrength:P.motionStrength,motionBlurSamples:P.motionBlurSamples}:null}i(Ie,"serializeMotionBlurPostProcess");function Ce(e,o,t){if(P)return P;let n=Ue(e,o);return n.isObjectBased=t.isObjectBased,n.motionStrength=t.motionStrength,n.motionBlurSamples=t.motionBlurSamples,n}i(Ce,"parseMotionBlurPostProcess");var $e=require("babylonjs"),xe=require("babylonjs"),Qe=require("babylonjs"),Ze=require("babylonjs"),qe=require("babylonjs"),a=null,G=new Map;function z(){return a}i(z,"getDefaultRenderingPipeline");function Yt(e){a=e}i(Yt,"setDefaultRenderingPipelineRef");function Ae(){a&&(a.dispose(),a=null)}i(Ae,"disposeDefaultRenderingPipeline");function Xe(e,o){return a=new qe.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[o]),a.samples=4,a.depthOfField.lensSize=512,a.depthOfField.fStop=.25,a.depthOfField.focusDistance=55e3,a}i(Xe,"createDefaultRenderingPipeline");function Ee(){return a?{samples:a.samples,fxaaEnabled:a.fxaaEnabled,imageProcessingEnabled:a.imageProcessingEnabled,exposure:a.imageProcessing?.exposure,contrast:a.imageProcessing?.contrast,fromLinearSpace:a.imageProcessing?.fromLinearSpace,toneMappingEnabled:a.imageProcessing?.toneMappingEnabled,toneMappingType:a.imageProcessing?.toneMappingType,ditheringEnabled:a.imageProcessing?.ditheringEnabled,ditheringIntensity:a.imageProcessing?.ditheringIntensity,bloomEnabled:a.bloomEnabled,bloomThreshold:a.bloomThreshold,bloomWeight:a.bloomWeight,bloomScale:a.bloomScale,bloomKernel:a.bloomKernel,sharpenEnabled:a.sharpenEnabled,sharpenEdgeAmount:a.sharpen.edgeAmount,sharpenColorAmount:a.sharpen.colorAmount,grainEnabled:a.grainEnabled,grainIntensity:a.grain.intensity,grainAnimated:a.grain.animated,depthOfFieldEnabled:a.depthOfFieldEnabled,depthOfFieldBlurLevel:a.depthOfFieldBlurLevel,lensSize:a.depthOfField.lensSize,fStop:a.depthOfField.fStop,focusDistance:a.depthOfField.focusDistance,focalLength:a.depthOfField.focalLength,vignetteEnabled:a.imageProcessing?.vignetteEnabled,vignetteColor:a.imageProcessing?.vignetteColor.asArray(),vignetteWeight:a.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:a.chromaticAberrationEnabled,aberrationAmount:a.chromaticAberration.aberrationAmount,radialIntensity:a.chromaticAberration.radialIntensity,direction:a.chromaticAberration.direction.asArray(),centerPosition:a.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:a.glowLayerEnabled,glowLayerIntensity:a.glowLayer?.intensity,glowLayerBlurKernelSize:a.glowLayer?.blurKernelSize,colorGradingEnabled:a.imageProcessing.colorGradingEnabled,colorGradingTexture:a.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:a.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:a.imageProcessing.colorCurvesEnabled,globalHue:a.imageProcessing.colorCurves?.globalHue,globalDensity:a.imageProcessing.colorCurves?.globalDensity,globalExposure:a.imageProcessing.colorCurves?.globalExposure,globalSaturation:a.imageProcessing.colorCurves?.globalSaturation,highlightsHue:a.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:a.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:a.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:a.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:a.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:a.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:a.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:a.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:a.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:a.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:a.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:a.imageProcessing.colorCurves?.shadowsSaturation}:null}i(Ee,"serializeDefaultRenderingPipeline");function De(e,o,t,n){if(a)return a;let r=Xe(e,o);if(r.samples=t.samples,r.fxaaEnabled=t.fxaaEnabled,r.imageProcessingEnabled=t.imageProcessingEnabled,r.imageProcessing){if(r.imageProcessing.exposure=t.exposure,r.imageProcessing.contrast=t.contrast,r.imageProcessing.fromLinearSpace=t.fromLinearSpace,r.imageProcessing.toneMappingEnabled=t.toneMappingEnabled,r.imageProcessing.toneMappingType=t.toneMappingType,r.imageProcessing.ditheringEnabled=t.ditheringEnabled,r.imageProcessing.ditheringIntensity=t.ditheringIntensity,r.imageProcessing.vignetteEnabled=t.vignetteEnabled??!1,r.imageProcessing.vignetteColor=$e.Color4.FromArray(t.vignetteColor??[0,0,0]),r.imageProcessing.vignetteWeight=t.vignetteWeight??.3,r.imageProcessing.colorGradingEnabled=t.colorGradingEnabled??!1,r.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=t.colorGradingWithGreenDepth??!0,t.colorGradingTexture){let c=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let s=n+t.colorGradingTexture.name;c=new Ze.ColorGradingTexture(s,e),c.level=t.colorGradingTexture.level}else{let s=Qe.Texture.Parse(t.colorGradingTexture,e,n);ie(s)&&(c=s)}r.imageProcessing.colorGradingTexture=c}r.imageProcessing.colorCurvesEnabled=t.colorCurvesEnabled??!1,r.imageProcessing.colorCurves&&(r.imageProcessing.colorCurves.globalHue=t.globalHue??30,r.imageProcessing.colorCurves.globalDensity=t.globalDensity??0,r.imageProcessing.colorCurves.globalExposure=t.globalExposure??0,r.imageProcessing.colorCurves.globalSaturation=t.globalSaturation??0,r.imageProcessing.colorCurves.highlightsHue=t.highlightsHue??30,r.imageProcessing.colorCurves.highlightsDensity=t.highlightsDensity??0,r.imageProcessing.colorCurves.highlightsExposure=t.highlightsExposure??0,r.imageProcessing.colorCurves.highlightsSaturation=t.highlightsSaturation??0,r.imageProcessing.colorCurves.midtonesHue=t.midtonesHue??30,r.imageProcessing.colorCurves.midtonesDensity=t.midtonesDensity??0,r.imageProcessing.colorCurves.midtonesExposure=t.midtonesExposure??0,r.imageProcessing.colorCurves.midtonesSaturation=t.midtonesSaturation??0,r.imageProcessing.colorCurves.shadowsHue=t.shadowsHue??30,r.imageProcessing.colorCurves.shadowsDensity=t.shadowsDensity??0,r.imageProcessing.colorCurves.shadowsExposure=t.shadowsExposure??0,r.imageProcessing.colorCurves.shadowsSaturation=t.shadowsSaturation??0)}return r.bloomEnabled=t.bloomEnabled,r.bloomThreshold=t.bloomThreshold,r.bloomWeight=t.bloomWeight,r.bloomScale=t.bloomScale,r.bloomKernel=t.bloomKernel,r.sharpenEnabled=t.sharpenEnabled,r.sharpen.edgeAmount=t.sharpenEdgeAmount,r.sharpen.colorAmount=t.sharpenColorAmount,r.grainEnabled=t.grainEnabled,r.grain.intensity=t.grainIntensity,r.grain.animated=t.grainAnimated,r.depthOfFieldEnabled=t.depthOfFieldEnabled,r.depthOfFieldBlurLevel=t.depthOfFieldBlurLevel,r.depthOfField.lensSize=t.lensSize,r.depthOfField.fStop=t.fStop,r.depthOfField.focusDistance=t.focusDistance,r.depthOfField.focalLength=t.focalLength,r.chromaticAberrationEnabled=t.chromaticAberrationEnabled??!1,r.chromaticAberration.aberrationAmount=t.aberrationAmount??10,r.chromaticAberration.radialIntensity=t.radialIntensity??1,r.chromaticAberration.direction=xe.Vector2.FromArray(t.direction??[0,0]),r.chromaticAberration.centerPosition=xe.Vector2.FromArray(t.centerPosition??[0,0]),r.glowLayerEnabled=t.glowLayerEnabled??!1,r.glowLayer&&(r.glowLayer.intensity=t.glowLayerIntensity??1,r.glowLayer.blurKernelSize=t.glowLayerBlurKernelSize??32),r}i(De,"parseDefaultRenderingPipeline");function ro(e){_.set(e,he()),V.set(e,pe()),L.set(e,fe()),B.set(e,Ie()),G.set(e,Ee())}i(ro,"saveRenderingConfigurationForCamera");function Je(e,o){ye(),me(e.getScene()),ge(),Pe(),Ae();let t=_.get(e);t&&Se(e.getScene(),e,t);let n=V.get(e);n&&ue(e.getScene(),n);let r=L.get(e);r&&de(e.getScene(),e,r);let c=B.get(e);c&&Ce(e.getScene(),e,c);let s=G.get(e);s&&De(e.getScene(),e,s,o)}i(Je,"applyRenderingConfigurationForCamera");var Y=require("babylonjs"),et=require("babylonjs");function tt(e){let o=e.metadata?.physicsAggregate;if(!o)return;let t;v(e)?t=e:k(e)&&(t=e.sourceMesh);let n=new et.PhysicsAggregate(e,o.shape.type,{mesh:t,mass:o.massProperties.mass});n.body.setMassProperties({mass:o.massProperties.mass,inertia:o.massProperties.inertia?Y.Vector3.FromArray(o.massProperties.inertia):void 0,centerOfMass:o.massProperties.centerOfMass?Y.Vector3.FromArray(o.massProperties.centerOfMass):void 0,inertiaOrientation:o.massProperties.inertiaOrientation?Y.Quaternion.FromArray(o.massProperties.inertiaOrientation):void 0}),n.shape.density=o.shape.density,n.body.setMotionType(o.body.motionType),n.shape.material=o.material,e.physicsAggregate=n,e.metadata.physicsAggregate=void 0}i(tt,"configurePhysicsAggregate");function nt(e,o){(Array.isArray(o)?o:[]).forEach(n=>{let r=e.getCameraById(n.cameraId);r&&(n.ssao2RenderingPipeline&&_.set(r,n.ssao2RenderingPipeline),n.vlsPostProcess&&V.set(r,n.vlsPostProcess),n.ssrRenderingPipeline&&L.set(r,n.ssrRenderingPipeline),n.motionBlurPostProcess&&B.set(r,n.motionBlurPostProcess),n.defaultRenderingPipeline&&G.set(r,n.defaultRenderingPipeline))})}i(nt,"applyRenderingConfigurations");function Z(e,o){let t=o.soundTracks??[];t.length||t.push(o.mainSoundTrack);for(let n=0,r=t.length;n<r;n++){let c=t[n].soundCollection.find(s=>s.id===e);if(c)return c}return null}i(Z,"getSoundById");var rt=require("babylonjs"),q=require("babylonjs"),ot=require("babylonjs"),X=require("babylonjs"),it=require("babylonjs"),st=require("babylonjs-gui");function Te(e,o,t,n,r){let c=n.constructor;if(c){if(c._NodesFromScene?.forEach(s=>{n[s.propertyKey.toString()]=e.getNodeByName(s.nodeName)}),c._NodesFromDescendants?.forEach(s=>{let l=o.getDescendants?.(s.directDescendantsOnly,m=>m.name===s.nodeName)[0];n[s.propertyKey.toString()]=l??null}),c._AnimationGroups?.forEach(s=>{n[s.propertyKey.toString()]=e.getAnimationGroupByName(s.animationGroupName)}),c._SoundsFromScene?.forEach(s=>{let l=e.getSoundByName?.(s.soundName);n[s.propertyKey.toString()]=l??null}),(c._GuiFromAsset??[]).map(async s=>{let l=`${r}assets/${s.pathInAssets}`;try{let u=await(await fetch(l)).json(),S=st.AdvancedDynamicTexture.CreateFullscreenUI(u.name,!0,e);S.parseSerializedObject(u.content,!1),n[s.propertyKey.toString()]=S,s.onGuiCreated?.(n,S)}catch(m){throw console.error(`Failed to load GUI from asset: ${l}`),m}}),c._ParticleSystemsFromScene?.forEach(s=>{let l=e.particleSystems?.find(m=>m.name!==s.particleSystemName?!1:s.directDescendantsOnly?m.emitter===o:m);n[s.propertyKey.toString()]=l}),(c._VisibleInInspector??[]).map(async s=>{let l=s.propertyKey.toString(),m=t.values;if(m.hasOwnProperty(l)&&m[l].hasOwnProperty("value")){let u=m[l].value;switch(s.configuration.type){case"number":case"boolean":case"keymap":case"string":n[l]=u;break;case"vector2":n[l]=X.Vector2.FromArray(u);break;case"vector3":n[l]=X.Vector3.FromArray(u);break;case"color3":n[l]=q.Color3.FromArray(u);break;case"color4":n[l]=q.Color4.FromArray(u);break;case"entity":switch(s.configuration.entityType){case"node":n[l]=e.getNodeById(u)??null;break;case"animationGroup":n[l]=e.getAnimationGroupByName(u)??null;break;case"sound":n[l]=Z(u,e);break;case"particleSystem":n[l]=e.particleSystems?.find(C=>C.id===u)??null;break}break;case"texture":u&&(n[l]=ot.Texture.Parse(u,e,r));break;case"asset":if(u){let C=s.configuration.assetType,I=w.get(u);switch(C){case"json":n[l]=I;break;case"nodeParticleSystemSet":let f=it.NodeParticleSystemSet.Parse(I);n[l]=f;break;case"material":n[l]=rt.Material.Parse(I,e,r);break}}}}}),c._PointerEvents?.length){if(c._PointerEvents.find(m=>m.options.mode==="attachedMeshOnly")&&!$(o))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(c._PointerEvents.find(m=>m.options.mode!=="global")&&!N(o))throw new Error('@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.');e.onPointerObservable.add(m=>{let u=null;c._PointerEvents.forEach(S=>{if(!S.eventTypes.includes(m.type))return;let C=S.propertyKey.toString();if(S.options.mode==="global")return n[C]?.(m);u=m.pickInfo,u||(u=e.pick(e.pointerX,e.pointerY,f=>f.isVisible&&f.isPickable&&f.isEnabled(!0)&&!f._masterMesh,!1));let I=u.pickedMesh;if(I&&(S.options.mode==="attachedMeshOnly"&&I===o||S.options.mode==="includeDescendants"&&N(o)&&[o,...o.getDescendants(!1)].find(g=>g===I)))return n[C]?.(m)})})}c._KeyboardEvents?.length&&e.onKeyboardObservable.add(s=>{c._KeyboardEvents.forEach(l=>{l.eventTypes.includes(s.type)&&n[l.propertyKey.toString()]?.(s)})})}}i(Te,"applyDecorators");var w=new Map;async function ve(e,o){[...e.transformNodes,...e.meshes,...e.lights,...e.cameras].filter(c=>c.metadata?.scripts?.length).map(c=>c.metadata.scripts).flat().forEach(c=>{for(let s in c.values){if(!c.values.hasOwnProperty(s))continue;let l=c.values[s];l.type==="asset"&&l.value&&w.set(l.value,null)}});let r=[];w.forEach((c,s)=>{w.get(s)||r.push(new Promise(async l=>{try{let u=await(await fetch(`${o}${s}`)).json();w.set(s,u)}catch(m){console.error(m)}l()}))}),await Promise.all(r)}i(ve,"_preloadScriptsAssets");function M(e,o,t,n){o.metadata?.scripts&&(o.metadata.scripts?.forEach(async r=>{if(!r.enabled)return;let c=t[r.key];if(c)if(c.default){let s=new c.default(o);at(o,s,r.key),Te(e,o,r,s,n),s.onStart&&e.onBeforeRenderObservable.addOnce(()=>s.onStart()),s.onUpdate&&e.onBeforeRenderObservable.add(()=>s.onUpdate())}else c.onStart&&e.onBeforeRenderObservable.addOnce(()=>c.onStart(o)),c.onUpdate&&e.onBeforeRenderObservable.add(()=>c.onUpdate(o))}),o.metadata.scripts=void 0)}i(M,"_applyScriptsForObject");function Ht(e,o,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let n=new o(e);return Te(t,e,{values:{}},n,""),n.onStart&&t.onBeforeRenderObservable.addOnce(()=>n.onStart()),n.onUpdate&&t.onBeforeRenderObservable.add(()=>n.onUpdate()),n}i(Ht,"applyScriptOnObject");var K=new Map;function at(e,o,t){let n={key:t,instance:o};K.has(e)?K.get(e).push(n):K.set(e,[n]),e.__editorRunningScripts??=[],e.__editorRunningScripts.push(n),(N(e)||ae(e)||se(e))&&e.onDisposeObservable.addOnce(()=>{K.delete(e)})}i(at,"registerScriptInstance");function ct(e,o){return K.get(e)?.filter(r=>r.instance.constructor===o)?.map(r=>r.instance)??null}i(ct,"getAllScriptsByClassForObject");function jt(e,o){return ct(e,o)?.[0]??null}i(jt,"getScriptByClassForObject");var Oe=require("babylonjs"),J=require("babylonjs"),Wt=(0,J.GetParser)(Oe.SceneComponentConstants.NAME_AUDIO);(0,J.AddParser)(Oe.SceneComponentConstants.NAME_AUDIO,(e,o,t,n)=>{Wt?.(e,o,t,n),e.sounds?.forEach(r=>{let c=t.sounds?.find(s=>s.name===r.name);c&&(c.id=r.id,c.uniqueId=r.uniqueId)})});function O(e){let o=1;for(;o<=e;)o<<=1;return o>>1}i(O,"getPowerOfTwoUntil");var Re=require("babylonjs"),ee=Re.SerializationHelper._TextureParser;Re.SerializationHelper._TextureParser=(e,o,t)=>{if(o.loadingQuality==="high"||!e.metadata?.baseSize)return ee(e,o,t);let n=e.metadata.baseSize.width,r=e.metadata.baseSize.height,c=n===O(n)||r===O(r),s="";switch(o.loadingQuality){case"medium":let f=n*.66>>0,y=r*.66>>0;c&&(f=O(f),y=O(y)),s=`_${f}_${y}`;break;case"low":let g=n*.33>>0,d=r*.33>>0;c&&(g=O(g),d=O(d)),s=`_${g}_${d}`;break}let l=e.name;if(!l||!s)return ee(e,o,t);let m=l.split("/"),u=m.pop();if(!u)return ee(e,o,t);let S=u.split(".").pop(),I=`${u.replace(`.${S}`,"")}${s}.${S}`;return m.push(I),e.name=m.join("/"),ee(e,o,t)};var lt=require("babylonjs"),we=require("babylonjs"),mt=require("babylonjs"),pt=require("babylonjs");async function Ut(e,o,t,n,r){t.loadingQuality=r?.quality??"high",await(0,mt.AppendSceneAsync)(`${e}${o}`,t,{pluginExtension:".babylon",onProgress:i(s=>{let l=Math.min(s.loaded/s.total*.5);r?.onProgress?.(l)},"onProgress")}),pt.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(s=>v(s)&&s._checkDelayState());let c=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(l=>setTimeout(l,150));let s=c-t.getWaitingItemsCount();s===c&&t.textures.forEach(l=>{l.delayLoadState===we.Constants.DELAYLOADSTATE_NONE&&(l.delayLoadState=we.Constants.DELAYLOADSTATE_LOADED)}),r?.onProgress?.(.5+s/c*.5)}await ve(t,e),r?.onProgress?.(1),ce(t),le(t),t.metadata?.rendering&&(nt(t,t.metadata.rendering),t.activeCamera&&Je(t.activeCamera,e)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(lt.Vector3.FromArray(t.metadata?.physicsGravity)),M(t,t,n,e),t.transformNodes.forEach(s=>{M(t,s,n,e)}),t.meshes.forEach(s=>{tt(s),M(t,s,n,e)}),t.lights.forEach(s=>{M(t,s,n,e)}),t.cameras.forEach(s=>{M(t,s,n,e)})}i(Ut,"loadScene");var ut=require("babylonjs");async function $t(e,o,t){let r=await(await fetch(e+o)).json(),s=ut.Tools.Instantiate(r.customType).Parse(r,t,e);return s.id=r.id,s.uniqueId=r.uniqueId,s}i($t,"loadMaterialFromFile");function Qt(e){return Promise.all(e.materials.map(async o=>{let t=o.getBindedMeshes();await Promise.all(t.map(async n=>{k(n)||await o.forceCompilationAsync(n,{clipPlane:!!e.clipPlane,useInstances:n.hasInstances})}))}))}i(Qt,"forceCompileAllSceneMaterials");function Zt(e){e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(Zt,"configureEngineToUseCompressedTextures");var D=require("babylonjs");function H(e){if(!isNaN(parseFloat(e))&&isFinite(e))return D.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return D.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return D.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return D.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return D.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return D.Animation.ANIMATIONTYPE_COLOR4;case"Size":return D.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return D.Animation.ANIMATIONTYPE_MATRIX}return null}i(H,"getAnimationTypeForObject");function qt(e){return function(o,t){let n=o.constructor;n._NodesFromScene??=[],n._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(qt,"nodeFromScene");function Xt(e,o=!1){return function(t,n){let r=t.constructor;r._NodesFromDescendants??=[],r._NodesFromDescendants.push({propertyKey:n,nodeName:e,directDescendantsOnly:o})}}i(Xt,"nodeFromDescendants");function Jt(e){return function(o,t){let n=o.constructor;n._AnimationGroups??=[],n._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(Jt,"animationGroupFromScene");function en(e,o){return function(t,n){let r=t.constructor;r._GuiFromAsset??=[],r._GuiFromAsset.push({propertyKey:n,pathInAssets:e,onGuiCreated:o})}}i(en,"guiFromAsset");function tn(e){return function(o,t){let n=o.constructor;n._SoundsFromScene??=[],n._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(tn,"soundFromScene");function nn(e,o=!1){return function(t,n){let r=t.constructor;r._ParticleSystemsFromScene??=[],r._ParticleSystemsFromScene.push({propertyKey:n,particleSystemName:e,directDescendantsOnly:o})}}i(nn,"particleSystemFromScene");function rn(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"boolean"}})}}i(rn,"visibleAsBoolean");function on(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"string"}})}}i(on,"visibleAsString");function sn(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"number"}})}}i(sn,"visibleAsNumber");function an(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"vector2"}})}}i(an,"visibleAsVector2");function cn(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"vector3"}})}}i(cn,"visibleAsVector3");function ln(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"color3"}})}}i(ln,"visibleAsColor3");function mn(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"color4"}})}}i(mn,"visibleAsColor4");function pn(e,o,t){return function(n,r){let c=n.constructor;c._VisibleInInspector??=[],c._VisibleInInspector.push({label:o,propertyKey:r,configuration:{...t,entityType:e,type:"entity"}})}}i(pn,"visibleAsEntity");function un(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"texture"}})}}i(un,"visibleAsTexture");function gn(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"keymap"}})}}i(gn,"visibleAsKeyMap");function fn(e,o,t){return function(n,r){let c=n.constructor;c._VisibleInInspector??=[],c._VisibleInInspector.push({label:o,propertyKey:r,configuration:{...t,assetType:e,type:"asset"}})}}i(fn,"visibleAsAsset");function dn(e,o){return function(t,n){let r=t.constructor;r._PointerEvents??=[],r._PointerEvents.push({propertyKey:n,options:{mode:"global",...o??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(dn,"onPointerEvent");function yn(e){return function(o,t){let n=o.constructor;n._KeyboardEvents??=[],n._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(yn,"onKeyboardEvent");var te=require("babylonjs");function gt(e,o){let t;switch(e){case te.Animation.ANIMATIONTYPE_FLOAT:t=o.value;break;default:t=o.value.clone();break}return{value:t,frame:o.frame,interpolation:o.interpolation,inTangent:e===te.Animation.ANIMATIONTYPE_FLOAT?o.inTangent:o.inTangent?.clone(),outTangent:e===te.Animation.ANIMATIONTYPE_FLOAT?o.outTangent:o.outTangent?.clone()}}i(gt,"cloneKey");function ne(e,o){let t=o.split("."),n=e;for(let r=0;r<t.length;++r)n=n[t[r]];return n}i(ne,"getPropertyValue");var R=require("babylonjs"),re=require("babylonjs"),A=require("babylonjs");function hn(e,o){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(t=>{let n=null,r=null;if(t.node?(n=o.getNodeById(t.node),n||(n=o.particleSystems?.find(s=>s.id===t.node)??null)):t.defaultRenderingPipeline&&(n=z()),t.propertyPath){let s=ne(n,t.propertyPath);r=H(s)}let c=null;return t.sound&&(c=Z(t.sound,o)),{node:n,sound:c,propertyPath:t.propertyPath,defaultRenderingPipeline:t.defaultRenderingPipeline,animationGroup:t.animationGroup?o.getAnimationGroupByName(t.animationGroup):null,animationGroups:t.animationGroups,sounds:t.sounds,keyFrameEvents:t.keyFrameEvents?.map(s=>{let l={...s};switch(s.data?.type){case"set-enabled":l.data={type:"set-enabled",value:s.data.value,node:o.getNodeById(s.data.node)};break;case"apply-impulse":l.data={type:"apply-impulse",radius:s.data.radius,mesh:o.getMeshById(s.data.mesh),force:A.Vector3.FromArray(s.data.force),contactPoint:A.Vector3.FromArray(s.data.contactPoint)};break}return l}),keyFrameAnimations:n&&r!==null&&t.keyFrameAnimations?.map(s=>{let l=s.type==="key"?s:null;if(l)return{...l,value:x(l.value,r),inTangent:x(l.inTangent,r),outTangent:x(l.outTangent,r)};let m=s.type==="cut"?s:null;if(m)return{...m,key1:{...m.key1,value:x(m.key1.value,r),inTangent:x(m.key1.inTangent,r),outTangent:x(m.key1.outTangent,r)},key2:{...m.key2,value:x(m.key2.value,r),inTangent:x(m.key2.inTangent,r),outTangent:x(m.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${s.type}`)})}})}}i(hn,"parseCinematic");function x(e,o){if(e===null)return null;if(e!==void 0)switch(o){case R.Animation.ANIMATIONTYPE_FLOAT:return e;case R.Animation.ANIMATIONTYPE_VECTOR2:return A.Vector2.FromArray(e);case R.Animation.ANIMATIONTYPE_VECTOR3:return A.Vector3.FromArray(e);case R.Animation.ANIMATIONTYPE_QUATERNION:return A.Quaternion.FromArray(e);case R.Animation.ANIMATIONTYPE_COLOR3:return re.Color3.FromArray(e);case R.Animation.ANIMATIONTYPE_COLOR4:return re.Color4.FromArray(e);case R.Animation.ANIMATIONTYPE_MATRIX:return A.Matrix.FromArray(e)}}i(x,"parseCinematicKeyValue");function ft(e){e.node?.setEnabled(e.value)}i(ft,"handleSetEnabledEvent");var Me=require("babylonjs"),dt=Me.Vector3.Zero();function yt(e,o){let t=o.mesh?[o.mesh]:e.meshes.filter(n=>n.physicsAggregate);o.radius&&(t=t.filter(n=>{let r=n.getBoundingInfo().boundingBox.centerWorld;return Me.Vector3.Distance(r,o.contactPoint)<=o.radius})),t.forEach(n=>{if(n.physicsAggregate?.body){let r=o.contactPoint.subtract(n.getBoundingInfo().boundingBox.centerWorld);r.multiplyInPlace(o.force),n.physicsAggregate.body.setLinearVelocity(dt),n.physicsAggregate.body.setAngularVelocity(dt),n.physicsAggregate.body.applyImpulse(r.negateInPlace(),o.contactPoint)}})}i(yt,"handleApplyImpulseEvent");var ht=require("babylonjs"),T=require("babylonjs"),j=require("babylonjs"),St=require("babylonjs");function Sn(e,o,t){let n=new St.AnimationGroup(e.name,o);return e.tracks.forEach(r=>{let c=r.animationGroup;c&&r.animationGroups?.forEach(f=>{c.targetedAnimations.forEach(y=>{let g=null;e:{let E=n.targetedAnimations.filter(W=>W.target===y.target);if(E.length){let W=E.find(bt=>bt.animation.targetProperty===y.animation.targetProperty);if(W){g=W.animation;break e}}g=y.animation.clone(),g.setKeys([]),g.name=ht.Tools.RandomId(),g.framePerSecond=e.framesPerSecond}let d=g.getKeys(),F=y.animation.getKeys(),oe=f.speed,Fe=e.framesPerSecond/y.animation.framePerSecond/oe;F.forEach(E=>{E.frame>=f.startFrame&&E.frame<=f.endFrame&&d.push({...gt(y.animation.dataType,E),frame:f.frame+E.frame*Fe})}),g.setKeys(d),n.addTargetedAnimation(g,y.target)})});let s=r.sound,l=s?.getAudioBuffer();if(!t?.ignoreSounds&&s&&l&&r.sounds?.length){let f={dummy:0},y=new T.Animation(s.name,"dummy",60,T.Animation.ANIMATIONTYPE_FLOAT,T.Animation.ANIMATIONLOOPMODE_CYCLE,!1),g=0;r.sounds?.forEach(d=>{let F=d.endFrame-d.startFrame;g=Math.max(g,d.frame+F),y.addEvent(new j.AnimationEvent(d.frame,oe=>{let E=(oe-d.frame+d.startFrame)/e.framesPerSecond;s.play(0,E)},!1)),y.addEvent(new j.AnimationEvent(d.frame+F,()=>{s.stop()}))}),y.setKeys([{frame:0,value:0},{frame:g,value:g}]),n.addTargetedAnimation(y,f)}if(r.keyFrameEvents){let f={dummy:0},y=new T.Animation("events","dummy",60,T.Animation.ANIMATIONTYPE_FLOAT,T.Animation.ANIMATIONLOOPMODE_CYCLE,!1),g=0;r.keyFrameEvents?.forEach(d=>{g=Math.max(g,d.frame),y.addEvent(new j.AnimationEvent(d.frame,()=>{switch(d.data?.type){case"set-enabled":ft(d.data);break;case"apply-impulse":yt(o,d.data);break}}))}),y.setKeys([{frame:0,value:0},{frame:g,value:g}]),n.addTargetedAnimation(y,f)}let m=r.defaultRenderingPipeline?z():r.node;if(!m||!r.propertyPath||!r.keyFrameAnimations)return;let u=ne(m,r.propertyPath),S=H(u);if(S===null)return;let C=new T.Animation(r.propertyPath,r.propertyPath,60,S,T.Animation.ANIMATIONLOOPMODE_CYCLE,!1),I=[];r.keyFrameAnimations?.forEach(f=>{let y=f.type==="key"?f:null;if(y)return I.push(y);let g=f.type==="cut"?f:null;g&&(I.push(g.key1),I.push(g.key2),Q(m)&&r.propertyPath==="position"&&C.addEvent(new j.AnimationEvent(g.key1.frame,()=>{let d=be();if(!d)return;let F=d.motionStrength;d.motionStrength=0,requestAnimationFrame(()=>{d.motionStrength=F})})))}),C.setKeys(I),n.addTargetedAnimation(C,m)}),n.normalize(),n}i(Sn,"generateCinematicAnimationGroup");function bn(e){return e.type==="key"}i(bn,"isCinematicKey");function Pn(e){return e.type==="cut"}i(Pn,"isCinematicKeyCut");function In(e){return e.type==="event"}i(In,"isCinematicKeyEvent");function Cn(e){return e.type==="group"}i(Cn,"isCinematicGroup");function xn(e){return e.type==="sound"}i(xn,"isCinematicSound");0&&(module.exports={_applyScriptsForObject,_preloadScriptsAssets,animationGroupFromScene,applyScriptOnObject,configureEngineToUseCompressedTextures,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isParticleSystem,isPointLight,isScene,isSpotLight,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,onKeyboardEvent,onPointerEvent,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseMotionBlurPostProcess,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseVLSPostProcess,particleSystemFromScene,registerScriptInstance,scriptAssetsCache,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setVLSPostProcessRef,soundFromScene,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
1
+ var Q=Object.defineProperty;var Bt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Kt=Object.prototype.hasOwnProperty;var i=(e,n)=>Q(e,"name",{value:n,configurable:!0});var kt=(e,n)=>{for(var t in n)Q(e,t,{get:n[t],enumerable:!0})},zt=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Gt(n))!Kt.call(e,r)&&r!==t&&Q(e,r,{get:()=>n[r],enumerable:!(o=Bt(n,r))||o.enumerable});return e};var $t=e=>zt(Q({},"__esModule",{value:!0}),e);var Wr={};kt(Wr,{_applyScriptsForObject:()=>w,_preloadScriptsAssets:()=>Fe,_registerScriptInstance:()=>gt,_removeRegisteredScriptInstance:()=>dt,animationFromSprite:()=>Lr,animationGroupFromScene:()=>br,applyScriptOnObject:()=>lr,configureEngineToUseCompressedTextures:()=>yr,configureShadowMapRefreshRate:()=>ge,configureShadowMapRenderListPredicate:()=>fe,createDefaultRenderingPipeline:()=>it,createMotionBlurPostProcess:()=>et,createSSAO2RenderingPipeline:()=>Ze,createSSRRenderingPipeline:()=>Qe,createVLSPostProcess:()=>je,defaultPipelineCameraConfigurations:()=>K,disposeDefaultRenderingPipeline:()=>Oe,disposeMotionBlurPostProcess:()=>Ee,disposeSSAO2RenderingPipeline:()=>Ie,disposeSSRRenderingPipeline:()=>he,disposeVLSPostProcess:()=>de,forceCompileAllSceneMaterials:()=>dr,generateCinematicAnimationGroup:()=>Gr,getAllScriptsByClassForObject:()=>yt,getAnimationTypeForObject:()=>H,getDefaultRenderingPipeline:()=>Y,getMotionBlurPostProcess:()=>xe,getPowerOfTwoUntil:()=>x,getSSAO2RenderingPipeline:()=>or,getSSRRenderingPipeline:()=>rr,getScriptByClassForObject:()=>cr,getVLSPostProcess:()=>er,guiFromAsset:()=>Pr,isAbstractMesh:()=>J,isAnyParticleSystem:()=>pe,isArcRotateCamera:()=>Ut,isBone:()=>Yt,isCamera:()=>X,isCinematicGroup:()=>$r,isCinematicKey:()=>Kr,isCinematicKeyCut:()=>kr,isCinematicKeyEvent:()=>zr,isCinematicSound:()=>Yr,isDirectionalLight:()=>qt,isFreeCamera:()=>Ht,isGPUParticleSystem:()=>Xt,isGroundMesh:()=>Wt,isHemisphericLight:()=>Jt,isInstancedMesh:()=>$,isLight:()=>ze,isMesh:()=>M,isNode:()=>V,isParticleSystem:()=>Zt,isPointLight:()=>jt,isScene:()=>me,isSpotLight:()=>Qt,isSprite:()=>ue,isTexture:()=>ce,isTransformNode:()=>Z,loadMaterialFromFile:()=>gr,loadScene:()=>fr,motionBlurPostProcessCameraConfigurations:()=>G,nodeFromDescendants:()=>hr,nodeFromScene:()=>Sr,normalizeAtlasJson:()=>Le,onKeyboardEvent:()=>Vr,onPointerEvent:()=>Nr,parseCinematic:()=>Br,parseCinematicKeyValue:()=>E,parseDefaultRenderingPipeline:()=>Re,parseMotionBlurPostProcess:()=>Te,parseSSAO2RenderingPipeline:()=>Ae,parseSSRRenderingPipeline:()=>Pe,parseVLSPostProcess:()=>Se,particleSystemFromScene:()=>Cr,playSpriteAnimationFromName:()=>ur,scriptAssetsCache:()=>N,scriptsDictionary:()=>R,serializeDefaultRenderingPipeline:()=>Me,serializeMotionBlurPostProcess:()=>De,serializeSSAO2RenderingPipeline:()=>Ce,serializeSSRRenderingPipeline:()=>be,serializeVLSPostProcess:()=>ye,setDefaultRenderingPipelineRef:()=>ar,setMotionBlurPostProcessRef:()=>sr,setSSAO2RenderingPipelineRef:()=>ir,setSSRRenderingPipelineRef:()=>nr,setVLSPostProcessRef:()=>tr,soundFromScene:()=>Ir,spriteFromSpriteManager:()=>_r,ssaoRenderingPipelineCameraConfigurations:()=>B,ssrRenderingPipelineCameraConfigurations:()=>L,visibleAsAsset:()=>Fr,visibleAsBoolean:()=>Ar,visibleAsColor3:()=>vr,visibleAsColor4:()=>Or,visibleAsEntity:()=>Mr,visibleAsKeyMap:()=>wr,visibleAsNumber:()=>Er,visibleAsString:()=>xr,visibleAsTexture:()=>Rr,visibleAsVector2:()=>Dr,visibleAsVector3:()=>Tr,vlsPostProcessCameraConfigurations:()=>_});module.exports=$t(Wr);function J(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(J,"isAbstractMesh");function M(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(M,"isMesh");function $(e){return e.getClassName?.()==="InstancedMesh"}i($,"isInstancedMesh");function Yt(e){return e.getClassName?.()==="Bone"}i(Yt,"isBone");function Wt(e){return e.getClassName?.()==="GroundMesh"}i(Wt,"isGroundMesh");function Z(e){return e.getClassName?.()==="TransformNode"}i(Z,"isTransformNode");function ce(e){return e?.getClassName?.()==="Texture"}i(ce,"isTexture");function X(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(X,"isCamera");function Ht(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(Ht,"isFreeCamera");function Ut(e){return e.getClassName?.()==="ArcRotateCamera"}i(Ut,"isArcRotateCamera");function jt(e){return e.getClassName?.()==="PointLight"}i(jt,"isPointLight");function qt(e){return e.getClassName?.()==="DirectionalLight"}i(qt,"isDirectionalLight");function Qt(e){return e.getClassName?.()==="SpotLight"}i(Qt,"isSpotLight");function Jt(e){return e.getClassName?.()==="HemisphericLight"}i(Jt,"isHemisphericLight");function ze(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(ze,"isLight");function V(e){return J(e)||Z(e)||ze(e)||X(e)}i(V,"isNode");function me(e){return e.getClassName?.()==="Scene"}i(me,"isScene");function Zt(e){return e.getClassName?.()==="ParticleSystem"}i(Zt,"isParticleSystem");function Xt(e){return e.getClassName?.()==="GPUParticleSystem"}i(Xt,"isGPUParticleSystem");function pe(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(pe,"isAnyParticleSystem");function ue(e){return e.getClassName?.()==="Sprite"}i(ue,"isSprite");var $e=require("babylonjs"),Ye=require("babylonjs");function fe(e){e.lights.forEach(n=>{let t=n.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=o=>$e.Vector3.Distance(o.getAbsolutePosition(),n.getAbsolutePosition())<=n.range)})}i(fe,"configureShadowMapRenderListPredicate");async function ge(e){e.executeWhenReady(()=>{e.lights.forEach(n=>{let t=n.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=n.metadata?.refreshRate??Ye.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(ge,"configureShadowMapRefreshRate");var We=require("babylonjs"),He=require("babylonjs"),Ue=require("babylonjs"),I=null,_=new Map;function er(){return I}i(er,"getVLSPostProcess");function tr(e){I=e}i(tr,"setVLSPostProcessRef");function de(e){I&&e.activeCamera&&(I.dispose(e.activeCamera),I=null)}i(de,"disposeVLSPostProcess");function je(e,n){return n??=e.meshes.find(t=>M(t)),I=new Ue.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,n,100,He.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),I}i(je,"createVLSPostProcess");function ye(){return I?{meshId:I.mesh?.id,exposure:I.exposure,decay:I.decay,weight:I.weight,density:I.density,invert:I.invert,useCustomMeshPosition:I.useCustomMeshPosition,customMeshPosition:I.customMeshPosition.asArray()}:null}i(ye,"serializeVLSPostProcess");function Se(e,n){let t=null;if(n.meshId){let r=e.getMeshById(n.meshId);r&&M(r)&&(t=r)}let o=je(e,t);return o.exposure=n.exposure,o.decay=n.decay,o.weight=n.weight,o.density=n.density,o.invert=n.invert,o.useCustomMeshPosition=n.useCustomMeshPosition,o.customMeshPosition.copyFrom(We.Vector3.FromArray(n.customMeshPosition)),o}i(Se,"parseVLSPostProcess");var qe=require("babylonjs"),S=null,L=new Map;function rr(){return S}i(rr,"getSSRRenderingPipeline");function nr(e){S=e}i(nr,"setSSRRenderingPipelineRef");function he(){S&&(S.dispose(),S=null)}i(he,"disposeSSRRenderingPipeline");function Qe(e,n){return S=new qe.SSRRenderingPipeline("SSRRenderingPipeline",e,[n]),S.samples=4,S}i(Qe,"createSSRRenderingPipeline");function be(){return S?{samples:S.samples,step:S.step,thickness:S.thickness,strength:S.strength,reflectionSpecularFalloffExponent:S.reflectionSpecularFalloffExponent,maxSteps:S.maxSteps,maxDistance:S.maxDistance,roughnessFactor:S.roughnessFactor,reflectivityThreshold:S.reflectivityThreshold,blurDispersionStrehgth:S.blurDispersionStrength,clipToFrustum:S.clipToFrustum,enableSmoothReflections:S.enableSmoothReflections,enableAutomaticThicknessComputation:S.enableAutomaticThicknessComputation,attenuateFacingCamera:S.attenuateFacingCamera,attenuateScreenBorders:S.attenuateScreenBorders,attenuateIntersectionDistance:S.attenuateIntersectionDistance,attenuateBackfaceReflection:S.attenuateBackfaceReflection,blurDownsample:S.blurDownsample,selfCollisionNumSkip:S.selfCollisionNumSkip,ssrDownsample:S.ssrDownsample,backfaceDepthTextureDownsample:S.backfaceDepthTextureDownsample}:null}i(be,"serializeSSRRenderingPipeline");function Pe(e,n,t){if(S)return S;let o=Qe(e,n);return o.samples=t.samples,o.step=t.step,o.thickness=t.thickness,o.strength=t.strength,o.reflectionSpecularFalloffExponent=t.reflectionSpecularFalloffExponent,o.maxSteps=t.maxSteps,o.maxDistance=t.maxDistance,o.roughnessFactor=t.roughnessFactor,o.reflectivityThreshold=t.reflectivityThreshold,o.blurDispersionStrength=t.blurDispersionStrehgth,o.clipToFrustum=t.clipToFrustum,o.enableSmoothReflections=t.enableSmoothReflections,o.enableAutomaticThicknessComputation=t.enableAutomaticThicknessComputation,o.attenuateFacingCamera=t.attenuateFacingCamera,o.attenuateScreenBorders=t.attenuateScreenBorders,o.attenuateIntersectionDistance=t.attenuateIntersectionDistance,o.attenuateBackfaceReflection=t.attenuateBackfaceReflection,o.blurDownsample=t.blurDownsample,o.selfCollisionNumSkip=t.selfCollisionNumSkip,o.ssrDownsample=t.ssrDownsample,o.backfaceDepthTextureDownsample=t.backfaceDepthTextureDownsample,o}i(Pe,"parseSSRRenderingPipeline");var Je=require("babylonjs"),b=null,B=new Map;function or(){return b}i(or,"getSSAO2RenderingPipeline");function ir(e){b=e}i(ir,"setSSAO2RenderingPipelineRef");function Ie(){b&&(b.dispose(),b=null)}i(Ie,"disposeSSAO2RenderingPipeline");function Ze(e,n){return b=new Je.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[n]),b.samples=4,b}i(Ze,"createSSAO2RenderingPipeline");function Ce(){return b?{radius:b.radius,totalStrength:b.totalStrength,samples:b.samples,maxZ:b.maxZ,minZAspect:b.minZAspect,epsilon:b.epsilon,textureSamples:b.textureSamples,bypassBlur:b.bypassBlur,bilateralSamples:b.bilateralSamples,bilateralSoften:b.bilateralSoften,bilateralTolerance:b.bilateralTolerance,expensiveBlur:b.expensiveBlur}:null}i(Ce,"serializeSSAO2RenderingPipeline");function Ae(e,n,t){if(b)return b;let o=Ze(e,n);return o.radius=t.radius,o.totalStrength=t.totalStrength,o.samples=t.samples,o.maxZ=t.maxZ,o.minZAspect=t.minZAspect,o.epsilon=t.epsilon,o.textureSamples=t.textureSamples,o.bypassBlur=t.bypassBlur,o.bilateralSamples=t.bilateralSamples,o.bilateralSoften=t.bilateralSoften,o.bilateralTolerance=t.bilateralTolerance,o.expensiveBlur=t.expensiveBlur,o}i(Ae,"parseSSAO2RenderingPipeline");var Xe=require("babylonjs"),C=null,G=new Map;function xe(){return C}i(xe,"getMotionBlurPostProcess");function sr(e){C=e}i(sr,"setMotionBlurPostProcessRef");function Ee(){C&&(C.dispose(),C=null)}i(Ee,"disposeMotionBlurPostProcess");function et(e,n){return C=new Xe.MotionBlurPostProcess("MotionBlurPostProcess",e,1,n),C.motionStrength=1,C.isObjectBased=!0,C}i(et,"createMotionBlurPostProcess");function De(){return C?{isObjectBased:C.isObjectBased,motionStrength:C.motionStrength,motionBlurSamples:C.motionBlurSamples}:null}i(De,"serializeMotionBlurPostProcess");function Te(e,n,t){if(C)return C;let o=et(e,n);return o.isObjectBased=t.isObjectBased,o.motionStrength=t.motionStrength,o.motionBlurSamples=t.motionBlurSamples,o}i(Te,"parseMotionBlurPostProcess");var tt=require("babylonjs"),ve=require("babylonjs"),rt=require("babylonjs"),nt=require("babylonjs"),ot=require("babylonjs"),c=null,K=new Map;function Y(){return c}i(Y,"getDefaultRenderingPipeline");function ar(e){c=e}i(ar,"setDefaultRenderingPipelineRef");function Oe(){c&&(c.dispose(),c=null)}i(Oe,"disposeDefaultRenderingPipeline");function it(e,n){return c=new ot.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[n]),c.samples=4,c.depthOfField.lensSize=512,c.depthOfField.fStop=.25,c.depthOfField.focusDistance=55e3,c}i(it,"createDefaultRenderingPipeline");function Me(){return c?{samples:c.samples,fxaaEnabled:c.fxaaEnabled,imageProcessingEnabled:c.imageProcessingEnabled,exposure:c.imageProcessing?.exposure,contrast:c.imageProcessing?.contrast,fromLinearSpace:c.imageProcessing?.fromLinearSpace,toneMappingEnabled:c.imageProcessing?.toneMappingEnabled,toneMappingType:c.imageProcessing?.toneMappingType,ditheringEnabled:c.imageProcessing?.ditheringEnabled,ditheringIntensity:c.imageProcessing?.ditheringIntensity,bloomEnabled:c.bloomEnabled,bloomThreshold:c.bloomThreshold,bloomWeight:c.bloomWeight,bloomScale:c.bloomScale,bloomKernel:c.bloomKernel,sharpenEnabled:c.sharpenEnabled,sharpenEdgeAmount:c.sharpen.edgeAmount,sharpenColorAmount:c.sharpen.colorAmount,grainEnabled:c.grainEnabled,grainIntensity:c.grain.intensity,grainAnimated:c.grain.animated,depthOfFieldEnabled:c.depthOfFieldEnabled,depthOfFieldBlurLevel:c.depthOfFieldBlurLevel,lensSize:c.depthOfField.lensSize,fStop:c.depthOfField.fStop,focusDistance:c.depthOfField.focusDistance,focalLength:c.depthOfField.focalLength,vignetteEnabled:c.imageProcessing?.vignetteEnabled,vignetteColor:c.imageProcessing?.vignetteColor.asArray(),vignetteWeight:c.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:c.chromaticAberrationEnabled,aberrationAmount:c.chromaticAberration.aberrationAmount,radialIntensity:c.chromaticAberration.radialIntensity,direction:c.chromaticAberration.direction.asArray(),centerPosition:c.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:c.glowLayerEnabled,glowLayerIntensity:c.glowLayer?.intensity,glowLayerBlurKernelSize:c.glowLayer?.blurKernelSize,colorGradingEnabled:c.imageProcessing.colorGradingEnabled,colorGradingTexture:c.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:c.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:c.imageProcessing.colorCurvesEnabled,globalHue:c.imageProcessing.colorCurves?.globalHue,globalDensity:c.imageProcessing.colorCurves?.globalDensity,globalExposure:c.imageProcessing.colorCurves?.globalExposure,globalSaturation:c.imageProcessing.colorCurves?.globalSaturation,highlightsHue:c.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:c.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:c.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:c.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:c.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:c.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:c.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:c.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:c.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:c.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:c.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:c.imageProcessing.colorCurves?.shadowsSaturation}:null}i(Me,"serializeDefaultRenderingPipeline");function Re(e,n,t,o){if(c)return c;let r=it(e,n);if(r.samples=t.samples,r.fxaaEnabled=t.fxaaEnabled,r.imageProcessingEnabled=t.imageProcessingEnabled,r.imageProcessing){if(r.imageProcessing.exposure=t.exposure,r.imageProcessing.contrast=t.contrast,r.imageProcessing.fromLinearSpace=t.fromLinearSpace,r.imageProcessing.toneMappingEnabled=t.toneMappingEnabled,r.imageProcessing.toneMappingType=t.toneMappingType,r.imageProcessing.ditheringEnabled=t.ditheringEnabled,r.imageProcessing.ditheringIntensity=t.ditheringIntensity,r.imageProcessing.vignetteEnabled=t.vignetteEnabled??!1,r.imageProcessing.vignetteColor=tt.Color4.FromArray(t.vignetteColor??[0,0,0]),r.imageProcessing.vignetteWeight=t.vignetteWeight??.3,r.imageProcessing.colorGradingEnabled=t.colorGradingEnabled??!1,r.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=t.colorGradingWithGreenDepth??!0,t.colorGradingTexture){let a=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let s=o+t.colorGradingTexture.name;a=new nt.ColorGradingTexture(s,e),a.level=t.colorGradingTexture.level}else{let s=rt.Texture.Parse(t.colorGradingTexture,e,o);ce(s)&&(a=s)}r.imageProcessing.colorGradingTexture=a}r.imageProcessing.colorCurvesEnabled=t.colorCurvesEnabled??!1,r.imageProcessing.colorCurves&&(r.imageProcessing.colorCurves.globalHue=t.globalHue??30,r.imageProcessing.colorCurves.globalDensity=t.globalDensity??0,r.imageProcessing.colorCurves.globalExposure=t.globalExposure??0,r.imageProcessing.colorCurves.globalSaturation=t.globalSaturation??0,r.imageProcessing.colorCurves.highlightsHue=t.highlightsHue??30,r.imageProcessing.colorCurves.highlightsDensity=t.highlightsDensity??0,r.imageProcessing.colorCurves.highlightsExposure=t.highlightsExposure??0,r.imageProcessing.colorCurves.highlightsSaturation=t.highlightsSaturation??0,r.imageProcessing.colorCurves.midtonesHue=t.midtonesHue??30,r.imageProcessing.colorCurves.midtonesDensity=t.midtonesDensity??0,r.imageProcessing.colorCurves.midtonesExposure=t.midtonesExposure??0,r.imageProcessing.colorCurves.midtonesSaturation=t.midtonesSaturation??0,r.imageProcessing.colorCurves.shadowsHue=t.shadowsHue??30,r.imageProcessing.colorCurves.shadowsDensity=t.shadowsDensity??0,r.imageProcessing.colorCurves.shadowsExposure=t.shadowsExposure??0,r.imageProcessing.colorCurves.shadowsSaturation=t.shadowsSaturation??0)}return r.bloomEnabled=t.bloomEnabled,r.bloomThreshold=t.bloomThreshold,r.bloomWeight=t.bloomWeight,r.bloomScale=t.bloomScale,r.bloomKernel=t.bloomKernel,r.sharpenEnabled=t.sharpenEnabled,r.sharpen.edgeAmount=t.sharpenEdgeAmount,r.sharpen.colorAmount=t.sharpenColorAmount,r.grainEnabled=t.grainEnabled,r.grain.intensity=t.grainIntensity,r.grain.animated=t.grainAnimated,r.depthOfFieldEnabled=t.depthOfFieldEnabled,r.depthOfFieldBlurLevel=t.depthOfFieldBlurLevel,r.depthOfField.lensSize=t.lensSize,r.depthOfField.fStop=t.fStop,r.depthOfField.focusDistance=t.focusDistance,r.depthOfField.focalLength=t.focalLength,r.chromaticAberrationEnabled=t.chromaticAberrationEnabled??!1,r.chromaticAberration.aberrationAmount=t.aberrationAmount??10,r.chromaticAberration.radialIntensity=t.radialIntensity??1,r.chromaticAberration.direction=ve.Vector2.FromArray(t.direction??[0,0]),r.chromaticAberration.centerPosition=ve.Vector2.FromArray(t.centerPosition??[0,0]),r.glowLayerEnabled=t.glowLayerEnabled??!1,r.glowLayer&&(r.glowLayer.intensity=t.glowLayerIntensity??1,r.glowLayer.blurKernelSize=t.glowLayerBlurKernelSize??32),r}i(Re,"parseDefaultRenderingPipeline");function vo(e){B.set(e,Ce()),_.set(e,ye()),L.set(e,be()),G.set(e,De()),K.set(e,Me())}i(vo,"saveRenderingConfigurationForCamera");function st(e,n){Ie(),de(e.getScene()),he(),Ee(),Oe();let t=B.get(e);t&&Ae(e.getScene(),e,t);let o=_.get(e);o&&Se(e.getScene(),o);let r=L.get(e);r&&Pe(e.getScene(),e,r);let a=G.get(e);a&&Te(e.getScene(),e,a);let s=K.get(e);s&&Re(e.getScene(),e,s,n)}i(st,"applyRenderingConfigurationForCamera");var W=require("babylonjs"),at=require("babylonjs");function lt(e){let n=e.metadata?.physicsAggregate;if(!n)return;let t;M(e)?t=e:$(e)&&(t=e.sourceMesh);let o=new at.PhysicsAggregate(e,n.shape.type,{mesh:t,mass:n.massProperties.mass});o.body.setMassProperties({mass:n.massProperties.mass,inertia:n.massProperties.inertia?W.Vector3.FromArray(n.massProperties.inertia):void 0,centerOfMass:n.massProperties.centerOfMass?W.Vector3.FromArray(n.massProperties.centerOfMass):void 0,inertiaOrientation:n.massProperties.inertiaOrientation?W.Quaternion.FromArray(n.massProperties.inertiaOrientation):void 0}),o.shape.density=n.shape.density,o.body.setMotionType(n.body.motionType),o.shape.material=n.material,e.physicsAggregate=o,e.metadata.physicsAggregate=void 0}i(lt,"configurePhysicsAggregate");function ct(e,n){(Array.isArray(n)?n:[]).forEach(o=>{let r=e.getCameraById(o.cameraId);r&&(o.ssao2RenderingPipeline&&B.set(r,o.ssao2RenderingPipeline),o.vlsPostProcess&&_.set(r,o.vlsPostProcess),o.ssrRenderingPipeline&&L.set(r,o.ssrRenderingPipeline),o.motionBlurPostProcess&&G.set(r,o.motionBlurPostProcess),o.defaultRenderingPipeline&&K.set(r,o.defaultRenderingPipeline))})}i(ct,"applyRenderingConfigurations");function ee(e,n){let t=n.soundTracks??[];t.length||t.push(n.mainSoundTrack);for(let o=0,r=t.length;o<r;o++){let a=t[o].soundCollection.find(s=>s.id===e);if(a)return a}return null}i(ee,"getSoundById");var mt=require("babylonjs"),te=require("babylonjs"),pt=require("babylonjs"),re=require("babylonjs"),ut=require("babylonjs"),ft=require("babylonjs-gui");function we(e,n,t,o,r){let a=o.constructor;if(!a)return;a._NodesFromScene?.forEach(l=>{o[l.propertyKey.toString()]=e.getNodeByName(l.nodeName)}),a._NodesFromDescendants?.forEach(l=>{let p=n.getDescendants?.(l.directDescendantsOnly,u=>u.name===l.nodeName)[0];o[l.propertyKey.toString()]=p??null}),a._AnimationGroups?.forEach(l=>{o[l.propertyKey.toString()]=e.getAnimationGroupByName(l.animationGroupName)}),a._SoundsFromScene?.forEach(l=>{let p=e.getSoundByName?.(l.soundName);o[l.propertyKey.toString()]=p??null}),(a._GuiFromAsset??[]).map(async l=>{let p=`${r}assets/${l.pathInAssets}`;try{let g=await(await fetch(p)).json(),P=ft.AdvancedDynamicTexture.CreateFullscreenUI(g.name,!0,e);P.parseSerializedObject(g.content,!1),o[l.propertyKey.toString()]=P,l.onGuiCreated?.(o,P)}catch(u){throw console.error(`Failed to load GUI from asset: ${p}`),u}}),a._ParticleSystemsFromScene?.forEach(l=>{let p=e.particleSystems?.find(u=>u.name!==l.particleSystemName?!1:l.directDescendantsOnly?u.emitter===n:u);o[l.propertyKey.toString()]=p}),(a._VisibleInInspector??[]).map(async l=>{let p=l.propertyKey.toString(),u=t.values;if(u.hasOwnProperty(p)&&u[p].hasOwnProperty("value")){let g=u[p].value;switch(l.configuration.type){case"number":case"boolean":case"keymap":case"string":o[p]=g;break;case"vector2":o[p]=re.Vector2.FromArray(g);break;case"vector3":o[p]=re.Vector3.FromArray(g);break;case"color3":o[p]=te.Color3.FromArray(g);break;case"color4":o[p]=te.Color4.FromArray(g);break;case"entity":switch(l.configuration.entityType){case"node":o[p]=e.getNodeById(g)??null;break;case"animationGroup":o[p]=e.getAnimationGroupByName(g)??null;break;case"sound":o[p]=ee(g,e);break;case"particleSystem":o[p]=e.particleSystems?.find(y=>y.id===g)??null;break}break;case"texture":g&&(o[p]=pt.Texture.Parse(g,e,r));break;case"asset":if(g){let y=l.configuration.assetType,d=N.get(g);switch(y){case"json":o[p]=d;break;case"nodeParticleSystemSet":let f=ut.NodeParticleSystemSet.Parse(d);o[p]=f;break;case"material":o[p]=mt.Material.Parse(d,e,r);break}}}}});let s=null,m=null;if(a._PointerEvents?.length){if(a._PointerEvents.find(u=>u.options.mode==="attachedMeshOnly")&&!J(n))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(a._PointerEvents.find(u=>u.options.mode!=="global")&&!V(n))throw new Error('@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.');s=e.onPointerObservable.add(u=>{let g=null;a._PointerEvents.forEach(P=>{if(!P.eventTypes.includes(u.type))return;let y=P.propertyKey.toString();if(P.options.mode==="global")return o[y]?.(u);g=u.pickInfo,g||(g=e.pick(e.pointerX,e.pointerY,f=>f.isVisible&&f.isPickable&&f.isEnabled(!0)&&!f._masterMesh,!1));let d=g.pickedMesh;if(d&&(P.options.mode==="attachedMeshOnly"&&d===n||P.options.mode==="includeDescendants"&&V(n)&&[n,...n.getDescendants(!1)].find(A=>A===d)))return o[y]?.(u)})})}if(a._KeyboardEvents?.length&&(m=e.onKeyboardObservable.add(l=>{a._KeyboardEvents.forEach(p=>{p.eventTypes.includes(l.type)&&o[p.propertyKey.toString()]?.(l)})})),a._SpritesFromSpriteManager?.length){let l=n;if(!Z(l)||!l.isSpriteManager)return console.error("@spriteFromSpriteManager decorator can only be used on SpriteManagerNode.");if(!l.spriteManager)return console.error(`SpriteManagerNode "${l.name}" has no sprite manager assigned.`);a._SpritesFromSpriteManager?.forEach(p=>{let u=l.spriteManager?.sprites.find(g=>g.name===p.spriteName)||null;o[p.propertyKey.toString()]=u})}if(a._AnimationsFromSprite?.length){if(!ue(n))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let l=n.metadata?.spriteAnimations;if(!l?.length)return console.error(`Sprite "${n.name}" has no sprite animations assigned.`);a._AnimationsFromSprite.forEach(p=>{let u=l.find(g=>g.name===p.animationName);u?o[p.propertyKey.toString()]=u??null:console.warn(`Sprite animation named "${p.animationName}" not found on sprite "${n.name}".`)})}return{observers:{pointerObserver:s,keyboardObserver:m}}}i(we,"applyDecorators");var N=new Map;async function Fe(e,n){[e,...e.transformNodes,...e.meshes,...e.lights,...e.cameras].filter(a=>a.metadata?.scripts?.length).map(a=>a.metadata.scripts).flat().forEach(a=>{for(let s in a.values){if(!a.values.hasOwnProperty(s))continue;let m=a.values[s];m.type==="asset"&&m.value&&N.set(m.value,null)}});let r=[];N.forEach((a,s)=>{N.get(s)||r.push(new Promise(async m=>{try{let p=await(await fetch(`${n}${s}`)).json();N.set(s,p)}catch(l){console.error(l)}m()}))}),await Promise.all(r)}i(Fe,"_preloadScriptsAssets");function w(e,n,t,o){n.metadata?.scripts&&(n.metadata.scripts?.forEach(async r=>{if(!r.enabled)return;let a=t[r.key];if(!a)return;let s=a,m={};if(a.default){s=new a.default(n);let l=we(e,n,r,s,o);Object.assign(m,l?.observers??{})}s.onStart&&(m.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>s.onStart(n))),s.onUpdate&&(m.onUpdateObserver=e.onBeforeRenderObservable.add(()=>s.onUpdate(n))),gt(n,s,r.key,m)}),n.metadata.scripts=void 0)}i(w,"_applyScriptsForObject");function lr(e,n,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let o=new n(e);return we(t,e,{values:{}},o,""),o.onStart&&t.onBeforeRenderObservable.addOnce(()=>o.onStart()),o.onUpdate&&t.onBeforeRenderObservable.add(()=>o.onUpdate()),o}i(lr,"applyScriptOnObject");var R=new Map;function gt(e,n,t,o){let r={key:t,observers:o,instance:n};R.has(e)?R.get(e).push(r):R.set(e,[r]),(V(e)||pe(e)||me(e))&&e.onDisposeObservable.addOnce(()=>{R.get(e)?.forEach(a=>{dt(e,a)}),R.delete(e)})}i(gt,"_registerScriptInstance");function dt(e,n){n.observers.onStartObserver?.remove(),n.observers.onUpdateObserver?.remove(),n.observers.pointerObserver?.remove(),n.observers.keyboardObserver?.remove();try{n.instance.onStop?.(e)}catch(r){console.error(`Failed to call onStop for script ${n.key} on object ${e}`,r)}let t=R.get(e),o=t?.indexOf(n)??-1;o!==-1&&t?.splice(o,1)}i(dt,"_removeRegisteredScriptInstance");function yt(e,n){return R.get(e)?.filter(r=>r.instance.constructor===n)?.map(r=>r.instance)??null}i(yt,"getAllScriptsByClassForObject");function cr(e,n){return yt(e,n)?.[0]??null}i(cr,"getScriptByClassForObject");var Ne=require("babylonjs"),ne=require("babylonjs"),mr=(0,ne.GetParser)(Ne.SceneComponentConstants.NAME_AUDIO);(0,ne.AddParser)(Ne.SceneComponentConstants.NAME_AUDIO,(e,n,t,o)=>{mr?.(e,n,t,o),e.sounds?.forEach(r=>{let a=t.sounds?.find(s=>s.name===r.name);a&&(a.id=r.id,a.uniqueId=r.uniqueId)})});function x(e){let n=1;for(;n<=e;)n<<=1;return n>>1}i(x,"getPowerOfTwoUntil");var Ve=require("babylonjs"),oe=Ve.SerializationHelper._TextureParser;Ve.SerializationHelper._TextureParser=(e,n,t)=>{if(n.loadingQuality==="high"||!e.metadata?.baseSize)return oe(e,n,t);let o=e.metadata.baseSize.width,r=e.metadata.baseSize.height,a=o===x(o)||r===x(r),s="";switch(n.loadingQuality){case"medium":let y=o*.66>>0,d=r*.66>>0;a&&(y=x(y),d=x(d)),s=`_${y}_${d}`;break;case"low":let f=o*.33>>0,h=r*.33>>0;a&&(f=x(f),h=x(h)),s=`_${f}_${h}`;break}let m=e.name;if(!m||!s)return oe(e,n,t);let l=m.split("/"),p=l.pop();if(!p)return oe(e,n,t);let u=p.split(".").pop(),P=`${p.replace(`.${u}`,"")}${s}.${u}`;return l.push(P),e.name=l.join("/"),oe(e,n,t)};var _e=require("babylonjs"),ie=require("babylonjs"),pr=(0,ie.GetParser)(_e.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,ie.AddParser)(_e.SceneComponentConstants.NAME_SHADOWGENERATOR,(e,n,t,o)=>{n.loadingQuality!=="high"&&e.shadowGenerators?.forEach(r=>{switch(n.loadingQuality){case"medium":r.mapSize=r.mapSize*.5;break;case"low":r.mapSize=r.mapSize*.25;break}r.mapSize=Math.max(128,x(r.mapSize))}),pr?.(e,n,t,o)});function Le(e){if(!Array.isArray(e.frames)){let n=[];for(let t of Object.keys(e.frames))n.push({filename:t,...e.frames[t]});e.frames=n}}i(Le,"normalizeAtlasJson");function ur(e,n,t){let r=(e.metadata?.spriteAnimations??[]).find(a=>a.name===n);if(!r)return console.error(`Animation with name "${n}" not found on sprite.`);e.playAnimation(r.from,r.to,r.loop,r.delay,t)}i(ur,"playSpriteAnimationFromName");var St=require("babylonjs"),ht=require("babylonjs"),bt=require("babylonjs"),Pt=require("babylonjs"),Be=require("babylonjs"),k=require("babylonjs"),It=require("babylonjs");(0,It.AddParser)("SpriteMapNode",(e,n,t,o)=>{e.transformNodes?.forEach(r=>{if(!r.isSpriteMap)return;let a=t.transformNodes?.find(l=>l.id===r.id);if(!a)return;a.isSpriteMap=r.isSpriteMap;let s=`${o}${r.atlasJsonRelativePath}`;n.addPendingData(s);let m=new bt.WebRequest;m.open("GET",s),m.send(),m.addEventListener("load",()=>{n.removePendingData(s);let l=JSON.parse(m.responseText);Le(l);let p=`${St.Tools.GetFolderPath(s)}${l.meta.image}`,u=new Be.Texture(p,n,!1,!1,Be.Texture.NEAREST_NEAREST,null,null,null,!1,ht.Engine.TEXTUREFORMAT_RGBA),g=new Pt.SpriteMap(a.name,l,u,{layerCount:r.options.layerCount,stageSize:k.Vector2.FromArray(r.options.stageSize??[10,1]),outputSize:k.Vector2.FromArray(r.options.outputSize??[100,100]),colorMultiply:k.Vector3.FromArray(r.options.colorMultiply??[1,1,1]),flipU:!0},n);r.tiles.forEach(y=>{for(let d=0,f=y.repeatCount.x+1;d<f;++d)for(let h=0,A=y.repeatCount.y+1;h<A;++h){let z=d*(y.repeatOffset.x+1),j=h*(y.repeatOffset.y+1);g.changeTiles(y.layer,new k.Vector2(y.position.x+z,(g.options.stageSize?.y??0)-1-y.position.y-j),y.tile)}});let P=g._output;P.parent=a,a.spriteMap=g})})});var At=require("babylonjs"),xt=require("babylonjs"),Et=require("babylonjs"),Ge=require("babylonjs"),Dt=require("babylonjs");function Ct(e,n){n?.fogEnabled!==void 0&&(e.fogEnabled=n?.fogEnabled),n?.blendMode!==void 0&&(e.blendMode=n?.blendMode),n?.disableDepthWrite!==void 0&&(e.disableDepthWrite=n?.disableDepthWrite),n?.pixelPerfect!==void 0&&(e.pixelPerfect=n?.pixelPerfect),n?.useLogarithmicDepth!==void 0&&(e.useLogarithmicDepth=n?.useLogarithmicDepth),n?.metadata!==void 0&&(e.metadata=n?.metadata);for(let t of n?.sprites??[]){let o=xt.Sprite.Parse(t,e);o.uniqueId=t.uniqueId,o.metadata=t.metadata}}i(Ct,"parseSerializedSpriteManager"),(0,Dt.AddParser)("SpriteManagerNode",(e,n,t,o)=>{e.transformNodes?.forEach(r=>{if(!r.isSpriteManager)return;let a=t.transformNodes?.find(s=>s.id===r.id);if(a){if(a.isSpriteManager=r.isSpriteManager,r.atlasJsonRelativePath){let s=`${o}${r.atlasJsonRelativePath}`;n.addPendingData(s);let m=new Et.WebRequest;m.open("GET",s),m.send(),m.addEventListener("load",()=>{n.removePendingData(s);let l=JSON.parse(m.responseText),p=`${At.Tools.GetFolderPath(s)}${l.meta.image}`,u=new Ge.SpriteManager(a.name,p,1e3,64,n,void 0,void 0,!0,l);a.spriteManager=u,r.spriteManager&&Ct(u,r.spriteManager)})}else if(r.spriteManager?.textureUrl){let s=`${o}${r.spriteManager.textureUrl}`,m=new Ge.SpriteManager(a.name,s,1e3,{width:r.spriteManager.cellWidth,height:r.spriteManager.cellHeight},n,void 0,void 0,!1);a.spriteManager=m,r.spriteManager&&Ct(m,r.spriteManager)}}})});var Tt=require("babylonjs"),Ke=require("babylonjs"),vt=require("babylonjs"),Ot=require("babylonjs");async function fr(e,n,t,o,r){t.loadingQuality=r?.quality??"high",await(0,vt.AppendSceneAsync)(`${e}${n}`,t,{pluginExtension:".babylon",onProgress:i(s=>{let m=Math.min(s.loaded/s.total*.5);r?.onProgress?.(m)},"onProgress")}),Ot.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(s=>M(s)&&s._checkDelayState());let a=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(m=>setTimeout(m,150));let s=a-t.getWaitingItemsCount();s===a&&t.textures.forEach(m=>{m.delayLoadState===Ke.Constants.DELAYLOADSTATE_NONE&&(m.delayLoadState=Ke.Constants.DELAYLOADSTATE_LOADED)}),r?.onProgress?.(.5+s/a*.5)}await Fe(t,e),r?.onProgress?.(1),fe(t),ge(t),t.metadata?.rendering&&(ct(t,t.metadata.rendering),t.activeCamera&&st(t.activeCamera,e)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(Tt.Vector3.FromArray(t.metadata?.physicsGravity)),w(t,t,o,e),t.transformNodes.forEach(s=>{w(t,s,o,e)}),t.meshes.forEach(s=>{lt(s),w(t,s,o,e)}),t.lights.forEach(s=>{w(t,s,o,e)}),t.cameras.forEach(s=>{w(t,s,o,e)}),t.spriteManagers?.forEach(s=>{s.sprites.forEach(m=>{w(t,m,o,e)})})}i(fr,"loadScene");var Mt=require("babylonjs");async function gr(e,n,t){let r=await(await fetch(e+n)).json(),s=Mt.Tools.Instantiate(r.customType).Parse(r,t,e);return s.id=r.id,s.uniqueId=r.uniqueId,s}i(gr,"loadMaterialFromFile");function dr(e){return Promise.all(e.materials.map(async n=>{let t=n.getBindedMeshes();await Promise.all(t.map(async o=>{$(o)||await n.forceCompilationAsync(o,{clipPlane:!!e.clipPlane,useInstances:o.hasInstances})}))}))}i(dr,"forceCompileAllSceneMaterials");function yr(e){e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(yr,"configureEngineToUseCompressedTextures");var v=require("babylonjs");function H(e){if(!isNaN(parseFloat(e))&&isFinite(e))return v.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return v.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return v.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return v.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return v.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return v.Animation.ANIMATIONTYPE_COLOR4;case"Size":return v.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return v.Animation.ANIMATIONTYPE_MATRIX}return null}i(H,"getAnimationTypeForObject");function Sr(e){return function(n,t){let o=n.constructor;o._NodesFromScene??=[],o._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(Sr,"nodeFromScene");function hr(e,n=!1){return function(t,o){let r=t.constructor;r._NodesFromDescendants??=[],r._NodesFromDescendants.push({propertyKey:o,nodeName:e,directDescendantsOnly:n})}}i(hr,"nodeFromDescendants");function br(e){return function(n,t){let o=n.constructor;o._AnimationGroups??=[],o._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(br,"animationGroupFromScene");function Pr(e,n){return function(t,o){let r=t.constructor;r._GuiFromAsset??=[],r._GuiFromAsset.push({propertyKey:o,pathInAssets:e,onGuiCreated:n})}}i(Pr,"guiFromAsset");function Ir(e){return function(n,t){let o=n.constructor;o._SoundsFromScene??=[],o._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(Ir,"soundFromScene");function Cr(e,n=!1){return function(t,o){let r=t.constructor;r._ParticleSystemsFromScene??=[],r._ParticleSystemsFromScene.push({propertyKey:o,particleSystemName:e,directDescendantsOnly:n})}}i(Cr,"particleSystemFromScene");function Ar(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"boolean"}})}}i(Ar,"visibleAsBoolean");function xr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"string"}})}}i(xr,"visibleAsString");function Er(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"number"}})}}i(Er,"visibleAsNumber");function Dr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"vector2"}})}}i(Dr,"visibleAsVector2");function Tr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"vector3"}})}}i(Tr,"visibleAsVector3");function vr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"color3"}})}}i(vr,"visibleAsColor3");function Or(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"color4"}})}}i(Or,"visibleAsColor4");function Mr(e,n,t){return function(o,r){let a=o.constructor;a._VisibleInInspector??=[],a._VisibleInInspector.push({label:n,propertyKey:r,configuration:{...t,entityType:e,type:"entity"}})}}i(Mr,"visibleAsEntity");function Rr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"texture"}})}}i(Rr,"visibleAsTexture");function wr(e,n){return function(t,o){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...n,type:"keymap"}})}}i(wr,"visibleAsKeyMap");function Fr(e,n,t){return function(o,r){let a=o.constructor;a._VisibleInInspector??=[],a._VisibleInInspector.push({label:n,propertyKey:r,configuration:{...t,assetType:e,type:"asset"}})}}i(Fr,"visibleAsAsset");function Nr(e,n){return function(t,o){let r=t.constructor;r._PointerEvents??=[],r._PointerEvents.push({propertyKey:o,options:{mode:"global",...n??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(Nr,"onPointerEvent");function Vr(e){return function(n,t){let o=n.constructor;o._KeyboardEvents??=[],o._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(Vr,"onKeyboardEvent");function _r(e){return function(n,t){let o=n.constructor;o._SpritesFromSpriteManager??=[],o._SpritesFromSpriteManager.push({propertyKey:t,spriteName:e})}}i(_r,"spriteFromSpriteManager");function Lr(e){return function(n,t){let o=n.constructor;o._AnimationsFromSprite??=[],o._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(Lr,"animationFromSprite");var se=require("babylonjs");function Rt(e,n){let t;switch(e){case se.Animation.ANIMATIONTYPE_FLOAT:t=n.value;break;default:t=n.value.clone();break}return{value:t,frame:n.frame,interpolation:n.interpolation,inTangent:e===se.Animation.ANIMATIONTYPE_FLOAT?n.inTangent:n.inTangent?.clone(),outTangent:e===se.Animation.ANIMATIONTYPE_FLOAT?n.outTangent:n.outTangent?.clone()}}i(Rt,"cloneKey");function ae(e,n){let t=n.split("."),o=e;for(let r=0;r<t.length;++r)o=o[t[r]];return o}i(ae,"getPropertyValue");var F=require("babylonjs"),le=require("babylonjs"),D=require("babylonjs");function Br(e,n){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(t=>{let o=null,r=null;if(t.node?(o=n.getNodeById(t.node),o||(o=n.particleSystems?.find(s=>s.id===t.node)??null)):t.defaultRenderingPipeline&&(o=Y()),t.propertyPath){let s=ae(o,t.propertyPath);r=H(s)}let a=null;return t.sound&&(a=ee(t.sound,n)),{node:o,sound:a,propertyPath:t.propertyPath,defaultRenderingPipeline:t.defaultRenderingPipeline,animationGroup:t.animationGroup?n.getAnimationGroupByName(t.animationGroup):null,animationGroups:t.animationGroups,sounds:t.sounds,keyFrameEvents:t.keyFrameEvents?.map(s=>{let m={...s};switch(s.data?.type){case"set-enabled":m.data={type:"set-enabled",value:s.data.value,node:n.getNodeById(s.data.node)};break;case"apply-impulse":m.data={type:"apply-impulse",radius:s.data.radius,mesh:n.getMeshById(s.data.mesh),force:D.Vector3.FromArray(s.data.force),contactPoint:D.Vector3.FromArray(s.data.contactPoint)};break}return m}),keyFrameAnimations:o&&r!==null&&t.keyFrameAnimations?.map(s=>{let m=s.type==="key"?s:null;if(m)return{...m,value:E(m.value,r),inTangent:E(m.inTangent,r),outTangent:E(m.outTangent,r)};let l=s.type==="cut"?s:null;if(l)return{...l,key1:{...l.key1,value:E(l.key1.value,r),inTangent:E(l.key1.inTangent,r),outTangent:E(l.key1.outTangent,r)},key2:{...l.key2,value:E(l.key2.value,r),inTangent:E(l.key2.inTangent,r),outTangent:E(l.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${s.type}`)})}})}}i(Br,"parseCinematic");function E(e,n){if(e===null)return null;if(e!==void 0)switch(n){case F.Animation.ANIMATIONTYPE_FLOAT:return e;case F.Animation.ANIMATIONTYPE_VECTOR2:return D.Vector2.FromArray(e);case F.Animation.ANIMATIONTYPE_VECTOR3:return D.Vector3.FromArray(e);case F.Animation.ANIMATIONTYPE_QUATERNION:return D.Quaternion.FromArray(e);case F.Animation.ANIMATIONTYPE_COLOR3:return le.Color3.FromArray(e);case F.Animation.ANIMATIONTYPE_COLOR4:return le.Color4.FromArray(e);case F.Animation.ANIMATIONTYPE_MATRIX:return D.Matrix.FromArray(e)}}i(E,"parseCinematicKeyValue");function wt(e){e.node?.setEnabled(e.value)}i(wt,"handleSetEnabledEvent");var ke=require("babylonjs"),Ft=ke.Vector3.Zero();function Nt(e,n){let t=n.mesh?[n.mesh]:e.meshes.filter(o=>o.physicsAggregate);n.radius&&(t=t.filter(o=>{let r=o.getBoundingInfo().boundingBox.centerWorld;return ke.Vector3.Distance(r,n.contactPoint)<=n.radius})),t.forEach(o=>{if(o.physicsAggregate?.body){let r=n.contactPoint.subtract(o.getBoundingInfo().boundingBox.centerWorld);r.multiplyInPlace(n.force),o.physicsAggregate.body.setLinearVelocity(Ft),o.physicsAggregate.body.setAngularVelocity(Ft),o.physicsAggregate.body.applyImpulse(r.negateInPlace(),n.contactPoint)}})}i(Nt,"handleApplyImpulseEvent");var Vt=require("babylonjs"),O=require("babylonjs"),U=require("babylonjs"),_t=require("babylonjs");function Gr(e,n,t){let o=new _t.AnimationGroup(e.name,n);return e.tracks.forEach(r=>{let a=r.animationGroup;a&&r.animationGroups?.forEach(y=>{a.targetedAnimations.forEach(d=>{let f=null;e:{let T=o.targetedAnimations.filter(q=>q.target===d.target);if(T.length){let q=T.find(Lt=>Lt.animation.targetProperty===d.animation.targetProperty);if(q){f=q.animation;break e}}f=d.animation.clone(),f.setKeys([]),f.name=Vt.Tools.RandomId(),f.framePerSecond=e.framesPerSecond}let h=f.getKeys(),A=d.animation.getKeys(),z=y.speed,j=e.framesPerSecond/d.animation.framePerSecond/z;A.forEach(T=>{T.frame>=y.startFrame&&T.frame<=y.endFrame&&h.push({...Rt(d.animation.dataType,T),frame:y.frame+T.frame*j})}),f.setKeys(h),o.addTargetedAnimation(f,d.target)})});let s=r.sound,m=s?.getAudioBuffer();if(!t?.ignoreSounds&&s&&m&&r.sounds?.length){let y={dummy:0},d=new O.Animation(s.name,"dummy",60,O.Animation.ANIMATIONTYPE_FLOAT,O.Animation.ANIMATIONLOOPMODE_CYCLE,!1),f=0;r.sounds?.forEach(h=>{let A=h.endFrame-h.startFrame;f=Math.max(f,h.frame+A),d.addEvent(new U.AnimationEvent(h.frame,z=>{let T=(z-h.frame+h.startFrame)/e.framesPerSecond;s.play(0,T)},!1)),d.addEvent(new U.AnimationEvent(h.frame+A,()=>{s.stop()}))}),d.setKeys([{frame:0,value:0},{frame:f,value:f}]),o.addTargetedAnimation(d,y)}if(r.keyFrameEvents){let y={dummy:0},d=new O.Animation("events","dummy",60,O.Animation.ANIMATIONTYPE_FLOAT,O.Animation.ANIMATIONLOOPMODE_CYCLE,!1),f=0;r.keyFrameEvents?.forEach(h=>{f=Math.max(f,h.frame),d.addEvent(new U.AnimationEvent(h.frame,()=>{switch(h.data?.type){case"set-enabled":wt(h.data);break;case"apply-impulse":Nt(n,h.data);break}}))}),d.setKeys([{frame:0,value:0},{frame:f,value:f}]),o.addTargetedAnimation(d,y)}let l=r.defaultRenderingPipeline?Y():r.node;if(!l||!r.propertyPath||!r.keyFrameAnimations)return;let p=ae(l,r.propertyPath),u=H(p);if(u===null)return;let g=new O.Animation(r.propertyPath,r.propertyPath,60,u,O.Animation.ANIMATIONLOOPMODE_CYCLE,!1),P=[];r.keyFrameAnimations?.forEach(y=>{let d=y.type==="key"?y:null;if(d)return P.push(d);let f=y.type==="cut"?y:null;f&&(P.push(f.key1),P.push(f.key2),X(l)&&r.propertyPath==="position"&&g.addEvent(new U.AnimationEvent(f.key1.frame,()=>{let h=xe();if(!h)return;let A=h.motionStrength;h.motionStrength=0,requestAnimationFrame(()=>{h.motionStrength=A})})))}),g.setKeys(P),o.addTargetedAnimation(g,l)}),o.normalize(),o}i(Gr,"generateCinematicAnimationGroup");function Kr(e){return e.type==="key"}i(Kr,"isCinematicKey");function kr(e){return e.type==="cut"}i(kr,"isCinematicKeyCut");function zr(e){return e.type==="event"}i(zr,"isCinematicKeyEvent");function $r(e){return e.type==="group"}i($r,"isCinematicGroup");function Yr(e){return e.type==="sound"}i(Yr,"isCinematicSound");0&&(module.exports={_applyScriptsForObject,_preloadScriptsAssets,_registerScriptInstance,_removeRegisteredScriptInstance,animationFromSprite,animationGroupFromScene,applyScriptOnObject,configureEngineToUseCompressedTextures,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isParticleSystem,isPointLight,isScene,isSpotLight,isSprite,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,normalizeAtlasJson,onKeyboardEvent,onPointerEvent,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseMotionBlurPostProcess,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseVLSPostProcess,particleSystemFromScene,playSpriteAnimationFromName,scriptAssetsCache,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setVLSPostProcessRef,soundFromScene,spriteFromSpriteManager,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
@@ -5,7 +5,7 @@ import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
5
5
  import { NodeParticleSystemSet } from "@babylonjs/core/Particles/Node/nodeParticleSystemSet";
6
6
  import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
7
7
  import { getSoundById } from "../tools/sound";
8
- import { isAbstractMesh, isNode } from "../tools/guards";
8
+ import { isAbstractMesh, isNode, isSprite, isTransformNode } from "../tools/guards";
9
9
  import { scriptAssetsCache } from "../loading/script";
10
10
  export function applyDecorators(scene, object, script, instance, rootUrl) {
11
11
  const ctor = instance.constructor;
@@ -123,6 +123,8 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
123
123
  }
124
124
  }
125
125
  });
126
+ let pointerObserver = null;
127
+ let keyboardObserver = null;
126
128
  // @onPointerEvent
127
129
  if (ctor._PointerEvents?.length) {
128
130
  const wrongMeshListener = ctor._PointerEvents.find((params) => params.options.mode === "attachedMeshOnly");
@@ -133,7 +135,7 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
133
135
  if (wrongSceneListener && !isNode(object)) {
134
136
  throw new Error(`@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.`);
135
137
  }
136
- scene.onPointerObservable.add((pointerInfo) => {
138
+ pointerObserver = scene.onPointerObservable.add((pointerInfo) => {
137
139
  let pickInfo = null;
138
140
  ctor._PointerEvents.forEach((params) => {
139
141
  if (!params.eventTypes.includes(pointerInfo.type)) {
@@ -167,7 +169,7 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
167
169
  }
168
170
  // @onKeyboardEvent
169
171
  if (ctor._KeyboardEvents?.length) {
170
- scene.onKeyboardObservable.add((keyboardInfo) => {
172
+ keyboardObserver = scene.onKeyboardObservable.add((keyboardInfo) => {
171
173
  ctor._KeyboardEvents.forEach((params) => {
172
174
  if (!params.eventTypes.includes(keyboardInfo.type)) {
173
175
  return;
@@ -176,5 +178,44 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
176
178
  });
177
179
  });
178
180
  }
181
+ // @spriteFromSpriteManager
182
+ if (ctor._SpritesFromSpriteManager?.length) {
183
+ const spriteManagerNode = object;
184
+ if (!isTransformNode(spriteManagerNode) || !spriteManagerNode.isSpriteManager) {
185
+ return console.error(`@spriteFromSpriteManager decorator can only be used on SpriteManagerNode.`);
186
+ }
187
+ if (!spriteManagerNode.spriteManager) {
188
+ return console.error(`SpriteManagerNode "${spriteManagerNode.name}" has no sprite manager assigned.`);
189
+ }
190
+ ctor._SpritesFromSpriteManager?.forEach((params) => {
191
+ const sprite = spriteManagerNode.spriteManager?.sprites.find((s) => s.name === params.spriteName) || null;
192
+ instance[params.propertyKey.toString()] = sprite;
193
+ });
194
+ }
195
+ // @animationFromSprite
196
+ if (ctor._AnimationsFromSprite?.length) {
197
+ if (!isSprite(object)) {
198
+ return console.error(`@animationFromSprite decorator can only be used in scripts attached on Sprite.`);
199
+ }
200
+ const spriteAnimations = object.metadata?.spriteAnimations;
201
+ if (!spriteAnimations?.length) {
202
+ return console.error(`Sprite "${object.name}" has no sprite animations assigned.`);
203
+ }
204
+ ctor._AnimationsFromSprite.forEach((params) => {
205
+ const animation = spriteAnimations.find((a) => a.name === params.animationName);
206
+ if (animation) {
207
+ instance[params.propertyKey.toString()] = animation ?? null;
208
+ }
209
+ else {
210
+ console.warn(`Sprite animation named "${params.animationName}" not found on sprite "${object.name}".`);
211
+ }
212
+ });
213
+ }
214
+ return {
215
+ observers: {
216
+ pointerObserver,
217
+ keyboardObserver,
218
+ },
219
+ };
179
220
  }
180
221
  //# sourceMappingURL=apply.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/decorators/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/decorators/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Makes the decorated property linked to the sprite that has the given name.
3
+ * Once the script is instantiated, the reference to the sprite is retrieved from the
4
+ * sprite manager and assigned to the property. Node link cant' be used in constructor.
5
+ * This can be used only by scripts using Classes.
6
+ * This can be used only on SpriteManagerNode.
7
+ * @param spriteName defines the name of the sprite to retrieve in scene.
8
+ */
9
+ export function spriteFromSpriteManager(spriteName) {
10
+ return function (target, propertyKey) {
11
+ const ctor = target.constructor;
12
+ ctor._SpritesFromSpriteManager ??= [];
13
+ ctor._SpritesFromSpriteManager.push({ propertyKey, spriteName });
14
+ };
15
+ }
16
+ /**
17
+ * Makes the decorated property linked to the sprite that has the given name.
18
+ * Once the script is instantiated, the reference to the sprite is retrieved from the
19
+ * sprite manager and assigned to the property. Node link cant' be used in constructor.
20
+ * This can be used only by scripts using Classes.
21
+ * This can be used only on SpriteManagerNode.
22
+ * @param spriteName defines the name of the sprite to retrieve in scene.
23
+ */
24
+ export function animationFromSprite(animationName) {
25
+ return function (target, propertyKey) {
26
+ const ctor = target.constructor;
27
+ ctor._AnimationsFromSprite ??= [];
28
+ ctor._AnimationsFromSprite.push({ propertyKey, animationName });
29
+ };
30
+ }
31
+ //# sourceMappingURL=sprite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprite.js","sourceRoot":"","sources":["../../../src/decorators/sprite.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACzD,OAAO,UAAU,MAAW,EAAE,WAA4B;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAkC,CAAC;QAEvD,IAAI,CAAC,yBAAyB,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAAqB;IACxD,OAAO,UAAU,MAAW,EAAE,WAA4B;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAkC,CAAC;QAEvD,IAAI,CAAC,qBAAqB,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC;AACH,CAAC"}
@@ -6,6 +6,7 @@ export * from "./tools/texture";
6
6
  export * from "./tools/light";
7
7
  export * from "./tools/scalar";
8
8
  export * from "./tools/animation";
9
+ export * from "./tools/sprite";
9
10
  export * from "./rendering/ssao";
10
11
  export * from "./rendering/ssr";
11
12
  export * from "./rendering/motion-blur";
@@ -17,6 +18,7 @@ export * from "./decorators/sound";
17
18
  export * from "./decorators/particle-systems";
18
19
  export * from "./decorators/inspector";
19
20
  export * from "./decorators/events";
21
+ export * from "./decorators/sprite";
20
22
  export * from "./script";
21
23
  export * from "./cinematic/parse";
22
24
  export * from "./cinematic/typings";
@@ -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,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,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;AAE/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAEhC,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"}
@@ -10,6 +10,9 @@ import { applyRenderingConfigurations } from "./rendering";
10
10
  import { _applyScriptsForObject, _preloadScriptsAssets } from "./script";
11
11
  import "./sound";
12
12
  import "./texture";
13
+ import "./shadows";
14
+ import "./sprite-map";
15
+ import "./sprite-manager";
13
16
  export async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, options) {
14
17
  scene.loadingQuality = options?.quality ?? "high";
15
18
  await AppendSceneAsync(`${rootUrl}${sceneFilename}`, scene, {
@@ -64,5 +67,10 @@ export async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, optio
64
67
  scene.cameras.forEach((camera) => {
65
68
  _applyScriptsForObject(scene, camera, scriptsMap, rootUrl);
66
69
  });
70
+ scene.spriteManagers?.forEach((spriteManager) => {
71
+ spriteManager.sprites.forEach((sprite) => {
72
+ _applyScriptsForObject(scene, sprite, scriptsMap, rootUrl);
73
+ });
74
+ });
67
75
  }
68
76
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/loading/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAEtG,OAAO,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEzE,OAAO,SAAS,CAAC;AACjB,OAAO,WAAW,CAAC;AAmDnB,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAY,EAAE,aAAqB,EAAE,KAAY,EAAE,UAAqB,EAAE,OAA4B;IACrI,KAAK,CAAC,cAAc,GAAG,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC;IAElD,MAAM,gBAAgB,CAAC,GAAG,OAAO,GAAG,aAAa,EAAE,EAAE,KAAK,EAAE;QAC3D,eAAe,EAAE,UAAU;QAC3B,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;YAC9D,OAAO,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;KACD,CAAC,CAAC;IAEH,oDAAoD;IACpD,IAAI,gBAAgB,CAAC,mCAAmC,EAAE,CAAC;QAC1D,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAEvD,6BAA6B;IAC7B,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAE/D,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAE1E,IAAI,gBAAgB,KAAK,iBAAiB,EAAE,CAAC;YAC5C,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,mBAAmB,EAAE,CAAC;oBAC9D,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,qBAAqB,CAAC;gBAC1D,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,CAAC,GAAG,GAAG,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE5C,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzB,qCAAqC,CAAC,KAAK,CAAC,CAAC;IAC7C,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAErC,IAAI,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC/B,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE9D,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,oCAAoC,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;IACF,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;QACpC,KAAK,CAAC,gBAAgB,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAE1D,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QAC9C,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAChC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAChC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/loading/loader.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export const scriptAssetsCache = new Map();
8
8
  * @internal
9
9
  */
10
10
  export async function _preloadScriptsAssets(scene, rootUrl) {
11
- const nodes = [...scene.transformNodes, ...scene.meshes, ...scene.lights, ...scene.cameras];
11
+ const nodes = [scene, ...scene.transformNodes, ...scene.meshes, ...scene.lights, ...scene.cameras];
12
12
  const scripts = nodes
13
13
  .filter((node) => node.metadata?.scripts?.length)
14
14
  .map((node) => node.metadata.scripts)
@@ -58,25 +58,20 @@ export function _applyScriptsForObject(scene, object, scriptsMap, rootUrl) {
58
58
  if (!exports) {
59
59
  return;
60
60
  }
61
+ let result = exports;
62
+ let observers = {};
61
63
  if (exports.default) {
62
- const instance = new exports.default(object);
63
- registerScriptInstance(object, instance, script.key);
64
- applyDecorators(scene, object, script, instance, rootUrl);
65
- if (instance.onStart) {
66
- scene.onBeforeRenderObservable.addOnce(() => instance.onStart());
67
- }
68
- if (instance.onUpdate) {
69
- scene.onBeforeRenderObservable.add(() => instance.onUpdate());
70
- }
64
+ result = new exports.default(object);
65
+ const decoratorsResult = applyDecorators(scene, object, script, result, rootUrl);
66
+ Object.assign(observers, decoratorsResult?.observers ?? {});
71
67
  }
72
- else {
73
- if (exports.onStart) {
74
- scene.onBeforeRenderObservable.addOnce(() => exports.onStart(object));
75
- }
76
- if (exports.onUpdate) {
77
- scene.onBeforeRenderObservable.add(() => exports.onUpdate(object));
78
- }
68
+ if (result.onStart) {
69
+ observers.onStartObserver = scene.onBeforeRenderObservable.addOnce(() => result.onStart(object));
79
70
  }
71
+ if (result.onUpdate) {
72
+ observers.onUpdateObserver = scene.onBeforeRenderObservable.add(() => result.onUpdate(object));
73
+ }
74
+ _registerScriptInstance(object, result, script.key, observers);
80
75
  });
81
76
  object.metadata.scripts = undefined;
82
77
  }
@@ -112,13 +107,12 @@ export const scriptsDictionary = new Map();
112
107
  /**
113
108
  * When a scene is being loaded, scripts that were attached to objects in the scene using the Editor are processed.
114
109
  * This function registers the instance of scripts per object in order to retrieve them later.
115
- * @param object defines the object in the scene on which the script is attached to.
116
- * @param scriptInstance defines the instance of the script to register.
117
- * @param key defines the key of the script. This value is used to identify the script.
110
+ * @internal
118
111
  */
119
- export function registerScriptInstance(object, scriptInstance, key) {
112
+ export function _registerScriptInstance(object, scriptInstance, key, observers) {
120
113
  const registeredScript = {
121
114
  key,
115
+ observers,
122
116
  instance: scriptInstance,
123
117
  };
124
118
  if (!scriptsDictionary.has(object)) {
@@ -127,14 +121,36 @@ export function registerScriptInstance(object, scriptInstance, key) {
127
121
  else {
128
122
  scriptsDictionary.get(object).push(registeredScript);
129
123
  }
130
- object.__editorRunningScripts ??= [];
131
- object.__editorRunningScripts.push(registeredScript);
132
124
  if (isNode(object) || isAnyParticleSystem(object) || isScene(object)) {
133
125
  object.onDisposeObservable.addOnce((() => {
126
+ scriptsDictionary.get(object)?.forEach((s) => {
127
+ _removeRegisteredScriptInstance(object, s);
128
+ });
134
129
  scriptsDictionary.delete(object);
135
130
  }));
136
131
  }
137
132
  }
133
+ /**
134
+ * When a node is disposed, or for hot reload purpose, the script should be unregistered and all observers removed.
135
+ * @internal
136
+ */
137
+ export function _removeRegisteredScriptInstance(object, registeredScript) {
138
+ registeredScript.observers.onStartObserver?.remove();
139
+ registeredScript.observers.onUpdateObserver?.remove();
140
+ registeredScript.observers.pointerObserver?.remove();
141
+ registeredScript.observers.keyboardObserver?.remove();
142
+ try {
143
+ registeredScript.instance.onStop?.(object);
144
+ }
145
+ catch (e) {
146
+ console.error(`Failed to call onStop for script ${registeredScript.key} on object ${object}`, e);
147
+ }
148
+ const runningScripts = scriptsDictionary.get(object);
149
+ const index = runningScripts?.indexOf(registeredScript) ?? -1;
150
+ if (index !== -1) {
151
+ runningScripts?.splice(index, 1);
152
+ }
153
+ }
138
154
  /**
139
155
  * Returns all the instances of the script attached to the given object that matches the given class type.
140
156
  * The same script can be attached multiple times to the same object. If you ensure that ONLY DISTINCT scripts
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/loading/script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/loading/script.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { SceneComponentConstants } from "@babylonjs/core/sceneComponent";
2
+ import { GetParser, AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
3
+ import { getPowerOfTwoUntil } from "../tools/scalar";
4
+ const shadowsGeneratorParser = GetParser(SceneComponentConstants.NAME_SHADOWGENERATOR);
5
+ AddParser(SceneComponentConstants.NAME_SHADOWGENERATOR, (parsedData, scene, container, rootUrl) => {
6
+ if (scene.loadingQuality !== "high") {
7
+ parsedData.shadowGenerators?.forEach((shadowGenerator) => {
8
+ switch (scene.loadingQuality) {
9
+ case "medium":
10
+ shadowGenerator.mapSize = shadowGenerator.mapSize * 0.5;
11
+ break;
12
+ case "low":
13
+ shadowGenerator.mapSize = shadowGenerator.mapSize * 0.25;
14
+ break;
15
+ }
16
+ shadowGenerator.mapSize = Math.max(128, getPowerOfTwoUntil(shadowGenerator.mapSize));
17
+ });
18
+ }
19
+ shadowsGeneratorParser?.(parsedData, scene, container, rootUrl);
20
+ });
21
+ //# sourceMappingURL=shadows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadows.js","sourceRoot":"","sources":["../../../src/loading/shadows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,sBAAsB,GAAG,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;AAEvF,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;IACrI,IAAI,KAAK,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QACrC,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,eAAoB,EAAE,EAAE;YAC7D,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC9B,KAAK,QAAQ;oBACZ,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,GAAG,CAAC;oBACxD,MAAM;gBAEP,KAAK,KAAK;oBACT,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;oBACzD,MAAM;YACR,CAAC;YAED,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,sBAAsB,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { Tools } from "@babylonjs/core/Misc/tools";
2
+ import { Sprite } from "@babylonjs/core/Sprites/sprite";
3
+ import { WebRequest } from "@babylonjs/core/Misc/webRequest";
4
+ import { SpriteManager } from "@babylonjs/core/Sprites/spriteManager";
5
+ import { AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
6
+ function parseSerializedSpriteManager(spriteManager, parsedSpriteManager) {
7
+ if (parsedSpriteManager?.fogEnabled !== undefined) {
8
+ spriteManager.fogEnabled = parsedSpriteManager?.fogEnabled;
9
+ }
10
+ if (parsedSpriteManager?.blendMode !== undefined) {
11
+ spriteManager.blendMode = parsedSpriteManager?.blendMode;
12
+ }
13
+ if (parsedSpriteManager?.disableDepthWrite !== undefined) {
14
+ spriteManager.disableDepthWrite = parsedSpriteManager?.disableDepthWrite;
15
+ }
16
+ if (parsedSpriteManager?.pixelPerfect !== undefined) {
17
+ spriteManager.pixelPerfect = parsedSpriteManager?.pixelPerfect;
18
+ }
19
+ if (parsedSpriteManager?.useLogarithmicDepth !== undefined) {
20
+ spriteManager.useLogarithmicDepth = parsedSpriteManager?.useLogarithmicDepth;
21
+ }
22
+ if (parsedSpriteManager?.metadata !== undefined) {
23
+ spriteManager.metadata = parsedSpriteManager?.metadata;
24
+ }
25
+ for (const parsedSprite of parsedSpriteManager?.sprites ?? []) {
26
+ const sprite = Sprite.Parse(parsedSprite, spriteManager);
27
+ sprite.uniqueId = parsedSprite.uniqueId;
28
+ sprite.metadata = parsedSprite.metadata;
29
+ }
30
+ }
31
+ AddParser("SpriteManagerNode", (parsedData, scene, container, rootUrl) => {
32
+ parsedData.transformNodes?.forEach((transformNode) => {
33
+ if (!transformNode.isSpriteManager) {
34
+ return;
35
+ }
36
+ const instance = container.transformNodes?.find((t) => t.id === transformNode.id);
37
+ if (!instance) {
38
+ return;
39
+ }
40
+ instance.isSpriteManager = transformNode.isSpriteManager;
41
+ if (transformNode.atlasJsonRelativePath) {
42
+ const atlasJsonAbsolutePath = `${rootUrl}${transformNode.atlasJsonRelativePath}`;
43
+ scene.addPendingData(atlasJsonAbsolutePath);
44
+ const atlasRequest = new WebRequest();
45
+ atlasRequest.open("GET", atlasJsonAbsolutePath);
46
+ atlasRequest.send();
47
+ atlasRequest.addEventListener("load", () => {
48
+ scene.removePendingData(atlasJsonAbsolutePath);
49
+ const atlasJson = JSON.parse(atlasRequest.responseText);
50
+ const imagePath = `${Tools.GetFolderPath(atlasJsonAbsolutePath)}${atlasJson.meta.image}`;
51
+ const spriteManager = new SpriteManager(instance.name, imagePath, 1000, 64, scene, undefined, undefined, true, atlasJson);
52
+ instance.spriteManager = spriteManager;
53
+ if (transformNode.spriteManager) {
54
+ parseSerializedSpriteManager(spriteManager, transformNode.spriteManager);
55
+ }
56
+ });
57
+ }
58
+ else if (transformNode.spriteManager?.textureUrl) {
59
+ const imagePath = `${rootUrl}${transformNode.spriteManager.textureUrl}`;
60
+ const spriteManager = new SpriteManager(instance.name, imagePath, 1000, {
61
+ width: transformNode.spriteManager.cellWidth,
62
+ height: transformNode.spriteManager.cellHeight,
63
+ }, scene, undefined, undefined, false);
64
+ instance.spriteManager = spriteManager;
65
+ if (transformNode.spriteManager) {
66
+ parseSerializedSpriteManager(spriteManager, transformNode.spriteManager);
67
+ }
68
+ }
69
+ });
70
+ });
71
+ //# sourceMappingURL=sprite-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprite-manager.js","sourceRoot":"","sources":["../../../src/loading/sprite-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAIvF,SAAS,4BAA4B,CAAC,aAA4B,EAAE,mBAAwB;IAC3F,IAAI,mBAAmB,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QACnD,aAAa,CAAC,UAAU,GAAG,mBAAmB,EAAE,UAAU,CAAC;IAC5D,CAAC;IACD,IAAI,mBAAmB,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QAClD,aAAa,CAAC,SAAS,GAAG,mBAAmB,EAAE,SAAS,CAAC;IAC1D,CAAC;IACD,IAAI,mBAAmB,EAAE,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1D,aAAa,CAAC,iBAAiB,GAAG,mBAAmB,EAAE,iBAAiB,CAAC;IAC1E,CAAC;IACD,IAAI,mBAAmB,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;QACrD,aAAa,CAAC,YAAY,GAAG,mBAAmB,EAAE,YAAY,CAAC;IAChE,CAAC;IACD,IAAI,mBAAmB,EAAE,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC5D,aAAa,CAAC,mBAAmB,GAAG,mBAAmB,EAAE,mBAAmB,CAAC;IAC9E,CAAC;IAED,IAAI,mBAAmB,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjD,aAAa,CAAC,QAAQ,GAAG,mBAAmB,EAAE,QAAQ,CAAC;IACxD,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,mBAAmB,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QACxC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IACzC,CAAC;AACF,CAAC;AAED,SAAS,CAAC,mBAAmB,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;IAC5G,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,aAAkB,EAAE,EAAE;QACzD,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YACpC,OAAO;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAAsB,CAAC;QACvG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO;QACR,CAAC;QAED,QAAQ,CAAC,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC;QAEzD,IAAI,aAAa,CAAC,qBAAqB,EAAE,CAAC;YACzC,MAAM,qBAAqB,GAAG,GAAG,OAAO,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAEjF,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YAE5C,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;YAChD,YAAY,CAAC,IAAI,EAAE,CAAC;YAEpB,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC1C,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;gBAE/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBACxD,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAEzF,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC1H,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;gBAEvC,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;oBACjC,4BAA4B,CAAC,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC1E,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,GAAG,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;YACxE,MAAM,aAAa,GAAG,IAAI,aAAa,CACtC,QAAQ,CAAC,IAAI,EACb,SAAS,EACT,IAAI,EACJ;gBACC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,SAAS;gBAC5C,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,UAAU;aAC9C,EACD,KAAK,EACL,SAAS,EACT,SAAS,EACT,KAAK,CACL,CAAC;YAEF,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;YAEvC,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;gBACjC,4BAA4B,CAAC,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;YAC1E,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { Tools } from "@babylonjs/core/Misc/tools";
2
+ import { Engine } from "@babylonjs/core/Engines/engine";
3
+ import { WebRequest } from "@babylonjs/core/Misc/webRequest";
4
+ import { SpriteMap } from "@babylonjs/core/Sprites/spriteMap";
5
+ import { Texture } from "@babylonjs/core/Materials/Textures/texture";
6
+ import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
7
+ import { AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
8
+ import { normalizeAtlasJson } from "../tools/sprite";
9
+ AddParser("SpriteMapNode", (parsedData, scene, container, rootUrl) => {
10
+ parsedData.transformNodes?.forEach((transformNode) => {
11
+ if (!transformNode.isSpriteMap) {
12
+ return;
13
+ }
14
+ const instance = container.transformNodes?.find((t) => t.id === transformNode.id);
15
+ if (!instance) {
16
+ return;
17
+ }
18
+ instance.isSpriteMap = transformNode.isSpriteMap;
19
+ const atlasJsonAbsolutePath = `${rootUrl}${transformNode.atlasJsonRelativePath}`;
20
+ scene.addPendingData(atlasJsonAbsolutePath);
21
+ const atlasRequest = new WebRequest();
22
+ atlasRequest.open("GET", atlasJsonAbsolutePath);
23
+ atlasRequest.send();
24
+ atlasRequest.addEventListener("load", () => {
25
+ scene.removePendingData(atlasJsonAbsolutePath);
26
+ const atlasJson = JSON.parse(atlasRequest.responseText);
27
+ normalizeAtlasJson(atlasJson);
28
+ const imagePath = `${Tools.GetFolderPath(atlasJsonAbsolutePath)}${atlasJson.meta.image}`;
29
+ const spritesheet = new Texture(imagePath, scene, false, false, Texture.NEAREST_NEAREST, null, null, null, false, Engine.TEXTUREFORMAT_RGBA);
30
+ const spriteMap = new SpriteMap(instance.name, atlasJson, spritesheet, {
31
+ layerCount: transformNode.options.layerCount,
32
+ stageSize: Vector2.FromArray(transformNode.options.stageSize ?? [10, 1]),
33
+ outputSize: Vector2.FromArray(transformNode.options.outputSize ?? [100, 100]),
34
+ colorMultiply: Vector3.FromArray(transformNode.options.colorMultiply ?? [1, 1, 1]),
35
+ flipU: true,
36
+ }, scene);
37
+ transformNode.tiles.forEach((tile) => {
38
+ for (let x = 0, lenX = tile.repeatCount.x + 1; x < lenX; ++x) {
39
+ for (let y = 0, lenY = tile.repeatCount.y + 1; y < lenY; ++y) {
40
+ const offsetX = x * (tile.repeatOffset.x + 1);
41
+ const offsetY = y * (tile.repeatOffset.y + 1);
42
+ spriteMap.changeTiles(tile.layer, new Vector2(tile.position.x + offsetX, (spriteMap.options.stageSize?.y ?? 0) - 1 - tile.position.y - offsetY), tile.tile);
43
+ }
44
+ }
45
+ });
46
+ const outputPlane = spriteMap["_output"];
47
+ outputPlane.parent = instance;
48
+ instance.spriteMap = spriteMap;
49
+ });
50
+ });
51
+ });
52
+ //# sourceMappingURL=sprite-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprite-map.js","sourceRoot":"","sources":["../../../src/loading/sprite-map.ts"],"names":[],"mappings":"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"}
@@ -177,4 +177,11 @@ export function isAnyParticleSystem(object) {
177
177
  }
178
178
  return false;
179
179
  }
180
+ /**
181
+ * Returns wether or not the given object is a Sprite.
182
+ * @param object defines the reference to the object to test its class name.
183
+ */
184
+ export function isSprite(object) {
185
+ return object.getClassName?.() === "Sprite";
186
+ }
180
187
  //# sourceMappingURL=guards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../src/tools/guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../src/tools/guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export function normalizeAtlasJson(data) {
2
+ if (!Array.isArray(data.frames)) {
3
+ const frames = [];
4
+ for (const key of Object.keys(data.frames)) {
5
+ frames.push({
6
+ filename: key,
7
+ ...data.frames[key],
8
+ });
9
+ }
10
+ data.frames = frames;
11
+ }
12
+ }
13
+ /**
14
+ * Plays a sprite animation previously setup in the editor indentified by its name.
15
+ * @param sprite defines the reference to the sprite to animate.
16
+ * @param animationName defines the name of the animation to play previously setup in the editor.
17
+ * @param onAnimationEnd defines an optional callback to be called when the animation ends.
18
+ */
19
+ export function playSpriteAnimationFromName(sprite, animationName, onAnimationEnd) {
20
+ const spriteAnimations = (sprite.metadata?.spriteAnimations ?? []);
21
+ const animation = spriteAnimations.find((a) => a.name === animationName);
22
+ if (!animation) {
23
+ return console.error(`Animation with name "${animationName}" not found on sprite.`);
24
+ }
25
+ sprite.playAnimation(animation.from, animation.to, animation.loop, animation.delay, onAnimationEnd);
26
+ }
27
+ //# sourceMappingURL=sprite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprite.js","sourceRoot":"","sources":["../../../src/tools/sprite.ts"],"names":[],"mappings":"AAiDA,MAAM,UAAU,kBAAkB,CAAC,IAAS;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,MAAM,GAAU,EAAE,CAAC;QAEzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,GAAG;gBACb,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;aACnB,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAc,EAAE,aAAqB,EAAE,cAA2B;IAC7G,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,IAAI,EAAE,CAAuB,CAAC;IACzF,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAEzE,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC,KAAK,CAAC,wBAAwB,aAAa,wBAAwB,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACrG,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import { Scene } from "@babylonjs/core/scene";
2
+ import { Observer } from "@babylonjs/core/Misc/observable";
3
+ import { PointerInfo } from "@babylonjs/core/Events/pointerEvents";
4
+ import { KeyboardInfo } from "@babylonjs/core/Events/keyboardEvents";
2
5
  import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
3
6
  import { IPointerEventDecoratorOptions } from "./events";
4
7
  import { VisibleInInspectorDecoratorConfiguration } from "./inspector";
@@ -44,5 +47,18 @@ export interface ISceneDecoratorData {
44
47
  eventTypes: number[];
45
48
  propertyKey: string | Symbol;
46
49
  }[];
50
+ _SpritesFromSpriteManager?: {
51
+ spriteName: string;
52
+ propertyKey: string | Symbol;
53
+ }[];
54
+ _AnimationsFromSprite?: {
55
+ animationName: string;
56
+ propertyKey: string | Symbol;
57
+ }[];
47
58
  }
48
- export declare function applyDecorators(scene: Scene, object: any, script: any, instance: any, rootUrl: string): void;
59
+ export declare function applyDecorators(scene: Scene, object: any, script: any, instance: any, rootUrl: string): void | {
60
+ observers: {
61
+ pointerObserver: Observer<PointerInfo> | null;
62
+ keyboardObserver: Observer<KeyboardInfo> | null;
63
+ };
64
+ };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Makes the decorated property linked to the sprite that has the given name.
3
+ * Once the script is instantiated, the reference to the sprite is retrieved from the
4
+ * sprite manager and assigned to the property. Node link cant' be used in constructor.
5
+ * This can be used only by scripts using Classes.
6
+ * This can be used only on SpriteManagerNode.
7
+ * @param spriteName defines the name of the sprite to retrieve in scene.
8
+ */
9
+ export declare function spriteFromSpriteManager(spriteName: string): (target: any, propertyKey: string | Symbol) => void;
10
+ /**
11
+ * Makes the decorated property linked to the sprite that has the given name.
12
+ * Once the script is instantiated, the reference to the sprite is retrieved from the
13
+ * sprite manager and assigned to the property. Node link cant' be used in constructor.
14
+ * This can be used only by scripts using Classes.
15
+ * This can be used only on SpriteManagerNode.
16
+ * @param spriteName defines the name of the sprite to retrieve in scene.
17
+ */
18
+ export declare function animationFromSprite(animationName: string): (target: any, propertyKey: string | Symbol) => void;
@@ -6,6 +6,7 @@ export * from "./tools/texture";
6
6
  export * from "./tools/light";
7
7
  export * from "./tools/scalar";
8
8
  export * from "./tools/animation";
9
+ export * from "./tools/sprite";
9
10
  export * from "./rendering/ssao";
10
11
  export * from "./rendering/ssr";
11
12
  export * from "./rendering/motion-blur";
@@ -17,6 +18,7 @@ export * from "./decorators/sound";
17
18
  export * from "./decorators/particle-systems";
18
19
  export * from "./decorators/inspector";
19
20
  export * from "./decorators/events";
21
+ export * from "./decorators/sprite";
20
22
  export * from "./script";
21
23
  export * from "./cinematic/parse";
22
24
  export * from "./cinematic/typings";
@@ -1,6 +1,10 @@
1
1
  import { Scene } from "@babylonjs/core/scene";
2
+ import { IScript } from "../script";
2
3
  import "./sound";
3
4
  import "./texture";
5
+ import "./shadows";
6
+ import "./sprite-map";
7
+ import "./sprite-manager";
4
8
  /**
5
9
  * Defines the possible output type of a script.
6
10
  * `default` is a class that will be instantiated with the object as parameter.
@@ -8,13 +12,8 @@ import "./texture";
8
12
  * `onUpdate` is a function that will be called every frame passing the reference to the object the script is attached to
9
13
  */
10
14
  export type ScriptMap = Record<string, {
11
- default?: new (object: any) => {
12
- onStart?(): void;
13
- onUpdate?(): void;
14
- };
15
- onStart?: (object: any) => void;
16
- onUpdate?: (object: any) => void;
17
- }>;
15
+ default?: new (object: any) => IScript;
16
+ } & IScript>;
18
17
  /**
19
18
  * Defines the overall desired quality of the scene.
20
19
  * In other words, defines the quality of textures that will be loaded in terms of dimensions.
@@ -1,5 +1,8 @@
1
1
  import { Node } from "@babylonjs/core/node";
2
2
  import { Scene } from "@babylonjs/core/scene";
3
+ import { Observer } from "@babylonjs/core/Misc/observable";
4
+ import { PointerInfo } from "@babylonjs/core/Events/pointerEvents";
5
+ import { KeyboardInfo } from "@babylonjs/core/Events/keyboardEvents";
3
6
  import { IParticleSystem } from "@babylonjs/core/Particles/IParticleSystem";
4
7
  import { IScript } from "../script";
5
8
  import { ScriptMap } from "./loader";
@@ -35,16 +38,29 @@ export interface IRegisteredScript {
35
38
  * Defines the instance of the script that was created while loading the scene.
36
39
  */
37
40
  instance: IScript;
41
+ /**
42
+ * Defines the dictionary of all registered observers for this script.
43
+ */
44
+ observers: IRegisteredScriptObservers;
45
+ }
46
+ export interface IRegisteredScriptObservers {
47
+ onStartObserver?: Observer<Scene> | null;
48
+ onUpdateObserver?: Observer<Scene> | null;
49
+ pointerObserver?: Observer<PointerInfo> | null;
50
+ keyboardObserver?: Observer<KeyboardInfo> | null;
38
51
  }
39
52
  export declare const scriptsDictionary: Map<Node | Scene | IParticleSystem, IRegisteredScript[]>;
40
53
  /**
41
54
  * When a scene is being loaded, scripts that were attached to objects in the scene using the Editor are processed.
42
55
  * This function registers the instance of scripts per object in order to retrieve them later.
43
- * @param object defines the object in the scene on which the script is attached to.
44
- * @param scriptInstance defines the instance of the script to register.
45
- * @param key defines the key of the script. This value is used to identify the script.
56
+ * @internal
57
+ */
58
+ export declare function _registerScriptInstance(object: any, scriptInstance: IScript, key: string, observers: IRegisteredScriptObservers): void;
59
+ /**
60
+ * When a node is disposed, or for hot reload purpose, the script should be unregistered and all observers removed.
61
+ * @internal
46
62
  */
47
- export declare function registerScriptInstance(object: any, scriptInstance: IScript, key: string): void;
63
+ export declare function _removeRegisteredScriptInstance(object: any, registeredScript: IRegisteredScript): void;
48
64
  /**
49
65
  * Returns all the instances of the script attached to the given object that matches the given class type.
50
66
  * The same script can be attached multiple times to the same object. If you ensure that ONLY DISTINCT scripts
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -5,9 +5,13 @@ export interface IScript {
5
5
  /**
6
6
  * Method called when the script starts. This method is called only once.
7
7
  */
8
- onStart?(): void;
8
+ onStart?(object: any): void;
9
9
  /**
10
10
  * Method called on each frame.
11
11
  */
12
- onUpdate?(): void;
12
+ onUpdate?(object: any): void;
13
+ /**
14
+ * Method called on the script is stopped or the object is disposed.
15
+ */
16
+ onStop?(object: any): void;
13
17
  }
@@ -17,6 +17,7 @@ import { DirectionalLight } from "@babylonjs/core/Lights/directionalLight";
17
17
  import { ParticleSystem } from "@babylonjs/core/Particles/particleSystem";
18
18
  import { IParticleSystem } from "@babylonjs/core/Particles/IParticleSystem";
19
19
  import { GPUParticleSystem } from "@babylonjs/core/Particles/gpuParticleSystem";
20
+ import { Sprite } from "@babylonjs/core/Sprites/sprite";
20
21
  /**
21
22
  * Returns wether or not the given object is an AbstractMesh.
22
23
  * @param object defines the reference to the object to test its class name.
@@ -117,3 +118,8 @@ export declare function isGPUParticleSystem(object: any): object is GPUParticleS
117
118
  * @param object defines the reference to the object to test its class name.
118
119
  */
119
120
  export declare function isAnyParticleSystem(object: any): object is IParticleSystem;
121
+ /**
122
+ * Returns wether or not the given object is a Sprite.
123
+ * @param object defines the reference to the object to test its class name.
124
+ */
125
+ export declare function isSprite(object: any): object is Sprite;
@@ -0,0 +1,48 @@
1
+ import { Sprite } from "@babylonjs/core/Sprites/sprite";
2
+ import { SpriteMap } from "@babylonjs/core/Sprites/spriteMap";
3
+ import { IVector2Like } from "@babylonjs/core/Maths/math.like";
4
+ import { TransformNode } from "@babylonjs/core/Meshes/transformNode";
5
+ import { SpriteManager } from "@babylonjs/core/Sprites/spriteManager";
6
+ declare module "@babylonjs/core/Sprites/sprite" {
7
+ interface Sprite {
8
+ metadata: any;
9
+ }
10
+ }
11
+ export interface ISpriteAnimation {
12
+ name: string;
13
+ from: number;
14
+ to: number;
15
+ loop: boolean;
16
+ delay: number;
17
+ }
18
+ export interface ISpriteMapTile {
19
+ id: string;
20
+ name: string;
21
+ layer: number;
22
+ position: IVector2Like;
23
+ repeatCount: IVector2Like;
24
+ repeatOffset: IVector2Like;
25
+ tile: number;
26
+ }
27
+ /**
28
+ * This interface is used to define extra properties on TransformNode. For example for SpriteMap support.
29
+ */
30
+ export interface SpriteMapNode extends TransformNode {
31
+ isSpriteMap?: boolean;
32
+ spriteMap?: SpriteMap | null;
33
+ }
34
+ /**
35
+ * This interface is used to define extra properties on TransformNode. For example for SpriteManager support.
36
+ */
37
+ export interface SpriteManagerNode extends TransformNode {
38
+ isSpriteManager?: boolean;
39
+ spriteManager?: SpriteManager | null;
40
+ }
41
+ export declare function normalizeAtlasJson(data: any): void;
42
+ /**
43
+ * Plays a sprite animation previously setup in the editor indentified by its name.
44
+ * @param sprite defines the reference to the sprite to animate.
45
+ * @param animationName defines the name of the animation to play previously setup in the editor.
46
+ * @param onAnimationEnd defines an optional callback to be called when the animation ends.
47
+ */
48
+ export declare function playSpriteAnimationFromName(sprite: Sprite, animationName: string, onAnimationEnd?: () => void): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylonjs-editor-tools",
3
- "version": "5.1.9",
3
+ "version": "5.2.0",
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": {
@@ -23,8 +23,8 @@
23
23
  "@babel/core": "^7.26.10",
24
24
  "@babel/preset-env": "^7.26.9",
25
25
  "@babel/preset-typescript": "^7.27.0",
26
- "@babylonjs/core": "8.29.0",
27
- "@babylonjs/gui": "8.29.0",
26
+ "@babylonjs/core": "8.33.2",
27
+ "@babylonjs/gui": "8.33.2",
28
28
  "@types/jest": "^29.5.14",
29
29
  "babel-jest": "^29.7.0",
30
30
  "babel-plugin-transform-class-properties": "^6.24.1",