@galacean/cli 2.0.0-alpha.26 → 2.0.0-alpha.27

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 (91) hide show
  1. package/dist/cli.bundle.cjs +671 -777
  2. package/dist/preview-client/_static/{Accordion-2cd014f1.js → Accordion-4afac60c.js} +1 -1
  3. package/dist/preview-client/_static/{AmbientLightAsset-be9e872c.js → AmbientLightAsset-3825f3bf.js} +2 -2
  4. package/dist/preview-client/_static/{AnimationClipAsset-d7b37af0.js → AnimationClipAsset-660ecb36.js} +1 -1
  5. package/dist/preview-client/_static/{AnimatorControllerAsset-2716497a.js → AnimatorControllerAsset-dcf11a9d.js} +1 -1
  6. package/dist/preview-client/_static/{AnimatorStore-883a28ad.js → AnimatorStore-aa58d85c.js} +1 -1
  7. package/dist/preview-client/_static/{AssetViewer-3847c058.js → AssetViewer-8338dfe1.js} +1 -1
  8. package/dist/preview-client/_static/{AudioAsset-c28f33ab.js → AudioAsset-6e607154.js} +1 -1
  9. package/dist/preview-client/_static/{AudioComponent-3d6c73ce.js → AudioComponent-b70cc31e.js} +1 -1
  10. package/dist/preview-client/_static/{Callout-e2a89f6f.js → Callout-155c30df.js} +1 -1
  11. package/dist/preview-client/_static/{CameraComponent-3dc63451.js → CameraComponent-76bc9102.js} +1 -1
  12. package/dist/preview-client/_static/{Component-0f881fc1.js → Component-398551a0.js} +1 -1
  13. package/dist/preview-client/_static/{DirectLight-96dbba47.js → DirectLight-50653e81.js} +1 -1
  14. package/dist/preview-client/_static/{FontAsset-d34b5378.js → FontAsset-dc385d41.js} +1 -1
  15. package/dist/preview-client/_static/{FormItemArray-b8cda1d2.js → FormItemArray-9ca61884.js} +1 -1
  16. package/dist/preview-client/_static/{GlTFAsset-5970e707.js → GlTFAsset-d2ee4f95.js} +1 -1
  17. package/dist/preview-client/_static/{IconPlus-def01e2b.js → IconPlus-b3ed4c04.js} +1 -1
  18. package/dist/preview-client/_static/{IconPointFilled-62d3c3b2.js → IconPointFilled-3ba6d082.js} +1 -1
  19. package/dist/preview-client/_static/{LightBaseComponent-d651a276.js → LightBaseComponent-4cfc9f48.js} +1 -1
  20. package/dist/preview-client/_static/{LottieAnimationComponent-f10dc558.js → LottieAnimationComponent-aeb555ea.js} +1 -1
  21. package/dist/preview-client/_static/{MarkdownAsset-b2a3fad5.js → MarkdownAsset-02477e7c.js} +1 -1
  22. package/dist/preview-client/_static/{MaterialAsset-5353c4cb.js → MaterialAsset-8f3b3302.js} +1 -1
  23. package/dist/preview-client/_static/{MaterialInspector-8d466d59.js → MaterialInspector-3fb471d9.js} +1 -1
  24. package/dist/preview-client/_static/{Menu-c8e6194b.js → Menu-36c201c0.js} +1 -1
  25. package/dist/preview-client/_static/{MeshAsset-c2bf60c5.js → MeshAsset-3ddf1ac6.js} +1 -1
  26. package/dist/preview-client/_static/{MeshRendererBaseComponent-fde6b6a5.js → MeshRendererBaseComponent-cd8b743b.js} +1 -1
  27. package/dist/preview-client/_static/{MeshRendererComponent-430774ef.js → MeshRendererComponent-17a7fc72.js} +1 -1
  28. package/dist/preview-client/_static/{MeshThumbnail-07ffa076.js → MeshThumbnail-8c20ee92.js} +1 -1
  29. package/dist/preview-client/_static/{ParticleRendererComponent-e106bd8c.js → ParticleRendererComponent-1834a159.js} +3 -3
  30. package/dist/preview-client/_static/{PhysicsMaterialAsset-a2f73b5c.js → PhysicsMaterialAsset-e0491877.js} +1 -1
  31. package/dist/preview-client/_static/{PhysicsStore-818c2f61.js → PhysicsStore-ab32886e.js} +1 -1
  32. package/dist/preview-client/_static/{PointLight-add790ea.js → PointLight-97975350.js} +1 -1
  33. package/dist/preview-client/_static/{PostProcessComponent-af270a77.js → PostProcessComponent-9590ec29.js} +1 -1
  34. package/dist/preview-client/_static/PrefabAsset-2f94de73.js +1 -0
  35. package/dist/preview-client/_static/{PrimitiveMesh-075dda8a.js → PrimitiveMesh-0492d482.js} +1 -1
  36. package/dist/preview-client/_static/{ReferencedMaterial-d11151b5.js → ReferencedMaterial-49a7cbcc.js} +1 -1
  37. package/dist/preview-client/_static/{RenderTargetAsset-b3cd1c49.js → RenderTargetAsset-dc1f9494.js} +1 -1
  38. package/dist/preview-client/_static/{SceneAsset-08752701.js → SceneAsset-c3bb667f.js} +1 -1
  39. package/dist/preview-client/_static/{ShaderAsset-a9d667f5.js → ShaderAsset-f4eead79.js} +12 -12
  40. package/dist/preview-client/_static/{ShaderChunkAsset-e43dde8a.js → ShaderChunkAsset-4bea2733.js} +2 -2
  41. package/dist/preview-client/_static/{ShaderUIScriptAsset-e1cd0b8b.js → ShaderUIScriptAsset-3c731f3b.js} +2 -2
  42. package/dist/preview-client/_static/{SkinnedMeshRendererComponent-9756bd5f.js → SkinnedMeshRendererComponent-e0f9b133.js} +1 -1
  43. package/dist/preview-client/_static/{SpineAnimationComponent-f3e0ff44.js → SpineAnimationComponent-1e1655fd.js} +1 -1
  44. package/dist/preview-client/_static/{SpineSkeletonDataAsset-43b731f1.js → SpineSkeletonDataAsset-afb4afae.js} +1 -1
  45. package/dist/preview-client/_static/{SpotLight-649b0e21.js → SpotLight-69f361c9.js} +1 -1
  46. package/dist/preview-client/_static/{SpriteBaseComponent-d2a7ab4c.js → SpriteBaseComponent-2c2454ea.js} +1 -1
  47. package/dist/preview-client/_static/{SpriteMaskComponent-2c1cef5e.js → SpriteMaskComponent-a7ebcc50.js} +1 -1
  48. package/dist/preview-client/_static/{SpriteRendererComponent-33b71997.js → SpriteRendererComponent-f7604c68.js} +1 -1
  49. package/dist/preview-client/_static/{TextBaseComponent-9310e0c6.js → TextBaseComponent-cd7ad9f7.js} +1 -1
  50. package/dist/preview-client/_static/{TextRendererComponent-8dc0d7fb.js → TextRendererComponent-a5357d52.js} +1 -1
  51. package/dist/preview-client/_static/{TextureAsset-a7ff39b1.js → TextureAsset-ff089b5a.js} +1 -1
  52. package/dist/preview-client/_static/{Tooltip-b5be390f.js → Tooltip-1bcb87b5.js} +1 -1
  53. package/dist/preview-client/_static/{TrailRendererComponent-c4635fab.js → TrailRendererComponent-cdefa368.js} +1 -1
  54. package/dist/preview-client/_static/{TransformBaseComponent-1473deaa.js → TransformBaseComponent-d26ff236.js} +1 -1
  55. package/dist/preview-client/_static/{TransformComponent-e544f7ac.js → TransformComponent-4ec4b7b5.js} +1 -1
  56. package/dist/preview-client/_static/{XRReferenceImageAsset-96f516ba.js → XRReferenceImageAsset-ff82ab30.js} +1 -1
  57. package/dist/preview-client/_static/{audio-b5fbde34.js → audio-0a013eb6.js} +1 -1
  58. package/dist/preview-client/_static/{createOnModelChange-370b83da.js → createOnModelChange-89f572a6.js} +1 -1
  59. package/dist/preview-client/_static/{createReactComponent-58d9f0dd.js → createReactComponent-baa41397.js} +1 -1
  60. package/dist/preview-client/_static/index-0086cabc.js +1 -0
  61. package/dist/preview-client/_static/index-253f9e13.js +1 -0
  62. package/dist/preview-client/_static/{index-da16047f.js → index-29916a80.js} +1 -1
  63. package/dist/preview-client/_static/{index-ab8556cb.js → index-4845b67c.js} +3 -3
  64. package/dist/preview-client/_static/{index-dd0763bf.js → index-5e4dedda.js} +1 -1
  65. package/dist/preview-client/_static/{index-0dd5bb36.js → index-70967035.js} +1 -1
  66. package/dist/preview-client/_static/index-8234e4e2.js +1 -0
  67. package/dist/preview-client/_static/{index-88650db7.js → index-8784a43a.js} +1 -1
  68. package/dist/preview-client/_static/index-94594d06.js +1 -0
  69. package/dist/preview-client/_static/{index-74bcfad9.js → index-a0afef01.js} +1 -1
  70. package/dist/preview-client/_static/index-ad57c6c8.js +1 -0
  71. package/dist/preview-client/_static/{index-c3dec278.js → index-b126bb6b.js} +72 -72
  72. package/dist/preview-client/_static/{index-cdbb2f4d.js → index-c8ed2a45.js} +1 -1
  73. package/dist/preview-client/_static/{index-05b76766.js → index-cd09e78a.js} +1 -1
  74. package/dist/preview-client/_static/index-d1484803.js +1 -0
  75. package/dist/preview-client/_static/index-f7fcda86.js +1 -0
  76. package/dist/preview-client/_static/{ktx2-encoder-db93524f.js → ktx2-encoder-8498815e.js} +1 -1
  77. package/dist/preview-client/_static/{module-ada3dced.js → module-113ac03a.js} +1 -1
  78. package/dist/preview-client/_static/{module-ec094ef6.js → module-83a57161.js} +1 -1
  79. package/dist/preview-client/_static/{module-de7ee724.js → module-8efda49c.js} +1 -1
  80. package/dist/preview-client/_static/{postmen-2853c0e6.js → postmen-3b48c572.js} +2 -2
  81. package/dist/preview-client/_static/{shader-data-utils-f0e4f5a3.js → shader-data-utils-c90e48b8.js} +1 -1
  82. package/dist/preview-client/index.html +1 -1
  83. package/package.json +29 -24
  84. package/dist/preview-client/_static/PrefabAsset-59743dbb.js +0 -1
  85. package/dist/preview-client/_static/index-29c59aff.js +0 -1
  86. package/dist/preview-client/_static/index-3680d0e0.js +0 -1
  87. package/dist/preview-client/_static/index-42aa3a49.js +0 -1
  88. package/dist/preview-client/_static/index-496f331d.js +0 -1
  89. package/dist/preview-client/_static/index-9f0122f0.js +0 -1
  90. package/dist/preview-client/_static/index-c6b7045c.js +0 -1
  91. package/dist/preview-client/_static/index-dddcae01.js +0 -1
@@ -1 +1 @@
1
- var N=Object.defineProperty;var $=(p,e,t)=>e in p?N(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t;var f=(p,e,t)=>($(p,typeof e!="symbol"?e+"":e,t),t);import{y as j,bD as F,bE as V,bF as U,F as G,ai as K,V as z,b3 as H,b2 as b,j as Q,q as k,u as W,bG as D,bH as A,a1 as m,a2 as T,bI as J,C as O,bJ as w,bK as Y,aE as S,bL as q,e as E,bM as X,K as Z,ae as ee,ah as te,af as C,R as v,_ as ae,z as re,x as L,aC as _,n as se,o as ie}from"./index-c3dec278.js";import"./index-cdbb2f4d.js";import"./postmen-2853c0e6.js";import{M as ne}from"./MaterialInspector-8d466d59.js";import{A as oe}from"./AssetViewer-3847c058.js";import{E as g,s as x}from"./shader-data-utils-f0e4f5a3.js";class he extends oe{constructor(){super(...arguments);f(this,"_sphereRenderer",null);f(this,"_particleRenderer",null);f(this,"_asset",null);f(this,"_shaderReactionDisposer",null);f(this,"onShaderChange",()=>{const{_asset:t}=this;t.engineObject.shader.name==="Effect/Particle"?(this._particleRenderer.entity.isActive=!0,this._sphereRenderer.entity.isActive=!1,this._particleRenderer.setMaterial(t.engineObject)):(this._particleRenderer.entity.isActive=!1,this._sphereRenderer.entity.isActive=!0,this._sphereRenderer.setMaterial(t.engineObject))})}setViewAsset(t,r){if(!(t instanceof y))return;const i=r.createChild("material");this._asset=t;const a=this._sphereRenderer=i.createChild("mat").addComponent(j);a.mesh=F.createSphere(r.engine,1,32,!0);const n=this._particleRenderer=i.createChild("pat").addComponent(V);n.generator.main.duration=1e3,n.generator.main.startSpeed.constant=0,this._entity=i,r.addChild(this._entity),this.onShaderChange(),this._shaderReactionDisposer=U(()=>{var o,l;return(l=(o=this._asset)==null?void 0:o.shaderRef)==null?void 0:l.refId},()=>{this.onShaderChange()})}stopViewAsset(){var t;super.stopViewAsset(),(t=this._shaderReactionDisposer)==null||t.call(this),this._shaderReactionDisposer=null,this._asset=null}}class P{static update(e,t){if(!(t instanceof y))return;const r=t.engineObject;if(!r||!r.shader){this.entity&&this.sphereRenderer&&this.particleRenderer&&this.clear();return}this.entity?this.entity.isActive=!0:this.initScene(e),r.shader.name==="Effect/Particle"?(this.sphereRenderer.entity.isActive=!1,this.particleRenderer.entity.isActive=!0,this.particleRenderer.setMaterial(r),this.particleRenderer.generator._playTime=5):(this.particleRenderer.entity.isActive=!1,this.sphereRenderer.entity.isActive=!0,this.sphereRenderer.setMaterial(r))}static clear(){var e,t;(e=this.sphereRenderer)!=null&&e.entity&&(this.sphereRenderer.entity.isActive=!1),(t=this.particleRenderer)!=null&&t.entity&&(this.particleRenderer.entity.isActive=!1),this.entity&&(this.entity.isActive=!1)}static initScene(e){const t=this.entity=e.createChild("material"),r=this.sphereRenderer=t.createChild("mat").addComponent(j);r.mesh=F.createSphere(e.engine,2,64,!0),this.particleRenderer=t.createChild("pat").addComponent(V),this.particleRenderer.bounds.max.set(.5,.5,.5),this.particleRenderer.bounds.min.set(-.5,-.5,-.5)}}f(P,"entity",null),f(P,"sphereRenderer",null),f(P,"particleRenderer",null);function B(p){return p instanceof G?{x:p.x,y:p.y}:p instanceof K?{x:p.x,y:p.y,z:p.z}:p instanceof z?{x:p.x,y:p.y,z:p.z,w:p.w}:p instanceof H?{r:p.r,g:p.g,b:p.b,a:p.a}:p}function pe(p){switch(p){case b.Color:return"Color";case b.Float:return"Float";case b.Int:return"Integer";case b.Matrix:return"Matrix";case b.Texture:return"Texture";case b.TextureArray:return"TextureArray";case b.Vector2:return"Vector2";case b.Vector3:return"Vector3";case b.Vector4:return"Vector4"}}var ce=Object.defineProperty,de=Object.getOwnPropertyDescriptor,I=(p,e,t,r)=>{for(var i=r>1?void 0:r?de(e,t):e,a=p.length-1,n;a>=0;a--)(n=p[a])&&(i=(r?n(e,t,i):n(i))||i);return r&&i&&ce(e,t,i),i};let y=class extends Q{constructor(e){super(e);f(this,"acceptDragLayer",k.Texture);f(this,"shaderRef",{refId:null});f(this,"shaderDataKeys",new Set);f(this,"formConfig",null);f(this,"_autoSaveSuppressed",!1);W(this),D(this,{proxyConfigs:[]})}static initBuiltinMaterial(e,t){e.shader=t;const r=e.shaderData;switch(r.disableMacro("MATERIAL_NEED_WORLD_POS"),r.disableMacro("MATERIAL_OMIT_NORMAL"),r.disableMacro("MATERIAL_NEED_TILING_OFFSET"),r.disableMacro("MATERIAL_SUN_HIGH_QUALITY"),t.name){case"Unlit":r.enableMacro("MATERIAL_OMIT_NORMAL"),r.enableMacro("MATERIAL_NEED_TILING_OFFSET");break;case"PBR":case"bake-pbr":case"BlinnPhong":r.enableMacro("MATERIAL_NEED_WORLD_POS"),r.enableMacro("MATERIAL_NEED_TILING_OFFSET");break;case"Sky/SkyProcedural":r.enableMacro("MATERIAL_SUN_HIGH_QUALITY");break;case"Effect/Particle":r.enableMacro("MATERIAL_OMIT_NORMAL");break}}setAutoSaveSuppressed(e){this._autoSaveSuppressed=e}setRenderQueueType(e){this.engineObject.shaderData.setInt("renderQueueType",e)}setBlendStateEnabled(e){this.engineObject.shaderData.setInt("blendEnabled",e?1:0)}setDepthWriteEnabled(e){this.engineObject.shaderData.setInt("depthWriteEnabled",e?1:0)}setCullMode(e){this.engineObject.shaderData.setInt("rasterStateCullMode",e)}setBlendMode(e){const t=this.engineObject.shaderData;switch(e){case A.Normal:t.setInt("sourceColorBlendFactor",m.SourceAlpha),t.setInt("destinationColorBlendFactor",m.OneMinusSourceAlpha),t.setInt("sourceAlphaBlendFactor",m.One),t.setInt("destinationAlphaBlendFactor",m.OneMinusSourceAlpha),t.setInt("colorBlendOperation",T.Add),t.setInt("alphaBlendOperation",T.Add);break;case A.Additive:t.setInt("sourceColorBlendFactor",m.SourceAlpha),t.setInt("destinationColorBlendFactor",m.One),t.setInt("sourceAlphaBlendFactor",m.One),t.setInt("destinationAlphaBlendFactor",m.OneMinusSourceAlpha),t.setInt("colorBlendOperation",T.Add),t.setInt("alphaBlendOperation",T.Add);break}}bindShaderAsset(e,t){for(const r of this.shaderDataKeys)this.removePropertyChangeListener(r);return this.shaderDataKeys.clear(),e.onReady().then(async()=>{var i;if(this.isInitCompleted){if(e.shaderScriptRefId){const a=this.root.assetStore.getAsset(e.shaderScriptRefId.refId);a==null||a.onShaderChange(this._engineObject)}else e.builtinUIScript&&e.builtinUIScript.onMaterialShaderSwitched(this._engineObject);t=this._getMainData()}const r=e.properties?J(e.properties):[];e.isBuiltinShader()&&y.initBuiltinMaterial(this.engineObject,e.engineObject),t=t||this._getMainData(),await this._proxyShaderProps(r,t,this.isInitCompleted),this.refreshFormConfig(r,t),this.refreshAnimatableProperties(r),this.shaderRef&&this.root.assetStore.getAssetByRef(this.shaderRef).then(a=>{a!==e&&(a==null||a.removeReferencedMaterial(this))}).catch(()=>{}),e.addReferencedMaterial(this),this.shaderRef={refId:e.id},await this.applyBoundPathChange("shader",O.AssetPicker,this.shaderRef),(i=this.updateThumbnail)==null||i.call(this)})}async _proxyShaderProps(e,t,r=!0){var n;this.proxyConfigs=e;const i=(n=this.extraData)==null?void 0:n.disabledMacros,a=e.map(async o=>{var l;if(this.proxySetter(o),this._virualShaderProps(e),o.bundleType==="macro"){const s=o.macroInfo,h=t.macros.find(c=>c.name===o.prop);if(!w(this,o.prop)){let c;h!=null?(c=h.value,s&&(s.checked=!0)):i!=null&&i.includes(o.prop)?(c=void 0,s&&(s.checked=!1)):c=o.defaultValue,D(this,{[o.prop]:c})}if(r)if(h){const c=h.value??o.defaultValue;c==null?s==null||s.onSwitch(!0,this):await o.onChange(this,o.prop,c)}else!(i!=null&&i.includes(o.prop))&&(s!=null&&s.checked)&&(s==null||s.onSwitch(!0,this))}else{const s=t.shaderData[o.prop];let h=s?s.value:this[o.prop]??o.defaultValue;if(h!=null&&h.refId&&!this.root.assetStore.assets[h.refId]&&(h=void 0),((l=o.uiInfo)==null?void 0:l.type)===g.Color)if(o.uiInfo.mode==="hdr"){const c=h.intensity??1;c!==0&&(h.r/=c,h.g/=c,h.b/=c),h.intensity=c}else h.intensity=1;w(this,o.prop)||D(this,{[o.prop]:h}),r&&this.notifyPropertyChange(o.prop,!1)}});await Promise.all(a)}proxySetter(e){const{prop:t,onChange:r,bundleType:i}=e,a=async(n,o)=>{var s;const l=this._engineObject.shaderData;i==="macro"?l.enableMacro(t,n):await x(this,t,n,e.engineType??((s=e.uiInfo)==null?void 0:s.type)),await r(this,t,n),o!==!1&&!this._autoSaveSuppressed&&(await this.root.assetFacade.persistAssetMain(this.id),this.updateThumbnail())};this.addPropertyChangeListener(t,a),this.shaderDataKeys.add(t)}_virualShaderProps(e){const t=this;e.forEach(r=>{Y(t,r.prop)})}refreshFormConfig(e,t){var i,a,n,o,l;const r={root:[],groups:{}};if(t){for(const s of e)if(!((i=s.uiInfo)!=null&&i.hide)){if((a=s.uiInfo)!=null&&a.group){if((n=s.uiInfo)!=null&&n.group){let h=r.groups[s.uiInfo.group];h||(h={type:O.Group,property:s.uiInfo.group,children:[]},r.groups[s.uiInfo.group]=h);const c=s.uiInfo;c.property=s.prop,s.macroInfo&&(c.macroConfig=s.macroInfo),h.children.push(c)}}else{const h=s.uiInfo;h.property=s.prop,s.macroInfo&&(h.macroConfig=s.macroInfo),r.root.push(h)}s.bundleType==="macro"?this[s.prop]=((o=t.macros.find(h=>h.name===s.prop))==null?void 0:o.value)??s.defaultValue:this[s.prop]=((l=t.shaderData[s.prop])==null?void 0:l.value)??s.defaultValue}}this.formConfig=r}refreshAnimatableProperties(e){var t,r,i;this._additionAnimatableProperties.length=0;for(const a of e){if(!a.uiInfo||a.uiInfo.hide||a.bundleType==="macro")continue;let n={};if((a.setPath||a.getPath||a.valueType||a.interpolationType)&&(n={setPath:a.setPath,getPath:a.getPath,valueType:a.valueType,interpolationType:a.interpolationType}),!n.setPath&&!n.getPath&&a.engineType&&(a.bundleType==="shaderData"||!a.bundleType))switch(a.engineType){case g.Float:n={setPath:`shaderData.setFloat('${a.prop}', $value)`,getPath:`shaderData.getFloat('${a.prop}')`,valueType:S.Float};break;case g.Integer:n={setPath:`shaderData.setInt('${a.prop}', $value)`,getPath:`shaderData.getInt('${a.prop}')`,valueType:S.Float,interpolationType:q.Step};break;case g.Vector2:n={setPath:`shaderData.getVector2('${a.prop}')`,getPath:`shaderData.getVector2('${a.prop}')`,valueType:S.Vector2};break;case g.Vector3:n={setPath:`shaderData.getVector3('${a.prop}')`,getPath:`shaderData.getVector3('${a.prop}')`,valueType:S.Vector3};break;case g.Vector4:n={setPath:`shaderData.getVector4('${a.prop}')`,getPath:`shaderData.getVector4('${a.prop}')`,valueType:S.Vector4};break;case g.Color:n={setPath:`shaderData.getColor('${a.prop}')`,getPath:`shaderData.getColor('${a.prop}')`,valueType:S.Color};break;case g.Boolean:n={setPath:`shaderData.setBoolean('${a.prop}', $value)`,getPath:`shaderData.getBoolean('${a.prop}')`,valueType:S.Boolean};break;case g.Texture:n={setPath:`shaderData.setTexture('${a.prop}', $value)`,getPath:`shaderData.getTexture('${a.prop}')`,valueType:S.ReferResource};break}if(!n.setPath&&!n.getPath){if(a.bundleType==="other")continue;continue}this._additionAnimatableProperties.push({property:a.prop,label:(t=a.uiInfo)!=null&&t.label?E(a.uiInfo.label):a.prop,type:(r=a.uiInfo)==null?void 0:r.type,propertyProxyConfig:n}),(i=a.uiInfo)!=null&&i.label&&(n.label=E(a.uiInfo.label)),X(this,a.prop,n)}}async initByMain(e){var c;const t=JSON.parse(await e.text());let r=t.shaderRef;const i=t.shaderData,a=t.macros;if(!r&&typeof t.shader=="string"){const d=Object.values(this.root.assetStore.assets).find(u=>u.meta.type==="Shader"&&u.meta.builtinShaderName===t.shader);d&&(r={refId:d.id})}if(!r)throw"invalid material";this.shaderRef=r;const n=new Z(this.engine);this.setDragTempEntity(n);const o=await this.root.assetStore.getAssetByRef(r),l=o.engineObject??ee.find("Unlit"),s=new te(this.engine,l);this.bindEngineObject(s);const h=s.shaderData;if(a)for(const d of a)h.enableMacro(d.name,d.value);if(i)for(const d in i){const u=i[d];let R=u.value;if(u.type===g.Color){R={...u.value};const M=u.value.intensity??1;M!==0&&(R.r/=M,R.g/=M,R.b/=M)}x(this,d,R,u.type)}await this.bindShaderAsset(o,t),(c=this.updateThumbnail)==null||c.call(this),await this.applyBoundPathChange("name",O.Input,this.name),this._checkSchemaOnInit(t,o)}_checkSchemaOnInit(e,t){e.shader!==t.engineObject.name&&this.root.assetFacade.persistAssetMain(this.id)}initByEngineObject(e){const t=this;this.bindEngineObject(e),t.shader=e.shader.name,t._name=e.name??"";const i=Object.values(this.root.assetStore.assets).filter(h=>h.meta.type==="Shader"&&!!h.meta.builtinShaderName).find(h=>h.meta.builtinShaderName===e.shader.name);this.shaderRef={refId:i.id};const a=e.shaderData,n=new Set((i.properties??[]).map(h=>h.prop));if(n.has("isTransparent")&&(t.isTransparent=a.getInt("blendEnabled")===1),n.has("material_AlphaCutoff")&&(t.alphaCutoff=a.getFloat("material_AlphaCutoff")),n.has("renderFace"))switch(a.getInt("rasterStateCullMode")){case C.Back:t.renderFace=v.Front;break;case C.Front:t.renderFace=v.Back;break;case C.Off:t.renderFace=v.Double;break}n.has("blendMode")&&(t.blendMode=a.getInt("destinationColorBlendFactor")===m.One?A.Additive:A.Normal),a.getProperties().forEach(h=>{const c=a.getPropertyValue(h);if(c instanceof ae){const d=this.root.assetStore.engineObjectToAssetMap.get(c);this[h.name]=d==null?void 0:d.getCurrentRef()}else this[h.name]=B(c)});const l=this._getMainData(),s=i.properties?[...i.properties]:[];this._proxyShaderProps(s,l,!1),this.bindShaderAsset(i,l)}afterDelete(){var e;(e=this.engineObject)==null||e.destroy(!0)}rename(e){return this.root.assetFacade.persistAssetMain(this.id),super.rename(e)}_getMainData(e){var s,h,c;const t=[],r=(e??this.engineObject).shaderData;r.getMacros(t);const i=t.map(({name:d,value:u})=>u===void 0?{name:d}:{name:d,value:u}),a=[],n={};r.getProperties(a);for(const d of a){let u;if(d.type===b.Texture||d.type===b.TextureArray)u=this[d.name];else{const R=r.getPropertyValue(d);u=B(R),((s=this[d.name])==null?void 0:s.intensity)!=null&&(u.intensity=(h=this[d.name])==null?void 0:h.intensity)}u!=null&&(n[d.name]={type:pe(d.type),value:u})}const o=(c=this.shaderRef)!=null&&c.refId?this.root.assetStore.getAsset(this.shaderRef.refId):void 0,l=!!(o!=null&&o.builtinShaderName);return{name:this.name,shader:this.engineObject.shader.name,macros:i,shaderData:n,...l?{}:{shaderRef:this.shaderRef}}}getMainData(){return JSON.stringify(this._getMainData())}async initByCreation(){var l;const e=new re(this.engine),t=[];e.shaderData.getMacros(t);const r=t.map(({name:s,value:h})=>h===void 0?{name:s}:{name:s,value:h});this.bindEngineObject(e);const i=this.root.assetStore.getAsset("0000501"),a=i!=null&&i.properties?[...i.properties]:[],n={};for(const s of a)s.defaultValue&&(n[s.prop]={value:s.defaultValue,type:s.engineType??((l=s.uiInfo)==null?void 0:l.type)});const o={shaderData:n,name:this.name,shader:e.shader.name,macros:r};return this._proxyShaderProps(a,o,!1),o}async onSubAssetEdit(){var i;const e=await this.root.assetFacade.createAssetByAdd({assetType:"Material",name:`${this._name}-copied`});this.engineObject.cloneTo(e.engineObject),await e.applyBoundPathChange("name",O.Input,e.name),e.initByEngineObject(e.engineObject),e.updateThumbnail(),await this.root.assetFacade.persistAssetMain(e.id);const t=await this.root.assetStore.getAssetByRef({refId:this.mainId}),r=((i=t.engineObject.materials)==null?void 0:i.indexOf(this._engineObject))??-1;r>=0&&await t.replaceMaterial(r,e.getCurrentRef()),this.root.assetStore.selectAsset(e.id)}saveMainImmediately(){return!this.engineObject||!this.engineObject.shaderData?Promise.resolve(void 0):(this.root.projectStore.setSyncStatus("syncing"),super.saveMainImmediately().then(e=>(e&&this.root.projectStore.setSyncStatus("success"),e)).catch(e=>{throw this.root.projectStore.setSyncStatus("error"),e}))}async _onDrop(e,t){var i,a;const r="material_BaseTexture";if(r in this){const n=t.getCurrentRef();this[r]=n;const o=this.root.assetStore.getAsset((i=this.shaderRef)==null?void 0:i.refId),l=(a=o==null?void 0:o.properties)==null?void 0:a.find(s=>s.prop===r);l&&await l.onChange(this,r,n),await this.root.assetFacade.persistAssetMain(this.id)}this.dropping=!1}async onDropToViewport(){const{sceneStore:e,sceneUIStore:t}=this.root,r=t.hoveredEntityId;if(r){const i=e.getEntityModel(r);if(i){const a=i.getComponentByTypeName("MeshRenderer"),n=i.getComponentByTypeName("SkinnedMeshRenderer"),o=a||n;o&&this.root.componentFacade.updateComponent(i.id,o.id,{material:this.getCurrentRef()})}}this.root.projectStore.currentViewport.viewport.onDrop()}};I([L],y.prototype,"shaderRef",2);I([L.ref],y.prototype,"formConfig",2);I([_],y.prototype,"bindShaderAsset",1);I([_],y.prototype,"_proxyShaderProps",1);I([_],y.prototype,"proxySetter",1);I([_],y.prototype,"_virualShaderProps",1);I([_],y.prototype,"refreshAnimatableProperties",1);I([_],y.prototype,"_onDrop",1);y=I([se({type:"Material",label:E("asset.material.title"),loaderType:"Material",extname:"mat",importMenuConfig:{type:ie.Add},customInspector:ne,viewer:he,thumbnail:P,dragLayer:k.Material})],y);const Ie=Object.freeze(Object.defineProperty({__proto__:null,get MaterialAsset(){return y}},Symbol.toStringTag,{value:"Module"}));export{y as M,he as a,Ie as b};
1
+ var N=Object.defineProperty;var $=(p,e,t)=>e in p?N(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t;var f=(p,e,t)=>($(p,typeof e!="symbol"?e+"":e,t),t);import{y as j,bD as F,bE as V,bF as U,F as G,ai as K,V as z,b3 as H,b2 as b,j as Q,q as k,u as W,bG as D,bH as A,a1 as m,a2 as T,bI as J,C as O,bJ as w,bK as Y,aE as S,bL as q,e as E,bM as X,K as Z,ae as ee,ah as te,af as C,R as v,_ as ae,z as re,x as L,aC as _,n as se,o as ie}from"./index-b126bb6b.js";import"./index-c8ed2a45.js";import"./postmen-3b48c572.js";import{M as ne}from"./MaterialInspector-3fb471d9.js";import{A as oe}from"./AssetViewer-8338dfe1.js";import{E as g,s as x}from"./shader-data-utils-c90e48b8.js";class he extends oe{constructor(){super(...arguments);f(this,"_sphereRenderer",null);f(this,"_particleRenderer",null);f(this,"_asset",null);f(this,"_shaderReactionDisposer",null);f(this,"onShaderChange",()=>{const{_asset:t}=this;t.engineObject.shader.name==="Effect/Particle"?(this._particleRenderer.entity.isActive=!0,this._sphereRenderer.entity.isActive=!1,this._particleRenderer.setMaterial(t.engineObject)):(this._particleRenderer.entity.isActive=!1,this._sphereRenderer.entity.isActive=!0,this._sphereRenderer.setMaterial(t.engineObject))})}setViewAsset(t,r){if(!(t instanceof y))return;const i=r.createChild("material");this._asset=t;const a=this._sphereRenderer=i.createChild("mat").addComponent(j);a.mesh=F.createSphere(r.engine,1,32,!0);const n=this._particleRenderer=i.createChild("pat").addComponent(V);n.generator.main.duration=1e3,n.generator.main.startSpeed.constant=0,this._entity=i,r.addChild(this._entity),this.onShaderChange(),this._shaderReactionDisposer=U(()=>{var o,l;return(l=(o=this._asset)==null?void 0:o.shaderRef)==null?void 0:l.refId},()=>{this.onShaderChange()})}stopViewAsset(){var t;super.stopViewAsset(),(t=this._shaderReactionDisposer)==null||t.call(this),this._shaderReactionDisposer=null,this._asset=null}}class P{static update(e,t){if(!(t instanceof y))return;const r=t.engineObject;if(!r||!r.shader){this.entity&&this.sphereRenderer&&this.particleRenderer&&this.clear();return}this.entity?this.entity.isActive=!0:this.initScene(e),r.shader.name==="Effect/Particle"?(this.sphereRenderer.entity.isActive=!1,this.particleRenderer.entity.isActive=!0,this.particleRenderer.setMaterial(r),this.particleRenderer.generator._playTime=5):(this.particleRenderer.entity.isActive=!1,this.sphereRenderer.entity.isActive=!0,this.sphereRenderer.setMaterial(r))}static clear(){var e,t;(e=this.sphereRenderer)!=null&&e.entity&&(this.sphereRenderer.entity.isActive=!1),(t=this.particleRenderer)!=null&&t.entity&&(this.particleRenderer.entity.isActive=!1),this.entity&&(this.entity.isActive=!1)}static initScene(e){const t=this.entity=e.createChild("material"),r=this.sphereRenderer=t.createChild("mat").addComponent(j);r.mesh=F.createSphere(e.engine,2,64,!0),this.particleRenderer=t.createChild("pat").addComponent(V),this.particleRenderer.bounds.max.set(.5,.5,.5),this.particleRenderer.bounds.min.set(-.5,-.5,-.5)}}f(P,"entity",null),f(P,"sphereRenderer",null),f(P,"particleRenderer",null);function B(p){return p instanceof G?{x:p.x,y:p.y}:p instanceof K?{x:p.x,y:p.y,z:p.z}:p instanceof z?{x:p.x,y:p.y,z:p.z,w:p.w}:p instanceof H?{r:p.r,g:p.g,b:p.b,a:p.a}:p}function pe(p){switch(p){case b.Color:return"Color";case b.Float:return"Float";case b.Int:return"Integer";case b.Matrix:return"Matrix";case b.Texture:return"Texture";case b.TextureArray:return"TextureArray";case b.Vector2:return"Vector2";case b.Vector3:return"Vector3";case b.Vector4:return"Vector4"}}var ce=Object.defineProperty,de=Object.getOwnPropertyDescriptor,I=(p,e,t,r)=>{for(var i=r>1?void 0:r?de(e,t):e,a=p.length-1,n;a>=0;a--)(n=p[a])&&(i=(r?n(e,t,i):n(i))||i);return r&&i&&ce(e,t,i),i};let y=class extends Q{constructor(e){super(e);f(this,"acceptDragLayer",k.Texture);f(this,"shaderRef",{refId:null});f(this,"shaderDataKeys",new Set);f(this,"formConfig",null);f(this,"_autoSaveSuppressed",!1);W(this),D(this,{proxyConfigs:[]})}static initBuiltinMaterial(e,t){e.shader=t;const r=e.shaderData;switch(r.disableMacro("MATERIAL_NEED_WORLD_POS"),r.disableMacro("MATERIAL_OMIT_NORMAL"),r.disableMacro("MATERIAL_NEED_TILING_OFFSET"),r.disableMacro("MATERIAL_SUN_HIGH_QUALITY"),t.name){case"Unlit":r.enableMacro("MATERIAL_OMIT_NORMAL"),r.enableMacro("MATERIAL_NEED_TILING_OFFSET");break;case"PBR":case"bake-pbr":case"BlinnPhong":r.enableMacro("MATERIAL_NEED_WORLD_POS"),r.enableMacro("MATERIAL_NEED_TILING_OFFSET");break;case"Sky/SkyProcedural":r.enableMacro("MATERIAL_SUN_HIGH_QUALITY");break;case"Effect/Particle":r.enableMacro("MATERIAL_OMIT_NORMAL");break}}setAutoSaveSuppressed(e){this._autoSaveSuppressed=e}setRenderQueueType(e){this.engineObject.shaderData.setInt("renderQueueType",e)}setBlendStateEnabled(e){this.engineObject.shaderData.setInt("blendEnabled",e?1:0)}setDepthWriteEnabled(e){this.engineObject.shaderData.setInt("depthWriteEnabled",e?1:0)}setCullMode(e){this.engineObject.shaderData.setInt("rasterStateCullMode",e)}setBlendMode(e){const t=this.engineObject.shaderData;switch(e){case A.Normal:t.setInt("sourceColorBlendFactor",m.SourceAlpha),t.setInt("destinationColorBlendFactor",m.OneMinusSourceAlpha),t.setInt("sourceAlphaBlendFactor",m.One),t.setInt("destinationAlphaBlendFactor",m.OneMinusSourceAlpha),t.setInt("colorBlendOperation",T.Add),t.setInt("alphaBlendOperation",T.Add);break;case A.Additive:t.setInt("sourceColorBlendFactor",m.SourceAlpha),t.setInt("destinationColorBlendFactor",m.One),t.setInt("sourceAlphaBlendFactor",m.One),t.setInt("destinationAlphaBlendFactor",m.OneMinusSourceAlpha),t.setInt("colorBlendOperation",T.Add),t.setInt("alphaBlendOperation",T.Add);break}}bindShaderAsset(e,t){for(const r of this.shaderDataKeys)this.removePropertyChangeListener(r);return this.shaderDataKeys.clear(),e.onReady().then(async()=>{var i;if(this.isInitCompleted){if(e.shaderScriptRefId){const a=this.root.assetStore.getAsset(e.shaderScriptRefId.refId);a==null||a.onShaderChange(this._engineObject)}else e.builtinUIScript&&e.builtinUIScript.onMaterialShaderSwitched(this._engineObject);t=this._getMainData()}const r=e.properties?J(e.properties):[];e.isBuiltinShader()&&y.initBuiltinMaterial(this.engineObject,e.engineObject),t=t||this._getMainData(),await this._proxyShaderProps(r,t,this.isInitCompleted),this.refreshFormConfig(r,t),this.refreshAnimatableProperties(r),this.shaderRef&&this.root.assetStore.getAssetByRef(this.shaderRef).then(a=>{a!==e&&(a==null||a.removeReferencedMaterial(this))}).catch(()=>{}),e.addReferencedMaterial(this),this.shaderRef={refId:e.id},await this.applyBoundPathChange("shader",O.AssetPicker,this.shaderRef),(i=this.updateThumbnail)==null||i.call(this)})}async _proxyShaderProps(e,t,r=!0){var n;this.proxyConfigs=e;const i=(n=this.extraData)==null?void 0:n.disabledMacros,a=e.map(async o=>{var l;if(this.proxySetter(o),this._virualShaderProps(e),o.bundleType==="macro"){const s=o.macroInfo,h=t.macros.find(c=>c.name===o.prop);if(!w(this,o.prop)){let c;h!=null?(c=h.value,s&&(s.checked=!0)):i!=null&&i.includes(o.prop)?(c=void 0,s&&(s.checked=!1)):c=o.defaultValue,D(this,{[o.prop]:c})}if(r)if(h){const c=h.value??o.defaultValue;c==null?s==null||s.onSwitch(!0,this):await o.onChange(this,o.prop,c)}else!(i!=null&&i.includes(o.prop))&&(s!=null&&s.checked)&&(s==null||s.onSwitch(!0,this))}else{const s=t.shaderData[o.prop];let h=s?s.value:this[o.prop]??o.defaultValue;if(h!=null&&h.refId&&!this.root.assetStore.assets[h.refId]&&(h=void 0),((l=o.uiInfo)==null?void 0:l.type)===g.Color)if(o.uiInfo.mode==="hdr"){const c=h.intensity??1;c!==0&&(h.r/=c,h.g/=c,h.b/=c),h.intensity=c}else h.intensity=1;w(this,o.prop)||D(this,{[o.prop]:h}),r&&this.notifyPropertyChange(o.prop,!1)}});await Promise.all(a)}proxySetter(e){const{prop:t,onChange:r,bundleType:i}=e,a=async(n,o)=>{var s;const l=this._engineObject.shaderData;i==="macro"?l.enableMacro(t,n):await x(this,t,n,e.engineType??((s=e.uiInfo)==null?void 0:s.type)),await r(this,t,n),o!==!1&&!this._autoSaveSuppressed&&(await this.root.assetFacade.persistAssetMain(this.id),this.updateThumbnail())};this.addPropertyChangeListener(t,a),this.shaderDataKeys.add(t)}_virualShaderProps(e){const t=this;e.forEach(r=>{Y(t,r.prop)})}refreshFormConfig(e,t){var i,a,n,o,l;const r={root:[],groups:{}};if(t){for(const s of e)if(!((i=s.uiInfo)!=null&&i.hide)){if((a=s.uiInfo)!=null&&a.group){if((n=s.uiInfo)!=null&&n.group){let h=r.groups[s.uiInfo.group];h||(h={type:O.Group,property:s.uiInfo.group,children:[]},r.groups[s.uiInfo.group]=h);const c=s.uiInfo;c.property=s.prop,s.macroInfo&&(c.macroConfig=s.macroInfo),h.children.push(c)}}else{const h=s.uiInfo;h.property=s.prop,s.macroInfo&&(h.macroConfig=s.macroInfo),r.root.push(h)}s.bundleType==="macro"?this[s.prop]=((o=t.macros.find(h=>h.name===s.prop))==null?void 0:o.value)??s.defaultValue:this[s.prop]=((l=t.shaderData[s.prop])==null?void 0:l.value)??s.defaultValue}}this.formConfig=r}refreshAnimatableProperties(e){var t,r,i;this._additionAnimatableProperties.length=0;for(const a of e){if(!a.uiInfo||a.uiInfo.hide||a.bundleType==="macro")continue;let n={};if((a.setPath||a.getPath||a.valueType||a.interpolationType)&&(n={setPath:a.setPath,getPath:a.getPath,valueType:a.valueType,interpolationType:a.interpolationType}),!n.setPath&&!n.getPath&&a.engineType&&(a.bundleType==="shaderData"||!a.bundleType))switch(a.engineType){case g.Float:n={setPath:`shaderData.setFloat('${a.prop}', $value)`,getPath:`shaderData.getFloat('${a.prop}')`,valueType:S.Float};break;case g.Integer:n={setPath:`shaderData.setInt('${a.prop}', $value)`,getPath:`shaderData.getInt('${a.prop}')`,valueType:S.Float,interpolationType:q.Step};break;case g.Vector2:n={setPath:`shaderData.getVector2('${a.prop}')`,getPath:`shaderData.getVector2('${a.prop}')`,valueType:S.Vector2};break;case g.Vector3:n={setPath:`shaderData.getVector3('${a.prop}')`,getPath:`shaderData.getVector3('${a.prop}')`,valueType:S.Vector3};break;case g.Vector4:n={setPath:`shaderData.getVector4('${a.prop}')`,getPath:`shaderData.getVector4('${a.prop}')`,valueType:S.Vector4};break;case g.Color:n={setPath:`shaderData.getColor('${a.prop}')`,getPath:`shaderData.getColor('${a.prop}')`,valueType:S.Color};break;case g.Boolean:n={setPath:`shaderData.setBoolean('${a.prop}', $value)`,getPath:`shaderData.getBoolean('${a.prop}')`,valueType:S.Boolean};break;case g.Texture:n={setPath:`shaderData.setTexture('${a.prop}', $value)`,getPath:`shaderData.getTexture('${a.prop}')`,valueType:S.ReferResource};break}if(!n.setPath&&!n.getPath){if(a.bundleType==="other")continue;continue}this._additionAnimatableProperties.push({property:a.prop,label:(t=a.uiInfo)!=null&&t.label?E(a.uiInfo.label):a.prop,type:(r=a.uiInfo)==null?void 0:r.type,propertyProxyConfig:n}),(i=a.uiInfo)!=null&&i.label&&(n.label=E(a.uiInfo.label)),X(this,a.prop,n)}}async initByMain(e){var c;const t=JSON.parse(await e.text());let r=t.shaderRef;const i=t.shaderData,a=t.macros;if(!r&&typeof t.shader=="string"){const d=Object.values(this.root.assetStore.assets).find(u=>u.meta.type==="Shader"&&u.meta.builtinShaderName===t.shader);d&&(r={refId:d.id})}if(!r)throw"invalid material";this.shaderRef=r;const n=new Z(this.engine);this.setDragTempEntity(n);const o=await this.root.assetStore.getAssetByRef(r),l=o.engineObject??ee.find("Unlit"),s=new te(this.engine,l);this.bindEngineObject(s);const h=s.shaderData;if(a)for(const d of a)h.enableMacro(d.name,d.value);if(i)for(const d in i){const u=i[d];let R=u.value;if(u.type===g.Color){R={...u.value};const M=u.value.intensity??1;M!==0&&(R.r/=M,R.g/=M,R.b/=M)}x(this,d,R,u.type)}await this.bindShaderAsset(o,t),(c=this.updateThumbnail)==null||c.call(this),await this.applyBoundPathChange("name",O.Input,this.name),this._checkSchemaOnInit(t,o)}_checkSchemaOnInit(e,t){e.shader!==t.engineObject.name&&this.root.assetFacade.persistAssetMain(this.id)}initByEngineObject(e){const t=this;this.bindEngineObject(e),t.shader=e.shader.name,t._name=e.name??"";const i=Object.values(this.root.assetStore.assets).filter(h=>h.meta.type==="Shader"&&!!h.meta.builtinShaderName).find(h=>h.meta.builtinShaderName===e.shader.name);this.shaderRef={refId:i.id};const a=e.shaderData,n=new Set((i.properties??[]).map(h=>h.prop));if(n.has("isTransparent")&&(t.isTransparent=a.getInt("blendEnabled")===1),n.has("material_AlphaCutoff")&&(t.alphaCutoff=a.getFloat("material_AlphaCutoff")),n.has("renderFace"))switch(a.getInt("rasterStateCullMode")){case C.Back:t.renderFace=v.Front;break;case C.Front:t.renderFace=v.Back;break;case C.Off:t.renderFace=v.Double;break}n.has("blendMode")&&(t.blendMode=a.getInt("destinationColorBlendFactor")===m.One?A.Additive:A.Normal),a.getProperties().forEach(h=>{const c=a.getPropertyValue(h);if(c instanceof ae){const d=this.root.assetStore.engineObjectToAssetMap.get(c);this[h.name]=d==null?void 0:d.getCurrentRef()}else this[h.name]=B(c)});const l=this._getMainData(),s=i.properties?[...i.properties]:[];this._proxyShaderProps(s,l,!1),this.bindShaderAsset(i,l)}afterDelete(){var e;(e=this.engineObject)==null||e.destroy(!0)}rename(e){return this.root.assetFacade.persistAssetMain(this.id),super.rename(e)}_getMainData(e){var s,h,c;const t=[],r=(e??this.engineObject).shaderData;r.getMacros(t);const i=t.map(({name:d,value:u})=>u===void 0?{name:d}:{name:d,value:u}),a=[],n={};r.getProperties(a);for(const d of a){let u;if(d.type===b.Texture||d.type===b.TextureArray)u=this[d.name];else{const R=r.getPropertyValue(d);u=B(R),((s=this[d.name])==null?void 0:s.intensity)!=null&&(u.intensity=(h=this[d.name])==null?void 0:h.intensity)}u!=null&&(n[d.name]={type:pe(d.type),value:u})}const o=(c=this.shaderRef)!=null&&c.refId?this.root.assetStore.getAsset(this.shaderRef.refId):void 0,l=!!(o!=null&&o.builtinShaderName);return{name:this.name,shader:this.engineObject.shader.name,macros:i,shaderData:n,...l?{}:{shaderRef:this.shaderRef}}}getMainData(){return JSON.stringify(this._getMainData())}async initByCreation(){var l;const e=new re(this.engine),t=[];e.shaderData.getMacros(t);const r=t.map(({name:s,value:h})=>h===void 0?{name:s}:{name:s,value:h});this.bindEngineObject(e);const i=this.root.assetStore.getAsset("0000501"),a=i!=null&&i.properties?[...i.properties]:[],n={};for(const s of a)s.defaultValue&&(n[s.prop]={value:s.defaultValue,type:s.engineType??((l=s.uiInfo)==null?void 0:l.type)});const o={shaderData:n,name:this.name,shader:e.shader.name,macros:r};return this._proxyShaderProps(a,o,!1),o}async onSubAssetEdit(){var i;const e=await this.root.assetFacade.createAssetByAdd({assetType:"Material",name:`${this._name}-copied`});this.engineObject.cloneTo(e.engineObject),await e.applyBoundPathChange("name",O.Input,e.name),e.initByEngineObject(e.engineObject),e.updateThumbnail(),await this.root.assetFacade.persistAssetMain(e.id);const t=await this.root.assetStore.getAssetByRef({refId:this.mainId}),r=((i=t.engineObject.materials)==null?void 0:i.indexOf(this._engineObject))??-1;r>=0&&await t.replaceMaterial(r,e.getCurrentRef()),this.root.assetStore.selectAsset(e.id)}saveMainImmediately(){return!this.engineObject||!this.engineObject.shaderData?Promise.resolve(void 0):(this.root.projectStore.setSyncStatus("syncing"),super.saveMainImmediately().then(e=>(e&&this.root.projectStore.setSyncStatus("success"),e)).catch(e=>{throw this.root.projectStore.setSyncStatus("error"),e}))}async _onDrop(e,t){var i,a;const r="material_BaseTexture";if(r in this){const n=t.getCurrentRef();this[r]=n;const o=this.root.assetStore.getAsset((i=this.shaderRef)==null?void 0:i.refId),l=(a=o==null?void 0:o.properties)==null?void 0:a.find(s=>s.prop===r);l&&await l.onChange(this,r,n),await this.root.assetFacade.persistAssetMain(this.id)}this.dropping=!1}async onDropToViewport(){const{sceneStore:e,sceneUIStore:t}=this.root,r=t.hoveredEntityId;if(r){const i=e.getEntityModel(r);if(i){const a=i.getComponentByTypeName("MeshRenderer"),n=i.getComponentByTypeName("SkinnedMeshRenderer"),o=a||n;o&&this.root.componentFacade.updateComponent(i.id,o.id,{material:this.getCurrentRef()})}}this.root.projectStore.currentViewport.viewport.onDrop()}};I([L],y.prototype,"shaderRef",2);I([L.ref],y.prototype,"formConfig",2);I([_],y.prototype,"bindShaderAsset",1);I([_],y.prototype,"_proxyShaderProps",1);I([_],y.prototype,"proxySetter",1);I([_],y.prototype,"_virualShaderProps",1);I([_],y.prototype,"refreshAnimatableProperties",1);I([_],y.prototype,"_onDrop",1);y=I([se({type:"Material",label:E("asset.material.title"),loaderType:"Material",extname:"mat",importMenuConfig:{type:ie.Add},customInspector:ne,viewer:he,thumbnail:P,dragLayer:k.Material})],y);const Ie=Object.freeze(Object.defineProperty({__proto__:null,get MaterialAsset(){return y}},Symbol.toStringTag,{value:"Module"}));export{y as M,he as a,Ie as b};
@@ -1 +1 @@
1
- var E=Object.defineProperty;var L=(d,e,t)=>e in d?E(d,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):d[e]=t;var j=(d,e,t)=>(L(d,typeof e!="symbol"?e+"":e,t),t);import{aH as x,aP as N,aJ as S,aM as $,av as s,aI as M,C as n,b7 as V,aw as F,bz as B,aO as f,aK as A,bA as z,e as O}from"./index-c3dec278.js";import{u as T}from"./index-cdbb2f4d.js";import"./postmen-2853c0e6.js";import{I as W}from"./IconPointFilled-62d3c3b2.js";const H=x(W,{marginRight:"-$1",variants:{checked:{true:{color:"$green10"}}}}),J=x(N,{width:"100%",border:"none",position:"relative",whiteSpace:"pre-wrap",boxShadow:"$2","& > svg":{marginRight:"$1"}});function b(d){return S(function(t){const{inspectorConfig:r,macroConfig:c,...p}=t,{model:i}=p;let{models:g}=p;const{checked:u,onSwitch:h}=c,{type:m,...a}=r,[o,l]=$.useState(u);$.useEffect(()=>{l(u)},[u]),g=g||[i];const R=()=>{const I=!o;if(h)for(const k of g)h(I,k);l(I)},v=r.label;return s.jsxs(M,{direction:"column",fullWidth:!0,children:[m!==n.Null&&o&&V.createElement(d,{...p,inspectorConfig:{...a,type:m}}),s.jsx(F,{label:o?"":v,children:s.jsx(J,{size:"sm",variant:"subtle",startSlot:s.jsx(H,{size:"12px",checked:o}),onClick:R,children:o?"Enabled ":"Disabled"})})]})})}const K=x(M),U=x(B,{backgroundColor:"$gray1",height:"2px !important"});function q(d){const{inspectorConfig:e,models:t,onModelChange:r,model:c,macroConfig:p}=d,{type:i,property:g,info:u}=e,{t:h}=A(),m=!c&&t&&t.length>1;if(m&&!t.find(y=>e.when?e.when(y):!0)||e.when&&!e.when(c))return null;const a=p?w.getRegisteredMacroComponent(i):w.getRegisteredComponent(i);if(!a)return console.warn(`缺少${i}类型的组件`),null;let o=e.disabled;!m&&c.getEditable&&(o=c.getEditable(e.property)===!1);const l=typeof e.label=="string"?h(e.label):e.label;let R=e.options;R&&(R=R.map(y=>({label:typeof y.label=="string"?h(y.label):y.label,value:y.value})));const v={...e,label:l,info:u,options:R,disabled:o},{triggerAfterInit:I,customComponent:k,...P}=v;return s.jsx(a,{inspectorConfig:P,macroConfig:p,models:t,model:c,onModelChange:r},g)}const C=class C{static registerComponent(e,t){this.components[e]=t}static getRegisteredComponent(e){return C.components[e]}static getRegisteredMacroComponent(e){return C.macroComponents[e]}};j(C,"components",f.getRegisteredComponents()),j(C,"macroComponents",{[n.Color]:b(f.getRegisteredComponent(n.Color)),[n.Vector4]:b(f.getRegisteredComponent(n.Vector4)),[n.Vector3]:b(f.getRegisteredComponent(n.Vector3)),[n.Vector2]:b(f.getRegisteredComponent(n.Vector2)),[n.Number]:b(f.getRegisteredComponent(n.Number)),[n.AssetPicker]:b(f.getRegisteredComponent(n.AssetPicker)),[n.Boolean]:b(f.getRegisteredComponent(n.Boolean)),[n.Null]:b(f.getRegisteredComponent(n.Null))}),j(C,"Item",S(q)),j(C,"List",S(function(t){const{configs:r,models:c,css:p,onModelChange:i,model:g,children:u,fullWidth:h=!1,withSeparator:m}=t;return r!=null&&r.length&&r.sort((a,o)=>{const l=a.priority??0;return(o.priority??0)-l}),r?s.jsxs(K,{css:p,className:"shader-inspector-form",fullWidth:h,children:[r.map(a=>s.jsxs($.Fragment,{children:[s.jsx(C.Item,{inspectorConfig:a,macroConfig:a.macroConfig,model:g,models:c,onModelChange:i},a.property),m&&s.jsx(U,{})]},a.property)),u]}):null}));let w=C;const G=x("div",{backgroundColor:"$appBg",width:"100%"}),Q=x("div",{backgroundColor:"$panelBg",borderRadius:"0 0 $2 $2",overflow:"hidden",paddingBottom:"$1"}),X=x("div",{width:"100%",backgroundColor:"$gray3",paddingBottom:"$0_5"}),Y=x(B,{backgroundColor:"$appBg",height:"2px !important"}),Z=d=>{var a;const{asset:e}=d,t=e.formConfig,{assetStore:r,inspectorFacade:c}=T(),{i18n:p}=A(),i=r.getAsset(e.shaderRef.refId),g=i==null?void 0:i.name,u=Object.values(r.assets).filter(o=>o.meta.type==="Shader"&&o.meta.utility!=="error"),h=()=>{r.selectAsset(e.shaderRef.refId)},m=(o,l)=>{c.assetChange(e.id,o,l)};if(t.root)for(const o of t.root){const l=o.comments;l&&(o.info=l[p.language]??l.default??void 0)}return s.jsxs(G,{children:[s.jsx(X,{children:s.jsx(z,{label:O("asset.shader.title"),assets:u,disabled:!!(i!=null&&i.isSubAsset)||e.isSubAsset||!e.getEditable(),value:g,dropLayer:0,onSelect:async o=>{await e.bindShaderAsset(o,e._getMainData()),await c.assetChanges(e.id,{shaderRef:e.shaderRef,shader:e.shader})},onLocate:h})}),((a=t.root)==null?void 0:a.length)>0&&s.jsx(Q,{children:s.jsx(w.List,{model:e,onModelChange:m,configs:t.root,withSeparator:!1})}),s.jsx(Y,{}),s.jsx(w.List,{model:e,onModelChange:m,configs:Object.values(t.groups)})]})},ne=S(Z);export{ne as M};
1
+ var E=Object.defineProperty;var L=(d,e,t)=>e in d?E(d,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):d[e]=t;var j=(d,e,t)=>(L(d,typeof e!="symbol"?e+"":e,t),t);import{aH as x,aP as N,aJ as S,aM as $,av as s,aI as M,C as n,b7 as V,aw as F,bz as B,aO as f,aK as A,bA as z,e as O}from"./index-b126bb6b.js";import{u as T}from"./index-c8ed2a45.js";import"./postmen-3b48c572.js";import{I as W}from"./IconPointFilled-3ba6d082.js";const H=x(W,{marginRight:"-$1",variants:{checked:{true:{color:"$green10"}}}}),J=x(N,{width:"100%",border:"none",position:"relative",whiteSpace:"pre-wrap",boxShadow:"$2","& > svg":{marginRight:"$1"}});function b(d){return S(function(t){const{inspectorConfig:r,macroConfig:c,...p}=t,{model:i}=p;let{models:g}=p;const{checked:u,onSwitch:h}=c,{type:m,...a}=r,[o,l]=$.useState(u);$.useEffect(()=>{l(u)},[u]),g=g||[i];const R=()=>{const I=!o;if(h)for(const k of g)h(I,k);l(I)},v=r.label;return s.jsxs(M,{direction:"column",fullWidth:!0,children:[m!==n.Null&&o&&V.createElement(d,{...p,inspectorConfig:{...a,type:m}}),s.jsx(F,{label:o?"":v,children:s.jsx(J,{size:"sm",variant:"subtle",startSlot:s.jsx(H,{size:"12px",checked:o}),onClick:R,children:o?"Enabled ":"Disabled"})})]})})}const K=x(M),U=x(B,{backgroundColor:"$gray1",height:"2px !important"});function q(d){const{inspectorConfig:e,models:t,onModelChange:r,model:c,macroConfig:p}=d,{type:i,property:g,info:u}=e,{t:h}=A(),m=!c&&t&&t.length>1;if(m&&!t.find(y=>e.when?e.when(y):!0)||e.when&&!e.when(c))return null;const a=p?w.getRegisteredMacroComponent(i):w.getRegisteredComponent(i);if(!a)return console.warn(`缺少${i}类型的组件`),null;let o=e.disabled;!m&&c.getEditable&&(o=c.getEditable(e.property)===!1);const l=typeof e.label=="string"?h(e.label):e.label;let R=e.options;R&&(R=R.map(y=>({label:typeof y.label=="string"?h(y.label):y.label,value:y.value})));const v={...e,label:l,info:u,options:R,disabled:o},{triggerAfterInit:I,customComponent:k,...P}=v;return s.jsx(a,{inspectorConfig:P,macroConfig:p,models:t,model:c,onModelChange:r},g)}const C=class C{static registerComponent(e,t){this.components[e]=t}static getRegisteredComponent(e){return C.components[e]}static getRegisteredMacroComponent(e){return C.macroComponents[e]}};j(C,"components",f.getRegisteredComponents()),j(C,"macroComponents",{[n.Color]:b(f.getRegisteredComponent(n.Color)),[n.Vector4]:b(f.getRegisteredComponent(n.Vector4)),[n.Vector3]:b(f.getRegisteredComponent(n.Vector3)),[n.Vector2]:b(f.getRegisteredComponent(n.Vector2)),[n.Number]:b(f.getRegisteredComponent(n.Number)),[n.AssetPicker]:b(f.getRegisteredComponent(n.AssetPicker)),[n.Boolean]:b(f.getRegisteredComponent(n.Boolean)),[n.Null]:b(f.getRegisteredComponent(n.Null))}),j(C,"Item",S(q)),j(C,"List",S(function(t){const{configs:r,models:c,css:p,onModelChange:i,model:g,children:u,fullWidth:h=!1,withSeparator:m}=t;return r!=null&&r.length&&r.sort((a,o)=>{const l=a.priority??0;return(o.priority??0)-l}),r?s.jsxs(K,{css:p,className:"shader-inspector-form",fullWidth:h,children:[r.map(a=>s.jsxs($.Fragment,{children:[s.jsx(C.Item,{inspectorConfig:a,macroConfig:a.macroConfig,model:g,models:c,onModelChange:i},a.property),m&&s.jsx(U,{})]},a.property)),u]}):null}));let w=C;const G=x("div",{backgroundColor:"$appBg",width:"100%"}),Q=x("div",{backgroundColor:"$panelBg",borderRadius:"0 0 $2 $2",overflow:"hidden",paddingBottom:"$1"}),X=x("div",{width:"100%",backgroundColor:"$gray3",paddingBottom:"$0_5"}),Y=x(B,{backgroundColor:"$appBg",height:"2px !important"}),Z=d=>{var a;const{asset:e}=d,t=e.formConfig,{assetStore:r,inspectorFacade:c}=T(),{i18n:p}=A(),i=r.getAsset(e.shaderRef.refId),g=i==null?void 0:i.name,u=Object.values(r.assets).filter(o=>o.meta.type==="Shader"&&o.meta.utility!=="error"),h=()=>{r.selectAsset(e.shaderRef.refId)},m=(o,l)=>{c.assetChange(e.id,o,l)};if(t.root)for(const o of t.root){const l=o.comments;l&&(o.info=l[p.language]??l.default??void 0)}return s.jsxs(G,{children:[s.jsx(X,{children:s.jsx(z,{label:O("asset.shader.title"),assets:u,disabled:!!(i!=null&&i.isSubAsset)||e.isSubAsset||!e.getEditable(),value:g,dropLayer:0,onSelect:async o=>{await e.bindShaderAsset(o,e._getMainData()),await c.assetChanges(e.id,{shaderRef:e.shaderRef,shader:e.shader})},onLocate:h})}),((a=t.root)==null?void 0:a.length)>0&&s.jsx(Q,{children:s.jsx(w.List,{model:e,onModelChange:m,configs:t.root,withSeparator:!1})}),s.jsx(Y,{}),s.jsx(w.List,{model:e,onModelChange:m,configs:Object.values(t.groups)})]})},ne=S(Z);export{ne as M};
@@ -1,4 +1,4 @@
1
- import{f0 as Or,av as i,aH as T,aM as a,gw as dt,ev as Nc,b7 as pe,gx as $c,gy as Oc,gz as Dc,gA as jc,gB as Lc,gC as kc,gD as Fc,gE as Uc,gF as Gc,gG as Kc,d3 as k,d5 as me,ba as Ne,b8 as $e,bd as ee,gH as ln,gI as Dr,gJ as Bc,gK as Wc,gL as Vc,gM as Hc,b9 as U,d2 as jr,bc as F,bb as y,d4 as xt,d6 as Lr,d7 as Mt,gN as kr,gO as Fr,gP as Ur,gQ as J,gR as Gr,gS as Kr,gT as Br,gU as Wr,gV as Vr,gW as Hr,b4 as dn,b5 as fn,d8 as wt,gX as Oe,d9 as Yr,da as ge,gY as pn,db as Xr,gZ as mn,dc as zr,dd as St,g_ as Yc,g$ as $t,h0 as Ot,h1 as Dt,h2 as Re,h3 as nr,h4 as jt,h5 as Lt,h6 as kt,h7 as Ft,h8 as Ut,h9 as rr,bi as Xc,ha as zc}from"./index-c3dec278.js";/**
1
+ import{f2 as Or,av as i,aH as T,aM as a,gy as dt,ex as Nc,b7 as pe,gz as $c,gA as Oc,gB as Dc,gC as jc,gD as Lc,gE as kc,gF as Fc,gG as Uc,gH as Gc,gI as Kc,d4 as k,d6 as me,ba as Ne,b8 as $e,bd as ee,gJ as ln,gK as Dr,gL as Bc,gM as Wc,gN as Vc,gO as Hc,b9 as U,d3 as jr,bc as F,bb as y,d5 as xt,d7 as Lr,d8 as Mt,gP as kr,gQ as Fr,gR as Ur,gS as J,gT as Gr,gU as Kr,gV as Br,gW as Wr,gX as Vr,gY as Hr,b4 as dn,b5 as fn,d9 as wt,gZ as Oe,da as Yr,db as ge,g_ as pn,dc as Xr,g$ as mn,dd as zr,de as St,h0 as Yc,h1 as $t,h2 as Ot,h3 as Dt,h4 as Re,h5 as nr,h6 as jt,h7 as Lt,h8 as kt,h9 as Ft,ha as Ut,hb as rr,bi as Xc,hc as zc}from"./index-b126bb6b.js";/**
2
2
  * @license @tabler/icons-react v3.24.0 - MIT
3
3
  *
4
4
  * This source code is licensed under the MIT license.
@@ -1 +1 @@
1
- var E=Object.defineProperty;var U=(n,e,t)=>e in n?E(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var _=(n,e,t)=>(U(n,typeof e!="symbol"?e+"":e,t),t);import{bN as v,bO as g,bw as T,a4 as i,bP as u,av as c,aN as b,y as f,bQ as p,j as x,n as C,e as V,q as N}from"./index-c3dec278.js";import"./index-cdbb2f4d.js";import"./postmen-2853c0e6.js";import{F as d}from"./index-05b76766.js";import{M as m}from"./MeshThumbnail-07ffa076.js";import{A as M}from"./AssetViewer-3847c058.js";import{e as A}from"./encode-ac4bb64e.js";import"./meshopt_simplifier.module-cd99529d.js";class O{static createMesh(e,t){const s=new v(e);return O.setMeshData(s,t),s}static setMeshData(e,t){var s,r;return e.setPositions([...t.positions]),e.setNormals(t.normals),e.setUVs(t.uvs),t.uv1&&e.setUVs(t.uv1,1),t.uv2&&e.setUVs(t.uv2,2),t.uv3&&e.setUVs(t.uv3,3),t.uv4&&e.setUVs(t.uv4,4),t.uv5&&e.setUVs(t.uv5,5),t.uv6&&e.setUVs(t.uv6,6),t.uv7&&e.setUVs(t.uv7,7),t.bounds?(e.bounds.min.copyFrom(t.bounds.min),e.bounds.max.copyFrom(t.bounds.max)):O.calculateBounds(t.positions,e.bounds),(s=t.blendShapes)==null||s.forEach(o=>{const l=new g(o.name);o.frames.forEach(a=>{l.addFrame(a.weight,a.positions,a.normals,a.uvs)}),e.addBlendShape(l)}),(r=t.subMeshes)==null||r.forEach(o=>{e.addSubMesh(o)}),t.indices&&(t.positions.length<=65535?e.setIndices(new Uint16Array(t.indices)):e.setIndices(new Uint32Array(t.indices))),e.uploadData(!1),e}static calculateBounds(e,t){const{min:s,max:r}=t,o=e.length;s.set(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),r.set(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let l=0;l<o;l++){const a=e[l];s.x=Math.min(a.x,s.x),s.y=Math.min(a.y,s.y),s.z=Math.min(a.z,s.z),r.x=Math.max(a.x,r.x),r.y=Math.max(a.y,r.y),r.z=Math.max(a.z,r.z)}}}class R extends T{constructor(e,t){super(e),this.meshData=t}restoreContent(){O.setMeshData(this.resource,this.meshData)}}var y=(n=>(n.POSITION="Position",n.NORMAL="Normal",n.COLOR_0="Color",n.TANGENT="Tangent",n.WEIGHTS_0="BoneWeight",n.JOINTS_0="BoneIndex",n.TEXCOORD_0="UV",n.TEXCOORD_1="UV1",n.TEXCOORD_2="UV2",n.TEXCOORD_3="UV3",n.TEXCOORD_4="UV4",n.TEXCOORD_5="UV5",n.TEXCOORD_6="UV6",n.TEXCOORD_7="UV7",n))(y||{});const X=["POSITION","NORMAL","COLOR_0","TANGENT","WEIGHTS_0","JOINTS_0","TEXCOORD_0","TEXCOORD_1","TEXCOORD_2","TEXCOORD_3","TEXCOORD_4","TEXCOORD_5","TEXCOORD_6","TEXCOORD_7"],L={[i.Float]:"4 bytes",[i.Vector2]:"8 bytes",[i.Vector3]:"12 bytes",[i.Vector4]:"16 bytes",[i.Byte4]:"4 bytes",[i.UByte4]:"4 bytes",[i.NormalizedByte4]:"4 bytes",[i.NormalizedUByte4]:"4 bytes",[i.NormalizedShort2]:"4 bytes",[i.NormalizedShort4]:"8 bytes",[i.Short2]:"4 bytes",[i.UShort2]:"4 bytes",[i.NormalizedUShort2]:"4 bytes",[i.Short4]:"8 bytes",[i.UShort4]:"8 bytes",[i.NormalizedUShort4]:"8 bytes"};u.Triangles+"",u.TriangleStrip+"",u.TriangleFan+"",u.LineLoop+"",u.LineStrip+"",u.Lines+"",u.Points+"";function w(n){switch(n.topology){case u.Triangles:return`${n.count/3} triangles`;case u.TriangleFan:case u.TriangleStrip:return`${n.count-2} triangles`;case u.Lines:return`${n.count/2} lines`;case u.LineStrip:return`${n.count-1} lines`;case u.LineLoop:return`${n.count} lines`;case u.Points:return`${n.count} points`}}function I(n){if(n instanceof Uint8Array)return"Uint8";if(n instanceof Uint16Array)return"Uint16";if(n instanceof Uint32Array)return"Uint32"}const S=n=>{const e=n.asset.engineObject,t=e.vertexCount,s=e.getIndices(),r=e.subMeshes;return c.jsxs(c.Fragment,{children:[c.jsx(b,{title:`Vertices: ${t}`,defaultOpen:!0,children:X.map(o=>e.vertexElements.find(l=>l.semantic===o)).filter(o=>o!=null).map(o=>c.jsx(d,{label:y[o.attribute],value:`${i[o.format]} (${L[o.format]})`},o.attribute))}),s?c.jsx(b,{title:`Indices: ${s.length}`,defaultOpen:!0,children:c.jsx(d,{label:"Format",value:I(s)})}):null,c.jsx(b,{title:`SubMesh: ${r.length}`,defaultOpen:!0,children:r.map((o,l)=>c.jsx(d,{label:`# ${l}`,value:w(o)},l))})]})};class j extends M{setViewAsset(e,t){const s=t.createChild("mesh_entity"),r=s.addComponent(f);r.mesh=e.engineObject;const o=new p(e.engine);o.baseColor.set(.5,.5,.5,1),r.setMaterial(o),this._entity=s}}var B=Object.defineProperty,F=Object.getOwnPropertyDescriptor,z=(n,e,t,s)=>{for(var r=s>1?void 0:s?F(e,t):e,o=n.length-1,l;o>=0;o--)(l=n[o])&&(r=(s?l(e,t,r):l(r))||r);return s&&r&&B(e,t,r),r};let h=class extends x{constructor(e){super(e);_(this,"meshData",null)}beforeDelete(){return null}afterDelete(){return null}async initByMain(e){const{engine:t}=this,s=JSON.parse(await e.text());this.meshData=s;const r=new v(t);O.setMeshData(r,s),t.resourceManager.addContentRestorer(new R(r,s)),this.bindEngineObject(r),this._releaseMeshCache()}initByEngineObject(e){this.bindEngineObject(e),this._name=e.name,this.meshData={positions:[],subMeshes:[]}}_releaseMeshCache(){const e=this.engineObject;e._verticesUint8=null,e._indices=null,e._verticesFloat32=null,e._positions=null,e._tangents=null,e._normals=null,e._colors=null,e._uv=null,e._uv1=null,e._uv2=null,e._uv3=null,e._uv4=null,e._uv5=null,e._uv6=null,e._uv7=null}};h=z([C({type:"Mesh",label:V("asset.mesh.title"),icon:{},loaderType:"Mesh",extname:"mesh",customInspector:S,viewer:j,thumbnail:m,dragLayer:N.Mesh,async bundle({content:n}){const e=JSON.parse(await n.text()),t=A(e,{type:"Mesh",name:"mesh"});return{content:new Blob([t])}}})],h);export{h as MeshAsset};
1
+ var E=Object.defineProperty;var U=(n,e,t)=>e in n?E(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var _=(n,e,t)=>(U(n,typeof e!="symbol"?e+"":e,t),t);import{bN as v,bO as g,bw as T,a4 as i,bP as u,av as c,aN as b,y as f,bQ as p,j as x,n as C,e as V,q as N}from"./index-b126bb6b.js";import"./index-c8ed2a45.js";import"./postmen-3b48c572.js";import{F as d}from"./index-cd09e78a.js";import{M as m}from"./MeshThumbnail-8c20ee92.js";import{A as M}from"./AssetViewer-8338dfe1.js";import{e as A}from"./encode-ac4bb64e.js";import"./meshopt_simplifier.module-cd99529d.js";class O{static createMesh(e,t){const s=new v(e);return O.setMeshData(s,t),s}static setMeshData(e,t){var s,r;return e.setPositions([...t.positions]),e.setNormals(t.normals),e.setUVs(t.uvs),t.uv1&&e.setUVs(t.uv1,1),t.uv2&&e.setUVs(t.uv2,2),t.uv3&&e.setUVs(t.uv3,3),t.uv4&&e.setUVs(t.uv4,4),t.uv5&&e.setUVs(t.uv5,5),t.uv6&&e.setUVs(t.uv6,6),t.uv7&&e.setUVs(t.uv7,7),t.bounds?(e.bounds.min.copyFrom(t.bounds.min),e.bounds.max.copyFrom(t.bounds.max)):O.calculateBounds(t.positions,e.bounds),(s=t.blendShapes)==null||s.forEach(o=>{const l=new g(o.name);o.frames.forEach(a=>{l.addFrame(a.weight,a.positions,a.normals,a.uvs)}),e.addBlendShape(l)}),(r=t.subMeshes)==null||r.forEach(o=>{e.addSubMesh(o)}),t.indices&&(t.positions.length<=65535?e.setIndices(new Uint16Array(t.indices)):e.setIndices(new Uint32Array(t.indices))),e.uploadData(!1),e}static calculateBounds(e,t){const{min:s,max:r}=t,o=e.length;s.set(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),r.set(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let l=0;l<o;l++){const a=e[l];s.x=Math.min(a.x,s.x),s.y=Math.min(a.y,s.y),s.z=Math.min(a.z,s.z),r.x=Math.max(a.x,r.x),r.y=Math.max(a.y,r.y),r.z=Math.max(a.z,r.z)}}}class R extends T{constructor(e,t){super(e),this.meshData=t}restoreContent(){O.setMeshData(this.resource,this.meshData)}}var y=(n=>(n.POSITION="Position",n.NORMAL="Normal",n.COLOR_0="Color",n.TANGENT="Tangent",n.WEIGHTS_0="BoneWeight",n.JOINTS_0="BoneIndex",n.TEXCOORD_0="UV",n.TEXCOORD_1="UV1",n.TEXCOORD_2="UV2",n.TEXCOORD_3="UV3",n.TEXCOORD_4="UV4",n.TEXCOORD_5="UV5",n.TEXCOORD_6="UV6",n.TEXCOORD_7="UV7",n))(y||{});const X=["POSITION","NORMAL","COLOR_0","TANGENT","WEIGHTS_0","JOINTS_0","TEXCOORD_0","TEXCOORD_1","TEXCOORD_2","TEXCOORD_3","TEXCOORD_4","TEXCOORD_5","TEXCOORD_6","TEXCOORD_7"],L={[i.Float]:"4 bytes",[i.Vector2]:"8 bytes",[i.Vector3]:"12 bytes",[i.Vector4]:"16 bytes",[i.Byte4]:"4 bytes",[i.UByte4]:"4 bytes",[i.NormalizedByte4]:"4 bytes",[i.NormalizedUByte4]:"4 bytes",[i.NormalizedShort2]:"4 bytes",[i.NormalizedShort4]:"8 bytes",[i.Short2]:"4 bytes",[i.UShort2]:"4 bytes",[i.NormalizedUShort2]:"4 bytes",[i.Short4]:"8 bytes",[i.UShort4]:"8 bytes",[i.NormalizedUShort4]:"8 bytes"};u.Triangles+"",u.TriangleStrip+"",u.TriangleFan+"",u.LineLoop+"",u.LineStrip+"",u.Lines+"",u.Points+"";function w(n){switch(n.topology){case u.Triangles:return`${n.count/3} triangles`;case u.TriangleFan:case u.TriangleStrip:return`${n.count-2} triangles`;case u.Lines:return`${n.count/2} lines`;case u.LineStrip:return`${n.count-1} lines`;case u.LineLoop:return`${n.count} lines`;case u.Points:return`${n.count} points`}}function I(n){if(n instanceof Uint8Array)return"Uint8";if(n instanceof Uint16Array)return"Uint16";if(n instanceof Uint32Array)return"Uint32"}const S=n=>{const e=n.asset.engineObject,t=e.vertexCount,s=e.getIndices(),r=e.subMeshes;return c.jsxs(c.Fragment,{children:[c.jsx(b,{title:`Vertices: ${t}`,defaultOpen:!0,children:X.map(o=>e.vertexElements.find(l=>l.semantic===o)).filter(o=>o!=null).map(o=>c.jsx(d,{label:y[o.attribute],value:`${i[o.format]} (${L[o.format]})`},o.attribute))}),s?c.jsx(b,{title:`Indices: ${s.length}`,defaultOpen:!0,children:c.jsx(d,{label:"Format",value:I(s)})}):null,c.jsx(b,{title:`SubMesh: ${r.length}`,defaultOpen:!0,children:r.map((o,l)=>c.jsx(d,{label:`# ${l}`,value:w(o)},l))})]})};class j extends M{setViewAsset(e,t){const s=t.createChild("mesh_entity"),r=s.addComponent(f);r.mesh=e.engineObject;const o=new p(e.engine);o.baseColor.set(.5,.5,.5,1),r.setMaterial(o),this._entity=s}}var B=Object.defineProperty,F=Object.getOwnPropertyDescriptor,z=(n,e,t,s)=>{for(var r=s>1?void 0:s?F(e,t):e,o=n.length-1,l;o>=0;o--)(l=n[o])&&(r=(s?l(e,t,r):l(r))||r);return s&&r&&B(e,t,r),r};let h=class extends x{constructor(e){super(e);_(this,"meshData",null)}beforeDelete(){return null}afterDelete(){return null}async initByMain(e){const{engine:t}=this,s=JSON.parse(await e.text());this.meshData=s;const r=new v(t);O.setMeshData(r,s),t.resourceManager.addContentRestorer(new R(r,s)),this.bindEngineObject(r),this._releaseMeshCache()}initByEngineObject(e){this.bindEngineObject(e),this._name=e.name,this.meshData={positions:[],subMeshes:[]}}_releaseMeshCache(){const e=this.engineObject;e._verticesUint8=null,e._indices=null,e._verticesFloat32=null,e._positions=null,e._tangents=null,e._normals=null,e._colors=null,e._uv=null,e._uv1=null,e._uv2=null,e._uv3=null,e._uv4=null,e._uv5=null,e._uv6=null,e._uv7=null}};h=z([C({type:"Mesh",label:V("asset.mesh.title"),icon:{},loaderType:"Mesh",extname:"mesh",customInspector:S,viewer:j,thumbnail:m,dragLayer:N.Mesh,async bundle({content:n}){const e=JSON.parse(await n.text()),t=A(e,{type:"Mesh",name:"mesh"});return{content:new Blob([t])}}})],h);export{h as MeshAsset};
@@ -1 +1 @@
1
- var f=Object.defineProperty;var c=(r,e,t)=>e in r?f(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var s=(r,e,t)=>(c(r,typeof e!="symbol"?e+"":e,t),t);import{p as n,C as d,s as p,f as v,aE as P,E as b,v as y,x as u,aC as w}from"./index-c3dec278.js";import"./index-cdbb2f4d.js";import"./postmen-2853c0e6.js";var M=Object.defineProperty,O=Object.getOwnPropertyDescriptor,i=(r,e,t,l)=>{for(var a=l>1?void 0:l?O(e,t):e,h=r.length-1,m;h>=0;h--)(m=r[h])&&(a=(l?m(e,t,a):m(a))||a);return l&&a&&M(e,t,a),a};class o extends b{constructor(){super(...arguments);s(this,"mesh",null);s(this,"material",{refId:"0000200"});s(this,"receiveShadows",!0);s(this,"castShadows",!0);s(this,"priority",0);s(this,"materialOpen",!1)}setMaterialOpen(t){this.materialOpen=t}}i([n({type:d.AssetPicker,assetType:["Mesh"],label:"mesh-renderer.mesh.title",info:"mesh-renderer.mesh.info",bindPath:"mesh"}),p()],o.prototype,"mesh",2);i([n({type:d.AssetPicker,assetType:"Material",label:"mesh-renderer.material.title",info:"mesh-renderer.material.info",customFilter:r=>{var e;return((e=r.engineObject.shader)==null?void 0:e.name)!=="Effect/Particle"}}),v({engineKey:"setMaterial",setPath:"setMaterial()",getPath:"getMaterial()",valueType:P.ReferResource,getEngineValue:r=>r.getMaterial()}),p()],o.prototype,"material",2);i([n({label:"mesh-renderer.receive-shadows.title",info:"mesh-renderer.receive-shadows.info",bindPath:"receiveShadows"}),y(),p()],o.prototype,"receiveShadows",2);i([n({label:"mesh-renderer.cast-shadows.title",info:"mesh-renderer.cast-shadows.info",bindPath:"castShadows"}),y(),p()],o.prototype,"castShadows",2);i([n({label:"mesh-renderer.priority.title",info:"mesh-renderer.priority.info",bindPath:"priority"}),p()],o.prototype,"priority",2);i([u],o.prototype,"materialOpen",2);i([w],o.prototype,"setMaterialOpen",1);export{o as M};
1
+ var f=Object.defineProperty;var c=(r,e,t)=>e in r?f(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var s=(r,e,t)=>(c(r,typeof e!="symbol"?e+"":e,t),t);import{p as n,C as d,s as p,f as v,aE as P,E as b,v as y,x as u,aC as w}from"./index-b126bb6b.js";import"./index-c8ed2a45.js";import"./postmen-3b48c572.js";var M=Object.defineProperty,O=Object.getOwnPropertyDescriptor,i=(r,e,t,l)=>{for(var a=l>1?void 0:l?O(e,t):e,h=r.length-1,m;h>=0;h--)(m=r[h])&&(a=(l?m(e,t,a):m(a))||a);return l&&a&&M(e,t,a),a};class o extends b{constructor(){super(...arguments);s(this,"mesh",null);s(this,"material",{refId:"0000200"});s(this,"receiveShadows",!0);s(this,"castShadows",!0);s(this,"priority",0);s(this,"materialOpen",!1)}setMaterialOpen(t){this.materialOpen=t}}i([n({type:d.AssetPicker,assetType:["Mesh"],label:"mesh-renderer.mesh.title",info:"mesh-renderer.mesh.info",bindPath:"mesh"}),p()],o.prototype,"mesh",2);i([n({type:d.AssetPicker,assetType:"Material",label:"mesh-renderer.material.title",info:"mesh-renderer.material.info",customFilter:r=>{var e;return((e=r.engineObject.shader)==null?void 0:e.name)!=="Effect/Particle"}}),v({engineKey:"setMaterial",setPath:"setMaterial()",getPath:"getMaterial()",valueType:P.ReferResource,getEngineValue:r=>r.getMaterial()}),p()],o.prototype,"material",2);i([n({label:"mesh-renderer.receive-shadows.title",info:"mesh-renderer.receive-shadows.info",bindPath:"receiveShadows"}),y(),p()],o.prototype,"receiveShadows",2);i([n({label:"mesh-renderer.cast-shadows.title",info:"mesh-renderer.cast-shadows.info",bindPath:"castShadows"}),y(),p()],o.prototype,"castShadows",2);i([n({label:"mesh-renderer.priority.title",info:"mesh-renderer.priority.info",bindPath:"priority"}),p()],o.prototype,"priority",2);i([u],o.prototype,"materialOpen",2);i([w],o.prototype,"setMaterialOpen",1);export{o as M};
@@ -1 +1 @@
1
- import{aJ as l,aM as c,av as m,aO as f,p as h}from"./index-c3dec278.js";import{u as d}from"./index-cdbb2f4d.js";import{c as u}from"./Component-0f881fc1.js";import"./postmen-2853c0e6.js";import{c as M}from"./createOnModelChange-370b83da.js";import{R}from"./ReferencedMaterial-d11151b5.js";import{M as v}from"./MeshRendererBaseComponent-fde6b6a5.js";import"./MaterialInspector-8d466d59.js";import"./IconPointFilled-62d3c3b2.js";import"./createReactComponent-58d9f0dd.js";const x=l(function(o){const[r,s]=c.useState(null),e=o.data,{assetStore:t,inspectorFacade:n}=d();return c.useEffect(()=>{t.getAssetByRef(e.material).then(a=>{s(a)})},[e.material]),m.jsxs(m.Fragment,{children:[m.jsx(f.List,{model:e,configs:e.formSchema.items,onModelChange:M("component",e.id,n,e)}),r&&m.jsx(R,{materialAsset:r})]})});var C=Object.defineProperty,j=Object.getOwnPropertyDescriptor,i=(o,r,s,e)=>{for(var t=e>1?void 0:e?j(r,s):r,n=o.length-1,a;n>=0;n--)(a=o[n])&&(t=(e?a(r,s,t):a(t))||t);return e&&t&&C(r,s,t),t};let p=class extends v{constructor(o,r){super(o,r)}};i([h({assetType:["PrimitiveMesh","Mesh"]})],p.prototype,"mesh",2);p=i([u({type:"MeshRenderer",customInspector:x,componentsMenu:{label:"component.renderer.mesh.title"}})],p);export{p as MeshRendererComponent};
1
+ import{aJ as l,aM as c,av as m,aO as f,p as h}from"./index-b126bb6b.js";import{u as d}from"./index-c8ed2a45.js";import{c as u}from"./Component-398551a0.js";import"./postmen-3b48c572.js";import{c as M}from"./createOnModelChange-89f572a6.js";import{R}from"./ReferencedMaterial-49a7cbcc.js";import{M as v}from"./MeshRendererBaseComponent-cd8b743b.js";import"./MaterialInspector-3fb471d9.js";import"./IconPointFilled-3ba6d082.js";import"./createReactComponent-baa41397.js";const x=l(function(o){const[r,s]=c.useState(null),e=o.data,{assetStore:t,inspectorFacade:n}=d();return c.useEffect(()=>{t.getAssetByRef(e.material).then(a=>{s(a)})},[e.material]),m.jsxs(m.Fragment,{children:[m.jsx(f.List,{model:e,configs:e.formSchema.items,onModelChange:M("component",e.id,n,e)}),r&&m.jsx(R,{materialAsset:r})]})});var C=Object.defineProperty,j=Object.getOwnPropertyDescriptor,i=(o,r,s,e)=>{for(var t=e>1?void 0:e?j(r,s):r,n=o.length-1,a;n>=0;n--)(a=o[n])&&(t=(e?a(r,s,t):a(t))||t);return e&&t&&C(r,s,t),t};let p=class extends v{constructor(o,r){super(o,r)}};i([h({assetType:["PrimitiveMesh","Mesh"]})],p.prototype,"mesh",2);p=i([u({type:"MeshRenderer",customInspector:x,componentsMenu:{label:"component.renderer.mesh.title"}})],p);export{p as MeshRendererComponent};
@@ -1 +1 @@
1
- var r=Object.defineProperty;var c=(i,e,t)=>e in i?r(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var n=(i,e,t)=>(c(i,typeof e!="symbol"?e+"":e,t),t);import{y as h,z as o,R as d}from"./index-c3dec278.js";class a{static update(e,t){this.entity?this.entity.isActive=!0:this.initScene(e),this.meshRenderer.mesh=t.engineObject}static clear(){this.entity.isActive=!1}static initScene(e){const t=this.entity=e.createChild("mesh");t.transform.setRotation(16,-47.4,-16.7),this.meshRenderer=t.addComponent(h);const s=new o(e.engine);s.baseColor.set(.7,.7,.7,1),s.metallic=0,s.renderFace=d.Double,this.meshRenderer.setMaterial(s)}}n(a,"entity"),n(a,"meshRenderer");export{a as M};
1
+ var r=Object.defineProperty;var c=(i,e,t)=>e in i?r(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var n=(i,e,t)=>(c(i,typeof e!="symbol"?e+"":e,t),t);import{y as h,z as o,R as d}from"./index-b126bb6b.js";class a{static update(e,t){this.entity?this.entity.isActive=!0:this.initScene(e),this.meshRenderer.mesh=t.engineObject}static clear(){this.entity.isActive=!1}static initScene(e){const t=this.entity=e.createChild("mesh");t.transform.setRotation(16,-47.4,-16.7),this.meshRenderer=t.addComponent(h);const s=new o(e.engine);s.baseColor.set(.7,.7,.7,1),s.metallic=0,s.renderFace=d.Double,this.meshRenderer.setMaterial(s)}}n(a,"entity"),n(a,"meshRenderer");export{a as M};
@@ -1,4 +1,4 @@
1
- var ea=Object.defineProperty;var ta=(a,e,t)=>e in a?ea(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var S=(a,e,t)=>(ta(a,typeof e!="symbol"?e+"":e,t),t);import{bB as Ie,b8 as Ee,av as l,aw as ae,b7 as we,cb as ve,bT as lt,bU as je,cc as ie,ca as le,eW as me,aJ as Z,aM as F,aO as aa,aK as q,bm as ze,cm as ee,bk as ct,fa as Ce,fb as de,bA as ra,bX as sa,bI as L,fc as oa,bD as Vt,fd as na,fe as ia,ff as la,fg as ca,fh as pa,fi as $,aH as ua,fj as ma,aI as It,aL as Ct,fk as da,fl as ha,fm as he,dr as fa,c8 as Te,c9 as _e,c5 as ge,ce as Ot,b3 as Et,cf as wt,f7 as ya,E as ba,C as R,fn as W,fo as K,fp as be,bl as va,e as m,x as J,f as V,aE as ga,p as C,s as O}from"./index-c3dec278.js";import{u as At}from"./index-cdbb2f4d.js";import{c as xa}from"./Component-0f881fc1.js";import"./postmen-2853c0e6.js";import{c as Sa}from"./createOnModelChange-370b83da.js";import{R as Pa}from"./ReferencedMaterial-d11151b5.js";import"./TextureAsset-a7ff39b1.js";import"./GlTFAsset-5970e707.js";import"./MaterialAsset-5353c4cb.js";import{MeshAsset as Ma}from"./MeshAsset-c2bf60c5.js";import"./AnimatorControllerAsset-2716497a.js";import"./AnimationClipAsset-d7b37af0.js";import{I as za}from"./ShaderChunkAsset-e43dde8a.js";import"./AmbientLightAsset-be9e872c.js";import"./SpineSkeletonDataAsset-43b731f1.js";import"./FontAsset-d34b5378.js";import"./SceneAsset-08752701.js";import"./ShaderAsset-a9d667f5.js";import"./PrimitiveMesh-075dda8a.js";import"./XRReferenceImageAsset-96f516ba.js";import"./PrefabAsset-59743dbb.js";import"./PhysicsMaterialAsset-a2f73b5c.js";import"./RenderTargetAsset-b3cd1c49.js";import"./AudioAsset-c28f33ab.js";import"./index-da16047f.js";import"./MarkdownAsset-b2a3fad5.js";import{I as Ca}from"./IconPlus-def01e2b.js";import{B as rt}from"./index-dd0763bf.js";import{c as Oa}from"./createReactComponent-58d9f0dd.js";import"./MaterialInspector-8d466d59.js";import"./IconPointFilled-62d3c3b2.js";import"./ktx2-encoder-db93524f.js";import"./TaskQueue-05c94a4d.js";import"./ktx-parse.modern-6c9f771f.js";import"./encode-ac4bb64e.js";import"./meshopt_simplifier.module-cd99529d.js";import"./Tooltip-b5be390f.js";import"./AssetViewer-3847c058.js";import"./glTFIO-45ff9a17.js";import"./shader-data-utils-f0e4f5a3.js";import"./index-05b76766.js";import"./MeshThumbnail-07ffa076.js";import"./bundlers-9b0d37fc.js";import"./module-ec094ef6.js";import"./module-ada3dced.js";import"./ShaderUIScriptAsset-e1cd0b8b.js";import"./FormItemArray-b8cda1d2.js";import"./Accordion-2cd014f1.js";import"./module-de7ee724.js";import"./Menu-c8e6194b.js";/**
1
+ var ea=Object.defineProperty;var ta=(a,e,t)=>e in a?ea(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var S=(a,e,t)=>(ta(a,typeof e!="symbol"?e+"":e,t),t);import{bB as Ie,b8 as Ee,av as l,aw as ae,b7 as we,cc as ve,bT as lt,bU as je,cd as ie,cb as le,eY as de,aJ as Z,aM as F,aO as aa,aK as q,bm as ze,cn as ee,bk as ct,fc as Ce,fd as me,bA as ra,bX as sa,bI as L,fe as oa,bD as Vt,ff as na,fg as ia,fh as la,fi as ca,fj as pa,fk as $,aH as ua,fl as da,aI as It,aL as Ct,fm as ma,fn as ha,fo as he,ds as fa,c9 as Te,ca as _e,c6 as ge,cf as Ot,b3 as Et,cg as wt,f9 as ya,E as ba,C as R,fp as W,fq as K,fr as be,bl as va,e as d,x as J,f as V,aE as ga,p as C,s as O}from"./index-b126bb6b.js";import{u as At}from"./index-c8ed2a45.js";import{c as xa}from"./Component-398551a0.js";import"./postmen-3b48c572.js";import{c as Sa}from"./createOnModelChange-89f572a6.js";import{R as Pa}from"./ReferencedMaterial-49a7cbcc.js";import"./TextureAsset-ff089b5a.js";import"./GlTFAsset-d2ee4f95.js";import"./MaterialAsset-8f3b3302.js";import{MeshAsset as Ma}from"./MeshAsset-3ddf1ac6.js";import"./AnimatorControllerAsset-dcf11a9d.js";import"./AnimationClipAsset-660ecb36.js";import{I as za}from"./ShaderChunkAsset-4bea2733.js";import"./AmbientLightAsset-3825f3bf.js";import"./SpineSkeletonDataAsset-afb4afae.js";import"./FontAsset-dc385d41.js";import"./SceneAsset-c3bb667f.js";import"./ShaderAsset-f4eead79.js";import"./PrimitiveMesh-0492d482.js";import"./XRReferenceImageAsset-ff82ab30.js";import"./PrefabAsset-2f94de73.js";import"./PhysicsMaterialAsset-e0491877.js";import"./RenderTargetAsset-dc1f9494.js";import"./AudioAsset-6e607154.js";import"./index-29916a80.js";import"./MarkdownAsset-02477e7c.js";import{I as Ca}from"./IconPlus-b3ed4c04.js";import{B as rt}from"./index-5e4dedda.js";import{c as Oa}from"./createReactComponent-baa41397.js";import"./MaterialInspector-3fb471d9.js";import"./IconPointFilled-3ba6d082.js";import"./ktx2-encoder-8498815e.js";import"./TaskQueue-05c94a4d.js";import"./ktx-parse.modern-6c9f771f.js";import"./encode-ac4bb64e.js";import"./meshopt_simplifier.module-cd99529d.js";import"./Tooltip-1bcb87b5.js";import"./AssetViewer-8338dfe1.js";import"./glTFIO-45ff9a17.js";import"./shader-data-utils-c90e48b8.js";import"./index-cd09e78a.js";import"./MeshThumbnail-8c20ee92.js";import"./bundlers-9b0d37fc.js";import"./module-83a57161.js";import"./module-113ac03a.js";import"./ShaderUIScriptAsset-3c731f3b.js";import"./FormItemArray-9ca61884.js";import"./Accordion-4afac60c.js";import"./module-8efda49c.js";import"./Menu-36c201c0.js";/**
2
2
  * @license @tabler/icons-react v3.24.0 - MIT
3
3
  *
4
4
  * This source code is licensed under the MIT license.
@@ -18,9 +18,9 @@ var ea=Object.defineProperty;var ta=(a,e,t)=>e in a?ea(a,e,{enumerable:!0,config
18
18
  *
19
19
  * This source code is licensed under the MIT license.
20
20
  * See the LICENSE file in the root directory of this source tree.
21
- */var Ft=Ie("outline","vector-bezier-2","IconVectorBezier2",[["path",{d:"M3 3m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z",key:"svg-0"}],["path",{d:"M17 17m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z",key:"svg-1"}],["path",{d:"M7 5l7 0",key:"svg-2"}],["path",{d:"M10 19l7 0",key:"svg-3"}],["path",{d:"M9 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-4"}],["path",{d:"M15 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-5"}],["path",{d:"M7 5.5a5 6.5 0 0 1 5 6.5a5 6.5 0 0 0 5 6.5",key:"svg-6"}]]);const jt=[{type:"constant",icon:l.jsx(Dt,{size:"14px"}),columns:"1fr 32px"},{type:"gradient",icon:l.jsx(kt,{size:"14px"}),columns:"1fr 32px"},{type:"two-constant",icon:l.jsx(Bt,{size:"14px"}),columns:"repeat(2, minmax(0, 12fr)) 32px"},{type:"two-gradient",icon:l.jsx(Ft,{size:"14px"}),columns:"repeat(2, minmax(0, 12fr)) 32px"}];function Ea(a){return a.map(e=>{const{type:t,value:r}=e;return t==="constant"?{type:t,label:e.label,value:ie(r)}:t==="two-constant"?{type:t,label:e.label,value:[ie(r[0]),ie(r[1])]}:t==="gradient"?{type:t,label:e.label,value:{color:r.color.map(s=>({value:ie(s.value),time:s.position})),alpha:r.alpha.map(s=>({value:s.value.a,time:s.position}))}}:t==="two-gradient"?{type:t,label:e.label,value:[{color:r[0].color.map(s=>({value:ie(s.value),time:s.position})),alpha:r[0].alpha.map(s=>({value:s.value.a,time:s.position}))},{color:r[1].color.map(s=>({value:ie(s.value),time:s.position})),alpha:r[1].alpha.map(s=>({value:s.value.a,time:s.position}))}]}:e})}function wa(a){return a.map(e=>{const{type:t,value:r}=e;return t==="constant"?{type:t,label:e.label,value:le(r)}:t==="two-constant"?{type:t,label:e.label,value:[le(r[0]),le(r[1])]}:t==="gradient"?{type:t,label:e.label,value:{color:r.color.map(s=>({value:le(s.value),position:s.time})),alpha:r.alpha.map(s=>({value:{r:255,g:255,b:255,a:s.value},position:s.time}))}}:t==="two-gradient"?{type:t,label:e.label,value:[{color:r[0].color.map(s=>({value:le(s.value),position:s.time})),alpha:r[0].alpha.map(s=>({value:{r:255,g:255,b:255,a:s.value},position:s.time}))},{color:r[1].color.map(s=>({value:le(s.value),position:s.time})),alpha:r[1].alpha.map(s=>({value:{r:255,g:255,b:255,a:s.value},position:s.time}))}]}:e})}function st({hdr:a,value:e,onValueChange:t,...r}){return a?l.jsx(ve,{...r,mode:"hdr",value:e,onValueChange:t}):l.jsx(ve,{...r,mode:"constant",value:e,onValueChange:t})}function Yt(a){var u;const{label:e,labelFirst:t,info:r,value:s,hdr:c=!1}=a,[o,n]=Ee({prop:wa(s),onChange:i=>{a.onValueChange&&a.onValueChange(Ea(i),d)}}),[d,b]=Ee({prop:a.type,defaultProp:"constant",onChange:i=>{a.onValueChange&&a.onValueChange(s,i)}});function v(i,g){var y;return g==="trigger"?(y=jt.find(M=>M.type===i))==null?void 0:y.icon:i}const p=i=>{n(g=>g.map(y=>y.type!==d?y:{...y,value:i}))},z=i=>g=>{n(y=>y.map(M=>{if(M.type!==d)return M;const{value:j}=M;if(M.type==="two-constant"){if(i===0)return{...M,value:[g,j[1]]};if(i===1)return{...M,value:[j[0],g]}}return M}))},h=i=>{n(g=>g.map(y=>y.type!==d?y:y.type==="gradient"?{...y,value:i}:y))},f=i=>g=>{n(y=>y.map(M=>{if(M.type!==d)return M;if(M.type==="two-gradient"){const{value:j}=M;if(i===0)return{...M,value:[g,j[1]]};if(i===1)return{...M,value:[j[0],g]}}return M}))};return l.jsxs(ae,{label:e,info:r,fieldCss:{gridTemplateColumns:(u=jt.find(i=>i.type===d))==null?void 0:u.columns},children:[o.map(i=>{const{type:g,value:y}=i;if(!g||d!==g)return null;switch(g){case"constant":return l.jsx(st,{fullsize:!0,hdr:c,value:y,onValueChange:p},"constant");case"gradient":return l.jsx(ve,{fullsize:!0,mode:"particle",value:y,onValueChange:h},"gradient");case"two-constant":return l.jsxs(we.Fragment,{children:[l.jsx(st,{fullsize:!0,hdr:c,value:y[0],onValueChange:z(0)}),l.jsx(st,{fullsize:!0,hdr:c,value:y[1],onValueChange:z(1)})]},"two-constant");case"two-gradient":return l.jsxs(we.Fragment,{children:[l.jsx(ve,{fullsize:!0,mode:"particle",value:y[0],onValueChange:f(0)}),l.jsx(ve,{fullsize:!0,mode:"particle",value:y[1],onValueChange:f(1)})]},"two-gradient");default:return null}}),l.jsx(lt,{defaultValue:"constant",position:"item-aligned",cornerArrow:!0,value:d,valueRenderer:v,onValueChange:i=>b(i),children:o.map(i=>l.jsx(je,{value:i.type,children:i.label||i.type},i.type))})]})}const Zt=[{type:"constant",icon:l.jsx(Dt,{size:"14px"}),columns:"minmax(0, 12fr) 32px"},{type:"curve",icon:l.jsx(kt,{size:"14px"}),columns:"minmax(0, 12fr) 32px"},{type:"two-constant",icon:l.jsx(Bt,{size:"14px"}),columns:"repeat(2, minmax(0, 12fr)) 32px"},{type:"two-curve",icon:l.jsx(Ft,{size:"14px"}),columns:"repeat(2, minmax(0, 12fr)) 32px"}];function ja(a,e){var t;return e==="trigger"?(t=Zt.find(r=>r.type===a))==null?void 0:t.icon:a}const ot=[{x:0,y:0},{x:.25,y:.25},{x:.75,y:.75},{x:1,y:1}];function Le(a){var _;const{label:e,info:t,value:r,onValueChange:s,algo:c="bezier",yRangeMode:o,yTickScale:n,yTickScaleMin:d,yTickScaleMax:b,onYTickScaleChange:v,onYTickScaleCommit:p,hideTypeSelector:z,...h}=a,[f,u]=Ee({prop:a.type,defaultProp:"constant",onChange:E=>{s&&s(r,E)}}),[i,g]=Ee({prop:r,onChange:E=>{s&&s(E,f)},defaultProp:[{value:0,type:"constant"},{value:ot,type:"curve"},{value:[0,0],type:"two-constant"},{value:[ot,ot],type:"two-curve"}]}),y=E=>{g(I=>I.map(T=>T.type!==f?T:{...T,value:E}))},M=E=>I=>{g(T=>T.map(A=>{if(A.type!==f)return A;const{value:X}=A;return E===0?{...A,value:[I,X[1]]}:E===1?{...A,value:[X[0],I]}:A}))},j=E=>{g(I=>I.map(T=>T.type!==f?T:{...T,value:E}))},w=E=>I=>{g(T=>T.map(A=>{if(A.type!==f)return A;const{value:X}=A;return E===0?{...A,value:[I,X[1]]}:E===1?{...A,value:[X[0],I]}:A}))},B={algo:c,yRangeMode:o,yTickScale:n,yTickScaleMin:d,yTickScaleMax:b,onYTickScaleChange:v,onYTickScaleCommit:p};return l.jsxs(ae,{label:e,info:t,fieldCss:{gridTemplateColumns:(_=Zt.find(E=>E.type===f))==null?void 0:_.columns,columnGap:"$1"},...h,children:[i.map(E=>{const{type:I,value:T,min:A,max:X,step:U}=E;if(!I||f!==I)return null;switch(I){case"constant":return l.jsx(me,{min:A,max:X,dragStep:U,step:U,value:T,onValueChange:y},"constant");case"curve":return l.jsx(rt,{...B,value:T,onChange:j},"curve");case"two-constant":return l.jsxs(we.Fragment,{children:[l.jsx(me,{size:"sm",startSlot:"min",value:T[0],min:A,max:X,dragStep:U,step:U,onValueChange:M(0)}),l.jsx(me,{size:"sm",startSlot:"max",value:T[1],min:A,max:X,dragStep:U,step:U,onValueChange:M(1)})]},"two-constant");case"two-curve":return l.jsxs(we.Fragment,{children:[l.jsx(rt,{...B,value:T[0],onChange:w(0)}),l.jsx(rt,{...B,value:T[1],onChange:w(1)})]},"two-curve");default:return null}}),!z&&l.jsx(lt,{value:f,position:"item-aligned",cornerArrow:!0,valueRenderer:ja,onValueChange:E=>u(E),children:i.map(E=>l.jsx(je,{value:E.type,children:E.label||E.type},E.type))})]})}/**
21
+ */var Ft=Ie("outline","vector-bezier-2","IconVectorBezier2",[["path",{d:"M3 3m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z",key:"svg-0"}],["path",{d:"M17 17m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z",key:"svg-1"}],["path",{d:"M7 5l7 0",key:"svg-2"}],["path",{d:"M10 19l7 0",key:"svg-3"}],["path",{d:"M9 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-4"}],["path",{d:"M15 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-5"}],["path",{d:"M7 5.5a5 6.5 0 0 1 5 6.5a5 6.5 0 0 0 5 6.5",key:"svg-6"}]]);const jt=[{type:"constant",icon:l.jsx(Dt,{size:"14px"}),columns:"1fr 32px"},{type:"gradient",icon:l.jsx(kt,{size:"14px"}),columns:"1fr 32px"},{type:"two-constant",icon:l.jsx(Bt,{size:"14px"}),columns:"repeat(2, minmax(0, 12fr)) 32px"},{type:"two-gradient",icon:l.jsx(Ft,{size:"14px"}),columns:"repeat(2, minmax(0, 12fr)) 32px"}];function Ea(a){return a.map(e=>{const{type:t,value:r}=e;return t==="constant"?{type:t,label:e.label,value:ie(r)}:t==="two-constant"?{type:t,label:e.label,value:[ie(r[0]),ie(r[1])]}:t==="gradient"?{type:t,label:e.label,value:{color:r.color.map(s=>({value:ie(s.value),time:s.position})),alpha:r.alpha.map(s=>({value:s.value.a,time:s.position}))}}:t==="two-gradient"?{type:t,label:e.label,value:[{color:r[0].color.map(s=>({value:ie(s.value),time:s.position})),alpha:r[0].alpha.map(s=>({value:s.value.a,time:s.position}))},{color:r[1].color.map(s=>({value:ie(s.value),time:s.position})),alpha:r[1].alpha.map(s=>({value:s.value.a,time:s.position}))}]}:e})}function wa(a){return a.map(e=>{const{type:t,value:r}=e;return t==="constant"?{type:t,label:e.label,value:le(r)}:t==="two-constant"?{type:t,label:e.label,value:[le(r[0]),le(r[1])]}:t==="gradient"?{type:t,label:e.label,value:{color:r.color.map(s=>({value:le(s.value),position:s.time})),alpha:r.alpha.map(s=>({value:{r:255,g:255,b:255,a:s.value},position:s.time}))}}:t==="two-gradient"?{type:t,label:e.label,value:[{color:r[0].color.map(s=>({value:le(s.value),position:s.time})),alpha:r[0].alpha.map(s=>({value:{r:255,g:255,b:255,a:s.value},position:s.time}))},{color:r[1].color.map(s=>({value:le(s.value),position:s.time})),alpha:r[1].alpha.map(s=>({value:{r:255,g:255,b:255,a:s.value},position:s.time}))}]}:e})}function st({hdr:a,value:e,onValueChange:t,...r}){return a?l.jsx(ve,{...r,mode:"hdr",value:e,onValueChange:t}):l.jsx(ve,{...r,mode:"constant",value:e,onValueChange:t})}function Yt(a){var u;const{label:e,labelFirst:t,info:r,value:s,hdr:c=!1}=a,[o,n]=Ee({prop:wa(s),onChange:i=>{a.onValueChange&&a.onValueChange(Ea(i),m)}}),[m,b]=Ee({prop:a.type,defaultProp:"constant",onChange:i=>{a.onValueChange&&a.onValueChange(s,i)}});function v(i,g){var y;return g==="trigger"?(y=jt.find(M=>M.type===i))==null?void 0:y.icon:i}const p=i=>{n(g=>g.map(y=>y.type!==m?y:{...y,value:i}))},z=i=>g=>{n(y=>y.map(M=>{if(M.type!==m)return M;const{value:j}=M;if(M.type==="two-constant"){if(i===0)return{...M,value:[g,j[1]]};if(i===1)return{...M,value:[j[0],g]}}return M}))},h=i=>{n(g=>g.map(y=>y.type!==m?y:y.type==="gradient"?{...y,value:i}:y))},f=i=>g=>{n(y=>y.map(M=>{if(M.type!==m)return M;if(M.type==="two-gradient"){const{value:j}=M;if(i===0)return{...M,value:[g,j[1]]};if(i===1)return{...M,value:[j[0],g]}}return M}))};return l.jsxs(ae,{label:e,info:r,fieldCss:{gridTemplateColumns:(u=jt.find(i=>i.type===m))==null?void 0:u.columns},children:[o.map(i=>{const{type:g,value:y}=i;if(!g||m!==g)return null;switch(g){case"constant":return l.jsx(st,{fullsize:!0,hdr:c,value:y,onValueChange:p},"constant");case"gradient":return l.jsx(ve,{fullsize:!0,mode:"particle",value:y,onValueChange:h},"gradient");case"two-constant":return l.jsxs(we.Fragment,{children:[l.jsx(st,{fullsize:!0,hdr:c,value:y[0],onValueChange:z(0)}),l.jsx(st,{fullsize:!0,hdr:c,value:y[1],onValueChange:z(1)})]},"two-constant");case"two-gradient":return l.jsxs(we.Fragment,{children:[l.jsx(ve,{fullsize:!0,mode:"particle",value:y[0],onValueChange:f(0)}),l.jsx(ve,{fullsize:!0,mode:"particle",value:y[1],onValueChange:f(1)})]},"two-gradient");default:return null}}),l.jsx(lt,{defaultValue:"constant",position:"item-aligned",cornerArrow:!0,value:m,valueRenderer:v,onValueChange:i=>b(i),children:o.map(i=>l.jsx(je,{value:i.type,children:i.label||i.type},i.type))})]})}const Zt=[{type:"constant",icon:l.jsx(Dt,{size:"14px"}),columns:"minmax(0, 12fr) 32px"},{type:"curve",icon:l.jsx(kt,{size:"14px"}),columns:"minmax(0, 12fr) 32px"},{type:"two-constant",icon:l.jsx(Bt,{size:"14px"}),columns:"repeat(2, minmax(0, 12fr)) 32px"},{type:"two-curve",icon:l.jsx(Ft,{size:"14px"}),columns:"repeat(2, minmax(0, 12fr)) 32px"}];function ja(a,e){var t;return e==="trigger"?(t=Zt.find(r=>r.type===a))==null?void 0:t.icon:a}const ot=[{x:0,y:0},{x:.25,y:.25},{x:.75,y:.75},{x:1,y:1}];function Le(a){var _;const{label:e,info:t,value:r,onValueChange:s,algo:c="bezier",yRangeMode:o,yTickScale:n,yTickScaleMin:m,yTickScaleMax:b,onYTickScaleChange:v,onYTickScaleCommit:p,hideTypeSelector:z,...h}=a,[f,u]=Ee({prop:a.type,defaultProp:"constant",onChange:E=>{s&&s(r,E)}}),[i,g]=Ee({prop:r,onChange:E=>{s&&s(E,f)},defaultProp:[{value:0,type:"constant"},{value:ot,type:"curve"},{value:[0,0],type:"two-constant"},{value:[ot,ot],type:"two-curve"}]}),y=E=>{g(I=>I.map(T=>T.type!==f?T:{...T,value:E}))},M=E=>I=>{g(T=>T.map(A=>{if(A.type!==f)return A;const{value:X}=A;return E===0?{...A,value:[I,X[1]]}:E===1?{...A,value:[X[0],I]}:A}))},j=E=>{g(I=>I.map(T=>T.type!==f?T:{...T,value:E}))},w=E=>I=>{g(T=>T.map(A=>{if(A.type!==f)return A;const{value:X}=A;return E===0?{...A,value:[I,X[1]]}:E===1?{...A,value:[X[0],I]}:A}))},B={algo:c,yRangeMode:o,yTickScale:n,yTickScaleMin:m,yTickScaleMax:b,onYTickScaleChange:v,onYTickScaleCommit:p};return l.jsxs(ae,{label:e,info:t,fieldCss:{gridTemplateColumns:(_=Zt.find(E=>E.type===f))==null?void 0:_.columns,columnGap:"$1"},...h,children:[i.map(E=>{const{type:I,value:T,min:A,max:X,step:U}=E;if(!I||f!==I)return null;switch(I){case"constant":return l.jsx(de,{min:A,max:X,dragStep:U,step:U,value:T,onValueChange:y},"constant");case"curve":return l.jsx(rt,{...B,value:T,onChange:j},"curve");case"two-constant":return l.jsxs(we.Fragment,{children:[l.jsx(de,{size:"sm",startSlot:"min",value:T[0],min:A,max:X,dragStep:U,step:U,onValueChange:M(0)}),l.jsx(de,{size:"sm",startSlot:"max",value:T[1],min:A,max:X,dragStep:U,step:U,onValueChange:M(1)})]},"two-constant");case"two-curve":return l.jsxs(we.Fragment,{children:[l.jsx(rt,{...B,value:T[0],onChange:w(0)}),l.jsx(rt,{...B,value:T[1],onChange:w(1)})]},"two-curve");default:return null}}),!z&&l.jsx(lt,{value:f,position:"item-aligned",cornerArrow:!0,valueRenderer:ja,onValueChange:E=>u(E),children:i.map(E=>l.jsx(je,{value:E.type,children:E.label||E.type},E.type))})]})}/**
22
22
  * @license @tabler/icons-react v3.24.0 - MIT
23
23
  *
24
24
  * This source code is licensed under the MIT license.
25
25
  * See the LICENSE file in the root directory of this source tree.
26
- */var Ta=Oa("outline","equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);const _a=Z(function(a){const[e,t]=F.useState(null),r=a.data,{assetStore:s,inspectorFacade:c}=At();return F.useEffect(()=>{s.getAssetByRef(r.material).then(o=>{t(o)})},[r.material]),l.jsxs(l.Fragment,{children:[l.jsx(aa.List,{model:r,configs:r.formSchema.items,onModelChange:Sa("component",r.id,c,r)}),e&&l.jsx(Pa,{materialAsset:e})]})});async function La(a,e){await a.assetStore.getAssetByRef(e)}var k=(a=>(a.BoxShape="BoxShape",a.CircleShape="CircleShape",a.ConeShape="ConeShape",a.HemisphereShape="HemisphereShape",a.SphereShape="SphereShape",a.MeshShape="MeshShape",a))(k||{});function Y(a,e){return{class:a.class,props:{...a.props,...e}}}const Ra=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsx(l.Fragment,{children:l.jsx(ze,{label:t("effects.shape.size"),value:{x:a.props.size.x,y:a.props.size.y,z:a.props.size.z},onChange:(r,s)=>{const c=Y(a,{size:{...a.props.size,[s]:r[s]}});e==null||e("shape",c)}})})}),Va=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsxs(l.Fragment,{children:[l.jsx(ee,{label:t("effects.shape.radius"),min:1e-4,step:.05,dragStep:.05,value:a.props.radius,onChange:r=>{const s=Y(a,{radius:r});e==null||e("shape",s)}}),l.jsx(ee,{label:t("effects.shape.arc"),min:0,max:360,value:a.props.arc,onChange:r=>{const s=Y(a,{arc:r});e==null||e("shape",s)}}),l.jsx(ct,{label:t("effects.shape.arc-mode.label"),options:[{label:t("effects.shape.loop"),value:Ce.Loop},{label:t("effects.shape.random"),value:Ce.Random}],value:a.props.arcMode,onChange:r=>{const s=Y(a,{arcMode:r});e==null||e("shape",s)}}),a.props.arcMode===Ce.Loop?l.jsx(ee,{label:t("effects.shape.arc-speed.label"),step:.1,dragStep:.1,value:a.props.arcSpeed,onChange:r=>{const s=Y(a,{arcSpeed:r});e==null||e("shape",s)}}):null]})}),Ia=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsxs(l.Fragment,{children:[l.jsx(ct,{label:t("effects.shape.emit-type.label"),options:[{label:t("effects.shape.cone-base"),value:de.Base},{label:t("effects.shape.volume"),value:de.Volume}],value:a.props.emitType,onChange:r=>{const s=Y(a,{emitType:r});e==null||e("shape",s)}}),l.jsx(ee,{label:t("effects.shape.angle"),min:1e-4,max:90,step:.05,dragStep:.05,value:a.props.angle,onChange:r=>{const s=Y(a,{angle:r});e==null||e("shape",s)}}),l.jsx(ee,{label:t("effects.shape.radius"),min:1e-4,step:.05,dragStep:.05,value:a.props.radius,onChange:r=>{const s=Y(a,{radius:r});e==null||e("shape",s)}}),l.jsx(ee,{label:t("effects.shape.length"),min:1e-4,step:.1,dragStep:.1,value:a.props.length,disabled:a.props.emitType===de.Base,onChange:r=>{const s=Y(a,{length:r});e==null||e("shape",s)}})]})}),Aa=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsx(l.Fragment,{children:l.jsx(ee,{label:t("effects.shape.radius"),min:1e-4,step:.05,dragStep:.05,value:a.props.radius,onChange:r=>{const s=Y(a,{radius:r});e==null||e("shape",s)}})})}),ka=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsx(l.Fragment,{children:l.jsx(ee,{label:t("effects.shape.radius"),min:1e-4,step:.05,dragStep:.05,value:a.props.radius,onChange:r=>{const s=Y(a,{radius:r});e==null||e("shape",s)}})})}),Da=Z(({item:a,onModelChange:e})=>{const{t}=q(),{assetStore:r}=At(),s=Object.values(r.assets).filter(n=>n instanceof Ma),[c,o]=F.useState("");return F.useEffect(()=>{let n=!1;return(async()=>{if(!a.props.mesh){o("");return}try{const b=await r.getAssetByRef(a.props.mesh);n||o((b==null?void 0:b.name)??"")}catch{n||o("")}})(),()=>{n=!0}},[r,a.props.mesh]),l.jsx(ra,{label:t("effects.renderer.render-mode.options.mesh"),assets:s,dropLayer:0,value:c,onSelect:async n=>{o(n.name);const d=!!n.engineObject;d||sa.error("Mesh asset is not initialized");const b={class:a.class,props:{...a.props,mesh:n.getCurrentRef(),enabled:d}};e==null||e("shape",b)}})}),Ba=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsx(ee,{label:t("effects.shape.random-direction-amount"),info:t("effects.shape.random-direction-amount-tip"),min:0,step:1,dragStep:.05,value:a.props.randomDirectionAmount||0,onChange:r=>{const s=Y(a,{randomDirectionAmount:r});e==null||e("shape",s)}})}),Fa=Z(({item:a,onModelChange:e})=>{const{t}=q(),r=a.props.position??{x:0,y:0,z:0},s=a.props.rotation??{x:0,y:0,z:0},c=a.props.scale??{x:1,y:1,z:1};return l.jsxs(l.Fragment,{children:[l.jsx(ze,{label:t("effects.shape.position"),value:{x:r.x,y:r.y,z:r.z},onChange:(o,n)=>{const d=Y(a,{position:{x:r.x,y:r.y,z:r.z,[n]:o[n]},rotation:{x:s.x,y:s.y,z:s.z},scale:{x:c.x,y:c.y,z:c.z}});e==null||e("shape",d)}}),l.jsx(ze,{label:t("effects.shape.rotation"),value:{x:s.x,y:s.y,z:s.z},onChange:(o,n)=>{const d=Y(a,{position:{x:r.x,y:r.y,z:r.z},rotation:{x:s.x,y:s.y,z:s.z,[n]:o[n]},scale:{x:c.x,y:c.y,z:c.z}});e==null||e("shape",d)}}),l.jsx(ze,{label:t("effects.shape.scale"),value:{x:c.x,y:c.y,z:c.z},onChange:(o,n)=>{const d=Y(a,{position:{x:r.x,y:r.y,z:r.z},rotation:{x:s.x,y:s.y,z:s.z},scale:{x:c.x,y:c.y,z:c.z,[n]:o[n]}});e==null||e("shape",d)}})]})}),it=new Map;function Ya(a,e){let t;switch(e.class){case k.BoxShape:{t=new pa;const r=t.size;r.copyFrom(e.props.size),t.size=r;break}case k.CircleShape:{t=new ca,t.radius=e.props.radius,t.arc=e.props.arc,t.arcMode=e.props.arcMode,t.arcSpeed=e.props.arcSpeed;break}case k.ConeShape:{t=new la,t.angle=e.props.angle,t.radius=e.props.radius,t.length=e.props.length,t.emitType=e.props.emitType;break}case k.HemisphereShape:{t=new ia,t.radius=e.props.radius;break}case k.SphereShape:{t=new na,t.radius=e.props.radius;break}case k.MeshShape:{t=new oa;const r=e.props.mesh;if(r!=null&&r.refId){const s=a.root.assetStore.assets[r.refId];t.mesh=s==null?void 0:s.engineObject}t.mesh||(t.mesh=Vt.createSphere(a.engineObject.engine));break}}if(t){if(e.props.randomDirectionAmount=e.props.randomDirectionAmount??0,t.randomDirectionAmount=e.props.randomDirectionAmount,t.enabled=e.props.enabled,e.props.position){const r=e.props.position;t.position.set(r.x,r.y,r.z)}if(e.props.rotation){const r=e.props.rotation;t.rotation.set(r.x,r.y,r.z)}if(e.props.scale){const r=e.props.scale;t.scale.set(r.x,r.y,r.z)}}return t}const Za=(a,e,t)=>{let r=it.get(`${a.id}-${t.class}`);r&&(r=JSON.parse(r),it.delete(`${a.id}-${t.class}`),Object.assign(t.props,r));const s=Ya(a,t);s&&a.applyEmissionShape(s)},Xa={BoxShape:Ra,CircleShape:Va,ConeShape:Ia,HemisphereShape:Aa,SphereShape:ka,MeshShape:Da},$a={BoxShape:{class:k.BoxShape,props:{size:{x:1,y:1,z:1},randomDirectionAmount:0,enabled:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}},CircleShape:{class:k.CircleShape,props:{radius:1,arc:360,arcMode:Ce.Random,arcSpeed:1,randomDirectionAmount:0,enabled:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}},ConeShape:{class:k.ConeShape,props:{angle:25,radius:1,length:5,emitType:de.Base,randomDirectionAmount:0,enabled:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}},HemisphereShape:{class:k.HemisphereShape,props:{radius:1,randomDirectionAmount:0,enabled:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}},SphereShape:{class:k.SphereShape,props:{radius:1,randomDirectionAmount:0,enabled:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}},MeshShape:{class:k.MeshShape,props:{randomDirectionAmount:0,enabled:!0,mesh:void 0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}}},qa=Z(({model:a,onModelChange:e})=>{const{t}=q(),r=a.shape;if(!r.class)return;const s=Xa[r.class];return l.jsxs(l.Fragment,{children:[l.jsx(ct,{label:t("effects.shape.type.label"),info:t("effects.shape.type.info"),value:r.class,options:[{label:t("effects.shape.options.box"),value:k.BoxShape},{label:t("effects.shape.options.circle"),value:k.CircleShape},{label:t("effects.shape.options.cone"),value:k.ConeShape},{label:t("effects.shape.options.hemisphere"),value:k.HemisphereShape},{label:t("effects.shape.options.sphere"),value:k.SphereShape},{label:t("effects.shape.options.mesh"),value:k.MeshShape}],onChange:c=>{const o=$a[c];if(a.shape&&a.shape.class!==c&&it.set(`${a.id}-${a.shape.class}`,JSON.stringify(a.shape.props)),o.class!==r.class){const n=L(o);e==null||e("shape",n)}}}),l.jsx(s,{item:r,component:a.engineObject,onModelChange:e}),l.jsx(Ba,{item:r,component:a.engineObject,onModelChange:e}),l.jsx(Fa,{item:r,component:a.engineObject,onModelChange:e})]})}),pt=["constant","two-constant","curve","two-curve"],te=[{x:0,y:0},{x:.25,y:.25},{x:.75,y:.75},{x:1,y:1}];function Re(a){return a.map(e=>({x:e.constructParams[0],y:e.constructParams[1]}))}const Tt={class:"ParticleCurve",constructParams:[{class:"CurveKey",constructParams:[0,0]},{class:"CurveKey",constructParams:[.25,.25]},{class:"CurveKey",constructParams:[.75,.75]},{class:"CurveKey",constructParams:[1,1]}]};function D(a,e=0,t=0,r=$.Constant){return{module:a,mode:r,constantMin:t,constantMax:e,curveMax:L(Tt),curveMin:L(Tt)}}function ce(a,e=0,t=0,r=$.Constant){return{enabled:!1,x:D(a,e,t,r),y:D(a,e,t,r),z:D(a,e,t,r)}}const Ka=a=>a===1/0?1/0:Math.max(1,Math.floor(a));function Na(a){if(!(a!=null&&a.constructParams))return;const e=a.constructParams[2];e===null?a.constructParams[2]=1/0:typeof e=="number"&&e!==1/0&&(a.constructParams[2]=Math.max(1,Math.floor(e)))}const Ve=1,ut=.01,Ga=ua("div",{height:"$6",display:"flex",alignItems:"center",paddingLeft:"$2",fontSize:"$sm",borderRadius:"$1",backgroundColor:"$softBg",color:"$gray9",userSelect:"none"}),Ha=l.jsx(Ta,{size:"14px"});function Wa(a,e){return e==="trigger"?Ha:a}const Ua={class:"Burst",constructParams:[0,{class:"ParticleCompositeCurve",constructParams:[15],props:{mode:$.Constant,constantMax:15,constantMin:0}},Ve,ut]},Ja=Z(({model:a,inspectorConfig:e,onModelChange:t})=>{const{t:r}=q(),{label:s,info:c}=e,o=a.bursts,[n,d]=F.useState(-1),b=u=>{const i=L(o);u(i),t==null||t("bursts",i)},v=(u,i)=>{b(g=>{const y=g[u];y&&i(y)})},p=u=>{b(i=>{i.splice(u,1)})},z=()=>{b(u=>{u.push(L(Ua))})},h=[{title:r("effects.burst.time.label")},{title:r("effects.burst.count.label")},{title:r("effects.burst.cycles.label")},{title:r("effects.burst.interval.label")}],f=(u,i)=>{const g=Math.max(1,u.constructParams[1].props.constantMax??0,u.constructParams[1].props.constantMin??0);return{data:u,cells:[l.jsx(ae,{children:l.jsx(me,{min:0,max:a.duration,step:.05,dragStep:.05,value:u.constructParams[0],onValueChange:y=>{v(i,M=>{M.constructParams[0]=y})}})},`time-${i}`),l.jsx(Le,{type:pt[u.constructParams[1].props.mode],direction:"column",algo:"bezier",yRangeMode:"positive",yTickScale:g,yTickScaleMin:0,yTickScaleMax:g,onYTickScaleChange:()=>{},onYTickScaleCommit:()=>{},value:[{value:u.constructParams[1].props.constantMax,type:"constant",min:0,step:1},{value:[u.constructParams[1].props.constantMin,u.constructParams[1].props.constantMax],type:"two-constant",min:0,step:1}],onValueChange:(y,M)=>{const j=y.find(w=>w.type===M);j&&v(i,w=>{switch(M){case"constant":{w.constructParams[1].props.mode=$.Constant,w.constructParams[1].props.constantMax=j.value;break}case"two-constant":{w.constructParams[1].props.mode=$.TwoConstants,w.constructParams[1].props.constantMin=j.value[0],w.constructParams[1].props.constantMax=j.value[1];break}}})}},`count-${i}`),l.jsxs(ae,{fieldCss:{gridTemplateColumns:"minmax(0, 1fr) 32px",columnGap:"$1"},children:[u.constructParams[2]===1/0?l.jsx(Ga,{children:"∞"}):l.jsx(me,{min:1,step:1,dragStep:1,value:u.constructParams[2]??Ve,onValueChange:y=>{v(i,M=>{M.constructParams[2]=Ka(y)})}}),l.jsxs(lt,{value:u.constructParams[2]===1/0?"infinity":"number",position:"item-aligned",cornerArrow:!0,valueRenderer:Wa,onValueChange:y=>{v(i,M=>{M.constructParams[2]=y==="infinity"?1/0:Ve})},children:[l.jsx(je,{value:"number",children:r("effects.burst.cycles.number")}),l.jsx(je,{value:"infinity",children:r("effects.burst.cycles.infinity")})]})]},`cycles-${i}`),l.jsx(ae,{children:l.jsx(me,{disabled:!u.constructParams[2]||u.constructParams[2]===1,min:.01,step:.01,dragStep:.01,value:u.constructParams[3]??ut,onValueChange:y=>{v(i,M=>{M.constructParams[3]=y})}})},`interval-${i}`)]}};return l.jsx(ma,{columns:h,items:o.map((u,i)=>f(u,i)),label:r(s),info:r(c),addable:!1,emptyText:r("effects.burst.empty","No bursts"),selectedIndex:n,onRowClick:d,sideSlot:l.jsxs(It,{direction:"column",gap:"xs",children:[l.jsx(Ct,{variant:"soft",onClick:z,css:{flex:1},children:l.jsx(Ca,{size:"14px"})}),l.jsx(Ct,{variant:"soft",css:{flex:1},onClick:()=>{const u=n>=0&&n<o.length?n:o.length-1;u>=0&&(p(u),d(Math.min(u,o.length-2)))},children:l.jsx(za,{size:"14px"})})]})})}),Qa=(a,e,t)=>{const r=a.engineObject.generator.emission,s=r.bursts;for(let c=s.length-1;c>=0;c--)r.removeBurst(s[c]);for(let c=0;c<t.length;c++){const o=t[c];if(!o||!Array.isArray(o.constructParams)||o.constructParams.length<2){console.warn(`Invalid burst item at index ${c}:`,o);continue}const n=o.constructParams[0],d=o.constructParams[1],b=o.constructParams[2]??Ve,v=o.constructParams[3]??ut;if(!d||!d.props){console.warn(`Invalid burst count data at index ${c}:`,d);continue}const p=d.props,z=new da(p.constantMax);z.mode=p.mode,z.constantMin=p.constantMin,z.constantMax=p.constantMax,z.constant=p.constantMax;const h=new ha(n,z);h.cycles=b,h.repeatInterval=v,r.addBurst(h)}};function _t(a="colorOverLifetime"){return{module:a,mode:he.Gradient,gradientMax:{class:"ParticleGradient",constructParams:[[{color:{r:1,g:1,b:1,a:1},time:0},{color:{r:1,g:1,b:1,a:1},time:.3},{color:{r:1,g:1,b:1,a:1},time:.6},{color:{r:1,g:1,b:1,a:1},time:1}],[{time:0,alpha:0},{time:.25,alpha:.25},{time:.5,alpha:.5},{time:1,alpha:1}]]},gradientMin:{class:"ParticleGradient",constructParams:[[{time:0,color:{r:1,g:1,b:1,a:1}},{time:.3,color:{r:1,g:1,b:1,a:1}},{time:.6,color:{r:1,g:1,b:1,a:1}},{time:1,color:{r:1,g:1,b:1,a:1}}],[{time:0,alpha:0},{time:.25,alpha:.25},{time:.5,alpha:.5},{time:1,alpha:1}]]}}}const Me=["x","y","z"],er={constant:$.Constant,"two-constant":$.TwoConstants,curve:$.Curve,"two-curve":$.TwoCurves},fe=Z(({model:a,inspectorConfig:e,onModelChange:t})=>{const{t:r}=q(),s=e.property,{mainAxis:c}=e,o=a[s],[n,d]=F.useState({x:{max:te,min:te},y:{max:te,min:te},z:{max:te,min:te}}),[b,v]=F.useState(e.yTickScale??1),p=pt[o.x.mode];function z(i){return(g,y)=>{const M=g.find(_=>_.type===y);if(!M)return;const j=L(o),w=j[i],B=er[y];for(const _ of Me)j[_].mode=B;switch(y){case"constant":w.constantMax=M.value;break;case"two-constant":w.constantMin=M.value[0],w.constantMax=M.value[1];break;case"curve":{if(M.value.length>4)return;d(_=>({..._,[i]:{..._[i],max:M.value}})),M.value.forEach((_,E)=>{w.curveMax.constructParams[E].constructParams[0]=_.x,w.curveMax.constructParams[E].constructParams[1]=_.y*b});break}case"two-curve":{if(M.value[0].length>4||M.value[1].length>4)return;d(_=>({..._,[i]:{min:M.value[0],max:M.value[1]}})),M.value[0].forEach((_,E)=>{w.curveMin.constructParams[E].constructParams[0]=_.x,w.curveMin.constructParams[E].constructParams[1]=_.y*b}),M.value[1].forEach((_,E)=>{w.curveMax.constructParams[E].constructParams[0]=_.x,w.curveMax.constructParams[E].constructParams[1]=_.y*b});break}}a[s]=j,t==null||t(s,j)}}function h(i){return[{value:o[i].constantMax,type:"constant",label:r("effects.curve.constant"),min:e.min,max:e.max,step:e.step},{value:[o[i].constantMin,o[i].constantMax],type:"two-constant",label:r("effects.curve.two-constant"),min:e.min,max:e.max,step:e.step},{value:n[i].max,type:"curve",label:r("effects.curve.curve")},{value:[n[i].min,n[i].max],type:"two-curve",label:r("effects.curve.two-curve")}]}const f=i=>{const g=i/b,y=L(o);for(const M of Me){const j=y[M];j.curveMax.constructParams.forEach(w=>{w.constructParams[1]*=g}),j.curveMin.constructParams.forEach(w=>{w.constructParams[1]*=g})}v(i),a[s]=y,t==null||t(s,y)},u={algo:"linear",yRangeMode:e.yRangeMode,yTickScale:b,yTickScaleMin:e.yTickScaleMin,yTickScaleMax:e.yTickScaleMax,onYTickScaleChange:f,onYTickScaleCommit:()=>{}};return F.useEffect(()=>{const i={};for(const g of Me)i[g]={max:Re(o[g].curveMax.constructParams).map(y=>({...y,y:y.y/b})),min:Re(o[g].curveMin.constructParams).map(y=>({...y,y:y.y/b}))};d(i)},[]),l.jsxs(l.Fragment,{children:[l.jsx(fa,{label:e.toggleLabel?r(e.toggleLabel):r("effects.curve.3d-prefix")+" "+r(e.label||s),info:r(e.info),value:o.enabled,onChange:i=>{const g=L(o);g.enabled=i,a[s]=g,t==null||t(s,g)}}),o.enabled?l.jsx(ae,{label:"",children:l.jsx(It,{direction:"column",gap:"xxs",children:Me.map((i,g)=>l.jsx(Le,{label:r(i).toLocaleUpperCase(),type:p,css:{gridTemplateColumns:"$4 repeat(3, minmax(0px, 1fr))"},...u,value:h(i),hideTypeSelector:g!==0,onValueChange:z(i)},i))})}):l.jsx(Le,{label:r(e.label||s),type:p,...u,value:h(c),onValueChange:z(c)})]})}),ye=a=>(e,t,r)=>{var o,n;const s=(n=(o=e.engineObject)==null?void 0:o.generator)==null?void 0:n[r.x.module];if(!s){console.warn(`Module container not found for: ${r.x.module}`);return}s[a]=r.enabled;const c={x:s[t+"X"],y:s[t+"Y"],z:s[t+"Z"]};for(const d in c){const b=r[d],v=c[d];if(!v){console.warn(`Axis module not found for: ${d} in ${t}`);continue}v.mode=b.mode,v.constantMax=b.constantMax,v.constantMin=b.constantMin,v.curveMax=new Te,b.curveMax.constructParams.forEach(p=>{const z=p.constructParams[0],h=p.constructParams[1];v.curveMax.addKey(new _e(z,h))}),v.curveMin=new Te,b.curveMin.constructParams.forEach(p=>{const z=p.constructParams[0],h=p.constructParams[1];v.curveMin.addKey(new _e(z,h))})}},N=Z(({model:a,inspectorConfig:e,onModelChange:t})=>{const{t:r}=q(),s=e.property,c=a[s],[o,n]=F.useState(te),[d,b]=F.useState(te),[v,p]=F.useState(e.yTickScale??1);F.useEffect(()=>{const h=Re(c.curveMax.constructParams),f=Re(c.curveMin.constructParams);n(h),b(f)},[]);const z=(h,f)=>{const u=h.find(g=>g.type===f);if(!u)return;const i=L(c);switch(f){case"constant":i.mode=$.Constant,i.constantMax=u.value;break;case"two-constant":i.mode=$.TwoConstants,i.constantMin=u.value[0],i.constantMax=u.value[1];break;case"curve":{if(u.value.length>4)return;n(u.value),i.mode=$.Curve,u.value.forEach((g,y)=>{i.curveMax.constructParams[y].constructParams[0]=g.x,i.curveMax.constructParams[y].constructParams[1]=g.y});break}case"two-curve":{if(u.value[0].length>4||u.value[1].length>4)return;i.mode=$.TwoCurves,b(u.value[0]),n(u.value[1]),u.value[0].forEach((g,y)=>{i.curveMin.constructParams[y].constructParams[0]=g.x,i.curveMin.constructParams[y].constructParams[1]=g.y}),u.value[1].forEach((g,y)=>{i.curveMax.constructParams[y].constructParams[0]=g.x,i.curveMax.constructParams[y].constructParams[1]=g.y});break}}a[s]=i,t==null||t(s,i)};return l.jsx(l.Fragment,{children:l.jsx(Le,{label:r(e.label||e.property),info:r(e.info),type:pt[c.mode],algo:"linear",yRangeMode:e.yRangeMode,yTickScale:v,yTickScaleMin:e.yTickScaleMin,yTickScaleMax:e.yTickScaleMax,onYTickScaleChange:p,onYTickScaleCommit:()=>{},value:[{value:c.constantMax,type:"constant",label:r("effects.curve.constant"),min:e.min,max:e.max,step:e.step},{value:[c.constantMin,c.constantMax],type:"two-constant",label:r("effects.curve.two-constant"),min:e.min,max:e.max,step:e.step},{value:o,type:"curve",label:r("effects.curve.curve")},{value:[d,o],type:"two-curve",label:r("effects.curve.two-curve")}],onValueChange:z})})}),G=(a,e,t)=>{var c,o;const r=(o=(c=a.engineObject)==null?void 0:c.generator)==null?void 0:o[t.module];if(!r){console.warn(`Module container not found for: ${t.module}`);return}const s=r[e];if(!s){console.warn(`Module not found for property: ${e} in ${t.module}`);return}s.mode=t.mode,s.constantMax=t.constantMax,s.constantMin=t.constantMin,s.curveMax=new Te,t.curveMax.constructParams.forEach(n=>{const d=n.constructParams[0],b=n.constructParams[1];s.curveMax.addKey(new _e(d,b))}),s.curveMin=new Te,t.curveMin.constructParams.forEach(n=>{const d=n.constructParams[0],b=n.constructParams[1];s.curveMin.addKey(new _e(d,b))})},tr=["constant","two-constant"],ar=Z(({model:a,inspectorConfig:e,onModelChange:t})=>{var b,v;const{t:r}=q(),s=e.property,c=a[s],o={...ge(c.constantMax),intensity:((b=c.constantMax)==null?void 0:b.intensity)??1},n={...ge(c.constantMin),intensity:((v=c.constantMin)==null?void 0:v.intensity)??1},d=(p,z)=>{const h=p.find(u=>u.type===z);if(!h)return;const f=L(c);switch(z){case"constant":{f.mode=he.Constant,f.constantMax=h.value;break}case"two-constant":{const u=h.value[0],i=h.value[1];f.mode=he.TwoConstants,f.constantMin=u,f.constantMax=i;break}}a[s]=f,t==null||t(s,f)};return l.jsx(Yt,{label:r(e.label||e.property),type:tr[c.mode],info:r(e.info),hdr:!0,value:[{value:o,type:"constant",label:r("effects.curve.constant")},{value:[n,o],type:"two-constant",label:r("effects.curve.two-constant")}],onValueChange:d})}),rr=(a,e,t)=>{const r=a.engineObject.generator.main.startColor;r.mode=t.mode;const{constantMax:s,constantMin:c}=t,o=s.intensity??1,n=c.intensity??1;r.constantMax.set(s.r*o,s.g*o,s.b*o,s.a),r.constantMin.set(c.r*n,c.g*n,c.b*n,c.a)},sr=["gradient","two-gradient"],or=Z(({model:a,inspectorConfig:e,onModelChange:t})=>{const{t:r}=q(),s=e.property,c=a[s],o=(n,d)=>{var p,z;if(!n.find(h=>h.type===d))return;const v=L(c);switch(d){case"gradient":{const h=n.find(f=>f.type===d);if(!((p=h==null?void 0:h.value)!=null&&p.color)||!((z=h==null?void 0:h.value)!=null&&z.alpha)){console.warn(`Invalid gradient value structure for ${s}`);return}if(h.value.color.length>4||h.value.alpha.length>4)return;v.mode=he.Gradient,v.gradientMax.constructParams=[h.value.color.map(f=>({color:f.value,time:f.time})),h.value.alpha.map(f=>({alpha:f.value,time:f.time}))];break}case"two-gradient":{const h=n.find(f=>f.type===d);if(h.value[0].color.length>4||h.value[0].alpha.length>4||h.value[1].color.length>4||h.value[1].alpha.length>4)return;v.mode=he.TwoGradients,v.gradientMin.constructParams=[h.value[0].color.map(f=>({color:f.value,time:f.time})),h.value[0].alpha.map(f=>({alpha:f.value,time:f.time}))],v.gradientMax.constructParams=[h.value[1].color.map(f=>({color:f.value,time:f.time})),h.value[1].alpha.map(f=>({alpha:f.value,time:f.time}))];break}}a[s]=v,t==null||t(s,v)};return l.jsx(l.Fragment,{children:l.jsx(Yt,{label:r(e.property),type:sr[c.mode-2],info:r(e.info),value:[{value:{color:c.gradientMax.constructParams[0].map(n=>({value:ge(n.color),time:n.time})),alpha:c.gradientMax.constructParams[1].map(n=>({value:n.alpha,time:n.time}))},type:"gradient",label:r("effects.curve.gradient")},{value:[{color:c.gradientMin.constructParams[0].map(n=>({value:ge(n.color),time:n.time})),alpha:c.gradientMin.constructParams[1].map(n=>({value:n.alpha,time:n.time}))},{color:c.gradientMax.constructParams[0].map(n=>({value:ge(n.color),time:n.time})),alpha:c.gradientMax.constructParams[1].map(n=>({value:n.alpha,time:n.time}))}],type:"two-gradient",label:r("effects.curve.two-gradient")}],onValueChange:o})})}),pe=[],ue=[],nr=(a,e,t)=>{var d,b,v;const r=(b=(d=a.engineObject)==null?void 0:d.generator)==null?void 0:b[t.module];if(!r){console.warn(`Module container not found for: ${t.module}`);return}const s=r[e];if(!s){console.warn(`Module not found for property: ${e} in ${t.module}`);return}if(s.mode=t.mode,pe.length=0,ue.length=0,!((v=t.gradientMax)!=null&&v.constructParams)||!Array.isArray(t.gradientMax.constructParams)){console.warn(`Invalid gradientMax.constructParams for ${e}`);return}const c=t.gradientMax.constructParams,o=c[0]||[],n=c[1]||[];Array.isArray(o)&&o.forEach(p=>{if(p&&p.color&&typeof p.time=="number"){const z=p.color;pe.push(new Ot(p.time,new Et(z.r??0,z.g??0,z.b??0,z.a??1)))}}),Array.isArray(n)&&n.forEach(p=>{p&&typeof p.time=="number"&&typeof p.alpha=="number"&&ue.push(new wt(p.time,p.alpha))}),s.gradientMax.setKeys(pe,ue),pe.length=0,ue.length=0,t.gradientMin.constructParams[0].forEach(p=>{pe.push(new Ot(p.time,new Et(p.color.r,p.color.g,p.color.b,p.color.a)))}),t.gradientMin.constructParams[1].forEach(p=>{ue.push(new wt(p.time,p.alpha))}),s.gradientMin.setKeys(pe,ue)};function Oe(a){return a-Math.floor(a*(1/289))*289}function H(a){return Oe((34*a+1)*a)}function nt(a,e,t){const r=.16666666666666666,s=1/3,c=(a+e+t)*s,o=Math.floor(a+c),n=Math.floor(e+c),d=Math.floor(t+c),b=(o+n+d)*r,v=a-o+b,p=e-n+b,z=t-d+b;let h,f,u,i,g,y;v>=p?p>=z?(h=1,f=0,u=0,i=1,g=1,y=0):v>=z?(h=1,f=0,u=0,i=1,g=0,y=1):(h=0,f=0,u=1,i=1,g=0,y=1):p<z?(h=0,f=0,u=1,i=0,g=1,y=1):v<z?(h=0,f=1,u=0,i=0,g=1,y=1):(h=0,f=1,u=0,i=1,g=1,y=0);const M=v-h+r,j=p-f+r,w=z-u+r,B=v-i+s,_=p-g+s,E=z-y+s,I=v-.5,T=p-.5,A=z-.5,X=Oe(o),U=Oe(n),xe=Oe(d),Xt=H(H(H(xe)+U)+X),$t=H(H(H(xe+u)+U+f)+X+h),qt=H(H(H(xe+y)+U+g)+X+i),Kt=H(H(H(xe+1)+U+1)+X+1),Ae=.142857142857,mt=Ae*2-0,dt=Ae*.5-1,ke=Ae*1-0;function Se(bt){const vt=bt-49*Math.floor(bt*ke*ke),gt=Math.floor(vt*ke),Ut=Math.floor(vt-7*gt),xt=gt*mt+dt,St=Ut*mt+dt,Pe=1-Math.abs(xt)-Math.abs(St),Pt=xt,Mt=St,Jt=Math.floor(Pt)*2+1,Qt=Math.floor(Mt)*2+1,zt=-(Pe<0?1:0),et=Pt+Jt*zt,tt=Mt+Qt*zt,at=1.79284291400159-.85373472095314*(et*et+tt*tt+Pe*Pe);return[et*at,tt*at,Pe*at]}const re=Se(Xt),se=Se($t),oe=Se(qt),ne=Se(Kt),De=Math.max(.6-(v*v+p*p+z*z),0),Be=Math.max(.6-(M*M+j*j+w*w),0),Fe=Math.max(.6-(B*B+_*_+E*E),0),Ye=Math.max(.6-(I*I+T*T+A*A),0),Ze=De*De,Xe=Be*Be,$e=Fe*Fe,qe=Ye*Ye,Ke=Ze*Ze,Ne=Xe*Xe,Ge=$e*$e,He=qe*qe,Nt=re[0]*v+re[1]*p+re[2]*z,Gt=se[0]*M+se[1]*j+se[2]*w,Ht=oe[0]*B+oe[1]*_+oe[2]*E,Wt=ne[0]*I+ne[1]*T+ne[2]*A,We=Ze*De*Nt,Ue=Xe*Be*Gt,Je=$e*Fe*Ht,Qe=qe*Ye*Wt;let ht=-8*(We*v+Ue*M+Je*B+Qe*I),ft=-8*(We*p+Ue*j+Je*_+Qe*T),yt=-8*(We*z+Ue*w+Je*E+Qe*A);return ht+=Ke*re[0]+Ne*se[0]+Ge*oe[0]+He*ne[0],ft+=Ke*re[1]+Ne*se[1]+Ge*oe[1]+He*ne[1],yt+=Ke*re[2]+Ne*se[2]+Ge*oe[2]+He*ne[2],[ht*42,ft*42,yt*42]}function Lt(a,e,t){nt(t,e,a);const s=nt(a+100,t,e);return nt(e,a+100,t)[1]-s[2]}function ir(a,e,t,r,s,c,o){let n=Lt(a*r,e*r,t*r),d=1,b=r,v=1;for(let p=1;p<s;p++)v*=o,b*=c,d+=v,n+=v*Lt(a*b,e*b,t*b);return n/d}const Q=80,Rt=5,lr=({model:a})=>{const e=F.useRef(null),t=F.useRef(0);return F.useEffect(()=>{const r=e.current;if(!r)return;const s=r.getContext("2d");if(!s)return;const c=ya(()=>{var f,u;const o=((u=(f=a.noiseStrength)==null?void 0:f.x)==null?void 0:u.constantMax)??1,n=a.noiseFrequency??.5,d=a.noiseScrollSpeed??0,b=a.noiseOctaveCount??1,v=a.noiseOctaveIntensityMultiplier??.5,p=a.noiseOctaveFrequencyMultiplier??2;cancelAnimationFrame(t.current);const z=performance.now(),h=i=>{const g=(i-z)/1e3*d,y=s.createImageData(Q,Q),M=y.data;for(let j=0;j<Q;j++){const w=(1-j/Q)*Rt;for(let B=0;B<Q;B++){const _=B/Q*Rt,E=ir(_,w,g,n,b,p,v),I=Math.max(0,Math.min(255,Math.round((E*o*(.5/7)+.5)*255))),T=(j*Q+B)*4;M[T]=I,M[T+1]=I,M[T+2]=I,M[T+3]=255}}s.putImageData(y,0,0),d>0&&(t.current=requestAnimationFrame(h))};t.current=requestAnimationFrame(h)});return()=>{cancelAnimationFrame(t.current),c()}},[a]),l.jsx(ae,{label:" ",labelCss:{visibility:"hidden"},children:l.jsxs("div",{style:{position:"relative",width:80,height:80},children:[l.jsx("canvas",{ref:e,width:Q,height:Q,style:{width:80,height:80,borderRadius:4,border:"1px solid var(--color-border-default, rgba(255,255,255,0.12))",display:"block"}}),l.jsx("span",{style:{position:"absolute",bottom:2,left:0,right:0,textAlign:"center",fontSize:9,color:"rgba(255,255,255,0.6)",textShadow:"0 1px 2px rgba(0,0,0,0.8)",pointerEvents:"none"},children:"Preview"})]})})};var cr=Object.defineProperty,pr=Object.getOwnPropertyDescriptor,P=(a,e,t,r)=>{for(var s=r>1?void 0:r?pr(e,t):e,c=a.length-1,o;c>=0;c--)(o=a[c])&&(s=(r?o(e,t,s):o(s))||s);return r&&s&&cr(e,t,s),s};let x=class extends ba{constructor(e,t){super(e,t);S(this,"_emissionModuleEnabled",!0);S(this,"_emissionShapeModuleEnabled",!0);S(this,"_rotationOverLifetimeModuleEnabled",!1);S(this,"_sizeOverLifetimeModuleEnabled",!1);S(this,"_textureSheetAnimationModuleEnabled",!1);S(this,"_velocityOverLifetimeModuleEnabled",!1);S(this,"_forceOverLifetimeModuleEnabled",!1);S(this,"_limitVelocityOverLifetimeModuleEnabled",!1);S(this,"_colorOverLifetimeModuleEnabled",!1);S(this,"_noiseModuleEnabled",!1);S(this,"material",{refId:"0000202"});S(this,"priority",0);S(this,"velocityScale",0);S(this,"lengthScale",2);S(this,"pivot",{x:0,y:0,z:0});S(this,"renderMode",W.Billboard);S(this,"mesh",null);S(this,"duration",5);S(this,"isLoop",!0);S(this,"startDelay",D("main"));S(this,"startLifetime",D("main",5));S(this,"startSpeed",D("main",5));S(this,"startSize",ce("main",1));S(this,"startRotation",ce("main"));S(this,"flipRotation",0);S(this,"startColor",{module:"main",mode:he.Constant,constantMax:{r:1,g:1,b:1,a:1,intensity:1},constantMin:{r:1,g:1,b:1,a:1,intensity:1}});S(this,"gravityModifier",D("main"));S(this,"simulationSpace",K.Local);S(this,"simulationSpeed",1);S(this,"scalingMode",be.Local);S(this,"playOnEnabled",!0);S(this,"maxParticles",1e3);S(this,"rateOverTime",D("emission",10));S(this,"shape",{class:k.ConeShape,props:{angle:25,radius:1,length:5,emitType:de.Base,enabled:!0}});S(this,"bursts",[]);S(this,"size",ce("sizeOverLifetime",1));S(this,"rotation",ce("rotationOverLifetime",45));S(this,"textureSheetAnimationType",0);S(this,"cycleCount",1);S(this,"tiling",{x:1,y:1});S(this,"frameOverTime",D("textureSheetAnimation",1,0,$.Curve));S(this,"spaceMode",K.Local);S(this,"forceSpaceMode",K.Local);S(this,"velocityX",D("velocityOverLifetime"));S(this,"velocityY",D("velocityOverLifetime"));S(this,"velocityZ",D("velocityOverLifetime"));S(this,"speed",ce("limitVelocityOverLifetime",1));S(this,"limitVelocitySpaceMode",K.Local);S(this,"dampen",0);S(this,"drag",D("limitVelocityOverLifetime"));S(this,"multiplyDragByParticleSize",!1);S(this,"multiplyDragByParticleVelocity",!1);S(this,"forceX",D("forceOverLifetime"));S(this,"forceY",D("forceOverLifetime"));S(this,"forceZ",D("forceOverLifetime"));S(this,"color",_t());S(this,"noisePreview",null);S(this,"noiseStrength",ce("noise",1));S(this,"noiseFrequency",.5);S(this,"noiseScrollSpeed",0);S(this,"noiseOctaveCount",1);S(this,"noiseOctaveIntensityMultiplier",.5);S(this,"noiseOctaveFrequencyMultiplier",2);const r=this.formSchema,s=(o,n,d,b,v,p)=>{const z=m(o);r.addGroup(z,n,{controlOpenKey:d,defaultOpen:p,sectionTitle:{title:z,onToggle:h=>{v==null||v(h),this.root.inspectorFacade.componentChange(this.id,d,h),this.applyBoundPathChange(b,R.Toggle,h)}}})};s("effects.renderer.sections.emission",["rateOverTime","bursts"],"_emissionModuleEnabled","generator.emission.enabled"),s("effects.renderer.sections.shape",["shape"],"_emissionShapeModuleEnabled","generator.emission.shape.enabled",o=>{this.shape.props.enabled=o}),s("effects.renderer.sections.size-over-lifetime",["size"],"_sizeOverLifetimeModuleEnabled","generator.sizeOverLifetime.enabled"),s("effects.renderer.sections.rotation-over-lifetime",["rotation"],"_rotationOverLifetimeModuleEnabled","generator.rotationOverLifetime.enabled"),s("effects.renderer.sections.force-over-lifetime",["forceSpaceMode","forceX","forceY","forceZ"],"_forceOverLifetimeModuleEnabled","generator.forceOverLifetime.enabled"),s("effects.renderer.sections.velocity-over-lifetime",["spaceMode","velocityX","velocityY","velocityZ"],"_velocityOverLifetimeModuleEnabled","generator.velocityOverLifetime.enabled"),s("effects.renderer.sections.limit-velocity-over-lifetime",["speed","limitVelocitySpaceMode","dampen","drag","multiplyDragByParticleSize","multiplyDragByParticleVelocity"],"_limitVelocityOverLifetimeModuleEnabled","generator.limitVelocityOverLifetime.enabled"),s("effects.renderer.sections.texture-sheet-animation",["textureSheetAnimationType","cycleCount","tiling","frameOverTime"],"_textureSheetAnimationModuleEnabled","generator.textureSheetAnimation.enabled"),s("effects.renderer.sections.color-over-lifetime",["color"],"_colorOverLifetimeModuleEnabled","generator.colorOverLifetime.enabled"),s("effects.renderer.sections.noise",["noisePreview","noiseStrength","noiseFrequency","noiseScrollSpeed","noiseOctaveCount","noiseOctaveIntensityMultiplier","noiseOctaveFrequencyMultiplier"],"_noiseModuleEnabled","generator.noise.enabled");const c=m("effects.renderer.sections.rendering");r.addGroup(c,["renderMode","mesh","material","velocityScale","lengthScale","pivot","priority"],{sectionTitle:{title:c}})}applyEmissionShape(e){this.applyBoundPathChange("generator.emission.shape",R.Input,e)}onInitComplete(){this._applyEditorRuntimeState()}_applyRendererMeshFromRef(){this.applyBoundPathChange("mesh",R.AssetPicker,this.mesh??null)}_applyEditorRuntimeState(){const{_engineObject:{generator:e}}=this;if(this.applyBoundPathChange("enabled",R.Toggle,this._enabled),this.applyBoundPathChange("renderMode",R.Select,this.renderMode),e.emission.enabled=this._emissionModuleEnabled,e.emission.shape.enabled=this._emissionShapeModuleEnabled,this.shape.class===k.MeshShape){const t=e.emission.shape,r=this.shape.props.mesh;r?(t.enabled=!1,La(this.root,r).then(()=>{this.applyBoundPathChange("generator.emission.shape.mesh",R.AssetPicker,r),t.enabled=this._emissionShapeModuleEnabled})):this.applyBoundPathChange("generator.emission.shape.mesh",R.Input,Vt.createSphere(this.engineObject.engine))}e.rotationOverLifetime.enabled=this._rotationOverLifetimeModuleEnabled,e.sizeOverLifetime.enabled=this._sizeOverLifetimeModuleEnabled,e.textureSheetAnimation.enabled=this._textureSheetAnimationModuleEnabled,e.velocityOverLifetime.enabled=this._velocityOverLifetimeModuleEnabled,e.limitVelocityOverLifetime.enabled=this._limitVelocityOverLifetimeModuleEnabled,e.forceOverLifetime.enabled=this._forceOverLifetimeModuleEnabled,e.main.simulationSpeed=0,e.colorOverLifetime.enabled=this._colorOverLifetimeModuleEnabled,e.noise.enabled=this._noiseModuleEnabled,this.renderMode===W.Mesh&&this._applyRendererMeshFromRef()}async bindEngineObject(e){e.enabled=!1,await super.bindEngineObject(e)}rebindEngineObject(e){super.rebindEngineObject(e),e.enabled=!1,this._applyEditorRuntimeState()}deserialize(e){var r,s,c;const t=e.props;if(this._enabled=(t==null?void 0:t.enabled)??!0,t!=null&&t.generator){this.priority=t.priority??this.priority,this.velocityScale=t.velocityScale??this.velocityScale,this.lengthScale=t.lengthScale??this.lengthScale,this.pivot=t.pivot??this.pivot,this.renderMode=t.renderMode??this.renderMode,this.mesh=t.mesh??null;const{main:o,emission:n,sizeOverLifetime:d,rotationOverLifetime:b,velocityOverLifetime:v,limitVelocityOverLifetime:p,colorOverLifetime:z,textureSheetAnimation:h,forceOverLifetime:f,noise:u}=t.generator;this.duration=(o==null?void 0:o.duration)??this.duration,this.isLoop=(o==null?void 0:o.isLoop)??this.isLoop,this.startDelay=(o==null?void 0:o.startDelay)??this.startDelay,this.startLifetime=(o==null?void 0:o.startLifetime)??this.startLifetime,this.startSpeed=(o==null?void 0:o.startSpeed)??this.startSpeed,this.startSize.enabled=(o==null?void 0:o.startSize3D)??this.startSize.enabled,this.startSize.x=(o==null?void 0:o.startSizeX)??this.startSize.x,this.startSize.y=(o==null?void 0:o.startSizeY)??this.startSize.y,this.startSize.z=(o==null?void 0:o.startSizeZ)??this.startSize.z,this.startRotation.enabled=(o==null?void 0:o.startRotation3D)??this.startRotation.enabled,this.startRotation.x=(o==null?void 0:o.startRotationX)??this.startRotation.x,this.startRotation.y=(o==null?void 0:o.startRotationY)??this.startRotation.y,this.startRotation.z=(o==null?void 0:o.startRotationZ)??this.startRotation.z,this.flipRotation=(o==null?void 0:o.flipRotation)??this.flipRotation,this.startColor=(o==null?void 0:o.startColor)??this.startColor,this.gravityModifier=(o==null?void 0:o.gravityModifier)??this.gravityModifier,this.simulationSpace=(o==null?void 0:o.simulationSpace)??this.simulationSpace,this.simulationSpeed=(o==null?void 0:o.simulationSpeed)??this.simulationSpeed,this.scalingMode=(o==null?void 0:o.scalingMode)??this.scalingMode,this.playOnEnabled=(o==null?void 0:o.playOnEnabled)??this.playOnEnabled,this.maxParticles=(o==null?void 0:o.maxParticles)??this.maxParticles,this._emissionModuleEnabled=(n==null?void 0:n.enabled)??this._emissionModuleEnabled,this.rateOverTime=(n==null?void 0:n.rateOverTime)??this.rateOverTime,(n==null?void 0:n.shape)===null||((r=n==null?void 0:n.shape)==null?void 0:r.class)==="Null"?(this.shape={class:k.ConeShape,props:{angle:25,radius:1,length:5,emitType:de.Base,enabled:!1}},this._emissionShapeModuleEnabled=!1):(this.shape=(n==null?void 0:n.shape)??this.shape,this._emissionShapeModuleEnabled=((c=(s=n==null?void 0:n.shape)==null?void 0:s.props)==null?void 0:c.enabled)??this._emissionShapeModuleEnabled),this.bursts=Array.isArray(n==null?void 0:n.bursts)?n.bursts.map(y=>(Na(y),y)):[],this._sizeOverLifetimeModuleEnabled=(d==null?void 0:d.enabled)??this._sizeOverLifetimeModuleEnabled,this.size.enabled=(d==null?void 0:d.separateAxes)??this.size.enabled,this.size.x=d!=null&&d.sizeX?{...d.sizeX,module:"sizeOverLifetime"}:{...L(this.size.x),module:"sizeOverLifetime"},this.size.y=d!=null&&d.sizeY?{...d.sizeY,module:"sizeOverLifetime"}:{...L(this.size.y),module:"sizeOverLifetime"},this.size.z=d!=null&&d.sizeZ?{...d.sizeZ,module:"sizeOverLifetime"}:{...L(this.size.z),module:"sizeOverLifetime"},this._rotationOverLifetimeModuleEnabled=(b==null?void 0:b.enabled)??this._rotationOverLifetimeModuleEnabled,this.rotation.enabled=(b==null?void 0:b.separateAxes)??this.rotation.enabled,this.rotation.x=b!=null&&b.rotationX?{...b.rotationX,module:"rotationOverLifetime"}:{...L(this.rotation.x),module:"rotationOverLifetime"},this.rotation.y=b!=null&&b.rotationY?{...b.rotationY,module:"rotationOverLifetime"}:{...L(this.rotation.y),module:"rotationOverLifetime"},this.rotation.z=b!=null&&b.rotationZ?{...b.rotationZ,module:"rotationOverLifetime"}:{...L(this.rotation.z),module:"rotationOverLifetime"},this._velocityOverLifetimeModuleEnabled=(v==null?void 0:v.enabled)??this._velocityOverLifetimeModuleEnabled,this.velocityX=(v==null?void 0:v.velocityX)??L(this.velocityX),this.velocityY=(v==null?void 0:v.velocityY)??L(this.velocityY),this.velocityZ=(v==null?void 0:v.velocityZ)??L(this.velocityZ),this.spaceMode=(v==null?void 0:v.space)??this.spaceMode,this._limitVelocityOverLifetimeModuleEnabled=(p==null?void 0:p.enabled)??this._limitVelocityOverLifetimeModuleEnabled,this.speed.enabled=(p==null?void 0:p.separateAxes)??this.speed.enabled;const i=(p==null?void 0:p.speedX)??(p==null?void 0:p.speed);this.speed.x=i?{...i,module:"limitVelocityOverLifetime"}:{...L(this.speed.x),module:"limitVelocityOverLifetime"},this.speed.y=p!=null&&p.speedY?{...p.speedY,module:"limitVelocityOverLifetime"}:{...L(this.speed.y),module:"limitVelocityOverLifetime"},this.speed.z=p!=null&&p.speedZ?{...p.speedZ,module:"limitVelocityOverLifetime"}:{...L(this.speed.z),module:"limitVelocityOverLifetime"},this.dampen=(p==null?void 0:p.dampen)??this.dampen,this.drag=p!=null&&p.drag?{...p.drag,module:"limitVelocityOverLifetime"}:D("limitVelocityOverLifetime"),this.multiplyDragByParticleSize=(p==null?void 0:p.multiplyDragByParticleSize)??this.multiplyDragByParticleSize,this.multiplyDragByParticleVelocity=(p==null?void 0:p.multiplyDragByParticleVelocity)??this.multiplyDragByParticleVelocity,this.limitVelocitySpaceMode=(p==null?void 0:p.space)??this.limitVelocitySpaceMode,this._forceOverLifetimeModuleEnabled=(f==null?void 0:f.enabled)??this._forceOverLifetimeModuleEnabled,this.forceX=(f==null?void 0:f.forceX)??D("forceOverLifetime"),this.forceY=(f==null?void 0:f.forceY)??D("forceOverLifetime"),this.forceZ=(f==null?void 0:f.forceZ)??D("forceOverLifetime"),this.forceSpaceMode=(f==null?void 0:f.space)??this.forceSpaceMode,z?(this._colorOverLifetimeModuleEnabled=z.enabled??this._colorOverLifetimeModuleEnabled,this.color=z.color??this.color):(this._colorOverLifetimeModuleEnabled=!0,this.color=_t()),this._textureSheetAnimationModuleEnabled=(h==null?void 0:h.enabled)??this._textureSheetAnimationModuleEnabled,this.textureSheetAnimationType=(h==null?void 0:h.type)??this.textureSheetAnimationType,this.cycleCount=(h==null?void 0:h.cycleCount)??this.cycleCount,this.tiling=(h==null?void 0:h.tiling)??this.tiling,this.frameOverTime=(h==null?void 0:h.frameOverTime)??this.frameOverTime,this._noiseModuleEnabled=(u==null?void 0:u.enabled)??this._noiseModuleEnabled,this.noiseStrength.enabled=(u==null?void 0:u.separateAxes)??this.noiseStrength.enabled;const g=u==null?void 0:u.strengthX;this.noiseStrength.x=g?{...g,module:"noise"}:{...L(this.noiseStrength.x),module:"noise"},this.noiseStrength.y=u!=null&&u.strengthY?{...u.strengthY,module:"noise"}:{...L(this.noiseStrength.y),module:"noise"},this.noiseStrength.z=u!=null&&u.strengthZ?{...u.strengthZ,module:"noise"}:{...L(this.noiseStrength.z),module:"noise"},this.noiseFrequency=(u==null?void 0:u.frequency)??this.noiseFrequency,this.noiseScrollSpeed=(u==null?void 0:u.scrollSpeed)??this.noiseScrollSpeed,this.noiseOctaveCount=(u==null?void 0:u.octaveCount)??this.noiseOctaveCount,this.noiseOctaveIntensityMultiplier=(u==null?void 0:u.octaveIntensityMultiplier)??this.noiseOctaveIntensityMultiplier,this.noiseOctaveFrequencyMultiplier=(u==null?void 0:u.octaveFrequencyMultiplier)??this.noiseOctaveFrequencyMultiplier}super.deserialize(e)}toJSON(){const e=this.bursts.map(r=>{var c;if(((c=r==null?void 0:r.constructParams)==null?void 0:c[2])!==1/0)return r;const s=L(r);return s.constructParams[2]=null,s});return{type:this.type,props:va({enabled:this.enabled,priority:this.priority,velocityScale:this.velocityScale,lengthScale:this.lengthScale,pivot:this.pivot,renderMode:this.renderMode,mesh:this.mesh,material:this.material,generator:{main:{duration:this.duration,isLoop:this.isLoop,startDelay:this.startDelay,startLifetime:this.startLifetime,startSpeed:this.startSpeed,startSize3D:this.startSize.enabled,startSizeX:this.startSize.x,startSizeY:this.startSize.y,startSizeZ:this.startSize.z,startRotation3D:this.startRotation.enabled,startRotationX:this.startRotation.x,startRotationY:this.startRotation.y,startRotationZ:this.startRotation.z,flipRotation:this.flipRotation,startColor:this.startColor,gravityModifier:this.gravityModifier,simulationSpace:this.simulationSpace,simulationSpeed:this.simulationSpeed,scalingMode:this.scalingMode,playOnEnabled:this.playOnEnabled,maxParticles:this.maxParticles},emission:{enabled:this._emissionModuleEnabled,rateOverTime:this.rateOverTime,shape:this.shape,bursts:e},sizeOverLifetime:{enabled:this._sizeOverLifetimeModuleEnabled,separateAxes:this.size.enabled,sizeX:this.size.x,sizeY:this.size.y,sizeZ:this.size.z},rotationOverLifetime:{enabled:this._rotationOverLifetimeModuleEnabled,separateAxes:this.rotation.enabled,rotationX:this.rotation.x,rotationY:this.rotation.y,rotationZ:this.rotation.z},velocityOverLifetime:{enabled:this._velocityOverLifetimeModuleEnabled,space:this.spaceMode,velocityX:this.velocityX,velocityY:this.velocityY,velocityZ:this.velocityZ},limitVelocityOverLifetime:{enabled:this._limitVelocityOverLifetimeModuleEnabled,separateAxes:this.speed.enabled,speedX:this.speed.x,speedY:this.speed.y,speedZ:this.speed.z,dampen:this.dampen,drag:this.drag,multiplyDragByParticleSize:this.multiplyDragByParticleSize,multiplyDragByParticleVelocity:this.multiplyDragByParticleVelocity,space:this.limitVelocitySpaceMode},forceOverLifetime:{enabled:this._forceOverLifetimeModuleEnabled,space:this.forceSpaceMode,forceX:this.forceX,forceY:this.forceY,forceZ:this.forceZ},colorOverLifetime:{enabled:this._colorOverLifetimeModuleEnabled,color:this.color},textureSheetAnimation:{enabled:this._textureSheetAnimationModuleEnabled,type:this.textureSheetAnimationType,cycleCount:this.cycleCount,tiling:this.tiling,frameOverTime:this.frameOverTime},noise:{enabled:this._noiseModuleEnabled,separateAxes:this.noiseStrength.enabled,strengthX:this.noiseStrength.x,strengthY:this.noiseStrength.y,strengthZ:this.noiseStrength.z,frequency:this.noiseFrequency,scrollSpeed:this.noiseScrollSpeed,octaveCount:this.noiseOctaveCount,octaveIntensityMultiplier:this.noiseOctaveIntensityMultiplier,octaveFrequencyMultiplier:this.noiseOctaveFrequencyMultiplier}}})}}};P([J],x.prototype,"_emissionModuleEnabled",2);P([J],x.prototype,"_emissionShapeModuleEnabled",2);P([J],x.prototype,"_rotationOverLifetimeModuleEnabled",2);P([J],x.prototype,"_sizeOverLifetimeModuleEnabled",2);P([J],x.prototype,"_textureSheetAnimationModuleEnabled",2);P([J],x.prototype,"_velocityOverLifetimeModuleEnabled",2);P([J],x.prototype,"_forceOverLifetimeModuleEnabled",2);P([J],x.prototype,"_limitVelocityOverLifetimeModuleEnabled",2);P([J],x.prototype,"_colorOverLifetimeModuleEnabled",2);P([J],x.prototype,"_noiseModuleEnabled",2);P([V({engineKey:"setMaterial",setPath:"setMaterial()",getPath:"getMaterial()",valueType:ga.ReferResource,getEngineValue:a=>a.getMaterial()}),C({type:R.AssetPicker,assetType:"Material",customFilter:a=>{var e;return((e=a.engineObject.shader)==null?void 0:e.name)==="Effect/Particle"},priority:-100,label:m("effects.renderer.material.label"),info:m("effects.renderer.material.info")}),O()],x.prototype,"material",2);P([C({bindPath:"priority",min:0,step:1,dragStep:1,priority:-100,label:m("effects.renderer.priority.label"),info:m("effects.renderer.priority.info")}),O()],x.prototype,"priority",2);P([C({bindPath:"velocityScale",priority:-100,label:m("effects.renderer.velocity-scale.label"),info:m("effects.renderer.velocity-scale.info"),when:a=>a.renderMode===W.StretchBillboard}),O()],x.prototype,"velocityScale",2);P([C({bindPath:"lengthScale",priority:-100,label:m("effects.renderer.length-scale.label"),info:m("effects.renderer.length-scale.info"),when:a=>a.renderMode===W.StretchBillboard}),O()],x.prototype,"lengthScale",2);P([C({type:R.Vector3,bindPath:"pivot",label:m("effects.renderer.pivot.label"),priority:-100}),O()],x.prototype,"pivot",2);P([V({getPath:"renderMode",setPath:"renderMode"}),C({type:R.Select,value:W.Billboard,label:m("effects.renderer.render-mode.label"),options:[{label:m("effects.renderer.render-mode.options.billboard"),value:W.Billboard},{label:m("effects.renderer.render-mode.options.stretch-billboard"),value:W.StretchBillboard},{label:m("effects.renderer.render-mode.options.horizontal-billboard"),value:W.HorizontalBillboard},{label:m("effects.renderer.render-mode.options.mesh"),value:W.Mesh},{label:m("effects.renderer.render-mode.options.none"),value:W.None}],onChange(a){a.renderMode===W.Mesh&&a._applyRendererMeshFromRef()},priority:-100}),O()],x.prototype,"renderMode",2);P([C({type:R.AssetPicker,assetType:"Mesh",label:m("effects.renderer.mesh.label"),info:m("effects.renderer.mesh.info"),when:a=>a.renderMode===W.Mesh,onChange:async(a,e,t)=>{a.mesh=t?t.getCurrentRef():null;try{await a.applyBoundPathChange("mesh",R.AssetPicker,a.mesh)}catch(r){console.warn(r)}},priority:-100}),O()],x.prototype,"mesh",2);P([V({getPath:"generator.main.duration",setPath:"generator.main.duration"}),C({bindPath:"generator.main.duration",min:.05,step:.05,dragStep:.05,label:m("effects.renderer.duration.label"),info:m("effects.renderer.duration.info")}),O()],x.prototype,"duration",2);P([V({getPath:"generator.main.isLoop",setPath:"generator.main.isLoop"}),C({bindPath:"generator.main.isLoop",label:m("effects.renderer.loop.label"),info:m("effects.renderer.loop.info")}),O()],x.prototype,"isLoop",2);P([C({customComponent:N,min:0,yRangeMode:"positive",onChange:G,info:m("effects.renderer.start.delay.info"),label:m("effects.renderer.start.delay.label")}),O()],x.prototype,"startDelay",2);P([C({customComponent:N,onChange:G,min:1e-4,yRangeMode:"positive",label:m("effects.renderer.start.lifetime.label"),info:m("effects.renderer.start.lifetime.info")}),O()],x.prototype,"startLifetime",2);P([C({customComponent:N,onChange:G,label:m("effects.renderer.start.speed.label")}),O()],x.prototype,"startSpeed",2);P([C({module:"main",toggleProps:"startSize3D",axisX:"startSizeX",axisY:"startSizeY",axisZ:"startSizeZ",mainAxis:"x",customComponent:fe,onChange:ye("startSize3D"),label:m("effects.renderer.start.size.label"),info:m("effects.renderer.start.size.info"),min:0,yRangeMode:"positive"}),O()],x.prototype,"startSize",2);P([C({module:"main",toggleProps:"startRotation3D",axisX:"startRotationX",axisY:"startRotationY",axisZ:"startRotationZ",mainAxis:"z",customComponent:fe,onChange:ye("startRotation3D"),label:m("effects.renderer.start.rotation.label"),info:m("effects.renderer.start.rotation.info"),step:1}),O()],x.prototype,"startRotation",2);P([V({getPath:"generator.main.flipRotation",setPath:"generator.main.flipRotation"}),C({bindPath:"generator.main.flipRotation",min:0,max:1,step:.05,dragStep:.05,label:m("effects.renderer.flip-rotation.label")}),O()],x.prototype,"flipRotation",2);P([C({customComponent:ar,onChange:rr,label:m("effects.renderer.start.color.label")}),O()],x.prototype,"startColor",2);P([C({customComponent:N,info:m("effects.renderer.gravity-modifier.info"),onChange:G,label:m("effects.renderer.gravity-modifier.label")}),O()],x.prototype,"gravityModifier",2);P([V({getPath:"generator.main.simulationSpace",setPath:"generator.main.simulationSpace"}),C({type:R.Select,bindPath:"generator.main.simulationSpace",value:K.Local,label:m("effects.renderer.simulation.space.label"),info:m("effects.renderer.simulation.space.info"),options:[{label:m("effects.renderer.simulation.space.options.local"),value:K.Local},{label:m("effects.renderer.simulation.space.options.world"),value:K.World}]}),O()],x.prototype,"simulationSpace",2);P([V({getPath:"generator.main.simulationSpeed",setPath:"generator.main.simulationSpeed"}),C({bindPath:"generator.main.simulationSpeed",step:.05,dragStep:.05,label:m("effects.renderer.simulation.speed.label"),info:m("effects.renderer.simulation.speed.info")}),O()],x.prototype,"simulationSpeed",2);P([V({getPath:"generator.main.scalingMode",setPath:"generator.main.scalingMode"}),C({type:R.Select,bindPath:"generator.main.scalingMode",label:m("effects.renderer.scaling-mode.label"),info:m("effects.renderer.scaling-mode.info"),value:be.Local,options:[{label:m("effects.renderer.scaling-mode.options.world"),value:be.World},{label:m("effects.renderer.scaling-mode.options.local"),value:be.Local},{label:m("effects.renderer.scaling-mode.options.shape"),value:be.Shape}]}),O()],x.prototype,"scalingMode",2);P([V({getPath:"generator.main.playOnEnabled",setPath:"generator.main.playOnEnabled"}),C({type:R.Toggle,bindPath:"generator.main.playOnEnabled",label:m("effects.renderer.play-on-enabled.label"),info:m("effects.renderer.play-on-enabled.info")}),O()],x.prototype,"playOnEnabled",2);P([V({getPath:"generator.main.maxParticles",setPath:"generator.main.maxParticles"}),C({type:R.Number,bindPath:"generator.main.maxParticles",min:1,dragStep:1,label:m("effects.renderer.max-particles.label"),info:m("effects.renderer.max-particles.info")}),O()],x.prototype,"maxParticles",2);P([C({customComponent:N,onChange:G,min:0,yRangeMode:"positive",label:m("effects.renderer.rate-over-time.label"),info:m("effects.renderer.rate-over-time.info")}),O()],x.prototype,"rateOverTime",2);P([C({customComponent:qa,onChange:Za}),O()],x.prototype,"shape",2);P([O(),C({label:m("effects.renderer.bursts.label"),info:m("effects.renderer.bursts.info"),customComponent:Ja,onChange:Qa})],x.prototype,"bursts",2);P([C({module:"sizeOverLifetime",toggleProps:"separateAxes",toggleLabel:"effects.curve.separate-axes",axisX:"sizeX",axisY:"sizeY",axisZ:"sizeZ",mainAxis:"x",customComponent:fe,onChange:ye("separateAxes"),min:0,yRangeMode:"positive",label:m("effects.renderer.over-lifetime.size.label")}),O()],x.prototype,"size",2);P([C({module:"rotationOverLifetime",toggleProps:"separateAxes",toggleLabel:"effects.curve.separate-axes",axisX:"rotationX",axisY:"rotationY",axisZ:"rotationZ",mainAxis:"z",customComponent:fe,onChange:ye("separateAxes"),step:1,yTickScale:45,label:m("effects.renderer.over-lifetime.rotation.label")}),O()],x.prototype,"rotation",2);P([V({getPath:"generator.textureSheetAnimation.type",setPath:"generator.textureSheetAnimation.type"}),C({type:R.Select,value:0,label:m("effects.renderer.texture-sheet.type.label"),info:m("effects.renderer.texture-sheet.type.info"),options:[{label:m("effects.renderer.texture-sheet.type.options.whole-sheet"),value:0},{label:m("effects.renderer.texture-sheet.type.options.single-row"),value:1}]}),O()],x.prototype,"textureSheetAnimationType",2);P([V({getPath:"generator.textureSheetAnimation.cycleCount",setPath:"generator.textureSheetAnimation.cycleCount"}),C({bindPath:"generator.textureSheetAnimation.cycleCount",min:1e-4,step:1,dragStep:1,label:m("effects.renderer.texture-sheet.cycle-count.label"),info:m("effects.renderer.texture-sheet.cycle-count.info")}),O()],x.prototype,"cycleCount",2);P([C({type:R.Vector2,min:1,label:m("effects.renderer.texture-sheet.tiling.label"),info:m("effects.renderer.texture-sheet.tiling.info"),onChange(a,e,t){a.applyBoundPathChange("generator.textureSheetAnimation.tiling",R.Vector2,t)}}),O()],x.prototype,"tiling",2);P([C({customComponent:N,onChange:G,min:0,max:1,yRangeMode:"positive",label:m("effects.renderer.over-lifetime.frame.label")}),O()],x.prototype,"frameOverTime",2);P([V({getPath:"generator.velocityOverLifetime.space",setPath:"generator.velocityOverLifetime.space"}),C({type:R.Select,bindPath:"generator.velocityOverLifetime.space",value:0,label:m("effects.renderer.space-mode.label"),info:m("effects.renderer.space-mode.info"),options:[{label:m("effects.renderer.space-mode.options.local"),value:K.Local},{label:m("effects.renderer.space-mode.options.world"),value:K.World}]}),O()],x.prototype,"spaceMode",2);P([V({getPath:"generator.forceOverLifetime.space",setPath:"generator.forceOverLifetime.space"}),C({type:R.Select,bindPath:"generator.forceOverLifetime.space",value:0,label:m("effects.renderer.space-mode.label"),info:m("effects.renderer.space-mode.info-force"),options:[{label:"Local",value:K.Local},{label:"World",value:K.World}]}),O()],x.prototype,"forceSpaceMode",2);P([C({customComponent:N,onChange:G,label:m("effects.renderer.velocity.x.label"),info:m("effects.renderer.velocity.x.info")}),O()],x.prototype,"velocityX",2);P([C({customComponent:N,onChange:G,label:m("effects.renderer.velocity.y.label")}),O()],x.prototype,"velocityY",2);P([C({customComponent:N,onChange:G,label:m("effects.renderer.velocity.z.label")}),O()],x.prototype,"velocityZ",2);P([C({module:"limitVelocityOverLifetime",toggleProps:"separateAxes",toggleLabel:"effects.curve.separate-axes",axisX:"speedX",axisY:"speedY",axisZ:"speedZ",mainAxis:"x",customComponent:fe,onChange:ye("separateAxes"),min:0,yRangeMode:"positive",label:m("effects.renderer.limit-velocity.limit.label")}),O()],x.prototype,"speed",2);P([V({getPath:"generator.limitVelocityOverLifetime.space",setPath:"generator.limitVelocityOverLifetime.space"}),C({type:R.Select,bindPath:"generator.limitVelocityOverLifetime.space",value:0,when:a=>a.speed.enabled,label:m("effects.renderer.space-mode.label"),info:m("effects.renderer.limit-velocity.space.info"),options:[{label:m("effects.renderer.space-mode.options.local"),value:K.Local},{label:m("effects.renderer.space-mode.options.world"),value:K.World}]}),O()],x.prototype,"limitVelocitySpaceMode",2);P([V({getPath:"generator.limitVelocityOverLifetime.dampen",setPath:"generator.limitVelocityOverLifetime.dampen"}),C({bindPath:"generator.limitVelocityOverLifetime.dampen",min:0,max:1,step:.01,dragStep:.01,label:m("effects.renderer.limit-velocity.dampen.label"),info:m("effects.renderer.limit-velocity.dampen.info")}),O()],x.prototype,"dampen",2);P([C({customComponent:N,onChange:G,min:0,yRangeMode:"positive",label:m("effects.renderer.limit-velocity.drag.label"),info:m("effects.renderer.limit-velocity.drag.info")}),O()],x.prototype,"drag",2);P([V({getPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleSize",setPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleSize"}),C({type:R.Toggle,bindPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleSize",label:m("effects.renderer.limit-velocity.multiply-drag-by-size.label"),info:m("effects.renderer.limit-velocity.multiply-drag-by-size.info")}),O()],x.prototype,"multiplyDragByParticleSize",2);P([V({getPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleVelocity",setPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleVelocity"}),C({type:R.Toggle,bindPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleVelocity",label:m("effects.renderer.limit-velocity.multiply-drag-by-velocity.label"),info:m("effects.renderer.limit-velocity.multiply-drag-by-velocity.info")}),O()],x.prototype,"multiplyDragByParticleVelocity",2);P([C({customComponent:N,onChange:G}),O()],x.prototype,"forceX",2);P([C({customComponent:N,onChange:G}),O()],x.prototype,"forceY",2);P([C({customComponent:N,onChange:G}),O()],x.prototype,"forceZ",2);P([C({customComponent:or,onChange:nr,label:m("effects.renderer.color-over-lifetime.label")}),O()],x.prototype,"color",2);P([C({customComponent:lr,label:m("effects.renderer.noise.preview.label")})],x.prototype,"noisePreview",2);P([C({module:"noise",toggleProps:"separateAxes",toggleLabel:"effects.curve.separate-axes",axisX:"strengthX",axisY:"strengthY",axisZ:"strengthZ",mainAxis:"x",customComponent:fe,onChange:(a,e,t)=>{ye("separateAxes")(a,"strength",t)},label:m("effects.renderer.noise.strength.label")}),O()],x.prototype,"noiseStrength",2);P([V({getPath:"generator.noise.frequency",setPath:"generator.noise.frequency"}),C({bindPath:"generator.noise.frequency",min:1e-6,step:.1,dragStep:.1,label:m("effects.renderer.noise.frequency.label")}),O()],x.prototype,"noiseFrequency",2);P([V({getPath:"generator.noise.scrollSpeed",setPath:"generator.noise.scrollSpeed"}),C({bindPath:"generator.noise.scrollSpeed",min:0,step:.01,dragStep:.01,label:m("effects.renderer.noise.scroll-speed.label")}),O()],x.prototype,"noiseScrollSpeed",2);P([V({getPath:"generator.noise.octaveCount",setPath:"generator.noise.octaveCount"}),C({bindPath:"generator.noise.octaveCount",min:1,max:3,step:1,dragStep:1,label:m("effects.renderer.noise.octave-count.label")}),O()],x.prototype,"noiseOctaveCount",2);P([V({getPath:"generator.noise.octaveIntensityMultiplier",setPath:"generator.noise.octaveIntensityMultiplier"}),C({bindPath:"generator.noise.octaveIntensityMultiplier",min:0,max:1,step:.01,dragStep:.01,when:a=>a.noiseOctaveCount>1,label:m("effects.renderer.noise.octave-intensity-multiplier.label")}),O()],x.prototype,"noiseOctaveIntensityMultiplier",2);P([V({getPath:"generator.noise.octaveFrequencyMultiplier",setPath:"generator.noise.octaveFrequencyMultiplier"}),C({bindPath:"generator.noise.octaveFrequencyMultiplier",min:1,max:4,step:.1,dragStep:.1,when:a=>a.noiseOctaveCount>1,label:m("effects.renderer.noise.octave-frequency-multiplier.label")}),O()],x.prototype,"noiseOctaveFrequencyMultiplier",2);x=P([xa({type:"ParticleRenderer",customInspector:_a,componentsMenu:{group:"effects",label:m("component.particle-renderer.title")}})],x);export{x as ParticleRendererComponent};
26
+ */var Ta=Oa("outline","equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]);const _a=Z(function(a){const[e,t]=F.useState(null),r=a.data,{assetStore:s,inspectorFacade:c}=At();return F.useEffect(()=>{s.getAssetByRef(r.material).then(o=>{t(o)})},[r.material]),l.jsxs(l.Fragment,{children:[l.jsx(aa.List,{model:r,configs:r.formSchema.items,onModelChange:Sa("component",r.id,c,r)}),e&&l.jsx(Pa,{materialAsset:e})]})});async function La(a,e){await a.assetStore.getAssetByRef(e)}var k=(a=>(a.BoxShape="BoxShape",a.CircleShape="CircleShape",a.ConeShape="ConeShape",a.HemisphereShape="HemisphereShape",a.SphereShape="SphereShape",a.MeshShape="MeshShape",a))(k||{});function Y(a,e){return{class:a.class,props:{...a.props,...e}}}const Ra=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsx(l.Fragment,{children:l.jsx(ze,{label:t("effects.shape.size"),value:{x:a.props.size.x,y:a.props.size.y,z:a.props.size.z},onChange:(r,s)=>{const c=Y(a,{size:{...a.props.size,[s]:r[s]}});e==null||e("shape",c)}})})}),Va=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsxs(l.Fragment,{children:[l.jsx(ee,{label:t("effects.shape.radius"),min:1e-4,step:.05,dragStep:.05,value:a.props.radius,onChange:r=>{const s=Y(a,{radius:r});e==null||e("shape",s)}}),l.jsx(ee,{label:t("effects.shape.arc"),min:0,max:360,value:a.props.arc,onChange:r=>{const s=Y(a,{arc:r});e==null||e("shape",s)}}),l.jsx(ct,{label:t("effects.shape.arc-mode.label"),options:[{label:t("effects.shape.loop"),value:Ce.Loop},{label:t("effects.shape.random"),value:Ce.Random}],value:a.props.arcMode,onChange:r=>{const s=Y(a,{arcMode:r});e==null||e("shape",s)}}),a.props.arcMode===Ce.Loop?l.jsx(ee,{label:t("effects.shape.arc-speed.label"),step:.1,dragStep:.1,value:a.props.arcSpeed,onChange:r=>{const s=Y(a,{arcSpeed:r});e==null||e("shape",s)}}):null]})}),Ia=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsxs(l.Fragment,{children:[l.jsx(ct,{label:t("effects.shape.emit-type.label"),options:[{label:t("effects.shape.cone-base"),value:me.Base},{label:t("effects.shape.volume"),value:me.Volume}],value:a.props.emitType,onChange:r=>{const s=Y(a,{emitType:r});e==null||e("shape",s)}}),l.jsx(ee,{label:t("effects.shape.angle"),min:1e-4,max:90,step:.05,dragStep:.05,value:a.props.angle,onChange:r=>{const s=Y(a,{angle:r});e==null||e("shape",s)}}),l.jsx(ee,{label:t("effects.shape.radius"),min:1e-4,step:.05,dragStep:.05,value:a.props.radius,onChange:r=>{const s=Y(a,{radius:r});e==null||e("shape",s)}}),l.jsx(ee,{label:t("effects.shape.length"),min:1e-4,step:.1,dragStep:.1,value:a.props.length,disabled:a.props.emitType===me.Base,onChange:r=>{const s=Y(a,{length:r});e==null||e("shape",s)}})]})}),Aa=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsx(l.Fragment,{children:l.jsx(ee,{label:t("effects.shape.radius"),min:1e-4,step:.05,dragStep:.05,value:a.props.radius,onChange:r=>{const s=Y(a,{radius:r});e==null||e("shape",s)}})})}),ka=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsx(l.Fragment,{children:l.jsx(ee,{label:t("effects.shape.radius"),min:1e-4,step:.05,dragStep:.05,value:a.props.radius,onChange:r=>{const s=Y(a,{radius:r});e==null||e("shape",s)}})})}),Da=Z(({item:a,onModelChange:e})=>{const{t}=q(),{assetStore:r}=At(),s=Object.values(r.assets).filter(n=>n instanceof Ma),[c,o]=F.useState("");return F.useEffect(()=>{let n=!1;return(async()=>{if(!a.props.mesh){o("");return}try{const b=await r.getAssetByRef(a.props.mesh);n||o((b==null?void 0:b.name)??"")}catch{n||o("")}})(),()=>{n=!0}},[r,a.props.mesh]),l.jsx(ra,{label:t("effects.renderer.render-mode.options.mesh"),assets:s,dropLayer:0,value:c,onSelect:async n=>{o(n.name);const m=!!n.engineObject;m||sa.error("Mesh asset is not initialized");const b={class:a.class,props:{...a.props,mesh:n.getCurrentRef(),enabled:m}};e==null||e("shape",b)}})}),Ba=Z(({item:a,onModelChange:e})=>{const{t}=q();return l.jsx(ee,{label:t("effects.shape.random-direction-amount"),info:t("effects.shape.random-direction-amount-tip"),min:0,step:1,dragStep:.05,value:a.props.randomDirectionAmount||0,onChange:r=>{const s=Y(a,{randomDirectionAmount:r});e==null||e("shape",s)}})}),Fa=Z(({item:a,onModelChange:e})=>{const{t}=q(),r=a.props.position??{x:0,y:0,z:0},s=a.props.rotation??{x:0,y:0,z:0},c=a.props.scale??{x:1,y:1,z:1};return l.jsxs(l.Fragment,{children:[l.jsx(ze,{label:t("effects.shape.position"),value:{x:r.x,y:r.y,z:r.z},onChange:(o,n)=>{const m=Y(a,{position:{x:r.x,y:r.y,z:r.z,[n]:o[n]},rotation:{x:s.x,y:s.y,z:s.z},scale:{x:c.x,y:c.y,z:c.z}});e==null||e("shape",m)}}),l.jsx(ze,{label:t("effects.shape.rotation"),value:{x:s.x,y:s.y,z:s.z},onChange:(o,n)=>{const m=Y(a,{position:{x:r.x,y:r.y,z:r.z},rotation:{x:s.x,y:s.y,z:s.z,[n]:o[n]},scale:{x:c.x,y:c.y,z:c.z}});e==null||e("shape",m)}}),l.jsx(ze,{label:t("effects.shape.scale"),value:{x:c.x,y:c.y,z:c.z},onChange:(o,n)=>{const m=Y(a,{position:{x:r.x,y:r.y,z:r.z},rotation:{x:s.x,y:s.y,z:s.z},scale:{x:c.x,y:c.y,z:c.z,[n]:o[n]}});e==null||e("shape",m)}})]})}),it=new Map;function Ya(a,e){let t;switch(e.class){case k.BoxShape:{t=new pa;const r=t.size;r.copyFrom(e.props.size),t.size=r;break}case k.CircleShape:{t=new ca,t.radius=e.props.radius,t.arc=e.props.arc,t.arcMode=e.props.arcMode,t.arcSpeed=e.props.arcSpeed;break}case k.ConeShape:{t=new la,t.angle=e.props.angle,t.radius=e.props.radius,t.length=e.props.length,t.emitType=e.props.emitType;break}case k.HemisphereShape:{t=new ia,t.radius=e.props.radius;break}case k.SphereShape:{t=new na,t.radius=e.props.radius;break}case k.MeshShape:{t=new oa;const r=e.props.mesh;if(r!=null&&r.refId){const s=a.root.assetStore.assets[r.refId];t.mesh=s==null?void 0:s.engineObject}t.mesh||(t.mesh=Vt.createSphere(a.engineObject.engine));break}}if(t){if(e.props.randomDirectionAmount=e.props.randomDirectionAmount??0,t.randomDirectionAmount=e.props.randomDirectionAmount,t.enabled=e.props.enabled,e.props.position){const r=e.props.position;t.position.set(r.x,r.y,r.z)}if(e.props.rotation){const r=e.props.rotation;t.rotation.set(r.x,r.y,r.z)}if(e.props.scale){const r=e.props.scale;t.scale.set(r.x,r.y,r.z)}}return t}const Za=(a,e,t)=>{let r=it.get(`${a.id}-${t.class}`);r&&(r=JSON.parse(r),it.delete(`${a.id}-${t.class}`),Object.assign(t.props,r));const s=Ya(a,t);s&&a.applyEmissionShape(s)},Xa={BoxShape:Ra,CircleShape:Va,ConeShape:Ia,HemisphereShape:Aa,SphereShape:ka,MeshShape:Da},$a={BoxShape:{class:k.BoxShape,props:{size:{x:1,y:1,z:1},randomDirectionAmount:0,enabled:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}},CircleShape:{class:k.CircleShape,props:{radius:1,arc:360,arcMode:Ce.Random,arcSpeed:1,randomDirectionAmount:0,enabled:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}},ConeShape:{class:k.ConeShape,props:{angle:25,radius:1,length:5,emitType:me.Base,randomDirectionAmount:0,enabled:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}},HemisphereShape:{class:k.HemisphereShape,props:{radius:1,randomDirectionAmount:0,enabled:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}},SphereShape:{class:k.SphereShape,props:{radius:1,randomDirectionAmount:0,enabled:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}},MeshShape:{class:k.MeshShape,props:{randomDirectionAmount:0,enabled:!0,mesh:void 0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:1}}}},qa=Z(({model:a,onModelChange:e})=>{const{t}=q(),r=a.shape;if(!r.class)return;const s=Xa[r.class];return l.jsxs(l.Fragment,{children:[l.jsx(ct,{label:t("effects.shape.type.label"),info:t("effects.shape.type.info"),value:r.class,options:[{label:t("effects.shape.options.box"),value:k.BoxShape},{label:t("effects.shape.options.circle"),value:k.CircleShape},{label:t("effects.shape.options.cone"),value:k.ConeShape},{label:t("effects.shape.options.hemisphere"),value:k.HemisphereShape},{label:t("effects.shape.options.sphere"),value:k.SphereShape},{label:t("effects.shape.options.mesh"),value:k.MeshShape}],onChange:c=>{const o=$a[c];if(a.shape&&a.shape.class!==c&&it.set(`${a.id}-${a.shape.class}`,JSON.stringify(a.shape.props)),o.class!==r.class){const n=L(o);e==null||e("shape",n)}}}),l.jsx(s,{item:r,component:a.engineObject,onModelChange:e}),l.jsx(Ba,{item:r,component:a.engineObject,onModelChange:e}),l.jsx(Fa,{item:r,component:a.engineObject,onModelChange:e})]})}),pt=["constant","two-constant","curve","two-curve"],te=[{x:0,y:0},{x:.25,y:.25},{x:.75,y:.75},{x:1,y:1}];function Re(a){return a.map(e=>({x:e.constructParams[0],y:e.constructParams[1]}))}const Tt={class:"ParticleCurve",constructParams:[{class:"CurveKey",constructParams:[0,0]},{class:"CurveKey",constructParams:[.25,.25]},{class:"CurveKey",constructParams:[.75,.75]},{class:"CurveKey",constructParams:[1,1]}]};function D(a,e=0,t=0,r=$.Constant){return{module:a,mode:r,constantMin:t,constantMax:e,curveMax:L(Tt),curveMin:L(Tt)}}function ce(a,e=0,t=0,r=$.Constant){return{enabled:!1,x:D(a,e,t,r),y:D(a,e,t,r),z:D(a,e,t,r)}}const Ka=a=>a===1/0?1/0:Math.max(1,Math.floor(a));function Na(a){if(!(a!=null&&a.constructParams))return;const e=a.constructParams[2];e===null?a.constructParams[2]=1/0:typeof e=="number"&&e!==1/0&&(a.constructParams[2]=Math.max(1,Math.floor(e)))}const Ve=1,ut=.01,Ga=ua("div",{height:"$6",display:"flex",alignItems:"center",paddingLeft:"$2",fontSize:"$sm",borderRadius:"$1",backgroundColor:"$softBg",color:"$gray9",userSelect:"none"}),Ha=l.jsx(Ta,{size:"14px"});function Wa(a,e){return e==="trigger"?Ha:a}const Ua={class:"Burst",constructParams:[0,{class:"ParticleCompositeCurve",constructParams:[15],props:{mode:$.Constant,constantMax:15,constantMin:0}},Ve,ut]},Ja=Z(({model:a,inspectorConfig:e,onModelChange:t})=>{const{t:r}=q(),{label:s,info:c}=e,o=a.bursts,[n,m]=F.useState(-1),b=u=>{const i=L(o);u(i),t==null||t("bursts",i)},v=(u,i)=>{b(g=>{const y=g[u];y&&i(y)})},p=u=>{b(i=>{i.splice(u,1)})},z=()=>{b(u=>{u.push(L(Ua))})},h=[{title:r("effects.burst.time.label")},{title:r("effects.burst.count.label")},{title:r("effects.burst.cycles.label")},{title:r("effects.burst.interval.label")}],f=(u,i)=>{const g=Math.max(1,u.constructParams[1].props.constantMax??0,u.constructParams[1].props.constantMin??0);return{data:u,cells:[l.jsx(ae,{children:l.jsx(de,{min:0,max:a.duration,step:.05,dragStep:.05,value:u.constructParams[0],onValueChange:y=>{v(i,M=>{M.constructParams[0]=y})}})},`time-${i}`),l.jsx(Le,{type:pt[u.constructParams[1].props.mode],direction:"column",algo:"bezier",yRangeMode:"positive",yTickScale:g,yTickScaleMin:0,yTickScaleMax:g,onYTickScaleChange:()=>{},onYTickScaleCommit:()=>{},value:[{value:u.constructParams[1].props.constantMax,type:"constant",min:0,step:1},{value:[u.constructParams[1].props.constantMin,u.constructParams[1].props.constantMax],type:"two-constant",min:0,step:1}],onValueChange:(y,M)=>{const j=y.find(w=>w.type===M);j&&v(i,w=>{switch(M){case"constant":{w.constructParams[1].props.mode=$.Constant,w.constructParams[1].props.constantMax=j.value;break}case"two-constant":{w.constructParams[1].props.mode=$.TwoConstants,w.constructParams[1].props.constantMin=j.value[0],w.constructParams[1].props.constantMax=j.value[1];break}}})}},`count-${i}`),l.jsxs(ae,{fieldCss:{gridTemplateColumns:"minmax(0, 1fr) 32px",columnGap:"$1"},children:[u.constructParams[2]===1/0?l.jsx(Ga,{children:"∞"}):l.jsx(de,{min:1,step:1,dragStep:1,value:u.constructParams[2]??Ve,onValueChange:y=>{v(i,M=>{M.constructParams[2]=Ka(y)})}}),l.jsxs(lt,{value:u.constructParams[2]===1/0?"infinity":"number",position:"item-aligned",cornerArrow:!0,valueRenderer:Wa,onValueChange:y=>{v(i,M=>{M.constructParams[2]=y==="infinity"?1/0:Ve})},children:[l.jsx(je,{value:"number",children:r("effects.burst.cycles.number")}),l.jsx(je,{value:"infinity",children:r("effects.burst.cycles.infinity")})]})]},`cycles-${i}`),l.jsx(ae,{children:l.jsx(de,{disabled:!u.constructParams[2]||u.constructParams[2]===1,min:.01,step:.01,dragStep:.01,value:u.constructParams[3]??ut,onValueChange:y=>{v(i,M=>{M.constructParams[3]=y})}})},`interval-${i}`)]}};return l.jsx(da,{columns:h,items:o.map((u,i)=>f(u,i)),label:r(s),info:r(c),addable:!1,emptyText:r("effects.burst.empty","No bursts"),selectedIndex:n,onRowClick:m,sideSlot:l.jsxs(It,{direction:"column",gap:"xs",children:[l.jsx(Ct,{variant:"soft",onClick:z,css:{flex:1},children:l.jsx(Ca,{size:"14px"})}),l.jsx(Ct,{variant:"soft",css:{flex:1},onClick:()=>{const u=n>=0&&n<o.length?n:o.length-1;u>=0&&(p(u),m(Math.min(u,o.length-2)))},children:l.jsx(za,{size:"14px"})})]})})}),Qa=(a,e,t)=>{const r=a.engineObject.generator.emission,s=r.bursts;for(let c=s.length-1;c>=0;c--)r.removeBurst(s[c]);for(let c=0;c<t.length;c++){const o=t[c];if(!o||!Array.isArray(o.constructParams)||o.constructParams.length<2){console.warn(`Invalid burst item at index ${c}:`,o);continue}const n=o.constructParams[0],m=o.constructParams[1],b=o.constructParams[2]??Ve,v=o.constructParams[3]??ut;if(!m||!m.props){console.warn(`Invalid burst count data at index ${c}:`,m);continue}const p=m.props,z=new ma(p.constantMax);z.mode=p.mode,z.constantMin=p.constantMin,z.constantMax=p.constantMax,z.constant=p.constantMax;const h=new ha(n,z);h.cycles=b,h.repeatInterval=v,r.addBurst(h)}};function _t(a="colorOverLifetime"){return{module:a,mode:he.Gradient,gradientMax:{class:"ParticleGradient",constructParams:[[{color:{r:1,g:1,b:1,a:1},time:0},{color:{r:1,g:1,b:1,a:1},time:.3},{color:{r:1,g:1,b:1,a:1},time:.6},{color:{r:1,g:1,b:1,a:1},time:1}],[{time:0,alpha:0},{time:.25,alpha:.25},{time:.5,alpha:.5},{time:1,alpha:1}]]},gradientMin:{class:"ParticleGradient",constructParams:[[{time:0,color:{r:1,g:1,b:1,a:1}},{time:.3,color:{r:1,g:1,b:1,a:1}},{time:.6,color:{r:1,g:1,b:1,a:1}},{time:1,color:{r:1,g:1,b:1,a:1}}],[{time:0,alpha:0},{time:.25,alpha:.25},{time:.5,alpha:.5},{time:1,alpha:1}]]}}}const Me=["x","y","z"],er={constant:$.Constant,"two-constant":$.TwoConstants,curve:$.Curve,"two-curve":$.TwoCurves},fe=Z(({model:a,inspectorConfig:e,onModelChange:t})=>{const{t:r}=q(),s=e.property,{mainAxis:c}=e,o=a[s],[n,m]=F.useState({x:{max:te,min:te},y:{max:te,min:te},z:{max:te,min:te}}),[b,v]=F.useState(e.yTickScale??1),p=pt[o.x.mode];function z(i){return(g,y)=>{const M=g.find(_=>_.type===y);if(!M)return;const j=L(o),w=j[i],B=er[y];for(const _ of Me)j[_].mode=B;switch(y){case"constant":w.constantMax=M.value;break;case"two-constant":w.constantMin=M.value[0],w.constantMax=M.value[1];break;case"curve":{if(M.value.length>4)return;m(_=>({..._,[i]:{..._[i],max:M.value}})),M.value.forEach((_,E)=>{w.curveMax.constructParams[E].constructParams[0]=_.x,w.curveMax.constructParams[E].constructParams[1]=_.y*b});break}case"two-curve":{if(M.value[0].length>4||M.value[1].length>4)return;m(_=>({..._,[i]:{min:M.value[0],max:M.value[1]}})),M.value[0].forEach((_,E)=>{w.curveMin.constructParams[E].constructParams[0]=_.x,w.curveMin.constructParams[E].constructParams[1]=_.y*b}),M.value[1].forEach((_,E)=>{w.curveMax.constructParams[E].constructParams[0]=_.x,w.curveMax.constructParams[E].constructParams[1]=_.y*b});break}}a[s]=j,t==null||t(s,j)}}function h(i){return[{value:o[i].constantMax,type:"constant",label:r("effects.curve.constant"),min:e.min,max:e.max,step:e.step},{value:[o[i].constantMin,o[i].constantMax],type:"two-constant",label:r("effects.curve.two-constant"),min:e.min,max:e.max,step:e.step},{value:n[i].max,type:"curve",label:r("effects.curve.curve")},{value:[n[i].min,n[i].max],type:"two-curve",label:r("effects.curve.two-curve")}]}const f=i=>{const g=i/b,y=L(o);for(const M of Me){const j=y[M];j.curveMax.constructParams.forEach(w=>{w.constructParams[1]*=g}),j.curveMin.constructParams.forEach(w=>{w.constructParams[1]*=g})}v(i),a[s]=y,t==null||t(s,y)},u={algo:"linear",yRangeMode:e.yRangeMode,yTickScale:b,yTickScaleMin:e.yTickScaleMin,yTickScaleMax:e.yTickScaleMax,onYTickScaleChange:f,onYTickScaleCommit:()=>{}};return F.useEffect(()=>{const i={};for(const g of Me)i[g]={max:Re(o[g].curveMax.constructParams).map(y=>({...y,y:y.y/b})),min:Re(o[g].curveMin.constructParams).map(y=>({...y,y:y.y/b}))};m(i)},[]),l.jsxs(l.Fragment,{children:[l.jsx(fa,{label:e.toggleLabel?r(e.toggleLabel):r("effects.curve.3d-prefix")+" "+r(e.label||s),info:r(e.info),value:o.enabled,onChange:i=>{const g=L(o);g.enabled=i,a[s]=g,t==null||t(s,g)}}),o.enabled?l.jsx(ae,{label:"",children:l.jsx(It,{direction:"column",gap:"xxs",children:Me.map((i,g)=>l.jsx(Le,{label:r(i).toLocaleUpperCase(),type:p,css:{gridTemplateColumns:"$4 repeat(3, minmax(0px, 1fr))"},...u,value:h(i),hideTypeSelector:g!==0,onValueChange:z(i)},i))})}):l.jsx(Le,{label:r(e.label||s),type:p,...u,value:h(c),onValueChange:z(c)})]})}),ye=a=>(e,t,r)=>{var o,n;const s=(n=(o=e.engineObject)==null?void 0:o.generator)==null?void 0:n[r.x.module];if(!s){console.warn(`Module container not found for: ${r.x.module}`);return}s[a]=r.enabled;const c={x:s[t+"X"],y:s[t+"Y"],z:s[t+"Z"]};for(const m in c){const b=r[m],v=c[m];if(!v){console.warn(`Axis module not found for: ${m} in ${t}`);continue}v.mode=b.mode,v.constantMax=b.constantMax,v.constantMin=b.constantMin,v.curveMax=new Te,b.curveMax.constructParams.forEach(p=>{const z=p.constructParams[0],h=p.constructParams[1];v.curveMax.addKey(new _e(z,h))}),v.curveMin=new Te,b.curveMin.constructParams.forEach(p=>{const z=p.constructParams[0],h=p.constructParams[1];v.curveMin.addKey(new _e(z,h))})}},N=Z(({model:a,inspectorConfig:e,onModelChange:t})=>{const{t:r}=q(),s=e.property,c=a[s],[o,n]=F.useState(te),[m,b]=F.useState(te),[v,p]=F.useState(e.yTickScale??1);F.useEffect(()=>{const h=Re(c.curveMax.constructParams),f=Re(c.curveMin.constructParams);n(h),b(f)},[]);const z=(h,f)=>{const u=h.find(g=>g.type===f);if(!u)return;const i=L(c);switch(f){case"constant":i.mode=$.Constant,i.constantMax=u.value;break;case"two-constant":i.mode=$.TwoConstants,i.constantMin=u.value[0],i.constantMax=u.value[1];break;case"curve":{if(u.value.length>4)return;n(u.value),i.mode=$.Curve,u.value.forEach((g,y)=>{i.curveMax.constructParams[y].constructParams[0]=g.x,i.curveMax.constructParams[y].constructParams[1]=g.y});break}case"two-curve":{if(u.value[0].length>4||u.value[1].length>4)return;i.mode=$.TwoCurves,b(u.value[0]),n(u.value[1]),u.value[0].forEach((g,y)=>{i.curveMin.constructParams[y].constructParams[0]=g.x,i.curveMin.constructParams[y].constructParams[1]=g.y}),u.value[1].forEach((g,y)=>{i.curveMax.constructParams[y].constructParams[0]=g.x,i.curveMax.constructParams[y].constructParams[1]=g.y});break}}a[s]=i,t==null||t(s,i)};return l.jsx(l.Fragment,{children:l.jsx(Le,{label:r(e.label||e.property),info:r(e.info),type:pt[c.mode],algo:"linear",yRangeMode:e.yRangeMode,yTickScale:v,yTickScaleMin:e.yTickScaleMin,yTickScaleMax:e.yTickScaleMax,onYTickScaleChange:p,onYTickScaleCommit:()=>{},value:[{value:c.constantMax,type:"constant",label:r("effects.curve.constant"),min:e.min,max:e.max,step:e.step},{value:[c.constantMin,c.constantMax],type:"two-constant",label:r("effects.curve.two-constant"),min:e.min,max:e.max,step:e.step},{value:o,type:"curve",label:r("effects.curve.curve")},{value:[m,o],type:"two-curve",label:r("effects.curve.two-curve")}],onValueChange:z})})}),G=(a,e,t)=>{var c,o;const r=(o=(c=a.engineObject)==null?void 0:c.generator)==null?void 0:o[t.module];if(!r){console.warn(`Module container not found for: ${t.module}`);return}const s=r[e];if(!s){console.warn(`Module not found for property: ${e} in ${t.module}`);return}s.mode=t.mode,s.constantMax=t.constantMax,s.constantMin=t.constantMin,s.curveMax=new Te,t.curveMax.constructParams.forEach(n=>{const m=n.constructParams[0],b=n.constructParams[1];s.curveMax.addKey(new _e(m,b))}),s.curveMin=new Te,t.curveMin.constructParams.forEach(n=>{const m=n.constructParams[0],b=n.constructParams[1];s.curveMin.addKey(new _e(m,b))})},tr=["constant","two-constant"],ar=Z(({model:a,inspectorConfig:e,onModelChange:t})=>{var b,v;const{t:r}=q(),s=e.property,c=a[s],o={...ge(c.constantMax),intensity:((b=c.constantMax)==null?void 0:b.intensity)??1},n={...ge(c.constantMin),intensity:((v=c.constantMin)==null?void 0:v.intensity)??1},m=(p,z)=>{const h=p.find(u=>u.type===z);if(!h)return;const f=L(c);switch(z){case"constant":{f.mode=he.Constant,f.constantMax=h.value;break}case"two-constant":{const u=h.value[0],i=h.value[1];f.mode=he.TwoConstants,f.constantMin=u,f.constantMax=i;break}}a[s]=f,t==null||t(s,f)};return l.jsx(Yt,{label:r(e.label||e.property),type:tr[c.mode],info:r(e.info),hdr:!0,value:[{value:o,type:"constant",label:r("effects.curve.constant")},{value:[n,o],type:"two-constant",label:r("effects.curve.two-constant")}],onValueChange:m})}),rr=(a,e,t)=>{const r=a.engineObject.generator.main.startColor;r.mode=t.mode;const{constantMax:s,constantMin:c}=t,o=s.intensity??1,n=c.intensity??1;r.constantMax.set(s.r*o,s.g*o,s.b*o,s.a),r.constantMin.set(c.r*n,c.g*n,c.b*n,c.a)},sr=["gradient","two-gradient"],or=Z(({model:a,inspectorConfig:e,onModelChange:t})=>{const{t:r}=q(),s=e.property,c=a[s],o=(n,m)=>{var p,z;if(!n.find(h=>h.type===m))return;const v=L(c);switch(m){case"gradient":{const h=n.find(f=>f.type===m);if(!((p=h==null?void 0:h.value)!=null&&p.color)||!((z=h==null?void 0:h.value)!=null&&z.alpha)){console.warn(`Invalid gradient value structure for ${s}`);return}if(h.value.color.length>4||h.value.alpha.length>4)return;v.mode=he.Gradient,v.gradientMax.constructParams=[h.value.color.map(f=>({color:f.value,time:f.time})),h.value.alpha.map(f=>({alpha:f.value,time:f.time}))];break}case"two-gradient":{const h=n.find(f=>f.type===m);if(h.value[0].color.length>4||h.value[0].alpha.length>4||h.value[1].color.length>4||h.value[1].alpha.length>4)return;v.mode=he.TwoGradients,v.gradientMin.constructParams=[h.value[0].color.map(f=>({color:f.value,time:f.time})),h.value[0].alpha.map(f=>({alpha:f.value,time:f.time}))],v.gradientMax.constructParams=[h.value[1].color.map(f=>({color:f.value,time:f.time})),h.value[1].alpha.map(f=>({alpha:f.value,time:f.time}))];break}}a[s]=v,t==null||t(s,v)};return l.jsx(l.Fragment,{children:l.jsx(Yt,{label:r(e.property),type:sr[c.mode-2],info:r(e.info),value:[{value:{color:c.gradientMax.constructParams[0].map(n=>({value:ge(n.color),time:n.time})),alpha:c.gradientMax.constructParams[1].map(n=>({value:n.alpha,time:n.time}))},type:"gradient",label:r("effects.curve.gradient")},{value:[{color:c.gradientMin.constructParams[0].map(n=>({value:ge(n.color),time:n.time})),alpha:c.gradientMin.constructParams[1].map(n=>({value:n.alpha,time:n.time}))},{color:c.gradientMax.constructParams[0].map(n=>({value:ge(n.color),time:n.time})),alpha:c.gradientMax.constructParams[1].map(n=>({value:n.alpha,time:n.time}))}],type:"two-gradient",label:r("effects.curve.two-gradient")}],onValueChange:o})})}),pe=[],ue=[],nr=(a,e,t)=>{var m,b,v;const r=(b=(m=a.engineObject)==null?void 0:m.generator)==null?void 0:b[t.module];if(!r){console.warn(`Module container not found for: ${t.module}`);return}const s=r[e];if(!s){console.warn(`Module not found for property: ${e} in ${t.module}`);return}if(s.mode=t.mode,pe.length=0,ue.length=0,!((v=t.gradientMax)!=null&&v.constructParams)||!Array.isArray(t.gradientMax.constructParams)){console.warn(`Invalid gradientMax.constructParams for ${e}`);return}const c=t.gradientMax.constructParams,o=c[0]||[],n=c[1]||[];Array.isArray(o)&&o.forEach(p=>{if(p&&p.color&&typeof p.time=="number"){const z=p.color;pe.push(new Ot(p.time,new Et(z.r??0,z.g??0,z.b??0,z.a??1)))}}),Array.isArray(n)&&n.forEach(p=>{p&&typeof p.time=="number"&&typeof p.alpha=="number"&&ue.push(new wt(p.time,p.alpha))}),s.gradientMax.setKeys(pe,ue),pe.length=0,ue.length=0,t.gradientMin.constructParams[0].forEach(p=>{pe.push(new Ot(p.time,new Et(p.color.r,p.color.g,p.color.b,p.color.a)))}),t.gradientMin.constructParams[1].forEach(p=>{ue.push(new wt(p.time,p.alpha))}),s.gradientMin.setKeys(pe,ue)};function Oe(a){return a-Math.floor(a*(1/289))*289}function H(a){return Oe((34*a+1)*a)}function nt(a,e,t){const r=.16666666666666666,s=1/3,c=(a+e+t)*s,o=Math.floor(a+c),n=Math.floor(e+c),m=Math.floor(t+c),b=(o+n+m)*r,v=a-o+b,p=e-n+b,z=t-m+b;let h,f,u,i,g,y;v>=p?p>=z?(h=1,f=0,u=0,i=1,g=1,y=0):v>=z?(h=1,f=0,u=0,i=1,g=0,y=1):(h=0,f=0,u=1,i=1,g=0,y=1):p<z?(h=0,f=0,u=1,i=0,g=1,y=1):v<z?(h=0,f=1,u=0,i=0,g=1,y=1):(h=0,f=1,u=0,i=1,g=1,y=0);const M=v-h+r,j=p-f+r,w=z-u+r,B=v-i+s,_=p-g+s,E=z-y+s,I=v-.5,T=p-.5,A=z-.5,X=Oe(o),U=Oe(n),xe=Oe(m),Xt=H(H(H(xe)+U)+X),$t=H(H(H(xe+u)+U+f)+X+h),qt=H(H(H(xe+y)+U+g)+X+i),Kt=H(H(H(xe+1)+U+1)+X+1),Ae=.142857142857,dt=Ae*2-0,mt=Ae*.5-1,ke=Ae*1-0;function Se(bt){const vt=bt-49*Math.floor(bt*ke*ke),gt=Math.floor(vt*ke),Ut=Math.floor(vt-7*gt),xt=gt*dt+mt,St=Ut*dt+mt,Pe=1-Math.abs(xt)-Math.abs(St),Pt=xt,Mt=St,Jt=Math.floor(Pt)*2+1,Qt=Math.floor(Mt)*2+1,zt=-(Pe<0?1:0),et=Pt+Jt*zt,tt=Mt+Qt*zt,at=1.79284291400159-.85373472095314*(et*et+tt*tt+Pe*Pe);return[et*at,tt*at,Pe*at]}const re=Se(Xt),se=Se($t),oe=Se(qt),ne=Se(Kt),De=Math.max(.6-(v*v+p*p+z*z),0),Be=Math.max(.6-(M*M+j*j+w*w),0),Fe=Math.max(.6-(B*B+_*_+E*E),0),Ye=Math.max(.6-(I*I+T*T+A*A),0),Ze=De*De,Xe=Be*Be,$e=Fe*Fe,qe=Ye*Ye,Ke=Ze*Ze,Ne=Xe*Xe,Ge=$e*$e,He=qe*qe,Nt=re[0]*v+re[1]*p+re[2]*z,Gt=se[0]*M+se[1]*j+se[2]*w,Ht=oe[0]*B+oe[1]*_+oe[2]*E,Wt=ne[0]*I+ne[1]*T+ne[2]*A,We=Ze*De*Nt,Ue=Xe*Be*Gt,Je=$e*Fe*Ht,Qe=qe*Ye*Wt;let ht=-8*(We*v+Ue*M+Je*B+Qe*I),ft=-8*(We*p+Ue*j+Je*_+Qe*T),yt=-8*(We*z+Ue*w+Je*E+Qe*A);return ht+=Ke*re[0]+Ne*se[0]+Ge*oe[0]+He*ne[0],ft+=Ke*re[1]+Ne*se[1]+Ge*oe[1]+He*ne[1],yt+=Ke*re[2]+Ne*se[2]+Ge*oe[2]+He*ne[2],[ht*42,ft*42,yt*42]}function Lt(a,e,t){nt(t,e,a);const s=nt(a+100,t,e);return nt(e,a+100,t)[1]-s[2]}function ir(a,e,t,r,s,c,o){let n=Lt(a*r,e*r,t*r),m=1,b=r,v=1;for(let p=1;p<s;p++)v*=o,b*=c,m+=v,n+=v*Lt(a*b,e*b,t*b);return n/m}const Q=80,Rt=5,lr=({model:a})=>{const e=F.useRef(null),t=F.useRef(0);return F.useEffect(()=>{const r=e.current;if(!r)return;const s=r.getContext("2d");if(!s)return;const c=ya(()=>{var f,u;const o=((u=(f=a.noiseStrength)==null?void 0:f.x)==null?void 0:u.constantMax)??1,n=a.noiseFrequency??.5,m=a.noiseScrollSpeed??0,b=a.noiseOctaveCount??1,v=a.noiseOctaveIntensityMultiplier??.5,p=a.noiseOctaveFrequencyMultiplier??2;cancelAnimationFrame(t.current);const z=performance.now(),h=i=>{const g=(i-z)/1e3*m,y=s.createImageData(Q,Q),M=y.data;for(let j=0;j<Q;j++){const w=(1-j/Q)*Rt;for(let B=0;B<Q;B++){const _=B/Q*Rt,E=ir(_,w,g,n,b,p,v),I=Math.max(0,Math.min(255,Math.round((E*o*(.5/7)+.5)*255))),T=(j*Q+B)*4;M[T]=I,M[T+1]=I,M[T+2]=I,M[T+3]=255}}s.putImageData(y,0,0),m>0&&(t.current=requestAnimationFrame(h))};t.current=requestAnimationFrame(h)});return()=>{cancelAnimationFrame(t.current),c()}},[a]),l.jsx(ae,{label:" ",labelCss:{visibility:"hidden"},children:l.jsxs("div",{style:{position:"relative",width:80,height:80},children:[l.jsx("canvas",{ref:e,width:Q,height:Q,style:{width:80,height:80,borderRadius:4,border:"1px solid var(--color-border-default, rgba(255,255,255,0.12))",display:"block"}}),l.jsx("span",{style:{position:"absolute",bottom:2,left:0,right:0,textAlign:"center",fontSize:9,color:"rgba(255,255,255,0.6)",textShadow:"0 1px 2px rgba(0,0,0,0.8)",pointerEvents:"none"},children:"Preview"})]})})};var cr=Object.defineProperty,pr=Object.getOwnPropertyDescriptor,P=(a,e,t,r)=>{for(var s=r>1?void 0:r?pr(e,t):e,c=a.length-1,o;c>=0;c--)(o=a[c])&&(s=(r?o(e,t,s):o(s))||s);return r&&s&&cr(e,t,s),s};let x=class extends ba{constructor(e,t){super(e,t);S(this,"_emissionModuleEnabled",!0);S(this,"_emissionShapeModuleEnabled",!0);S(this,"_rotationOverLifetimeModuleEnabled",!1);S(this,"_sizeOverLifetimeModuleEnabled",!1);S(this,"_textureSheetAnimationModuleEnabled",!1);S(this,"_velocityOverLifetimeModuleEnabled",!1);S(this,"_forceOverLifetimeModuleEnabled",!1);S(this,"_limitVelocityOverLifetimeModuleEnabled",!1);S(this,"_colorOverLifetimeModuleEnabled",!1);S(this,"_noiseModuleEnabled",!1);S(this,"material",{refId:"0000202"});S(this,"priority",0);S(this,"velocityScale",0);S(this,"lengthScale",2);S(this,"pivot",{x:0,y:0,z:0});S(this,"renderMode",W.Billboard);S(this,"mesh",null);S(this,"duration",5);S(this,"isLoop",!0);S(this,"startDelay",D("main"));S(this,"startLifetime",D("main",5));S(this,"startSpeed",D("main",5));S(this,"startSize",ce("main",1));S(this,"startRotation",ce("main"));S(this,"flipRotation",0);S(this,"startColor",{module:"main",mode:he.Constant,constantMax:{r:1,g:1,b:1,a:1,intensity:1},constantMin:{r:1,g:1,b:1,a:1,intensity:1}});S(this,"gravityModifier",D("main"));S(this,"simulationSpace",K.Local);S(this,"simulationSpeed",1);S(this,"scalingMode",be.Local);S(this,"playOnEnabled",!0);S(this,"maxParticles",1e3);S(this,"rateOverTime",D("emission",10));S(this,"shape",{class:k.ConeShape,props:{angle:25,radius:1,length:5,emitType:me.Base,enabled:!0}});S(this,"bursts",[]);S(this,"size",ce("sizeOverLifetime",1));S(this,"rotation",ce("rotationOverLifetime",45));S(this,"textureSheetAnimationType",0);S(this,"cycleCount",1);S(this,"tiling",{x:1,y:1});S(this,"frameOverTime",D("textureSheetAnimation",1,0,$.Curve));S(this,"spaceMode",K.Local);S(this,"forceSpaceMode",K.Local);S(this,"velocityX",D("velocityOverLifetime"));S(this,"velocityY",D("velocityOverLifetime"));S(this,"velocityZ",D("velocityOverLifetime"));S(this,"speed",ce("limitVelocityOverLifetime",1));S(this,"limitVelocitySpaceMode",K.Local);S(this,"dampen",0);S(this,"drag",D("limitVelocityOverLifetime"));S(this,"multiplyDragByParticleSize",!1);S(this,"multiplyDragByParticleVelocity",!1);S(this,"forceX",D("forceOverLifetime"));S(this,"forceY",D("forceOverLifetime"));S(this,"forceZ",D("forceOverLifetime"));S(this,"color",_t());S(this,"noisePreview",null);S(this,"noiseStrength",ce("noise",1));S(this,"noiseFrequency",.5);S(this,"noiseScrollSpeed",0);S(this,"noiseOctaveCount",1);S(this,"noiseOctaveIntensityMultiplier",.5);S(this,"noiseOctaveFrequencyMultiplier",2);const r=this.formSchema,s=(o,n,m,b,v,p)=>{const z=d(o);r.addGroup(z,n,{controlOpenKey:m,defaultOpen:p,sectionTitle:{title:z,onToggle:h=>{v==null||v(h),this.root.inspectorFacade.componentChange(this.id,m,h),this.applyBoundPathChange(b,R.Toggle,h)}}})};s("effects.renderer.sections.emission",["rateOverTime","bursts"],"_emissionModuleEnabled","generator.emission.enabled"),s("effects.renderer.sections.shape",["shape"],"_emissionShapeModuleEnabled","generator.emission.shape.enabled",o=>{this.shape.props.enabled=o}),s("effects.renderer.sections.size-over-lifetime",["size"],"_sizeOverLifetimeModuleEnabled","generator.sizeOverLifetime.enabled"),s("effects.renderer.sections.rotation-over-lifetime",["rotation"],"_rotationOverLifetimeModuleEnabled","generator.rotationOverLifetime.enabled"),s("effects.renderer.sections.force-over-lifetime",["forceSpaceMode","forceX","forceY","forceZ"],"_forceOverLifetimeModuleEnabled","generator.forceOverLifetime.enabled"),s("effects.renderer.sections.velocity-over-lifetime",["spaceMode","velocityX","velocityY","velocityZ"],"_velocityOverLifetimeModuleEnabled","generator.velocityOverLifetime.enabled"),s("effects.renderer.sections.limit-velocity-over-lifetime",["speed","limitVelocitySpaceMode","dampen","drag","multiplyDragByParticleSize","multiplyDragByParticleVelocity"],"_limitVelocityOverLifetimeModuleEnabled","generator.limitVelocityOverLifetime.enabled"),s("effects.renderer.sections.texture-sheet-animation",["textureSheetAnimationType","cycleCount","tiling","frameOverTime"],"_textureSheetAnimationModuleEnabled","generator.textureSheetAnimation.enabled"),s("effects.renderer.sections.color-over-lifetime",["color"],"_colorOverLifetimeModuleEnabled","generator.colorOverLifetime.enabled"),s("effects.renderer.sections.noise",["noisePreview","noiseStrength","noiseFrequency","noiseScrollSpeed","noiseOctaveCount","noiseOctaveIntensityMultiplier","noiseOctaveFrequencyMultiplier"],"_noiseModuleEnabled","generator.noise.enabled");const c=d("effects.renderer.sections.rendering");r.addGroup(c,["renderMode","mesh","material","velocityScale","lengthScale","pivot","priority"],{sectionTitle:{title:c}})}applyEmissionShape(e){this.applyBoundPathChange("generator.emission.shape",R.Input,e)}onInitComplete(){this._applyEditorRuntimeState()}_applyRendererMeshFromRef(){this.applyBoundPathChange("mesh",R.AssetPicker,this.mesh??null)}_applyEditorRuntimeState(){const{_engineObject:{generator:e}}=this;if(this.applyBoundPathChange("enabled",R.Toggle,this._enabled),this.applyBoundPathChange("renderMode",R.Select,this.renderMode),e.emission.enabled=this._emissionModuleEnabled,e.emission.shape.enabled=this._emissionShapeModuleEnabled,this.shape.class===k.MeshShape){const t=e.emission.shape,r=this.shape.props.mesh;r?(t.enabled=!1,La(this.root,r).then(()=>{this.applyBoundPathChange("generator.emission.shape.mesh",R.AssetPicker,r),t.enabled=this._emissionShapeModuleEnabled})):this.applyBoundPathChange("generator.emission.shape.mesh",R.Input,Vt.createSphere(this.engineObject.engine))}e.rotationOverLifetime.enabled=this._rotationOverLifetimeModuleEnabled,e.sizeOverLifetime.enabled=this._sizeOverLifetimeModuleEnabled,e.textureSheetAnimation.enabled=this._textureSheetAnimationModuleEnabled,e.velocityOverLifetime.enabled=this._velocityOverLifetimeModuleEnabled,e.limitVelocityOverLifetime.enabled=this._limitVelocityOverLifetimeModuleEnabled,e.forceOverLifetime.enabled=this._forceOverLifetimeModuleEnabled,e.main.simulationSpeed=0,e.colorOverLifetime.enabled=this._colorOverLifetimeModuleEnabled,e.noise.enabled=this._noiseModuleEnabled,this.renderMode===W.Mesh&&this._applyRendererMeshFromRef()}async bindEngineObject(e){e.enabled=!1,await super.bindEngineObject(e)}rebindEngineObject(e){super.rebindEngineObject(e),e.enabled=!1,this._applyEditorRuntimeState()}deserialize(e){var r,s,c;const t=e.props;if(this._enabled=(t==null?void 0:t.enabled)??!0,t!=null&&t.generator){this.priority=t.priority??this.priority,this.velocityScale=t.velocityScale??this.velocityScale,this.lengthScale=t.lengthScale??this.lengthScale,this.pivot=t.pivot??this.pivot,this.renderMode=t.renderMode??this.renderMode,this.mesh=t.mesh??null;const{main:o,emission:n,sizeOverLifetime:m,rotationOverLifetime:b,velocityOverLifetime:v,limitVelocityOverLifetime:p,colorOverLifetime:z,textureSheetAnimation:h,forceOverLifetime:f,noise:u}=t.generator;this.duration=(o==null?void 0:o.duration)??this.duration,this.isLoop=(o==null?void 0:o.isLoop)??this.isLoop,this.startDelay=(o==null?void 0:o.startDelay)??this.startDelay,this.startLifetime=(o==null?void 0:o.startLifetime)??this.startLifetime,this.startSpeed=(o==null?void 0:o.startSpeed)??this.startSpeed,this.startSize.enabled=(o==null?void 0:o.startSize3D)??this.startSize.enabled,this.startSize.x=(o==null?void 0:o.startSizeX)??this.startSize.x,this.startSize.y=(o==null?void 0:o.startSizeY)??this.startSize.y,this.startSize.z=(o==null?void 0:o.startSizeZ)??this.startSize.z,this.startRotation.enabled=(o==null?void 0:o.startRotation3D)??this.startRotation.enabled,this.startRotation.x=(o==null?void 0:o.startRotationX)??this.startRotation.x,this.startRotation.y=(o==null?void 0:o.startRotationY)??this.startRotation.y,this.startRotation.z=(o==null?void 0:o.startRotationZ)??this.startRotation.z,this.flipRotation=(o==null?void 0:o.flipRotation)??this.flipRotation,this.startColor=(o==null?void 0:o.startColor)??this.startColor,this.gravityModifier=(o==null?void 0:o.gravityModifier)??this.gravityModifier,this.simulationSpace=(o==null?void 0:o.simulationSpace)??this.simulationSpace,this.simulationSpeed=(o==null?void 0:o.simulationSpeed)??this.simulationSpeed,this.scalingMode=(o==null?void 0:o.scalingMode)??this.scalingMode,this.playOnEnabled=(o==null?void 0:o.playOnEnabled)??this.playOnEnabled,this.maxParticles=(o==null?void 0:o.maxParticles)??this.maxParticles,this._emissionModuleEnabled=(n==null?void 0:n.enabled)??this._emissionModuleEnabled,this.rateOverTime=(n==null?void 0:n.rateOverTime)??this.rateOverTime,(n==null?void 0:n.shape)===null||((r=n==null?void 0:n.shape)==null?void 0:r.class)==="Null"?(this.shape={class:k.ConeShape,props:{angle:25,radius:1,length:5,emitType:me.Base,enabled:!1}},this._emissionShapeModuleEnabled=!1):(this.shape=(n==null?void 0:n.shape)??this.shape,this._emissionShapeModuleEnabled=((c=(s=n==null?void 0:n.shape)==null?void 0:s.props)==null?void 0:c.enabled)??this._emissionShapeModuleEnabled),this.bursts=Array.isArray(n==null?void 0:n.bursts)?n.bursts.map(y=>(Na(y),y)):[],this._sizeOverLifetimeModuleEnabled=(m==null?void 0:m.enabled)??this._sizeOverLifetimeModuleEnabled,this.size.enabled=(m==null?void 0:m.separateAxes)??this.size.enabled,this.size.x=m!=null&&m.sizeX?{...m.sizeX,module:"sizeOverLifetime"}:{...L(this.size.x),module:"sizeOverLifetime"},this.size.y=m!=null&&m.sizeY?{...m.sizeY,module:"sizeOverLifetime"}:{...L(this.size.y),module:"sizeOverLifetime"},this.size.z=m!=null&&m.sizeZ?{...m.sizeZ,module:"sizeOverLifetime"}:{...L(this.size.z),module:"sizeOverLifetime"},this._rotationOverLifetimeModuleEnabled=(b==null?void 0:b.enabled)??this._rotationOverLifetimeModuleEnabled,this.rotation.enabled=(b==null?void 0:b.separateAxes)??this.rotation.enabled,this.rotation.x=b!=null&&b.rotationX?{...b.rotationX,module:"rotationOverLifetime"}:{...L(this.rotation.x),module:"rotationOverLifetime"},this.rotation.y=b!=null&&b.rotationY?{...b.rotationY,module:"rotationOverLifetime"}:{...L(this.rotation.y),module:"rotationOverLifetime"},this.rotation.z=b!=null&&b.rotationZ?{...b.rotationZ,module:"rotationOverLifetime"}:{...L(this.rotation.z),module:"rotationOverLifetime"},this._velocityOverLifetimeModuleEnabled=(v==null?void 0:v.enabled)??this._velocityOverLifetimeModuleEnabled,this.velocityX=(v==null?void 0:v.velocityX)??L(this.velocityX),this.velocityY=(v==null?void 0:v.velocityY)??L(this.velocityY),this.velocityZ=(v==null?void 0:v.velocityZ)??L(this.velocityZ),this.spaceMode=(v==null?void 0:v.space)??this.spaceMode,this._limitVelocityOverLifetimeModuleEnabled=(p==null?void 0:p.enabled)??this._limitVelocityOverLifetimeModuleEnabled,this.speed.enabled=(p==null?void 0:p.separateAxes)??this.speed.enabled;const i=(p==null?void 0:p.speedX)??(p==null?void 0:p.speed);this.speed.x=i?{...i,module:"limitVelocityOverLifetime"}:{...L(this.speed.x),module:"limitVelocityOverLifetime"},this.speed.y=p!=null&&p.speedY?{...p.speedY,module:"limitVelocityOverLifetime"}:{...L(this.speed.y),module:"limitVelocityOverLifetime"},this.speed.z=p!=null&&p.speedZ?{...p.speedZ,module:"limitVelocityOverLifetime"}:{...L(this.speed.z),module:"limitVelocityOverLifetime"},this.dampen=(p==null?void 0:p.dampen)??this.dampen,this.drag=p!=null&&p.drag?{...p.drag,module:"limitVelocityOverLifetime"}:D("limitVelocityOverLifetime"),this.multiplyDragByParticleSize=(p==null?void 0:p.multiplyDragByParticleSize)??this.multiplyDragByParticleSize,this.multiplyDragByParticleVelocity=(p==null?void 0:p.multiplyDragByParticleVelocity)??this.multiplyDragByParticleVelocity,this.limitVelocitySpaceMode=(p==null?void 0:p.space)??this.limitVelocitySpaceMode,this._forceOverLifetimeModuleEnabled=(f==null?void 0:f.enabled)??this._forceOverLifetimeModuleEnabled,this.forceX=(f==null?void 0:f.forceX)??D("forceOverLifetime"),this.forceY=(f==null?void 0:f.forceY)??D("forceOverLifetime"),this.forceZ=(f==null?void 0:f.forceZ)??D("forceOverLifetime"),this.forceSpaceMode=(f==null?void 0:f.space)??this.forceSpaceMode,z?(this._colorOverLifetimeModuleEnabled=z.enabled??this._colorOverLifetimeModuleEnabled,this.color=z.color??this.color):(this._colorOverLifetimeModuleEnabled=!0,this.color=_t()),this._textureSheetAnimationModuleEnabled=(h==null?void 0:h.enabled)??this._textureSheetAnimationModuleEnabled,this.textureSheetAnimationType=(h==null?void 0:h.type)??this.textureSheetAnimationType,this.cycleCount=(h==null?void 0:h.cycleCount)??this.cycleCount,this.tiling=(h==null?void 0:h.tiling)??this.tiling,this.frameOverTime=(h==null?void 0:h.frameOverTime)??this.frameOverTime,this._noiseModuleEnabled=(u==null?void 0:u.enabled)??this._noiseModuleEnabled,this.noiseStrength.enabled=(u==null?void 0:u.separateAxes)??this.noiseStrength.enabled;const g=u==null?void 0:u.strengthX;this.noiseStrength.x=g?{...g,module:"noise"}:{...L(this.noiseStrength.x),module:"noise"},this.noiseStrength.y=u!=null&&u.strengthY?{...u.strengthY,module:"noise"}:{...L(this.noiseStrength.y),module:"noise"},this.noiseStrength.z=u!=null&&u.strengthZ?{...u.strengthZ,module:"noise"}:{...L(this.noiseStrength.z),module:"noise"},this.noiseFrequency=(u==null?void 0:u.frequency)??this.noiseFrequency,this.noiseScrollSpeed=(u==null?void 0:u.scrollSpeed)??this.noiseScrollSpeed,this.noiseOctaveCount=(u==null?void 0:u.octaveCount)??this.noiseOctaveCount,this.noiseOctaveIntensityMultiplier=(u==null?void 0:u.octaveIntensityMultiplier)??this.noiseOctaveIntensityMultiplier,this.noiseOctaveFrequencyMultiplier=(u==null?void 0:u.octaveFrequencyMultiplier)??this.noiseOctaveFrequencyMultiplier}super.deserialize(e)}toJSON(){const e=this.bursts.map(r=>{var c;if(((c=r==null?void 0:r.constructParams)==null?void 0:c[2])!==1/0)return r;const s=L(r);return s.constructParams[2]=null,s});return{type:this.type,props:va({enabled:this.enabled,priority:this.priority,velocityScale:this.velocityScale,lengthScale:this.lengthScale,pivot:this.pivot,renderMode:this.renderMode,mesh:this.mesh,material:this.material,generator:{main:{duration:this.duration,isLoop:this.isLoop,startDelay:this.startDelay,startLifetime:this.startLifetime,startSpeed:this.startSpeed,startSize3D:this.startSize.enabled,startSizeX:this.startSize.x,startSizeY:this.startSize.y,startSizeZ:this.startSize.z,startRotation3D:this.startRotation.enabled,startRotationX:this.startRotation.x,startRotationY:this.startRotation.y,startRotationZ:this.startRotation.z,flipRotation:this.flipRotation,startColor:this.startColor,gravityModifier:this.gravityModifier,simulationSpace:this.simulationSpace,simulationSpeed:this.simulationSpeed,scalingMode:this.scalingMode,playOnEnabled:this.playOnEnabled,maxParticles:this.maxParticles},emission:{enabled:this._emissionModuleEnabled,rateOverTime:this.rateOverTime,shape:this.shape,bursts:e},sizeOverLifetime:{enabled:this._sizeOverLifetimeModuleEnabled,separateAxes:this.size.enabled,sizeX:this.size.x,sizeY:this.size.y,sizeZ:this.size.z},rotationOverLifetime:{enabled:this._rotationOverLifetimeModuleEnabled,separateAxes:this.rotation.enabled,rotationX:this.rotation.x,rotationY:this.rotation.y,rotationZ:this.rotation.z},velocityOverLifetime:{enabled:this._velocityOverLifetimeModuleEnabled,space:this.spaceMode,velocityX:this.velocityX,velocityY:this.velocityY,velocityZ:this.velocityZ},limitVelocityOverLifetime:{enabled:this._limitVelocityOverLifetimeModuleEnabled,separateAxes:this.speed.enabled,speedX:this.speed.x,speedY:this.speed.y,speedZ:this.speed.z,dampen:this.dampen,drag:this.drag,multiplyDragByParticleSize:this.multiplyDragByParticleSize,multiplyDragByParticleVelocity:this.multiplyDragByParticleVelocity,space:this.limitVelocitySpaceMode},forceOverLifetime:{enabled:this._forceOverLifetimeModuleEnabled,space:this.forceSpaceMode,forceX:this.forceX,forceY:this.forceY,forceZ:this.forceZ},colorOverLifetime:{enabled:this._colorOverLifetimeModuleEnabled,color:this.color},textureSheetAnimation:{enabled:this._textureSheetAnimationModuleEnabled,type:this.textureSheetAnimationType,cycleCount:this.cycleCount,tiling:this.tiling,frameOverTime:this.frameOverTime},noise:{enabled:this._noiseModuleEnabled,separateAxes:this.noiseStrength.enabled,strengthX:this.noiseStrength.x,strengthY:this.noiseStrength.y,strengthZ:this.noiseStrength.z,frequency:this.noiseFrequency,scrollSpeed:this.noiseScrollSpeed,octaveCount:this.noiseOctaveCount,octaveIntensityMultiplier:this.noiseOctaveIntensityMultiplier,octaveFrequencyMultiplier:this.noiseOctaveFrequencyMultiplier}}})}}};P([J],x.prototype,"_emissionModuleEnabled",2);P([J],x.prototype,"_emissionShapeModuleEnabled",2);P([J],x.prototype,"_rotationOverLifetimeModuleEnabled",2);P([J],x.prototype,"_sizeOverLifetimeModuleEnabled",2);P([J],x.prototype,"_textureSheetAnimationModuleEnabled",2);P([J],x.prototype,"_velocityOverLifetimeModuleEnabled",2);P([J],x.prototype,"_forceOverLifetimeModuleEnabled",2);P([J],x.prototype,"_limitVelocityOverLifetimeModuleEnabled",2);P([J],x.prototype,"_colorOverLifetimeModuleEnabled",2);P([J],x.prototype,"_noiseModuleEnabled",2);P([V({engineKey:"setMaterial",setPath:"setMaterial()",getPath:"getMaterial()",valueType:ga.ReferResource,getEngineValue:a=>a.getMaterial()}),C({type:R.AssetPicker,assetType:"Material",customFilter:a=>{var e;return((e=a.engineObject.shader)==null?void 0:e.name)==="Effect/Particle"},priority:-100,label:d("effects.renderer.material.label"),info:d("effects.renderer.material.info")}),O()],x.prototype,"material",2);P([C({bindPath:"priority",min:0,step:1,dragStep:1,priority:-100,label:d("effects.renderer.priority.label"),info:d("effects.renderer.priority.info")}),O()],x.prototype,"priority",2);P([C({bindPath:"velocityScale",priority:-100,label:d("effects.renderer.velocity-scale.label"),info:d("effects.renderer.velocity-scale.info"),when:a=>a.renderMode===W.StretchBillboard}),O()],x.prototype,"velocityScale",2);P([C({bindPath:"lengthScale",priority:-100,label:d("effects.renderer.length-scale.label"),info:d("effects.renderer.length-scale.info"),when:a=>a.renderMode===W.StretchBillboard}),O()],x.prototype,"lengthScale",2);P([C({type:R.Vector3,bindPath:"pivot",label:d("effects.renderer.pivot.label"),priority:-100}),O()],x.prototype,"pivot",2);P([V({getPath:"renderMode",setPath:"renderMode"}),C({type:R.Select,value:W.Billboard,label:d("effects.renderer.render-mode.label"),options:[{label:d("effects.renderer.render-mode.options.billboard"),value:W.Billboard},{label:d("effects.renderer.render-mode.options.stretch-billboard"),value:W.StretchBillboard},{label:d("effects.renderer.render-mode.options.horizontal-billboard"),value:W.HorizontalBillboard},{label:d("effects.renderer.render-mode.options.mesh"),value:W.Mesh},{label:d("effects.renderer.render-mode.options.none"),value:W.None}],onChange(a){a.renderMode===W.Mesh&&a._applyRendererMeshFromRef()},priority:-100}),O()],x.prototype,"renderMode",2);P([C({type:R.AssetPicker,assetType:"Mesh",label:d("effects.renderer.mesh.label"),info:d("effects.renderer.mesh.info"),when:a=>a.renderMode===W.Mesh,onChange:async(a,e,t)=>{a.mesh=t?t.getCurrentRef():null;try{await a.applyBoundPathChange("mesh",R.AssetPicker,a.mesh)}catch(r){console.warn(r)}},priority:-100}),O()],x.prototype,"mesh",2);P([V({getPath:"generator.main.duration",setPath:"generator.main.duration"}),C({bindPath:"generator.main.duration",min:.05,step:.05,dragStep:.05,label:d("effects.renderer.duration.label"),info:d("effects.renderer.duration.info")}),O()],x.prototype,"duration",2);P([V({getPath:"generator.main.isLoop",setPath:"generator.main.isLoop"}),C({bindPath:"generator.main.isLoop",label:d("effects.renderer.loop.label"),info:d("effects.renderer.loop.info")}),O()],x.prototype,"isLoop",2);P([C({customComponent:N,min:0,yRangeMode:"positive",onChange:G,info:d("effects.renderer.start.delay.info"),label:d("effects.renderer.start.delay.label")}),O()],x.prototype,"startDelay",2);P([C({customComponent:N,onChange:G,min:1e-4,yRangeMode:"positive",label:d("effects.renderer.start.lifetime.label"),info:d("effects.renderer.start.lifetime.info")}),O()],x.prototype,"startLifetime",2);P([C({customComponent:N,onChange:G,label:d("effects.renderer.start.speed.label")}),O()],x.prototype,"startSpeed",2);P([C({module:"main",toggleProps:"startSize3D",axisX:"startSizeX",axisY:"startSizeY",axisZ:"startSizeZ",mainAxis:"x",customComponent:fe,onChange:ye("startSize3D"),label:d("effects.renderer.start.size.label"),info:d("effects.renderer.start.size.info"),min:0,yRangeMode:"positive"}),O()],x.prototype,"startSize",2);P([C({module:"main",toggleProps:"startRotation3D",axisX:"startRotationX",axisY:"startRotationY",axisZ:"startRotationZ",mainAxis:"z",customComponent:fe,onChange:ye("startRotation3D"),label:d("effects.renderer.start.rotation.label"),info:d("effects.renderer.start.rotation.info"),step:1}),O()],x.prototype,"startRotation",2);P([V({getPath:"generator.main.flipRotation",setPath:"generator.main.flipRotation"}),C({bindPath:"generator.main.flipRotation",min:0,max:1,step:.05,dragStep:.05,label:d("effects.renderer.flip-rotation.label")}),O()],x.prototype,"flipRotation",2);P([C({customComponent:ar,onChange:rr,label:d("effects.renderer.start.color.label")}),O()],x.prototype,"startColor",2);P([C({customComponent:N,info:d("effects.renderer.gravity-modifier.info"),onChange:G,label:d("effects.renderer.gravity-modifier.label")}),O()],x.prototype,"gravityModifier",2);P([V({getPath:"generator.main.simulationSpace",setPath:"generator.main.simulationSpace"}),C({type:R.Select,bindPath:"generator.main.simulationSpace",value:K.Local,label:d("effects.renderer.simulation.space.label"),info:d("effects.renderer.simulation.space.info"),options:[{label:d("effects.renderer.simulation.space.options.local"),value:K.Local},{label:d("effects.renderer.simulation.space.options.world"),value:K.World}]}),O()],x.prototype,"simulationSpace",2);P([V({getPath:"generator.main.simulationSpeed",setPath:"generator.main.simulationSpeed"}),C({bindPath:"generator.main.simulationSpeed",step:.05,dragStep:.05,label:d("effects.renderer.simulation.speed.label"),info:d("effects.renderer.simulation.speed.info")}),O()],x.prototype,"simulationSpeed",2);P([V({getPath:"generator.main.scalingMode",setPath:"generator.main.scalingMode"}),C({type:R.Select,bindPath:"generator.main.scalingMode",label:d("effects.renderer.scaling-mode.label"),info:d("effects.renderer.scaling-mode.info"),value:be.Local,options:[{label:d("effects.renderer.scaling-mode.options.world"),value:be.World},{label:d("effects.renderer.scaling-mode.options.local"),value:be.Local},{label:d("effects.renderer.scaling-mode.options.shape"),value:be.Shape}]}),O()],x.prototype,"scalingMode",2);P([V({getPath:"generator.main.playOnEnabled",setPath:"generator.main.playOnEnabled"}),C({type:R.Toggle,bindPath:"generator.main.playOnEnabled",label:d("effects.renderer.play-on-enabled.label"),info:d("effects.renderer.play-on-enabled.info")}),O()],x.prototype,"playOnEnabled",2);P([V({getPath:"generator.main.maxParticles",setPath:"generator.main.maxParticles"}),C({type:R.Number,bindPath:"generator.main.maxParticles",min:1,dragStep:1,label:d("effects.renderer.max-particles.label"),info:d("effects.renderer.max-particles.info")}),O()],x.prototype,"maxParticles",2);P([C({customComponent:N,onChange:G,min:0,yRangeMode:"positive",label:d("effects.renderer.rate-over-time.label"),info:d("effects.renderer.rate-over-time.info")}),O()],x.prototype,"rateOverTime",2);P([C({customComponent:qa,onChange:Za}),O()],x.prototype,"shape",2);P([O(),C({label:d("effects.renderer.bursts.label"),info:d("effects.renderer.bursts.info"),customComponent:Ja,onChange:Qa})],x.prototype,"bursts",2);P([C({module:"sizeOverLifetime",toggleProps:"separateAxes",toggleLabel:"effects.curve.separate-axes",axisX:"sizeX",axisY:"sizeY",axisZ:"sizeZ",mainAxis:"x",customComponent:fe,onChange:ye("separateAxes"),min:0,yRangeMode:"positive",label:d("effects.renderer.over-lifetime.size.label")}),O()],x.prototype,"size",2);P([C({module:"rotationOverLifetime",toggleProps:"separateAxes",toggleLabel:"effects.curve.separate-axes",axisX:"rotationX",axisY:"rotationY",axisZ:"rotationZ",mainAxis:"z",customComponent:fe,onChange:ye("separateAxes"),step:1,yTickScale:45,label:d("effects.renderer.over-lifetime.rotation.label")}),O()],x.prototype,"rotation",2);P([V({getPath:"generator.textureSheetAnimation.type",setPath:"generator.textureSheetAnimation.type"}),C({type:R.Select,value:0,label:d("effects.renderer.texture-sheet.type.label"),info:d("effects.renderer.texture-sheet.type.info"),options:[{label:d("effects.renderer.texture-sheet.type.options.whole-sheet"),value:0},{label:d("effects.renderer.texture-sheet.type.options.single-row"),value:1}]}),O()],x.prototype,"textureSheetAnimationType",2);P([V({getPath:"generator.textureSheetAnimation.cycleCount",setPath:"generator.textureSheetAnimation.cycleCount"}),C({bindPath:"generator.textureSheetAnimation.cycleCount",min:1e-4,step:1,dragStep:1,label:d("effects.renderer.texture-sheet.cycle-count.label"),info:d("effects.renderer.texture-sheet.cycle-count.info")}),O()],x.prototype,"cycleCount",2);P([C({type:R.Vector2,min:1,label:d("effects.renderer.texture-sheet.tiling.label"),info:d("effects.renderer.texture-sheet.tiling.info"),onChange(a,e,t){a.applyBoundPathChange("generator.textureSheetAnimation.tiling",R.Vector2,t)}}),O()],x.prototype,"tiling",2);P([C({customComponent:N,onChange:G,min:0,max:1,yRangeMode:"positive",label:d("effects.renderer.over-lifetime.frame.label")}),O()],x.prototype,"frameOverTime",2);P([V({getPath:"generator.velocityOverLifetime.space",setPath:"generator.velocityOverLifetime.space"}),C({type:R.Select,bindPath:"generator.velocityOverLifetime.space",value:0,label:d("effects.renderer.space-mode.label"),info:d("effects.renderer.space-mode.info"),options:[{label:d("effects.renderer.space-mode.options.local"),value:K.Local},{label:d("effects.renderer.space-mode.options.world"),value:K.World}]}),O()],x.prototype,"spaceMode",2);P([V({getPath:"generator.forceOverLifetime.space",setPath:"generator.forceOverLifetime.space"}),C({type:R.Select,bindPath:"generator.forceOverLifetime.space",value:0,label:d("effects.renderer.space-mode.label"),info:d("effects.renderer.space-mode.info-force"),options:[{label:"Local",value:K.Local},{label:"World",value:K.World}]}),O()],x.prototype,"forceSpaceMode",2);P([C({customComponent:N,onChange:G,label:d("effects.renderer.velocity.x.label"),info:d("effects.renderer.velocity.x.info")}),O()],x.prototype,"velocityX",2);P([C({customComponent:N,onChange:G,label:d("effects.renderer.velocity.y.label")}),O()],x.prototype,"velocityY",2);P([C({customComponent:N,onChange:G,label:d("effects.renderer.velocity.z.label")}),O()],x.prototype,"velocityZ",2);P([C({module:"limitVelocityOverLifetime",toggleProps:"separateAxes",toggleLabel:"effects.curve.separate-axes",axisX:"speedX",axisY:"speedY",axisZ:"speedZ",mainAxis:"x",customComponent:fe,onChange:ye("separateAxes"),min:0,yRangeMode:"positive",label:d("effects.renderer.limit-velocity.limit.label")}),O()],x.prototype,"speed",2);P([V({getPath:"generator.limitVelocityOverLifetime.space",setPath:"generator.limitVelocityOverLifetime.space"}),C({type:R.Select,bindPath:"generator.limitVelocityOverLifetime.space",value:0,when:a=>a.speed.enabled,label:d("effects.renderer.space-mode.label"),info:d("effects.renderer.limit-velocity.space.info"),options:[{label:d("effects.renderer.space-mode.options.local"),value:K.Local},{label:d("effects.renderer.space-mode.options.world"),value:K.World}]}),O()],x.prototype,"limitVelocitySpaceMode",2);P([V({getPath:"generator.limitVelocityOverLifetime.dampen",setPath:"generator.limitVelocityOverLifetime.dampen"}),C({bindPath:"generator.limitVelocityOverLifetime.dampen",min:0,max:1,step:.01,dragStep:.01,label:d("effects.renderer.limit-velocity.dampen.label"),info:d("effects.renderer.limit-velocity.dampen.info")}),O()],x.prototype,"dampen",2);P([C({customComponent:N,onChange:G,min:0,yRangeMode:"positive",label:d("effects.renderer.limit-velocity.drag.label"),info:d("effects.renderer.limit-velocity.drag.info")}),O()],x.prototype,"drag",2);P([V({getPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleSize",setPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleSize"}),C({type:R.Toggle,bindPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleSize",label:d("effects.renderer.limit-velocity.multiply-drag-by-size.label"),info:d("effects.renderer.limit-velocity.multiply-drag-by-size.info")}),O()],x.prototype,"multiplyDragByParticleSize",2);P([V({getPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleVelocity",setPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleVelocity"}),C({type:R.Toggle,bindPath:"generator.limitVelocityOverLifetime.multiplyDragByParticleVelocity",label:d("effects.renderer.limit-velocity.multiply-drag-by-velocity.label"),info:d("effects.renderer.limit-velocity.multiply-drag-by-velocity.info")}),O()],x.prototype,"multiplyDragByParticleVelocity",2);P([C({customComponent:N,onChange:G}),O()],x.prototype,"forceX",2);P([C({customComponent:N,onChange:G}),O()],x.prototype,"forceY",2);P([C({customComponent:N,onChange:G}),O()],x.prototype,"forceZ",2);P([C({customComponent:or,onChange:nr,label:d("effects.renderer.color-over-lifetime.label")}),O()],x.prototype,"color",2);P([C({customComponent:lr,label:d("effects.renderer.noise.preview.label")})],x.prototype,"noisePreview",2);P([C({module:"noise",toggleProps:"separateAxes",toggleLabel:"effects.curve.separate-axes",axisX:"strengthX",axisY:"strengthY",axisZ:"strengthZ",mainAxis:"x",customComponent:fe,onChange:(a,e,t)=>{ye("separateAxes")(a,"strength",t)},label:d("effects.renderer.noise.strength.label")}),O()],x.prototype,"noiseStrength",2);P([V({getPath:"generator.noise.frequency",setPath:"generator.noise.frequency"}),C({bindPath:"generator.noise.frequency",min:1e-6,step:.1,dragStep:.1,label:d("effects.renderer.noise.frequency.label")}),O()],x.prototype,"noiseFrequency",2);P([V({getPath:"generator.noise.scrollSpeed",setPath:"generator.noise.scrollSpeed"}),C({bindPath:"generator.noise.scrollSpeed",min:0,step:.01,dragStep:.01,label:d("effects.renderer.noise.scroll-speed.label")}),O()],x.prototype,"noiseScrollSpeed",2);P([V({getPath:"generator.noise.octaveCount",setPath:"generator.noise.octaveCount"}),C({bindPath:"generator.noise.octaveCount",min:1,max:3,step:1,dragStep:1,label:d("effects.renderer.noise.octave-count.label")}),O()],x.prototype,"noiseOctaveCount",2);P([V({getPath:"generator.noise.octaveIntensityMultiplier",setPath:"generator.noise.octaveIntensityMultiplier"}),C({bindPath:"generator.noise.octaveIntensityMultiplier",min:0,max:1,step:.01,dragStep:.01,when:a=>a.noiseOctaveCount>1,label:d("effects.renderer.noise.octave-intensity-multiplier.label")}),O()],x.prototype,"noiseOctaveIntensityMultiplier",2);P([V({getPath:"generator.noise.octaveFrequencyMultiplier",setPath:"generator.noise.octaveFrequencyMultiplier"}),C({bindPath:"generator.noise.octaveFrequencyMultiplier",min:1,max:4,step:.1,dragStep:.1,when:a=>a.noiseOctaveCount>1,label:d("effects.renderer.noise.octave-frequency-multiplier.label")}),O()],x.prototype,"noiseOctaveFrequencyMultiplier",2);x=P([xa({type:"ParticleRenderer",customInspector:_a,componentsMenu:{group:"effects",label:d("component.particle-renderer.title")}})],x);export{x as ParticleRendererComponent};
@@ -1 +1 @@
1
- var y=Object.defineProperty;var M=(t,i,e)=>i in t?y(t,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[i]=e;var r=(t,i,e)=>(M(t,typeof i!="symbol"?i+"":i,e),e);import{j as h,P as a,k as d,p as l,C as b,m,n as v,e as C,o as F,q as P}from"./index-c3dec278.js";import"./index-cdbb2f4d.js";import"./postmen-2853c0e6.js";var f=Object.defineProperty,g=Object.getOwnPropertyDescriptor,c=(t,i,e,n)=>{for(var o=n>1?void 0:n?g(i,e):i,p=t.length-1,u;p>=0;p--)(u=t[p])&&(o=(n?u(i,e,o):u(o))||o);return n&&o&&f(i,e,o),o};let s=class extends h{constructor(i){super(i);r(this,"dynamicFriction",.6);r(this,"staticFriction",.6);r(this,"bounciness",0);r(this,"frictionCombine",a.Average);r(this,"bounceCombine",a.Average)}async initByMain(i){const e=JSON.parse(await i.text()),n=new d;n.dynamicFriction=this.dynamicFriction=e.dynamicFriction,n.staticFriction=this.staticFriction=e.staticFriction,n.bounciness=this.bounciness=e.bounciness,n.frictionCombine=this.frictionCombine=e.frictionCombine,n.bounceCombine=this.bounceCombine=e.bounceCombine,this.bindEngineObject(n)}async initByCreation(){return this.getMainData()}destroy(){var i;super.destroy(),(i=this.engineObject)==null||i.destroy()}};c([l({type:b.Number,label:"DynamicFriction",bindPath:"dynamicFriction"}),m()],s.prototype,"dynamicFriction",2);c([l({type:b.Number,label:"StaticFriction",bindPath:"staticFriction"}),m()],s.prototype,"staticFriction",2);c([l({type:b.Number,min:0,max:1,label:"Bounciness",bindPath:"bounciness"}),m()],s.prototype,"bounciness",2);c([l({type:b.Select,label:"FrictionCombine",bindPath:"frictionCombine",options:[{label:"Average",value:a.Average},{label:"Minimum",value:a.Minimum},{label:"Multiply",value:a.Multiply},{label:"Maximum",value:a.Maximum}]}),m()],s.prototype,"frictionCombine",2);c([l({type:b.Select,label:"BounceCombine",bindPath:"bounceCombine",options:[{label:"Average",value:a.Average},{label:"Minimum",value:a.Minimum},{label:"Multiply",value:a.Multiply},{label:"Maximum",value:a.Maximum}]}),m()],s.prototype,"bounceCombine",2);s=c([v({type:"PhysicsMaterial",label:C("asset.physics-material.title"),extname:"physMat",importMenuConfig:{type:F.Add},dragLayer:P.PhysicsMaterial,async bundle({content:t}){return{content:t}}})],s);export{s as PhysicsMaterialAsset};
1
+ var y=Object.defineProperty;var M=(t,i,e)=>i in t?y(t,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[i]=e;var r=(t,i,e)=>(M(t,typeof i!="symbol"?i+"":i,e),e);import{j as h,P as a,k as d,p as l,C as b,m,n as v,e as C,o as F,q as P}from"./index-b126bb6b.js";import"./index-c8ed2a45.js";import"./postmen-3b48c572.js";var f=Object.defineProperty,g=Object.getOwnPropertyDescriptor,c=(t,i,e,n)=>{for(var o=n>1?void 0:n?g(i,e):i,p=t.length-1,u;p>=0;p--)(u=t[p])&&(o=(n?u(i,e,o):u(o))||o);return n&&o&&f(i,e,o),o};let s=class extends h{constructor(i){super(i);r(this,"dynamicFriction",.6);r(this,"staticFriction",.6);r(this,"bounciness",0);r(this,"frictionCombine",a.Average);r(this,"bounceCombine",a.Average)}async initByMain(i){const e=JSON.parse(await i.text()),n=new d;n.dynamicFriction=this.dynamicFriction=e.dynamicFriction,n.staticFriction=this.staticFriction=e.staticFriction,n.bounciness=this.bounciness=e.bounciness,n.frictionCombine=this.frictionCombine=e.frictionCombine,n.bounceCombine=this.bounceCombine=e.bounceCombine,this.bindEngineObject(n)}async initByCreation(){return this.getMainData()}destroy(){var i;super.destroy(),(i=this.engineObject)==null||i.destroy()}};c([l({type:b.Number,label:"DynamicFriction",bindPath:"dynamicFriction"}),m()],s.prototype,"dynamicFriction",2);c([l({type:b.Number,label:"StaticFriction",bindPath:"staticFriction"}),m()],s.prototype,"staticFriction",2);c([l({type:b.Number,min:0,max:1,label:"Bounciness",bindPath:"bounciness"}),m()],s.prototype,"bounciness",2);c([l({type:b.Select,label:"FrictionCombine",bindPath:"frictionCombine",options:[{label:"Average",value:a.Average},{label:"Minimum",value:a.Minimum},{label:"Multiply",value:a.Multiply},{label:"Maximum",value:a.Maximum}]}),m()],s.prototype,"frictionCombine",2);c([l({type:b.Select,label:"BounceCombine",bindPath:"bounceCombine",options:[{label:"Average",value:a.Average},{label:"Minimum",value:a.Minimum},{label:"Multiply",value:a.Multiply},{label:"Maximum",value:a.Maximum}]}),m()],s.prototype,"bounceCombine",2);s=c([v({type:"PhysicsMaterial",label:C("asset.physics-material.title"),extname:"physMat",importMenuConfig:{type:F.Add},dragLayer:P.PhysicsMaterial,async bundle({content:t}){return{content:t}}})],s);export{s as PhysicsMaterialAsset};