@hellpig/anarchy-engine 22.0.0 → 22.0.2

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 (228) hide show
  1. package/dist/Actor/Adapters/ConfigToParams.d.ts +1 -1
  2. package/dist/Actor/Adapters/ConfigToParams.js +1 -1
  3. package/dist/Actor/Adapters/ConfigToParams.js.map +1 -1
  4. package/dist/Actor/Adapters/EntityToConfig.d.ts +1 -1
  5. package/dist/Actor/Adapters/EntityToConfig.js +1 -1
  6. package/dist/Actor/Adapters/EntityToConfig.js.map +1 -1
  7. package/dist/Actor/Entities/Actor/Actor.js +1 -1
  8. package/dist/Actor/Entities/Actor/Actor.js.map +1 -1
  9. package/dist/Actor/Factories/ActorFactory.js +1 -1
  10. package/dist/Actor/Factories/ActorFactory.js.map +1 -1
  11. package/dist/Actor/index.d.ts +1 -0
  12. package/dist/Audio/Adapters/AudioConfigToParams.d.ts +2 -0
  13. package/dist/Audio/Adapters/AudioConfigToParams.js +2 -0
  14. package/dist/Audio/Adapters/AudioConfigToParams.js.map +1 -0
  15. package/dist/Audio/Adapters/EntityToConfig.d.ts +1 -1
  16. package/dist/Audio/Adapters/EntityToConfig.js +1 -1
  17. package/dist/Audio/Adapters/EntityToConfig.js.map +1 -1
  18. package/dist/Audio/Adapters/index.d.ts +1 -1
  19. package/dist/Audio/Factories/AudioFactory.js +1 -1
  20. package/dist/Audio/Factories/AudioFactory.js.map +1 -1
  21. package/dist/Audio/Wrappers/AbstractAudioWrapper.js +1 -1
  22. package/dist/Audio/Wrappers/AbstractAudioWrapper.js.map +1 -1
  23. package/dist/Camera/Adapters/ConfigToParams.d.ts +1 -1
  24. package/dist/Camera/Adapters/ConfigToParams.js +1 -1
  25. package/dist/Camera/Adapters/ConfigToParams.js.map +1 -1
  26. package/dist/Camera/Adapters/EntityToConfig.d.ts +1 -1
  27. package/dist/Camera/Adapters/EntityToConfig.js +1 -1
  28. package/dist/Camera/Adapters/EntityToConfig.js.map +1 -1
  29. package/dist/Camera/Adapters/index.d.ts +1 -1
  30. package/dist/Camera/Factories/CameraFactory.js +1 -1
  31. package/dist/Camera/Factories/CameraFactory.js.map +1 -1
  32. package/dist/Camera/Wrappers/OrthographicCameraWrapper.js +1 -1
  33. package/dist/Camera/Wrappers/OrthographicCameraWrapper.js.map +1 -1
  34. package/dist/Camera/Wrappers/PerspectiveCameraWrapper.js +1 -1
  35. package/dist/Camera/Wrappers/PerspectiveCameraWrapper.js.map +1 -1
  36. package/dist/Color/Adapters/EntityToConfig.d.ts +1 -1
  37. package/dist/Color/Adapters/EntityToConfig.js +1 -1
  38. package/dist/Color/Adapters/EntityToConfig.js.map +1 -1
  39. package/dist/Color/Wrappers/ColorWrapper.js +1 -1
  40. package/dist/Color/Wrappers/ColorWrapper.js.map +1 -1
  41. package/dist/Controls/Adapters/ConfigToParams.d.ts +1 -1
  42. package/dist/Controls/Adapters/ConfigToParams.js +1 -1
  43. package/dist/Controls/Adapters/ConfigToParams.js.map +1 -1
  44. package/dist/Controls/Factories/ControlsFactory.js +1 -1
  45. package/dist/Controls/Factories/ControlsFactory.js.map +1 -1
  46. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapper.js +1 -1
  47. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapper.js +1 -1
  48. package/dist/Controls/index.d.ts +1 -0
  49. package/dist/EnvMap/Adapters/ConfigToParams.d.ts +1 -1
  50. package/dist/EnvMap/Adapters/ConfigToParams.js +1 -1
  51. package/dist/EnvMap/Adapters/ConfigToParams.js.map +1 -1
  52. package/dist/EnvMap/Adapters/EntityToConfig.d.ts +1 -1
  53. package/dist/EnvMap/Adapters/EntityToConfig.js +1 -1
  54. package/dist/EnvMap/Adapters/EntityToConfig.js.map +1 -1
  55. package/dist/EnvMap/Factories/EnvMapFactory.js +1 -1
  56. package/dist/EnvMap/Factories/EnvMapFactory.js.map +1 -1
  57. package/dist/EnvMap/Wrappers/EnvMapWrapper.js +1 -1
  58. package/dist/EnvMap/Wrappers/EnvMapWrapper.js.map +1 -1
  59. package/dist/EnvMap/index.d.ts +1 -1
  60. package/dist/Fog/Adapters/ConfigToParams.d.ts +1 -1
  61. package/dist/Fog/Adapters/ConfigToParams.js +1 -1
  62. package/dist/Fog/Adapters/ConfigToParams.js.map +1 -1
  63. package/dist/Fog/Adapters/EntityToConfig.d.ts +1 -1
  64. package/dist/Fog/Adapters/EntityToConfig.js +1 -1
  65. package/dist/Fog/Adapters/EntityToConfig.js.map +1 -1
  66. package/dist/Fog/Factories/FogFactory.js +1 -1
  67. package/dist/Fog/Factories/FogFactory.js.map +1 -1
  68. package/dist/Fog/Wrappers/FogWrapper.js +1 -1
  69. package/dist/Fog/Wrappers/FogWrapper.js.map +1 -1
  70. package/dist/Fog/index.d.ts +1 -0
  71. package/dist/Fsm/Adapters/ConfigToParams.d.ts +1 -1
  72. package/dist/Fsm/Adapters/ConfigToParams.js +1 -1
  73. package/dist/Fsm/Adapters/ConfigToParams.js.map +1 -1
  74. package/dist/Fsm/Adapters/EntityToConfig.d.ts +1 -1
  75. package/dist/Fsm/Adapters/EntityToConfig.js +1 -1
  76. package/dist/Fsm/Adapters/EntityToConfig.js.map +1 -1
  77. package/dist/Fsm/Factories/FsmInstanceFactory.js +1 -1
  78. package/dist/Fsm/Factories/FsmInstanceFactory.js.map +1 -1
  79. package/dist/Fsm/Factories/FsmSourceFactory.js +1 -1
  80. package/dist/Fsm/Factories/FsmSourceFactory.js.map +1 -1
  81. package/dist/Fsm/Wrappers/FsmWrapper.js +1 -1
  82. package/dist/Fsm/Wrappers/FsmWrapper.js.map +1 -1
  83. package/dist/Intersections/Adapters/ConfigToParams.d.ts +1 -1
  84. package/dist/Intersections/Adapters/ConfigToParams.js +1 -1
  85. package/dist/Intersections/Adapters/ConfigToParams.js.map +1 -1
  86. package/dist/Intersections/Adapters/EntityToConfig.d.ts +1 -1
  87. package/dist/Intersections/Adapters/EntityToConfig.js +1 -1
  88. package/dist/Intersections/Adapters/EntityToConfig.js.map +1 -1
  89. package/dist/Intersections/Factories/IntersectionsWatcherFactory.js +1 -1
  90. package/dist/Intersections/Factories/IntersectionsWatcherFactory.js.map +1 -1
  91. package/dist/Intersections/Watchers/AbstractIntersectionsWatcher.js +1 -1
  92. package/dist/Intersections/Watchers/AbstractIntersectionsWatcher.js.map +1 -1
  93. package/dist/Intersections/index.d.ts +1 -1
  94. package/dist/Kinematic/Adapters/ConfigToParams.d.ts +1 -1
  95. package/dist/Kinematic/Adapters/ConfigToParams.js +1 -1
  96. package/dist/Kinematic/Adapters/ConfigToParams.js.map +1 -1
  97. package/dist/Kinematic/Adapters/EntityToConfig.d.ts +1 -1
  98. package/dist/Kinematic/Adapters/EntityToConfig.js +1 -1
  99. package/dist/Kinematic/Adapters/EntityToConfig.js.map +1 -1
  100. package/dist/Kinematic/Adapters/index.d.ts +1 -1
  101. package/dist/Light/Adapters/ConfigToParams.d.ts +1 -1
  102. package/dist/Light/Adapters/ConfigToParams.js +1 -1
  103. package/dist/Light/Adapters/ConfigToParams.js.map +1 -1
  104. package/dist/Light/Adapters/EntityToConfig.d.ts +1 -1
  105. package/dist/Light/Adapters/EntityToConfig.js +1 -1
  106. package/dist/Light/Adapters/EntityToConfig.js.map +1 -1
  107. package/dist/Light/Factories/LightFactory.js +1 -1
  108. package/dist/Light/Factories/LightFactory.js.map +1 -1
  109. package/dist/Light/Wrappers/AbstractLightWrapper.js +1 -1
  110. package/dist/Light/Wrappers/AbstractLightWrapper.js.map +1 -1
  111. package/dist/Light/index.d.ts +1 -0
  112. package/dist/Material/Adapters/ConfigToParams.d.ts +1 -1
  113. package/dist/Material/Adapters/ConfigToParams.js +1 -1
  114. package/dist/Material/Adapters/ConfigToParams.js.map +1 -1
  115. package/dist/Material/Adapters/EntityToConfig.d.ts +1 -1
  116. package/dist/Material/Adapters/EntityToConfig.js +1 -1
  117. package/dist/Material/Adapters/EntityToConfig.js.map +1 -1
  118. package/dist/Material/Factories/MaterialFactory.js +1 -1
  119. package/dist/Material/Factories/MaterialFactory.js.map +1 -1
  120. package/dist/Material/Wrappers/MaterialWrapper.js +1 -1
  121. package/dist/Material/Wrappers/MaterialWrapper.js.map +1 -1
  122. package/dist/Material/index.d.ts +1 -0
  123. package/dist/Models3d/Adapters/ConfigToParams.d.ts +1 -1
  124. package/dist/Models3d/Adapters/ConfigToParams.js +1 -1
  125. package/dist/Models3d/Adapters/ConfigToParams.js.map +1 -1
  126. package/dist/Models3d/Adapters/EntityToConfig.d.ts +1 -1
  127. package/dist/Models3d/Adapters/EntityToConfig.js +1 -1
  128. package/dist/Models3d/Adapters/EntityToConfig.js.map +1 -1
  129. package/dist/Models3d/Entities/Model3d.js +1 -1
  130. package/dist/Models3d/Entities/Model3d.js.map +1 -1
  131. package/dist/Models3d/Factories/Models3dFactory.js +1 -1
  132. package/dist/Models3d/Factories/Models3dFactory.js.map +1 -1
  133. package/dist/Models3d/index.d.ts +1 -1
  134. package/dist/Particles/Adapters/ConfigToParams.d.ts +1 -1
  135. package/dist/Particles/Adapters/ConfigToParams.js +1 -1
  136. package/dist/Particles/Adapters/ConfigToParams.js.map +1 -1
  137. package/dist/Particles/Adapters/EntityToConfig.d.ts +1 -1
  138. package/dist/Particles/Adapters/EntityToConfig.js +1 -1
  139. package/dist/Particles/Adapters/EntityToConfig.js.map +1 -1
  140. package/dist/Particles/Factories/ParticlesFactory.js +1 -1
  141. package/dist/Particles/Factories/ParticlesFactory.js.map +1 -1
  142. package/dist/Particles/Wrappers/ParticlesWrapper.js +1 -1
  143. package/dist/Particles/Wrappers/ParticlesWrapper.js.map +1 -1
  144. package/dist/Particles/index.d.ts +1 -1
  145. package/dist/Physics/Adapters/EntityToConfig.d.ts +1 -1
  146. package/dist/Physics/Adapters/EntityToConfig.js +1 -1
  147. package/dist/Physics/Adapters/EntityToConfig.js.map +1 -1
  148. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.d.ts +1 -1
  149. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js +1 -1
  150. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js.map +1 -1
  151. package/dist/Physics/Adapters/PhysicsWorldConfigToParams.d.ts +1 -1
  152. package/dist/Physics/Adapters/PhysicsWorldConfigToParams.js +1 -1
  153. package/dist/Physics/Adapters/PhysicsWorldConfigToParams.js.map +1 -1
  154. package/dist/Physics/Entities/PhysicsBody.js +1 -1
  155. package/dist/Physics/Entities/PhysicsBody.js.map +1 -1
  156. package/dist/Physics/Factories/PhysicsBodyFactory.js +1 -1
  157. package/dist/Physics/Factories/PhysicsBodyFactory.js.map +1 -1
  158. package/dist/Renderer/Adapters/ConfigToParams.d.ts +1 -1
  159. package/dist/Renderer/Adapters/ConfigToParams.js +1 -1
  160. package/dist/Renderer/Adapters/ConfigToParams.js.map +1 -1
  161. package/dist/Renderer/Adapters/EntityToConfig.d.ts +1 -1
  162. package/dist/Renderer/Adapters/EntityToConfig.js +1 -1
  163. package/dist/Renderer/Adapters/EntityToConfig.js.map +1 -1
  164. package/dist/Renderer/Factories/RendererFactory.js +1 -1
  165. package/dist/Renderer/Factories/RendererFactory.js.map +1 -1
  166. package/dist/Renderer/Wrappers/RendererWrapper.js +1 -1
  167. package/dist/Renderer/Wrappers/RendererWrapper.js.map +1 -1
  168. package/dist/Renderer/index.d.ts +1 -1
  169. package/dist/Scene/Adapters/ConfigToParams.d.ts +1 -1
  170. package/dist/Scene/Adapters/ConfigToParams.js +1 -1
  171. package/dist/Scene/Adapters/ConfigToParams.js.map +1 -1
  172. package/dist/Scene/Adapters/EntityToConfig.d.ts +1 -1
  173. package/dist/Scene/Adapters/EntityToConfig.js +1 -1
  174. package/dist/Scene/Adapters/EntityToConfig.js.map +1 -1
  175. package/dist/Scene/Factories/SceneFactory.js +1 -1
  176. package/dist/Scene/Factories/SceneFactory.js.map +1 -1
  177. package/dist/Scene/Wrappers/SceneWrapper.js +1 -1
  178. package/dist/Scene/Wrappers/SceneWrapper.js.map +1 -1
  179. package/dist/Scene/index.d.ts +1 -0
  180. package/dist/Space/Adapters/ConfigToParams.d.ts +1 -1
  181. package/dist/Space/Adapters/ConfigToParams.js +1 -1
  182. package/dist/Space/Adapters/ConfigToParams.js.map +1 -1
  183. package/dist/Space/Adapters/EntityToConfig.d.ts +1 -1
  184. package/dist/Space/Adapters/EntityToConfig.js +1 -1
  185. package/dist/Space/Adapters/EntityToConfig.js.map +1 -1
  186. package/dist/Space/Entities/Space.js +1 -1
  187. package/dist/Space/Entities/Space.js.map +1 -1
  188. package/dist/Space/Factories/SpaceFactory.js +1 -1
  189. package/dist/Space/Factories/SpaceFactory.js.map +1 -1
  190. package/dist/Space/index.d.ts +1 -1
  191. package/dist/Spatial/Adapters/ConfigToParams.d.ts +1 -1
  192. package/dist/Spatial/Adapters/ConfigToParams.js +1 -1
  193. package/dist/Spatial/Adapters/ConfigToParams.js.map +1 -1
  194. package/dist/Spatial/Adapters/ConfigToParamsSpatialData.d.ts +1 -1
  195. package/dist/Spatial/Adapters/ConfigToParamsSpatialData.js +1 -1
  196. package/dist/Spatial/Adapters/ConfigToParamsSpatialData.js.map +1 -1
  197. package/dist/Spatial/Adapters/EntityToConfig.d.ts +1 -1
  198. package/dist/Spatial/Adapters/EntityToConfig.js +1 -1
  199. package/dist/Spatial/Adapters/EntityToConfig.js.map +1 -1
  200. package/dist/Spatial/Factories/SpatialGridFactory.js +1 -1
  201. package/dist/Spatial/Factories/SpatialGridFactory.js.map +1 -1
  202. package/dist/Spatial/Wrappers/SpatialGridWrapper.js +1 -1
  203. package/dist/Spatial/Wrappers/SpatialGridWrapper.js.map +1 -1
  204. package/dist/Text/Adapters/ConfigToParams.d.ts +1 -1
  205. package/dist/Text/Adapters/ConfigToParams.js +1 -1
  206. package/dist/Text/Adapters/ConfigToParams.js.map +1 -1
  207. package/dist/Text/Adapters/EntityToConfig.d.ts +1 -1
  208. package/dist/Text/Adapters/EntityToConfig.js +1 -1
  209. package/dist/Text/Adapters/EntityToConfig.js.map +1 -1
  210. package/dist/Text/Factories/TextFactory.js +1 -1
  211. package/dist/Text/Factories/TextFactory.js.map +1 -1
  212. package/dist/Text/Wrappers/TextTextureWrapper.js +1 -1
  213. package/dist/Text/Wrappers/TextTextureWrapper.js.map +1 -1
  214. package/dist/Text/Wrappers/TextWrapper.js +1 -1
  215. package/dist/Text/Wrappers/TextWrapper.js.map +1 -1
  216. package/dist/Text/index.d.ts +1 -0
  217. package/dist/ThreeLib/Utils/Object3dUtils.d.ts +1 -1
  218. package/dist/ThreeLib/Utils/Object3dUtils.js +1 -1
  219. package/dist/ThreeLib/Utils/Object3dUtils.js.map +1 -1
  220. package/dist/TransformDrive/Entities/Agents/KinematicTransformAgent.js +1 -1
  221. package/dist/TransformDrive/Entities/Agents/KinematicTransformAgent.js.map +1 -1
  222. package/dist/index.js +1 -1
  223. package/legal/NOTICE.md +1 -1
  224. package/legal/THIRD_PARTY_LICENSES.md +1 -1
  225. package/package.json +2 -1
  226. package/dist/Audio/Adapters/ConfigToParams.d.ts +0 -2
  227. package/dist/Audio/Adapters/ConfigToParams.js +0 -2
  228. package/dist/Audio/Adapters/ConfigToParams.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Models3d/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TAnimations, TAnimationsResourceAsyncRegistry } from '@Anarchy/Engine/Animations';\nimport type { PrimitiveModel3dType } from '@Anarchy/Engine/Models3d/Constants';\nimport type { TModel3dConfig, TModel3dConfigToParamsDependencies, TModel3dParams, TModels3dResourceAsyncRegistry } from '@Anarchy/Engine/Models3d/Models';\nimport { isPrimitiveModel3dData } from '@Anarchy/Engine/Models3d/Utils';\nimport { configToParamsObject3d } from '@Anarchy/Engine/ThreeLib';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { AnimationClip } from 'three';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\n\nexport function configToParams(config: TModel3dConfig, { animationsResourceAsyncRegistry, materialRegistry, model3dResourceAsyncRegistry }: TModel3dConfigToParamsDependencies): TModel3dParams {\n const { position, rotation, material, scale, ...rest } = config;\n\n return {\n ...rest,\n ...configToParamsObject3d({ position, rotation, scale }),\n animationsSource: getAnimationsSource(config, animationsResourceAsyncRegistry),\n model3dSource: getModel3d(config, model3dResourceAsyncRegistry),\n material: isDefined(material) ? materialRegistry.getByName(material) : undefined\n };\n}\n\nfunction getModel3d(config: TModel3dConfig, model3dResourceAsyncRegistry: TModels3dResourceAsyncRegistry): GLTF | PrimitiveModel3dType | never {\n let model3d: GLTF | PrimitiveModel3dType | undefined;\n if (isPrimitiveModel3dData(config)) {\n model3d = config.model3dSource as PrimitiveModel3dType;\n } else {\n model3d = isDefined(config.model3dSource) ? model3dResourceAsyncRegistry.getByKey(config.model3dSource) : undefined;\n }\n\n if (isNotDefined(model3d)) throw new Error(`Model3dConfigAdapter: model3dSource not found: ${config.model3dSource}`);\n\n return model3d;\n}\n\nfunction getAnimationsSource(config: TModel3dConfig, animationsResourceAsyncRegistry: TAnimationsResourceAsyncRegistry): ReadonlyArray<AnimationClip> | never {\n let animations: ReadonlyArray<AnimationClip> = [];\n if (isDefined(config.animationsSource)) {\n config.animationsSource.forEach((source: string): void => {\n const loaded: TAnimations = animationsResourceAsyncRegistry.getByKey(source);\n animations = [...animations, ...loaded];\n });\n }\n\n return animations;\n}\n"],"names":["configToParams","config","animationsResourceAsyncRegistry","materialRegistry","model3dResourceAsyncRegistry","position","rotation","material","scale","rest","configToParamsObject3d","animationsSource","getAnimationsSource","model3dSource","getModel3d","isDefined","getByName","model3d","isPrimitiveModel3dData","getByKey","isNotDefined","Error","animations","forEach","source","loaded"],"mappings":"2OASO,SAASA,eAAeC,QAAwBC,gCAAEA,gCAAAC,iBAAiCA,iBAAAC,6BAAkBA,+BAC1G,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,SAAUA,eAAUC,SAAUC,MAASR,OAEzD,MAAO,IACFQ,QACAC,uBAAuB,CAAEL,kBAAUC,kBAAUE,cAChDG,iBAAkBC,oBAAoBX,OAAQC,iCAC9CW,cAAeC,WAAWb,OAAQG,8BAClCG,SAAUQ,UAAUR,UAAYJ,iBAAiBa,UAAUT,eAAY,EAE3E,CAEA,SAASO,WAAWb,OAAwBG,8BAC1C,IAAIa,QAOJ,GALEA,QADEC,uBAAuBjB,QACfA,OAAOY,cAEPE,UAAUd,OAAOY,eAAiBT,6BAA6Be,SAASlB,OAAOY,oBAAiB,EAGxGO,aAAaH,SAAU,MAAM,IAAII,MAAM,kDAAkDpB,OAAOY,iBAEpG,OAAOI,OACT,CAEA,SAASL,oBAAoBX,OAAwBC,iCACnD,IAAIoB,WAA2C,GAQ/C,OAPIP,UAAUd,OAAOU,mBACnBV,OAAOU,iBAAiBY,QAASC,SAC/B,MAAMC,OAAsBvB,gCAAgCiB,SAASK,QACrEF,WAAa,IAAIA,cAAeG,UAI7BH,UACT"}
1
+ {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Models3d/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TAnimations, TAnimationsResourceAsyncRegistry } from '@Anarchy/Engine/Animations';\nimport type { PrimitiveModel3dType } from '@Anarchy/Engine/Models3d/Constants';\nimport type { TModel3dConfig, TModel3dConfigToParamsDependencies, TModel3dParams, TModels3dResourceAsyncRegistry } from '@Anarchy/Engine/Models3d/Models';\nimport { isPrimitiveModel3dData } from '@Anarchy/Engine/Models3d/Utils';\nimport { object3dConfigToParams } from '@Anarchy/Engine/ThreeLib';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { AnimationClip } from 'three';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\n\nexport function model3dConfigToParams(config: TModel3dConfig, { animationsResourceAsyncRegistry, materialRegistry, model3dResourceAsyncRegistry }: TModel3dConfigToParamsDependencies): TModel3dParams {\n const { position, rotation, material, scale, ...rest } = config;\n\n return {\n ...rest,\n ...object3dConfigToParams({ position, rotation, scale }),\n animationsSource: getAnimationsSource(config, animationsResourceAsyncRegistry),\n model3dSource: getModel3d(config, model3dResourceAsyncRegistry),\n material: isDefined(material) ? materialRegistry.getByName(material) : undefined\n };\n}\n\nfunction getModel3d(config: TModel3dConfig, model3dResourceAsyncRegistry: TModels3dResourceAsyncRegistry): GLTF | PrimitiveModel3dType | never {\n let model3d: GLTF | PrimitiveModel3dType | undefined;\n if (isPrimitiveModel3dData(config)) {\n model3d = config.model3dSource as PrimitiveModel3dType;\n } else {\n model3d = isDefined(config.model3dSource) ? model3dResourceAsyncRegistry.getByKey(config.model3dSource) : undefined;\n }\n\n if (isNotDefined(model3d)) throw new Error(`Model3dConfigAdapter: model3dSource not found: ${config.model3dSource}`);\n\n return model3d;\n}\n\nfunction getAnimationsSource(config: TModel3dConfig, animationsResourceAsyncRegistry: TAnimationsResourceAsyncRegistry): ReadonlyArray<AnimationClip> | never {\n let animations: ReadonlyArray<AnimationClip> = [];\n if (isDefined(config.animationsSource)) {\n config.animationsSource.forEach((source: string): void => {\n const loaded: TAnimations = animationsResourceAsyncRegistry.getByKey(source);\n animations = [...animations, ...loaded];\n });\n }\n\n return animations;\n}\n"],"names":["model3dConfigToParams","config","animationsResourceAsyncRegistry","materialRegistry","model3dResourceAsyncRegistry","position","rotation","material","scale","rest","object3dConfigToParams","animationsSource","getAnimationsSource","model3dSource","getModel3d","isDefined","getByName","model3d","isPrimitiveModel3dData","getByKey","isNotDefined","Error","animations","forEach","source","loaded"],"mappings":"2OASO,SAASA,sBAAsBC,QAAwBC,gCAAEA,gCAAAC,iBAAiCA,iBAAAC,6BAAkBA,+BACjH,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,SAAUA,eAAUC,SAAUC,MAASR,OAEzD,MAAO,IACFQ,QACAC,uBAAuB,CAAEL,kBAAUC,kBAAUE,cAChDG,iBAAkBC,oBAAoBX,OAAQC,iCAC9CW,cAAeC,WAAWb,OAAQG,8BAClCG,SAAUQ,UAAUR,UAAYJ,iBAAiBa,UAAUT,eAAY,EAE3E,CAEA,SAASO,WAAWb,OAAwBG,8BAC1C,IAAIa,QAOJ,GALEA,QADEC,uBAAuBjB,QACfA,OAAOY,cAEPE,UAAUd,OAAOY,eAAiBT,6BAA6Be,SAASlB,OAAOY,oBAAiB,EAGxGO,aAAaH,SAAU,MAAM,IAAII,MAAM,kDAAkDpB,OAAOY,iBAEpG,OAAOI,OACT,CAEA,SAASL,oBAAoBX,OAAwBC,iCACnD,IAAIoB,WAA2C,GAQ/C,OAPIP,UAAUd,OAAOU,mBACnBV,OAAOU,iBAAiBY,QAASC,SAC/B,MAAMC,OAAsBvB,gCAAgCiB,SAASK,QACrEF,WAAa,IAAIA,cAAeG,UAI7BH,UACT"}
@@ -1,2 +1,2 @@
1
1
  import { TModel3d, TModel3dConfig, TModel3dConfigToParamsDependencies } from '../Models';
2
- export declare function model3dToConfig(entity: TModel3d, { animationsResourceAsyncRegistry, model3dResourceAsyncRegistry }: Pick<TModel3dConfigToParamsDependencies, 'animationsResourceAsyncRegistry' | 'model3dResourceAsyncRegistry'>): TModel3dConfig;
2
+ export declare function model3dEntityToConfig(entity: TModel3d, { animationsResourceAsyncRegistry, model3dResourceAsyncRegistry }: Pick<TModel3dConfigToParamsDependencies, 'animationsResourceAsyncRegistry' | 'model3dResourceAsyncRegistry'>): TModel3dConfig;
@@ -1,2 +1,2 @@
1
- import{isNotDefined,isDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{filterOutEmptyFields}from"../../packages/anarchy-shared/src/Utils/ObjectUtils.js";import{isPrimitiveModel3dSource}from"../Utils/UtilsPrimitiveModels3d.js";import{animationActionToConfig}from"../../Animations/Adapters/EntityToConfig.js";import{extractSerializableRegistrableFields}from"../../Mixins/Generics/ExtractSerializableRegistrableFields.js";import{vector3ToXyz,eulerToXyz}from"../../Utils/TransformUtils.js";function model3dToConfig(entity,{animationsResourceAsyncRegistry:animationsResourceAsyncRegistry,model3dResourceAsyncRegistry:model3dResourceAsyncRegistry}){const rawModel3d=entity.getRawModel3d(),params=entity.getParams(),model3dSource=isPrimitiveModel3dSource(params.model3dSource)?params.model3dSource:function(entity,model3dResourceAsyncRegistry){const modelId=entity.forceClone?entity.getParams().model3dSource.scene.uuid:entity.getRawModel3d().uuid;return model3dResourceAsyncRegistry.findKey(val=>val.scene.uuid===modelId)}(entity,model3dResourceAsyncRegistry);if(isNotDefined(model3dSource))throw new Error(`[Serialization] Model3d: model3dSource not found for entity with name: "${entity.name}", (id: "${entity.id}")`);const material=isDefined(params.material)?params.material.name:void 0;return filterOutEmptyFields({model3dSource:model3dSource,material:material,animationsSource:getAllAnimationsSource(entity,animationsResourceAsyncRegistry),animationsState:serializeActiveAnimations(entity),options:params.options,forceClone:entity.forceClone,castShadow:rawModel3d.castShadow,receiveShadow:rawModel3d.receiveShadow,position:vector3ToXyz(rawModel3d.position),rotation:eulerToXyz(rawModel3d.rotation),scale:vector3ToXyz(rawModel3d.scale),...extractSerializableRegistrableFields(entity)})}function getAllAnimationsSource(entity,animationsResourceAsyncRegistry){const animationsSource=entity.getAnimations().map(animation=>animationsResourceAsyncRegistry.findKey(val=>val[0]===animation)).filter(isDefined);return animationsSource.length>0?animationsSource:void 0}function serializeActiveAnimations(entity){return Object.values(entity.actions).filter(action=>action.isRunning()||action.enabled&&action.weight>.001).map(animationActionToConfig)}export{model3dToConfig};
1
+ import{isNotDefined,isDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{filterOutEmptyFields}from"../../packages/anarchy-shared/src/Utils/ObjectUtils.js";import{isPrimitiveModel3dSource}from"../Utils/UtilsPrimitiveModels3d.js";import{animationActionToConfig}from"../../Animations/Adapters/EntityToConfig.js";import{extractSerializableRegistrableFields}from"../../Mixins/Generics/ExtractSerializableRegistrableFields.js";import{vector3ToXyz,eulerToXyz}from"../../Utils/TransformUtils.js";function model3dEntityToConfig(entity,{animationsResourceAsyncRegistry:animationsResourceAsyncRegistry,model3dResourceAsyncRegistry:model3dResourceAsyncRegistry}){const rawModel3d=entity.getRawModel3d(),params=entity.getParams(),model3dSource=isPrimitiveModel3dSource(params.model3dSource)?params.model3dSource:function(entity,model3dResourceAsyncRegistry){const modelId=entity.forceClone?entity.getParams().model3dSource.scene.uuid:entity.getRawModel3d().uuid;return model3dResourceAsyncRegistry.findKey(val=>val.scene.uuid===modelId)}(entity,model3dResourceAsyncRegistry);if(isNotDefined(model3dSource))throw new Error(`[Serialization] Model3d: model3dSource not found for entity with name: "${entity.name}", (id: "${entity.id}")`);const material=isDefined(params.material)?params.material.name:void 0;return filterOutEmptyFields({model3dSource:model3dSource,material:material,animationsSource:getAllAnimationsSource(entity,animationsResourceAsyncRegistry),animationsState:serializeActiveAnimations(entity),options:params.options,forceClone:entity.forceClone,castShadow:rawModel3d.castShadow,receiveShadow:rawModel3d.receiveShadow,position:vector3ToXyz(rawModel3d.position),rotation:eulerToXyz(rawModel3d.rotation),scale:vector3ToXyz(rawModel3d.scale),...extractSerializableRegistrableFields(entity)})}function getAllAnimationsSource(entity,animationsResourceAsyncRegistry){const animationsSource=entity.getAnimations().map(animation=>animationsResourceAsyncRegistry.findKey(val=>val[0]===animation)).filter(isDefined);return animationsSource.length>0?animationsSource:void 0}function serializeActiveAnimations(entity){return Object.values(entity.actions).filter(action=>action.isRunning()||action.enabled&&action.weight>.001).map(animationActionToConfig)}export{model3dEntityToConfig};
2
2
  //# sourceMappingURL=EntityToConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Models3d/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TAnimationStateConfig } from '@Anarchy/Engine/Animations';\nimport { animationActionToConfig } from '@Anarchy/Engine/Animations/Adapters';\nimport type { TAnimations, TAnimationsResourceAsyncRegistry } from '@Anarchy/Engine/Animations/Models';\nimport { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport type { PrimitiveModel3dType } from '@Anarchy/Engine/Models3d/Constants';\nimport type { TModel3d, TModel3dConfig, TModel3dConfigToParamsDependencies, TModel3dParams, TModels3dResourceAsyncRegistry, TRawModel3d } from '@Anarchy/Engine/Models3d/Models';\nimport { isPrimitiveModel3dSource } from '@Anarchy/Engine/Models3d/Utils';\nimport { eulerToXyz, vector3ToXyz } from '@Anarchy/Engine/Utils';\nimport { filterOutEmptyFields, isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { AnimationAction, AnimationClip } from 'three';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\n\nexport function model3dToConfig(\n entity: TModel3d,\n { animationsResourceAsyncRegistry, model3dResourceAsyncRegistry }: Pick<TModel3dConfigToParamsDependencies, 'animationsResourceAsyncRegistry' | 'model3dResourceAsyncRegistry'>\n): TModel3dConfig {\n const rawModel3d: TRawModel3d = entity.getRawModel3d();\n\n const params: TModel3dParams = entity.getParams();\n const isPrimitive: boolean = isPrimitiveModel3dSource(params.model3dSource);\n\n const model3dSource: string | undefined = isPrimitive ? (params.model3dSource as PrimitiveModel3dType) : getComplexModel3dSource(entity, model3dResourceAsyncRegistry);\n if (isNotDefined(model3dSource)) throw new Error(`[Serialization] Model3d: model3dSource not found for entity with name: \"${entity.name}\", (id: \"${entity.id}\")`);\n const material: string | undefined = isDefined(params.material) ? params.material.name : undefined;\n\n return filterOutEmptyFields({\n model3dSource,\n material,\n animationsSource: getAllAnimationsSource(entity, animationsResourceAsyncRegistry),\n animationsState: serializeActiveAnimations(entity),\n options: params.options,\n forceClone: entity.forceClone,\n castShadow: rawModel3d.castShadow,\n receiveShadow: rawModel3d.receiveShadow,\n position: vector3ToXyz(rawModel3d.position),\n rotation: eulerToXyz(rawModel3d.rotation),\n scale: vector3ToXyz(rawModel3d.scale),\n ...extractSerializableRegistrableFields(entity)\n });\n}\n\nfunction getComplexModel3dSource(entity: TModel3d, model3dResourceAsyncRegistry: TModels3dResourceAsyncRegistry): string | undefined {\n // For cloned models we need to use the ID from the params\n const modelId: string = !entity.forceClone ? entity.getRawModel3d().uuid : (entity.getParams().model3dSource as GLTF).scene.uuid;\n return model3dResourceAsyncRegistry.findKey((val: GLTF): boolean => val.scene.uuid === modelId);\n}\n\nfunction getAllAnimationsSource(entity: TModel3d, animationsResourceAsyncRegistry: TAnimationsResourceAsyncRegistry): ReadonlyArray<string> | undefined {\n const allAnimations: ReadonlyArray<AnimationClip> = entity.getAnimations();\n\n const animationsSource: ReadonlyArray<string> = allAnimations\n .map((animation: AnimationClip): string | undefined => {\n return animationsResourceAsyncRegistry.findKey((val: TAnimations): boolean => {\n return val[0] === animation;\n });\n })\n .filter(isDefined);\n\n return animationsSource.length > 0 ? animationsSource : undefined;\n}\n\nfunction serializeActiveAnimations(entity: TModel3d): ReadonlyArray<TAnimationStateConfig> {\n const MIN_WEIGHT = 1e-3;\n return Object.values(entity.actions)\n .filter((action: AnimationAction): boolean => {\n return action.isRunning() || (action.enabled && action.weight > MIN_WEIGHT);\n })\n .map(animationActionToConfig);\n}\n"],"names":["model3dToConfig","entity","animationsResourceAsyncRegistry","model3dResourceAsyncRegistry","rawModel3d","getRawModel3d","params","getParams","model3dSource","isPrimitiveModel3dSource","modelId","forceClone","scene","uuid","findKey","val","getComplexModel3dSource","isNotDefined","Error","name","id","material","isDefined","filterOutEmptyFields","animationsSource","getAllAnimationsSource","animationsState","serializeActiveAnimations","options","castShadow","receiveShadow","position","vector3ToXyz","rotation","eulerToXyz","scale","extractSerializableRegistrableFields","getAnimations","map","animation","filter","length","Object","values","actions","action","isRunning","enabled","weight","animationActionToConfig"],"mappings":"ggBAYO,SAASA,gBACdC,QACAC,gCAAEA,gCAAAC,6BAAiCA,+BAEnC,MAAMC,WAA0BH,OAAOI,gBAEjCC,OAAyBL,OAAOM,YAGhCC,cAFuBC,yBAAyBH,OAAOE,eAEJF,OAAOE,cAoBlE,SAAiCP,OAAkBE,8BAEjD,MAAMO,QAAmBT,OAAOU,WAA4CV,OAAOM,YAAYC,cAAuBI,MAAMC,KAA/EZ,OAAOI,gBAAgBQ,KACpE,OAAOV,6BAA6BW,QAASC,KAAuBA,IAAIH,MAAMC,OAASH,QACzF,CAxB2GM,CAAwBf,OAAQE,8BACzI,GAAIc,aAAaT,eAAgB,MAAM,IAAIU,MAAM,2EAA2EjB,OAAOkB,gBAAgBlB,OAAOmB,QAC1J,MAAMC,SAA+BC,UAAUhB,OAAOe,UAAYf,OAAOe,SAASF,UAAO,EAEzF,OAAOI,qBAAqB,CAC1Bf,4BACAa,kBACAG,iBAAkBC,uBAAuBxB,OAAQC,iCACjDwB,gBAAiBC,0BAA0B1B,QAC3C2B,QAAStB,OAAOsB,QAChBjB,WAAYV,OAAOU,WACnBkB,WAAYzB,WAAWyB,WACvBC,cAAe1B,WAAW0B,cAC1BC,SAAUC,aAAa5B,WAAW2B,UAClCE,SAAUC,WAAW9B,WAAW6B,UAChCE,MAAOH,aAAa5B,WAAW+B,UAC5BC,qCAAqCnC,SAE5C,CAQA,SAASwB,uBAAuBxB,OAAkBC,iCAChD,MAEMsB,iBAF8CvB,OAAOoC,gBAGxDC,IAAKC,WACGrC,gCAAgCY,QAASC,KACvCA,IAAI,KAAOwB,YAGrBC,OAAOlB,WAEV,OAAOE,iBAAiBiB,OAAS,EAAIjB,sBAAmB,CAC1D,CAEA,SAASG,0BAA0B1B,QAEjC,OAAOyC,OAAOC,OAAO1C,OAAO2C,SACzBJ,OAAQK,QACAA,OAAOC,aAAgBD,OAAOE,SAAWF,OAAOG,OAHxC,MAKhBV,IAAIW,wBACT"}
1
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Models3d/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TAnimationStateConfig } from '@Anarchy/Engine/Animations';\nimport { animationActionToConfig } from '@Anarchy/Engine/Animations/Adapters';\nimport type { TAnimations, TAnimationsResourceAsyncRegistry } from '@Anarchy/Engine/Animations/Models';\nimport { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport type { PrimitiveModel3dType } from '@Anarchy/Engine/Models3d/Constants';\nimport type { TModel3d, TModel3dConfig, TModel3dConfigToParamsDependencies, TModel3dParams, TModels3dResourceAsyncRegistry, TRawModel3d } from '@Anarchy/Engine/Models3d/Models';\nimport { isPrimitiveModel3dSource } from '@Anarchy/Engine/Models3d/Utils';\nimport { eulerToXyz, vector3ToXyz } from '@Anarchy/Engine/Utils';\nimport { filterOutEmptyFields, isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { AnimationAction, AnimationClip } from 'three';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\n\nexport function model3dEntityToConfig(\n entity: TModel3d,\n { animationsResourceAsyncRegistry, model3dResourceAsyncRegistry }: Pick<TModel3dConfigToParamsDependencies, 'animationsResourceAsyncRegistry' | 'model3dResourceAsyncRegistry'>\n): TModel3dConfig {\n const rawModel3d: TRawModel3d = entity.getRawModel3d();\n\n const params: TModel3dParams = entity.getParams();\n const isPrimitive: boolean = isPrimitiveModel3dSource(params.model3dSource);\n\n const model3dSource: string | undefined = isPrimitive ? (params.model3dSource as PrimitiveModel3dType) : getComplexModel3dSource(entity, model3dResourceAsyncRegistry);\n if (isNotDefined(model3dSource)) throw new Error(`[Serialization] Model3d: model3dSource not found for entity with name: \"${entity.name}\", (id: \"${entity.id}\")`);\n const material: string | undefined = isDefined(params.material) ? params.material.name : undefined;\n\n return filterOutEmptyFields({\n model3dSource,\n material,\n animationsSource: getAllAnimationsSource(entity, animationsResourceAsyncRegistry),\n animationsState: serializeActiveAnimations(entity),\n options: params.options,\n forceClone: entity.forceClone,\n castShadow: rawModel3d.castShadow,\n receiveShadow: rawModel3d.receiveShadow,\n position: vector3ToXyz(rawModel3d.position),\n rotation: eulerToXyz(rawModel3d.rotation),\n scale: vector3ToXyz(rawModel3d.scale),\n ...extractSerializableRegistrableFields(entity)\n });\n}\n\nfunction getComplexModel3dSource(entity: TModel3d, model3dResourceAsyncRegistry: TModels3dResourceAsyncRegistry): string | undefined {\n // For cloned models we need to use the ID from the params\n const modelId: string = !entity.forceClone ? entity.getRawModel3d().uuid : (entity.getParams().model3dSource as GLTF).scene.uuid;\n return model3dResourceAsyncRegistry.findKey((val: GLTF): boolean => val.scene.uuid === modelId);\n}\n\nfunction getAllAnimationsSource(entity: TModel3d, animationsResourceAsyncRegistry: TAnimationsResourceAsyncRegistry): ReadonlyArray<string> | undefined {\n const allAnimations: ReadonlyArray<AnimationClip> = entity.getAnimations();\n\n const animationsSource: ReadonlyArray<string> = allAnimations\n .map((animation: AnimationClip): string | undefined => {\n return animationsResourceAsyncRegistry.findKey((val: TAnimations): boolean => {\n return val[0] === animation;\n });\n })\n .filter(isDefined);\n\n return animationsSource.length > 0 ? animationsSource : undefined;\n}\n\nfunction serializeActiveAnimations(entity: TModel3d): ReadonlyArray<TAnimationStateConfig> {\n const MIN_WEIGHT = 1e-3;\n return Object.values(entity.actions)\n .filter((action: AnimationAction): boolean => {\n return action.isRunning() || (action.enabled && action.weight > MIN_WEIGHT);\n })\n .map(animationActionToConfig);\n}\n"],"names":["model3dEntityToConfig","entity","animationsResourceAsyncRegistry","model3dResourceAsyncRegistry","rawModel3d","getRawModel3d","params","getParams","model3dSource","isPrimitiveModel3dSource","modelId","forceClone","scene","uuid","findKey","val","getComplexModel3dSource","isNotDefined","Error","name","id","material","isDefined","filterOutEmptyFields","animationsSource","getAllAnimationsSource","animationsState","serializeActiveAnimations","options","castShadow","receiveShadow","position","vector3ToXyz","rotation","eulerToXyz","scale","extractSerializableRegistrableFields","getAnimations","map","animation","filter","length","Object","values","actions","action","isRunning","enabled","weight","animationActionToConfig"],"mappings":"ggBAYO,SAASA,sBACdC,QACAC,gCAAEA,gCAAAC,6BAAiCA,+BAEnC,MAAMC,WAA0BH,OAAOI,gBAEjCC,OAAyBL,OAAOM,YAGhCC,cAFuBC,yBAAyBH,OAAOE,eAEJF,OAAOE,cAoBlE,SAAiCP,OAAkBE,8BAEjD,MAAMO,QAAmBT,OAAOU,WAA4CV,OAAOM,YAAYC,cAAuBI,MAAMC,KAA/EZ,OAAOI,gBAAgBQ,KACpE,OAAOV,6BAA6BW,QAASC,KAAuBA,IAAIH,MAAMC,OAASH,QACzF,CAxB2GM,CAAwBf,OAAQE,8BACzI,GAAIc,aAAaT,eAAgB,MAAM,IAAIU,MAAM,2EAA2EjB,OAAOkB,gBAAgBlB,OAAOmB,QAC1J,MAAMC,SAA+BC,UAAUhB,OAAOe,UAAYf,OAAOe,SAASF,UAAO,EAEzF,OAAOI,qBAAqB,CAC1Bf,4BACAa,kBACAG,iBAAkBC,uBAAuBxB,OAAQC,iCACjDwB,gBAAiBC,0BAA0B1B,QAC3C2B,QAAStB,OAAOsB,QAChBjB,WAAYV,OAAOU,WACnBkB,WAAYzB,WAAWyB,WACvBC,cAAe1B,WAAW0B,cAC1BC,SAAUC,aAAa5B,WAAW2B,UAClCE,SAAUC,WAAW9B,WAAW6B,UAChCE,MAAOH,aAAa5B,WAAW+B,UAC5BC,qCAAqCnC,SAE5C,CAQA,SAASwB,uBAAuBxB,OAAkBC,iCAChD,MAEMsB,iBAF8CvB,OAAOoC,gBAGxDC,IAAKC,WACGrC,gCAAgCY,QAASC,KACvCA,IAAI,KAAOwB,YAGrBC,OAAOlB,WAEV,OAAOE,iBAAiBiB,OAAS,EAAIjB,sBAAmB,CAC1D,CAEA,SAASG,0BAA0B1B,QAEjC,OAAOyC,OAAOC,OAAO1C,OAAO2C,SACzBJ,OAAQK,QACAA,OAAOC,aAAgBD,OAAOE,SAAWF,OAAOG,OAHxC,MAKhBV,IAAIW,wBACT"}
@@ -1,2 +1,2 @@
1
- import{isDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{isModel3dAlreadyInUse,createModels3dEntities}from"../Utils/UtilsModel3d.js";import{withModel3dEntities}from"../Mixins/WithModel3dEntities.js";import{applyScaleToModel3d,applyRotationToModel3d,applyPositionToModel3d,applyObject3dParamsToModel3d}from"../Utils/UtilsModels3dService.js";import{withObject3d}from"../../Mixins/GameObjects/Mixins/WithObject3D.js";import{destroyModel3dAnimationEntities,disposeGltf}from"../../Utils/DestroyUtils.js";import{applyObject3dParams}from"../../Utils/WrapperHelpers.js";import{applyAnimationsState}from"../Utils/SerializationUtils.js";import{model3dToConfig}from"../Adapters/EntityToConfig.js";import{AbstractEntity}from"../../Abstract/Entities/AbstractEntity.js";import{EntityType}from"../../Abstract/Constants/EntityType.js";import{mergeAll}from"../../Utils/ObjectUtils.js";function Model3d(params,{animationsService:animationsService,model3dRawToModel3dConnectionRegistry:model3dRawToModel3dConnectionRegistry}){const shouldForceClone=params.forceClone??isModel3dAlreadyInUse(params.model3dSource,model3dRawToModel3dConnectionRegistry);let entities=createModels3dEntities({...params,forceClone:shouldForceClone},animationsService);const abstract=AbstractEntity(withModel3dEntities(entities),EntityType.Model3d,params);isDefined(params.scale)&&applyScaleToModel3d(abstract.getRawModel3d(),params.scale),isDefined(params.rotation)&&applyRotationToModel3d(abstract.getRawModel3d(),params.rotation),isDefined(params.position)&&applyPositionToModel3d(abstract.getRawModel3d(),params.position),applyObject3dParamsToModel3d(abstract.getRawModel3d(),params),model3dRawToModel3dConnectionRegistry.addModel3d(abstract.getRawModel3d(),abstract);const preResult=withObject3d(abstract.getRawModel3d()),result=mergeAll(preResult,abstract,{getParams:()=>({...params}),serialize:dependencies=>model3dToConfig(result,dependencies)}),destroySub$=abstract.destroy$.subscribe(()=>{destroySub$.unsubscribe(),model3dRawToModel3dConnectionRegistry.removeByModel3d(result.getRawModel3d(),!0),destroyModel3dAnimationEntities(abstract),disposeGltf(abstract.getRawModel3d()),entities=null});return applyObject3dParams(result,params),applyAnimationsState(result,params),result}export{Model3d};
1
+ import{isDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{isModel3dAlreadyInUse,createModels3dEntities}from"../Utils/UtilsModel3d.js";import{withModel3dEntities}from"../Mixins/WithModel3dEntities.js";import{applyScaleToModel3d,applyRotationToModel3d,applyPositionToModel3d,applyObject3dParamsToModel3d}from"../Utils/UtilsModels3dService.js";import{withObject3d}from"../../Mixins/GameObjects/Mixins/WithObject3D.js";import{destroyModel3dAnimationEntities,disposeGltf}from"../../Utils/DestroyUtils.js";import{applyObject3dParams}from"../../Utils/WrapperHelpers.js";import{applyAnimationsState}from"../Utils/SerializationUtils.js";import{model3dEntityToConfig}from"../Adapters/EntityToConfig.js";import{AbstractEntity}from"../../Abstract/Entities/AbstractEntity.js";import{EntityType}from"../../Abstract/Constants/EntityType.js";import{mergeAll}from"../../Utils/ObjectUtils.js";function Model3d(params,{animationsService:animationsService,model3dRawToModel3dConnectionRegistry:model3dRawToModel3dConnectionRegistry}){const shouldForceClone=params.forceClone??isModel3dAlreadyInUse(params.model3dSource,model3dRawToModel3dConnectionRegistry);let entities=createModels3dEntities({...params,forceClone:shouldForceClone},animationsService);const abstract=AbstractEntity(withModel3dEntities(entities),EntityType.Model3d,params);isDefined(params.scale)&&applyScaleToModel3d(abstract.getRawModel3d(),params.scale),isDefined(params.rotation)&&applyRotationToModel3d(abstract.getRawModel3d(),params.rotation),isDefined(params.position)&&applyPositionToModel3d(abstract.getRawModel3d(),params.position),applyObject3dParamsToModel3d(abstract.getRawModel3d(),params),model3dRawToModel3dConnectionRegistry.addModel3d(abstract.getRawModel3d(),abstract);const preResult=withObject3d(abstract.getRawModel3d()),result=mergeAll(preResult,abstract,{getParams:()=>({...params}),serialize:dependencies=>model3dEntityToConfig(result,dependencies)}),destroySub$=abstract.destroy$.subscribe(()=>{destroySub$.unsubscribe(),model3dRawToModel3dConnectionRegistry.removeByModel3d(result.getRawModel3d(),!0),destroyModel3dAnimationEntities(abstract),disposeGltf(abstract.getRawModel3d()),entities=null});return applyObject3dParams(result,params),applyAnimationsState(result,params),result}export{Model3d};
2
2
  //# sourceMappingURL=Model3d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Model3d.js","sources":["../../../src/Models3d/Entities/Model3d.ts"],"sourcesContent":["import type { TAbstractEntity } from '@Anarchy/Engine/Abstract';\nimport { AbstractEntity, EntityType } from '@Anarchy/Engine/Abstract';\nimport { withObject3d } from '@Anarchy/Engine/Mixins';\nimport { model3dToConfig } from '@Anarchy/Engine/Models3d/Adapters';\nimport { withModel3dEntities } from '@Anarchy/Engine/Models3d/Mixins';\nimport type { TModel3d, TModel3dConfig, TModel3dConfigToParamsDependencies, TModel3dDependencies, TModel3dEntities, TModel3dParams, TWithModel3dEntities } from '@Anarchy/Engine/Models3d/Models';\nimport {\n applyAnimationsState,\n applyObject3dParamsToModel3d,\n applyPositionToModel3d,\n applyRotationToModel3d,\n applyScaleToModel3d,\n createModels3dEntities,\n isModel3dAlreadyInUse\n} from '@Anarchy/Engine/Models3d/Utils';\nimport { applyObject3dParams, destroyModel3dAnimationEntities, disposeGltf, mergeAll } from '@Anarchy/Engine/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function Model3d(params: TModel3dParams, { animationsService, model3dRawToModel3dConnectionRegistry }: TModel3dDependencies): TModel3d {\n const shouldForceClone: boolean = params.forceClone ?? isModel3dAlreadyInUse(params.model3dSource, model3dRawToModel3dConnectionRegistry);\n let entities: TModel3dEntities = createModels3dEntities({ ...params, forceClone: shouldForceClone }, animationsService);\n const abstract: TAbstractEntity<TWithModel3dEntities> = AbstractEntity(withModel3dEntities(entities), EntityType.Model3d, params);\n\n const getParams = (): TModel3dParams => ({ ...params });\n\n // Maybe we should apply all the params from object3d (can we do it in a more generic way?)\n //applying model's params\n if (isDefined(params.scale)) applyScaleToModel3d(abstract.getRawModel3d(), params.scale);\n if (isDefined(params.rotation)) applyRotationToModel3d(abstract.getRawModel3d(), params.rotation);\n if (isDefined(params.position)) applyPositionToModel3d(abstract.getRawModel3d(), params.position);\n applyObject3dParamsToModel3d(abstract.getRawModel3d(), params);\n\n model3dRawToModel3dConnectionRegistry.addModel3d(abstract.getRawModel3d(), abstract as TModel3d);\n\n const preResult = withObject3d(abstract.getRawModel3d());\n const result: TModel3d = mergeAll(preResult, abstract, {\n getParams,\n serialize: (dependencies: TModel3dConfigToParamsDependencies): TModel3dConfig => model3dToConfig(result, dependencies)\n });\n\n const destroySub$: Subscription = abstract.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n model3dRawToModel3dConnectionRegistry.removeByModel3d(result.getRawModel3d(), true);\n\n destroyModel3dAnimationEntities(abstract);\n\n // TODO MODELS: This is not tested yet. This dispose function could remove resources (e.g. textures) that could be used by other models.\n disposeGltf(abstract.getRawModel3d());\n entities = null as any;\n });\n\n applyObject3dParams(result, params);\n applyAnimationsState(result, params);\n\n return result;\n}\n"],"names":["Model3d","params","animationsService","model3dRawToModel3dConnectionRegistry","shouldForceClone","forceClone","isModel3dAlreadyInUse","model3dSource","entities","createModels3dEntities","abstract","AbstractEntity","withModel3dEntities","EntityType","isDefined","scale","getRawModel3d","rotation","position","applyObject3dParamsToModel3d","addModel3d","preResult","withObject3d","result","mergeAll","getParams","serialize","dependencies","model3dToConfig","destroySub$","destroy$","subscribe","unsubscribe","removeByModel3d","destroyModel3dAnimationEntities","disposeGltf","applyObject3dParams","applyAnimationsState"],"mappings":"+3BAmBO,SAASA,QAAQC,QAAwBC,kBAAEA,kBAAAC,sCAAmBA,wCACnE,MAAMC,iBAA4BH,OAAOI,YAAcC,sBAAsBL,OAAOM,cAAeJ,uCACnG,IAAIK,SAA6BC,uBAAuB,IAAKR,OAAQI,WAAYD,kBAAoBF,mBACrG,MAAMQ,SAAkDC,eAAeC,oBAAoBJ,UAAWK,WAAWb,QAASC,QAMtHa,UAAUb,OAAOc,4BAA4BL,SAASM,gBAAiBf,OAAOc,OAC9ED,UAAUb,OAAOgB,kCAAkCP,SAASM,gBAAiBf,OAAOgB,UACpFH,UAAUb,OAAOiB,kCAAkCR,SAASM,gBAAiBf,OAAOiB,UACxFC,6BAA6BT,SAASM,gBAAiBf,QAEvDE,sCAAsCiB,WAAWV,SAASM,gBAAiBN,UAE3E,MAAMW,UAAYC,aAAaZ,SAASM,iBAClCO,OAAmBC,SAASH,UAAWX,SAAU,CACrDe,UAbgB,KAAA,IAA4BxB,SAc5CyB,UAAYC,cAAqEC,gBAAgBL,OAAQI,gBAGrGE,YAA4BnB,SAASoB,SAASC,UAAU,KAC5DF,YAAYG,cACZ7B,sCAAsC8B,gBAAgBV,OAAOP,iBAAiB,GAE9EkB,gCAAgCxB,UAGhCyB,YAAYzB,SAASM,iBACrBR,SAAW,OAMb,OAHA4B,oBAAoBb,OAAQtB,QAC5BoC,qBAAqBd,OAAQtB,QAEtBsB,MACT"}
1
+ {"version":3,"file":"Model3d.js","sources":["../../../src/Models3d/Entities/Model3d.ts"],"sourcesContent":["import type { TAbstractEntity } from '@Anarchy/Engine/Abstract';\nimport { AbstractEntity, EntityType } from '@Anarchy/Engine/Abstract';\nimport { withObject3d } from '@Anarchy/Engine/Mixins';\nimport { model3dEntityToConfig } from '@Anarchy/Engine/Models3d/Adapters';\nimport { withModel3dEntities } from '@Anarchy/Engine/Models3d/Mixins';\nimport type { TModel3d, TModel3dConfig, TModel3dConfigToParamsDependencies, TModel3dDependencies, TModel3dEntities, TModel3dParams, TWithModel3dEntities } from '@Anarchy/Engine/Models3d/Models';\nimport {\n applyAnimationsState,\n applyObject3dParamsToModel3d,\n applyPositionToModel3d,\n applyRotationToModel3d,\n applyScaleToModel3d,\n createModels3dEntities,\n isModel3dAlreadyInUse\n} from '@Anarchy/Engine/Models3d/Utils';\nimport { applyObject3dParams, destroyModel3dAnimationEntities, disposeGltf, mergeAll } from '@Anarchy/Engine/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function Model3d(params: TModel3dParams, { animationsService, model3dRawToModel3dConnectionRegistry }: TModel3dDependencies): TModel3d {\n const shouldForceClone: boolean = params.forceClone ?? isModel3dAlreadyInUse(params.model3dSource, model3dRawToModel3dConnectionRegistry);\n let entities: TModel3dEntities = createModels3dEntities({ ...params, forceClone: shouldForceClone }, animationsService);\n const abstract: TAbstractEntity<TWithModel3dEntities> = AbstractEntity(withModel3dEntities(entities), EntityType.Model3d, params);\n\n const getParams = (): TModel3dParams => ({ ...params });\n\n // Maybe we should apply all the params from object3d (can we do it in a more generic way?)\n //applying model's params\n if (isDefined(params.scale)) applyScaleToModel3d(abstract.getRawModel3d(), params.scale);\n if (isDefined(params.rotation)) applyRotationToModel3d(abstract.getRawModel3d(), params.rotation);\n if (isDefined(params.position)) applyPositionToModel3d(abstract.getRawModel3d(), params.position);\n applyObject3dParamsToModel3d(abstract.getRawModel3d(), params);\n\n model3dRawToModel3dConnectionRegistry.addModel3d(abstract.getRawModel3d(), abstract as TModel3d);\n\n const preResult = withObject3d(abstract.getRawModel3d());\n const result: TModel3d = mergeAll(preResult, abstract, {\n getParams,\n serialize: (dependencies: TModel3dConfigToParamsDependencies): TModel3dConfig => model3dEntityToConfig(result, dependencies)\n });\n\n const destroySub$: Subscription = abstract.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n model3dRawToModel3dConnectionRegistry.removeByModel3d(result.getRawModel3d(), true);\n\n destroyModel3dAnimationEntities(abstract);\n\n // TODO MODELS: This is not tested yet. This dispose function could remove resources (e.g. textures) that could be used by other models.\n disposeGltf(abstract.getRawModel3d());\n entities = null as any;\n });\n\n applyObject3dParams(result, params);\n applyAnimationsState(result, params);\n\n return result;\n}\n"],"names":["Model3d","params","animationsService","model3dRawToModel3dConnectionRegistry","shouldForceClone","forceClone","isModel3dAlreadyInUse","model3dSource","entities","createModels3dEntities","abstract","AbstractEntity","withModel3dEntities","EntityType","isDefined","scale","getRawModel3d","rotation","position","applyObject3dParamsToModel3d","addModel3d","preResult","withObject3d","result","mergeAll","getParams","serialize","dependencies","model3dEntityToConfig","destroySub$","destroy$","subscribe","unsubscribe","removeByModel3d","destroyModel3dAnimationEntities","disposeGltf","applyObject3dParams","applyAnimationsState"],"mappings":"q4BAmBO,SAASA,QAAQC,QAAwBC,kBAAEA,kBAAAC,sCAAmBA,wCACnE,MAAMC,iBAA4BH,OAAOI,YAAcC,sBAAsBL,OAAOM,cAAeJ,uCACnG,IAAIK,SAA6BC,uBAAuB,IAAKR,OAAQI,WAAYD,kBAAoBF,mBACrG,MAAMQ,SAAkDC,eAAeC,oBAAoBJ,UAAWK,WAAWb,QAASC,QAMtHa,UAAUb,OAAOc,4BAA4BL,SAASM,gBAAiBf,OAAOc,OAC9ED,UAAUb,OAAOgB,kCAAkCP,SAASM,gBAAiBf,OAAOgB,UACpFH,UAAUb,OAAOiB,kCAAkCR,SAASM,gBAAiBf,OAAOiB,UACxFC,6BAA6BT,SAASM,gBAAiBf,QAEvDE,sCAAsCiB,WAAWV,SAASM,gBAAiBN,UAE3E,MAAMW,UAAYC,aAAaZ,SAASM,iBAClCO,OAAmBC,SAASH,UAAWX,SAAU,CACrDe,UAbgB,KAAA,IAA4BxB,SAc5CyB,UAAYC,cAAqEC,sBAAsBL,OAAQI,gBAG3GE,YAA4BnB,SAASoB,SAASC,UAAU,KAC5DF,YAAYG,cACZ7B,sCAAsC8B,gBAAgBV,OAAOP,iBAAiB,GAE9EkB,gCAAgCxB,UAGhCyB,YAAYzB,SAASM,iBACrBR,SAAW,OAMb,OAHA4B,oBAAoBb,OAAQtB,QAC5BoC,qBAAqBd,OAAQtB,QAEtBsB,MACT"}
@@ -1,2 +1,2 @@
1
- import{configToParams}from"../Adapters/ConfigToParams.js";import{Model3d}from"../Entities/Model3d.js";import{ReactiveFactory}from"../../Abstract/Factories/ReactiveFactory.js";import{FactoryType}from"../../Abstract/Constants/FactoryType.js";function Models3dFactory(){const factory=ReactiveFactory(FactoryType.Models3d,Model3d);return Object.assign(factory,{configToParams:configToParams})}export{Models3dFactory};
1
+ import{model3dConfigToParams}from"../Adapters/ConfigToParams.js";import{Model3d}from"../Entities/Model3d.js";import{ReactiveFactory}from"../../Abstract/Factories/ReactiveFactory.js";import{FactoryType}from"../../Abstract/Constants/FactoryType.js";function Models3dFactory(){const factory=ReactiveFactory(FactoryType.Models3d,Model3d);return Object.assign(factory,{configToParams:model3dConfigToParams})}export{Models3dFactory};
2
2
  //# sourceMappingURL=Models3dFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Models3dFactory.js","sources":["../../../src/Models3d/Factories/Models3dFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { configToParams } from '@Anarchy/Engine/Models3d/Adapters';\nimport { Model3d } from '@Anarchy/Engine/Models3d/Entities';\nimport type { TModel3d, TModel3dParams, TModels3dFactory, TModels3dServiceDependencies } from '@Anarchy/Engine/Models3d/Models';\n\nexport function Models3dFactory(): TModels3dFactory {\n const factory: TReactiveFactory<TModel3d, TModel3dParams, Pick<TModels3dServiceDependencies, 'animationsService' | 'model3dRawToModel3dConnectionRegistry'>> = ReactiveFactory(\n FactoryType.Models3d,\n Model3d\n );\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams });\n}\n"],"names":["Models3dFactory","factory","ReactiveFactory","FactoryType","Models3d","Model3d","Object","assign","configToParams"],"mappings":"gPAMO,SAASA,kBACd,MAAMC,QAAyJC,gBAC7JC,YAAYC,SACZC,SAIF,OAAOC,OAAOC,OAAON,QAAS,CAAEO,+BAClC"}
1
+ {"version":3,"file":"Models3dFactory.js","sources":["../../../src/Models3d/Factories/Models3dFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { model3dConfigToParams } from '@Anarchy/Engine/Models3d/Adapters';\nimport { Model3d } from '@Anarchy/Engine/Models3d/Entities';\nimport type { TModel3d, TModel3dParams, TModels3dFactory, TModels3dServiceDependencies } from '@Anarchy/Engine/Models3d/Models';\n\nexport function Models3dFactory(): TModels3dFactory {\n const factory: TReactiveFactory<TModel3d, TModel3dParams, Pick<TModels3dServiceDependencies, 'animationsService' | 'model3dRawToModel3dConnectionRegistry'>> = ReactiveFactory(\n FactoryType.Models3d,\n Model3d\n );\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: model3dConfigToParams });\n}\n"],"names":["Models3dFactory","factory","ReactiveFactory","FactoryType","Models3d","Model3d","Object","assign","configToParams","model3dConfigToParams"],"mappings":"uPAMO,SAASA,kBACd,MAAMC,QAAyJC,gBAC7JC,YAAYC,SACZC,SAIF,OAAOC,OAAOC,OAAON,QAAS,CAAEO,eAAgBC,uBAClD"}
@@ -1,4 +1,4 @@
1
- export { configToParams as model3dConfigToParams } from './Adapters';
1
+ export * from './Adapters';
2
2
  export * from './Constants';
3
3
  export * from './Entities';
4
4
  export * from './Factories';
@@ -1,2 +1,2 @@
1
1
  import { TParticlesConfig, TParticlesConfigToParamsDependencies, TParticlesParams } from '../Models';
2
- export declare function configToParams(config: TParticlesConfig, { materialRegistry }: TParticlesConfigToParamsDependencies): TParticlesParams | never;
2
+ export declare function particlesConfigToParams(config: TParticlesConfig, { materialRegistry }: TParticlesConfigToParamsDependencies): TParticlesParams | never;
@@ -1,2 +1,2 @@
1
- import{configToParamsObject3d}from"../../ThreeLib/Utils/Object3dUtils.js";function configToParams(config,{materialRegistry:materialRegistry}){const{position:position,rotation:rotation,layers:layers,scale:scale,...rest}=config,material=materialRegistry.getByName(config.material);return{...rest,...configToParamsObject3d({position:position,rotation:rotation,scale:scale,layers:layers}),material:material}}export{configToParams};
1
+ import{object3dConfigToParams}from"../../ThreeLib/Utils/Object3dUtils.js";function particlesConfigToParams(config,{materialRegistry:materialRegistry}){const{position:position,rotation:rotation,layers:layers,scale:scale,...rest}=config,material=materialRegistry.getByName(config.material);return{...rest,...object3dConfigToParams({position:position,rotation:rotation,scale:scale,layers:layers}),material:material}}export{particlesConfigToParams};
2
2
  //# sourceMappingURL=ConfigToParams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Particles/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TAnyMaterialWrapper } from '@Anarchy/Engine/Material';\nimport type { TParticlesConfig, TParticlesConfigToParamsDependencies, TParticlesParams } from '@Anarchy/Engine/Particles/Models';\nimport { configToParamsObject3d } from '@Anarchy/Engine/ThreeLib';\n\nexport function configToParams(config: TParticlesConfig, { materialRegistry }: TParticlesConfigToParamsDependencies): TParticlesParams | never {\n const { position, rotation, layers, scale, ...rest } = config;\n const material: TAnyMaterialWrapper = materialRegistry.getByName(config.material);\n\n return {\n ...rest,\n ...configToParamsObject3d({ position, rotation, scale, layers }),\n material\n };\n}\n"],"names":["configToParams","config","materialRegistry","position","rotation","layers","scale","rest","material","getByName","configToParamsObject3d"],"mappings":"0EAIO,SAASA,eAAeC,QAA0BC,iBAAEA,mBACzD,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,OAAUA,aAAQC,SAAUC,MAASN,OACjDO,SAAgCN,iBAAiBO,UAAUR,OAAOO,UAExE,MAAO,IACFD,QACAG,uBAAuB,CAAEP,kBAAUC,kBAAUE,YAAOD,gBACvDG,kBAEJ"}
1
+ {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Particles/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TAnyMaterialWrapper } from '@Anarchy/Engine/Material';\nimport type { TParticlesConfig, TParticlesConfigToParamsDependencies, TParticlesParams } from '@Anarchy/Engine/Particles/Models';\nimport { object3dConfigToParams } from '@Anarchy/Engine/ThreeLib';\n\nexport function particlesConfigToParams(config: TParticlesConfig, { materialRegistry }: TParticlesConfigToParamsDependencies): TParticlesParams | never {\n const { position, rotation, layers, scale, ...rest } = config;\n const material: TAnyMaterialWrapper = materialRegistry.getByName(config.material);\n\n return {\n ...rest,\n ...object3dConfigToParams({ position, rotation, scale, layers }),\n material\n };\n}\n"],"names":["particlesConfigToParams","config","materialRegistry","position","rotation","layers","scale","rest","material","getByName","object3dConfigToParams"],"mappings":"0EAIO,SAASA,wBAAwBC,QAA0BC,iBAAEA,mBAClE,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,OAAUA,aAAQC,SAAUC,MAASN,OACjDO,SAAgCN,iBAAiBO,UAAUR,OAAOO,UAExE,MAAO,IACFD,QACAG,uBAAuB,CAAEP,kBAAUC,kBAAUE,YAAOD,gBACvDG,kBAEJ"}
@@ -1,2 +1,2 @@
1
1
  import { TParticlesConfig, TParticlesConfigToParamsDependencies, TParticlesWrapper } from '../Models';
2
- export declare function particlesToConfig(entity: TParticlesWrapper, { materialRegistry }: TParticlesConfigToParamsDependencies): TParticlesConfig;
2
+ export declare function particlesEntityToConfig(entity: TParticlesWrapper, { materialRegistry }: TParticlesConfigToParamsDependencies): TParticlesConfig;
@@ -1,2 +1,2 @@
1
- import{filterOutEmptyFields}from"../../packages/anarchy-shared/src/Utils/ObjectUtils.js";import{extractSerializableRegistrableFields}from"../../Mixins/Generics/ExtractSerializableRegistrableFields.js";function particlesToConfig(entity,{materialRegistry:materialRegistry}){const{drive:drive}=entity,materialW=materialRegistry.get(materialW2=>materialW2.entity===entity.entity.material);return filterOutEmptyFields({material:materialW.name,...extractSerializableRegistrableFields(entity),...drive.serialize()})}export{particlesToConfig};
1
+ import{filterOutEmptyFields}from"../../packages/anarchy-shared/src/Utils/ObjectUtils.js";import{extractSerializableRegistrableFields}from"../../Mixins/Generics/ExtractSerializableRegistrableFields.js";function particlesEntityToConfig(entity,{materialRegistry:materialRegistry}){const{drive:drive}=entity,materialW=materialRegistry.get(materialW2=>materialW2.entity===entity.entity.material);return filterOutEmptyFields({material:materialW.name,...extractSerializableRegistrableFields(entity),...drive.serialize()})}export{particlesEntityToConfig};
2
2
  //# sourceMappingURL=EntityToConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Particles/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TAnyMaterialWrapper } from '@Anarchy/Engine/Material';\nimport { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport type { TParticlesConfig, TParticlesConfigToParamsDependencies, TParticlesWrapper } from '@Anarchy/Engine/Particles/Models';\nimport { filterOutEmptyFields } from '@Anarchy/Shared/Utils';\n\nexport function particlesToConfig(entity: TParticlesWrapper, { materialRegistry }: TParticlesConfigToParamsDependencies): TParticlesConfig {\n const { drive } = entity;\n\n const materialW: TAnyMaterialWrapper = materialRegistry.get((materialW: TAnyMaterialWrapper): boolean => materialW.entity === entity.entity.material);\n\n return filterOutEmptyFields({\n material: materialW.name,\n ...extractSerializableRegistrableFields(entity),\n ...drive.serialize()\n });\n}\n"],"names":["particlesToConfig","entity","materialRegistry","drive","materialW","get","material","filterOutEmptyFields","name","extractSerializableRegistrableFields","serialize"],"mappings":"yMAKO,SAASA,kBAAkBC,QAA2BC,iBAAEA,mBAC7D,MAAMC,MAAEA,OAAUF,OAEZG,UAAiCF,iBAAiBG,IAAKD,YAA4CA,WAAUH,SAAWA,OAAOA,OAAOK,UAE5I,OAAOC,qBAAqB,CAC1BD,SAAUF,UAAUI,QACjBC,qCAAqCR,WACrCE,MAAMO,aAEb"}
1
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Particles/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TAnyMaterialWrapper } from '@Anarchy/Engine/Material';\nimport { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport type { TParticlesConfig, TParticlesConfigToParamsDependencies, TParticlesWrapper } from '@Anarchy/Engine/Particles/Models';\nimport { filterOutEmptyFields } from '@Anarchy/Shared/Utils';\n\nexport function particlesEntityToConfig(entity: TParticlesWrapper, { materialRegistry }: TParticlesConfigToParamsDependencies): TParticlesConfig {\n const { drive } = entity;\n\n const materialW: TAnyMaterialWrapper = materialRegistry.get((materialW: TAnyMaterialWrapper): boolean => materialW.entity === entity.entity.material);\n\n return filterOutEmptyFields({\n material: materialW.name,\n ...extractSerializableRegistrableFields(entity),\n ...drive.serialize()\n });\n}\n"],"names":["particlesEntityToConfig","entity","materialRegistry","drive","materialW","get","material","filterOutEmptyFields","name","extractSerializableRegistrableFields","serialize"],"mappings":"yMAKO,SAASA,wBAAwBC,QAA2BC,iBAAEA,mBACnE,MAAMC,MAAEA,OAAUF,OAEZG,UAAiCF,iBAAiBG,IAAKD,YAA4CA,WAAUH,SAAWA,OAAOA,OAAOK,UAE5I,OAAOC,qBAAqB,CAC1BD,SAAUF,UAAUI,QACjBC,qCAAqCR,WACrCE,MAAMO,aAEb"}
@@ -1,2 +1,2 @@
1
- import{configToParams}from"../Adapters/ConfigToParams.js";import{ParticlesWrapper}from"../Wrappers/ParticlesWrapper.js";import{ReactiveFactory}from"../../Abstract/Factories/ReactiveFactory.js";import{FactoryType}from"../../Abstract/Constants/FactoryType.js";function ParticlesFactory(){const factory=ReactiveFactory(FactoryType.Particles,ParticlesWrapper);return Object.assign(factory,{configToParams:configToParams})}export{ParticlesFactory};
1
+ import{particlesConfigToParams}from"../Adapters/ConfigToParams.js";import{ParticlesWrapper}from"../Wrappers/ParticlesWrapper.js";import{ReactiveFactory}from"../../Abstract/Factories/ReactiveFactory.js";import{FactoryType}from"../../Abstract/Constants/FactoryType.js";function ParticlesFactory(){const factory=ReactiveFactory(FactoryType.Particles,ParticlesWrapper);return Object.assign(factory,{configToParams:particlesConfigToParams})}export{ParticlesFactory};
2
2
  //# sourceMappingURL=ParticlesFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParticlesFactory.js","sources":["../../../src/Particles/Factories/ParticlesFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { configToParams } from '@Anarchy/Engine/Particles/Adapters';\nimport type { TParticlesFactory, TParticlesParams, TParticlesServiceDependencies, TParticlesWrapper } from '@Anarchy/Engine/Particles/Models';\nimport { ParticlesWrapper } from '@Anarchy/Engine/Particles/Wrappers';\n\nexport function ParticlesFactory(): TParticlesFactory {\n const factory: TReactiveFactory<TParticlesWrapper, TParticlesParams, TParticlesServiceDependencies> = ReactiveFactory(FactoryType.Particles, ParticlesWrapper);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams });\n}\n"],"names":["ParticlesFactory","factory","ReactiveFactory","FactoryType","Particles","ParticlesWrapper","Object","assign","configToParams"],"mappings":"kQAMO,SAASA,mBACd,MAAMC,QAAgGC,gBAAgBC,YAAYC,UAAWC,kBAG7I,OAAOC,OAAOC,OAAON,QAAS,CAAEO,+BAClC"}
1
+ {"version":3,"file":"ParticlesFactory.js","sources":["../../../src/Particles/Factories/ParticlesFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { particlesConfigToParams } from '@Anarchy/Engine/Particles/Adapters';\nimport type { TParticlesFactory, TParticlesParams, TParticlesServiceDependencies, TParticlesWrapper } from '@Anarchy/Engine/Particles/Models';\nimport { ParticlesWrapper } from '@Anarchy/Engine/Particles/Wrappers';\n\nexport function ParticlesFactory(): TParticlesFactory {\n const factory: TReactiveFactory<TParticlesWrapper, TParticlesParams, TParticlesServiceDependencies> = ReactiveFactory(FactoryType.Particles, ParticlesWrapper);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: particlesConfigToParams });\n}\n"],"names":["ParticlesFactory","factory","ReactiveFactory","FactoryType","Particles","ParticlesWrapper","Object","assign","configToParams","particlesConfigToParams"],"mappings":"2QAMO,SAASA,mBACd,MAAMC,QAAgGC,gBAAgBC,YAAYC,UAAWC,kBAG7I,OAAOC,OAAOC,OAAON,QAAS,CAAEO,eAAgBC,yBAClD"}
@@ -1,2 +1,2 @@
1
- import{BufferGeometry,Points,BufferAttribute}from"three";import{isPointsMaterial}from"../../Material/Utils/MaterialUtils.js";import{ParticlesTransformDrive}from"../TransformDrive/ParticlesTransformDrive.js";import{particlesToConfig}from"../Adapters/EntityToConfig.js";import{withMaterial}from"../../Material/Mixins/WithMaterial.js";import{AbstractWrapper}from"../../Abstract/Wrappers/AbstractWrapper.js";import{WrapperType}from"../../Abstract/Constants/WrapperType.js";import{DriveToTargetConnector}from"../../TransformDrive/Entities/Connectors/DriveToTargetConnector.js";import{withObject3d}from"../../Mixins/GameObjects/Mixins/WithObject3D.js";import{applyObject3dParams}from"../../Utils/WrapperHelpers.js";function ParticlesWrapper(params,dependencies){let geometry=new BufferGeometry,entity=new Points(geometry,params.material.entity);const{material:material}=entity;if(!isPointsMaterial(material))throw new Error("Material is not PointsMaterial or not defined");const withMaterialEntity=withMaterial(entity),wrapper=AbstractWrapper(entity,WrapperType.Particles,params),drive=ParticlesTransformDrive(params,dependencies,wrapper.id),driveToTargetConnector=DriveToTargetConnector(drive,entity),result=Object.assign(wrapper,{drive:drive,driveToTargetConnector:driveToTargetConnector,...withObject3d(entity),...withMaterialEntity,setMaterialColor:color=>{material.color=color},getMaterialColor:()=>material.color,setIndividualMaterialColors:colors=>{geometry.setAttribute("color",new BufferAttribute(colors,3))},getIndividualMaterialColors:()=>geometry.getAttribute("color").array,setIndividualPositions:positions=>{geometry.setAttribute("position",new BufferAttribute(positions,3))},getIndividualPositions:()=>geometry.getAttribute("position").array,entity:entity,serialize:()=>particlesToConfig(result,{materialRegistry:dependencies.materialService.getRegistry()})});applyObject3dParams(result,params);const destroySub$=result.destroy$.subscribe(()=>{destroySub$.unsubscribe(),geometry=null,entity=null,result.entity=null});return result}export{ParticlesWrapper};
1
+ import{BufferGeometry,Points,BufferAttribute}from"three";import{isPointsMaterial}from"../../Material/Utils/MaterialUtils.js";import{ParticlesTransformDrive}from"../TransformDrive/ParticlesTransformDrive.js";import{particlesEntityToConfig}from"../Adapters/EntityToConfig.js";import{withMaterial}from"../../Material/Mixins/WithMaterial.js";import{AbstractWrapper}from"../../Abstract/Wrappers/AbstractWrapper.js";import{WrapperType}from"../../Abstract/Constants/WrapperType.js";import{DriveToTargetConnector}from"../../TransformDrive/Entities/Connectors/DriveToTargetConnector.js";import{withObject3d}from"../../Mixins/GameObjects/Mixins/WithObject3D.js";import{applyObject3dParams}from"../../Utils/WrapperHelpers.js";function ParticlesWrapper(params,dependencies){let geometry=new BufferGeometry,entity=new Points(geometry,params.material.entity);const{material:material}=entity;if(!isPointsMaterial(material))throw new Error("Material is not PointsMaterial or not defined");const withMaterialEntity=withMaterial(entity),wrapper=AbstractWrapper(entity,WrapperType.Particles,params),drive=ParticlesTransformDrive(params,dependencies,wrapper.id),driveToTargetConnector=DriveToTargetConnector(drive,entity),result=Object.assign(wrapper,{drive:drive,driveToTargetConnector:driveToTargetConnector,...withObject3d(entity),...withMaterialEntity,setMaterialColor:color=>{material.color=color},getMaterialColor:()=>material.color,setIndividualMaterialColors:colors=>{geometry.setAttribute("color",new BufferAttribute(colors,3))},getIndividualMaterialColors:()=>geometry.getAttribute("color").array,setIndividualPositions:positions=>{geometry.setAttribute("position",new BufferAttribute(positions,3))},getIndividualPositions:()=>geometry.getAttribute("position").array,entity:entity,serialize:()=>particlesEntityToConfig(result,{materialRegistry:dependencies.materialService.getRegistry()})});applyObject3dParams(result,params);const destroySub$=result.destroy$.subscribe(()=>{destroySub$.unsubscribe(),geometry=null,entity=null,result.entity=null});return result}export{ParticlesWrapper};
2
2
  //# sourceMappingURL=ParticlesWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParticlesWrapper.js","sources":["../../../src/Particles/Wrappers/ParticlesWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@Anarchy/Engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@Anarchy/Engine/Abstract';\nimport type { TColor } from '@Anarchy/Engine/Color';\nimport type { TWithMaterial } from '@Anarchy/Engine/Material';\nimport { isPointsMaterial, withMaterial } from '@Anarchy/Engine/Material';\nimport { withObject3d } from '@Anarchy/Engine/Mixins';\nimport { particlesToConfig } from '@Anarchy/Engine/Particles/Adapters';\nimport type { TParticlesConfig, TParticlesParams, TParticlesServiceDependencies, TParticlesTransformDrive, TParticlesWrapper } from '@Anarchy/Engine/Particles/Models';\nimport { ParticlesTransformDrive } from '@Anarchy/Engine/Particles/TransformDrive';\nimport type { TBufferGeometry, TPoints } from '@Anarchy/Engine/ThreeLib';\nimport type { TDriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { DriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { applyObject3dParams } from '@Anarchy/Engine/Utils';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { BufferAttribute, BufferGeometry, Points } from 'three';\n\nexport function ParticlesWrapper(params: TParticlesParams, dependencies: TParticlesServiceDependencies): TParticlesWrapper {\n let geometry: TBufferGeometry = new BufferGeometry();\n let entity: TPoints = new Points(geometry, params.material.entity);\n\n const { material } = entity;\n if (!isPointsMaterial(material)) throw new Error('Material is not PointsMaterial or not defined');\n\n const withMaterialEntity: TWithMaterial = withMaterial(entity);\n\n // eslint-disable-next-line functional/immutable-data\n const setMaterialColor = (color: TColor): void => void (material.color = color);\n const getMaterialColor = (): TColor => material.color;\n const setIndividualMaterialColors = (colors: Float32Array): void => void geometry.setAttribute('color', new BufferAttribute(colors, 3));\n const getIndividualMaterialColors = (): Float32Array => geometry.getAttribute('color').array as Float32Array;\n const setIndividualPositions = (positions: Float32Array): void => void geometry.setAttribute('position', new BufferAttribute(positions, 3));\n const getIndividualPositions = (): Float32Array => geometry.getAttribute('position').array as Float32Array;\n\n const wrapper: TAbstractWrapper<TPoints> = AbstractWrapper(entity, WrapperType.Particles, params);\n const drive: TParticlesTransformDrive = ParticlesTransformDrive(params, dependencies, wrapper.id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, entity);\n\n // eslint-disable-next-line functional/immutable-data\n const result = Object.assign(wrapper, {\n drive,\n driveToTargetConnector,\n ...withObject3d(entity),\n ...withMaterialEntity,\n setMaterialColor,\n getMaterialColor,\n setIndividualMaterialColors,\n getIndividualMaterialColors,\n setIndividualPositions,\n getIndividualPositions,\n entity,\n serialize: (): TParticlesConfig => particlesToConfig(result, { materialRegistry: dependencies.materialService.getRegistry() })\n });\n\n applyObject3dParams(result, params);\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n //Material and geometry disposes in AbstractWrapper\n geometry = null as any;\n entity = null as any;\n // eslint-disable-next-line functional/immutable-data\n (result as TWriteable<TParticlesWrapper>).entity = null as any;\n });\n\n return result;\n}\n"],"names":["ParticlesWrapper","params","dependencies","geometry","BufferGeometry","entity","Points","material","isPointsMaterial","Error","withMaterialEntity","withMaterial","wrapper","AbstractWrapper","WrapperType","Particles","drive","ParticlesTransformDrive","id","driveToTargetConnector","DriveToTargetConnector","result","Object","assign","withObject3d","setMaterialColor","color","getMaterialColor","setIndividualMaterialColors","colors","setAttribute","BufferAttribute","getIndividualMaterialColors","getAttribute","array","setIndividualPositions","positions","getIndividualPositions","serialize","particlesToConfig","materialRegistry","materialService","getRegistry","applyObject3dParams","destroySub$","destroy$","subscribe","unsubscribe"],"mappings":"qsBAiBO,SAASA,iBAAiBC,OAA0BC,cACzD,IAAIC,SAA4B,IAAIC,eAChCC,OAAkB,IAAIC,OAAOH,SAAUF,OAAOM,SAASF,QAE3D,MAAME,SAAEA,UAAaF,OACrB,IAAKG,iBAAiBD,UAAW,MAAM,IAAIE,MAAM,iDAEjD,MAAMC,mBAAoCC,aAAaN,QAUjDO,QAAqCC,gBAAgBR,OAAQS,YAAYC,UAAWd,QACpFe,MAAkCC,wBAAwBhB,OAAQC,aAAcU,QAAQM,IACxFC,uBAAkDC,uBAAuBJ,MAAOX,QAGhFgB,OAASC,OAAOC,OAAOX,QAAS,CACpCI,YACAG,iDACGK,aAAanB,WACbK,mBACHe,iBAjBwBC,QAA8BnB,SAASmB,MAAQA,OAkBvEC,iBAjBuB,IAAcpB,SAASmB,MAkB9CE,4BAjBmCC,SAAoC1B,SAAS2B,aAAa,QAAS,IAAIC,gBAAgBF,OAAQ,KAkBlIG,4BAjBkC,IAAoB7B,SAAS8B,aAAa,SAASC,MAkBrFC,uBAjB8BC,YAAuCjC,SAAS2B,aAAa,WAAY,IAAIC,gBAAgBK,UAAW,KAkBtIC,uBAjB6B,IAAoBlC,SAAS8B,aAAa,YAAYC,MAkBnF7B,cACAiC,UAAW,IAAwBC,kBAAkBlB,OAAQ,CAAEmB,iBAAkBtC,aAAauC,gBAAgBC,kBAGhHC,oBAAoBtB,OAAQpB,QAE5B,MAAM2C,YAA4BvB,OAAOwB,SAASC,UAAU,KAC1DF,YAAYG,cAEZ5C,SAAW,KACXE,OAAS,KAERgB,OAAyChB,OAAS,OAGrD,OAAOgB,MACT"}
1
+ {"version":3,"file":"ParticlesWrapper.js","sources":["../../../src/Particles/Wrappers/ParticlesWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@Anarchy/Engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@Anarchy/Engine/Abstract';\nimport type { TColor } from '@Anarchy/Engine/Color';\nimport type { TWithMaterial } from '@Anarchy/Engine/Material';\nimport { isPointsMaterial, withMaterial } from '@Anarchy/Engine/Material';\nimport { withObject3d } from '@Anarchy/Engine/Mixins';\nimport { particlesEntityToConfig } from '@Anarchy/Engine/Particles/Adapters';\nimport type { TParticlesConfig, TParticlesParams, TParticlesServiceDependencies, TParticlesTransformDrive, TParticlesWrapper } from '@Anarchy/Engine/Particles/Models';\nimport { ParticlesTransformDrive } from '@Anarchy/Engine/Particles/TransformDrive';\nimport type { TBufferGeometry, TPoints } from '@Anarchy/Engine/ThreeLib';\nimport type { TDriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { DriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { applyObject3dParams } from '@Anarchy/Engine/Utils';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { BufferAttribute, BufferGeometry, Points } from 'three';\n\nexport function ParticlesWrapper(params: TParticlesParams, dependencies: TParticlesServiceDependencies): TParticlesWrapper {\n let geometry: TBufferGeometry = new BufferGeometry();\n let entity: TPoints = new Points(geometry, params.material.entity);\n\n const { material } = entity;\n if (!isPointsMaterial(material)) throw new Error('Material is not PointsMaterial or not defined');\n\n const withMaterialEntity: TWithMaterial = withMaterial(entity);\n\n // eslint-disable-next-line functional/immutable-data\n const setMaterialColor = (color: TColor): void => void (material.color = color);\n const getMaterialColor = (): TColor => material.color;\n const setIndividualMaterialColors = (colors: Float32Array): void => void geometry.setAttribute('color', new BufferAttribute(colors, 3));\n const getIndividualMaterialColors = (): Float32Array => geometry.getAttribute('color').array as Float32Array;\n const setIndividualPositions = (positions: Float32Array): void => void geometry.setAttribute('position', new BufferAttribute(positions, 3));\n const getIndividualPositions = (): Float32Array => geometry.getAttribute('position').array as Float32Array;\n\n const wrapper: TAbstractWrapper<TPoints> = AbstractWrapper(entity, WrapperType.Particles, params);\n const drive: TParticlesTransformDrive = ParticlesTransformDrive(params, dependencies, wrapper.id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, entity);\n\n // eslint-disable-next-line functional/immutable-data\n const result = Object.assign(wrapper, {\n drive,\n driveToTargetConnector,\n ...withObject3d(entity),\n ...withMaterialEntity,\n setMaterialColor,\n getMaterialColor,\n setIndividualMaterialColors,\n getIndividualMaterialColors,\n setIndividualPositions,\n getIndividualPositions,\n entity,\n serialize: (): TParticlesConfig => particlesEntityToConfig(result, { materialRegistry: dependencies.materialService.getRegistry() })\n });\n\n applyObject3dParams(result, params);\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n //Material and geometry disposes in AbstractWrapper\n geometry = null as any;\n entity = null as any;\n // eslint-disable-next-line functional/immutable-data\n (result as TWriteable<TParticlesWrapper>).entity = null as any;\n });\n\n return result;\n}\n"],"names":["ParticlesWrapper","params","dependencies","geometry","BufferGeometry","entity","Points","material","isPointsMaterial","Error","withMaterialEntity","withMaterial","wrapper","AbstractWrapper","WrapperType","Particles","drive","ParticlesTransformDrive","id","driveToTargetConnector","DriveToTargetConnector","result","Object","assign","withObject3d","setMaterialColor","color","getMaterialColor","setIndividualMaterialColors","colors","setAttribute","BufferAttribute","getIndividualMaterialColors","getAttribute","array","setIndividualPositions","positions","getIndividualPositions","serialize","particlesEntityToConfig","materialRegistry","materialService","getRegistry","applyObject3dParams","destroySub$","destroy$","subscribe","unsubscribe"],"mappings":"2sBAiBO,SAASA,iBAAiBC,OAA0BC,cACzD,IAAIC,SAA4B,IAAIC,eAChCC,OAAkB,IAAIC,OAAOH,SAAUF,OAAOM,SAASF,QAE3D,MAAME,SAAEA,UAAaF,OACrB,IAAKG,iBAAiBD,UAAW,MAAM,IAAIE,MAAM,iDAEjD,MAAMC,mBAAoCC,aAAaN,QAUjDO,QAAqCC,gBAAgBR,OAAQS,YAAYC,UAAWd,QACpFe,MAAkCC,wBAAwBhB,OAAQC,aAAcU,QAAQM,IACxFC,uBAAkDC,uBAAuBJ,MAAOX,QAGhFgB,OAASC,OAAOC,OAAOX,QAAS,CACpCI,YACAG,iDACGK,aAAanB,WACbK,mBACHe,iBAjBwBC,QAA8BnB,SAASmB,MAAQA,OAkBvEC,iBAjBuB,IAAcpB,SAASmB,MAkB9CE,4BAjBmCC,SAAoC1B,SAAS2B,aAAa,QAAS,IAAIC,gBAAgBF,OAAQ,KAkBlIG,4BAjBkC,IAAoB7B,SAAS8B,aAAa,SAASC,MAkBrFC,uBAjB8BC,YAAuCjC,SAAS2B,aAAa,WAAY,IAAIC,gBAAgBK,UAAW,KAkBtIC,uBAjB6B,IAAoBlC,SAAS8B,aAAa,YAAYC,MAkBnF7B,cACAiC,UAAW,IAAwBC,wBAAwBlB,OAAQ,CAAEmB,iBAAkBtC,aAAauC,gBAAgBC,kBAGtHC,oBAAoBtB,OAAQpB,QAE5B,MAAM2C,YAA4BvB,OAAOwB,SAASC,UAAU,KAC1DF,YAAYG,cAEZ5C,SAAW,KACXE,OAAS,KAERgB,OAAyChB,OAAS,OAGrD,OAAOgB,MACT"}
@@ -1,4 +1,4 @@
1
- export { configToParams as particlesConfigToParams } from './Adapters';
1
+ export * from './Adapters';
2
2
  export * from './Factories';
3
3
  export type * from './Models';
4
4
  export * from './Registries';
@@ -1,4 +1,4 @@
1
1
  import { TPhysicsBody, TPhysicsBodyConfig, TPhysicsWorldConfig } from '../Models';
2
2
  import { World } from '@dimforge/rapier3d';
3
- export declare function physicsBodyToConfig(entity: TPhysicsBody): TPhysicsBodyConfig;
3
+ export declare function physicsBodyEntityToConfig(entity: TPhysicsBody): TPhysicsBodyConfig;
4
4
  export declare function physicWorldToConfig(world: World): TPhysicsWorldConfig;
@@ -1,2 +1,2 @@
1
- import{isDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{filterOutEmptyFields}from"../../packages/anarchy-shared/src/Utils/ObjectUtils.js";import{Euler,Quaternion}from"three";import{vector3ToXyz,eulerToXyz}from"../../Utils/TransformUtils.js";function physicsBodyToConfig(entity){const rigidBody=entity.getRigidBody(),collider=rigidBody?.collider(0);let rigidBodySettings={};isDefined(rigidBody)&&(rigidBodySettings={position:rigidBody.translation(),rotation:rigidBody.rotation(),linearVelocity:rigidBody.linvel(),angularVelocity:rigidBody.angvel(),type:entity.getPhysicsBodyType(),mass:rigidBody.mass(),gravityScale:rigidBody.gravityScale(),isSleep:rigidBody.isSleeping(),ccdEnabled:rigidBody.isCcdEnabled(),dominanceGroup:rigidBody.dominanceGroup()});let colliderSettings={};isDefined(collider)&&(colliderSettings={restitution:collider.restitution(),friction:collider.friction(),collisionGroups:collider.collisionGroups(),isSensor:collider.isSensor(),shapeParams:entity.getShapeParams()});const body=entity.getRigidBody()??entity.getCollider();let position={x:0,y:0,z:0},rotation={x:0,y:0,z:0};if(isDefined(body)){position=vector3ToXyz(body.translation());const bodyRotation=body.rotation();rotation=eulerToXyz((new Euler).setFromQuaternion(new Quaternion(bodyRotation.x,bodyRotation.y,bodyRotation.z,bodyRotation.w)))}return filterOutEmptyFields({collisionShape:entity.getPhysicsBodyShape(),...rigidBodySettings,...colliderSettings,name:entity.name,type:entity.getPhysicsBodyType(),shapeParams:entity.getShapeParams(),position:position,rotation:rotation})}function physicWorldToConfig(world){return{gravity:world.gravity,integrationParameters:{dt:world.integrationParameters.dt,lengthUnit:world.integrationParameters.lengthUnit,normalizedAllowedLinearError:world.integrationParameters.normalizedAllowedLinearError,normalizedPredictionDistance:world.integrationParameters.normalizedPredictionDistance,numSolverIterations:world.integrationParameters.numSolverIterations,numInternalPgsIterations:world.integrationParameters.numInternalPgsIterations,minIslandSize:world.integrationParameters.minIslandSize,maxCcdSubsteps:world.integrationParameters.maxCcdSubsteps}}}export{physicWorldToConfig,physicsBodyToConfig};
1
+ import{isDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{filterOutEmptyFields}from"../../packages/anarchy-shared/src/Utils/ObjectUtils.js";import{Euler,Quaternion}from"three";import{vector3ToXyz,eulerToXyz}from"../../Utils/TransformUtils.js";function physicsBodyEntityToConfig(entity){const rigidBody=entity.getRigidBody(),collider=rigidBody?.collider(0);let rigidBodySettings={};isDefined(rigidBody)&&(rigidBodySettings={position:rigidBody.translation(),rotation:rigidBody.rotation(),linearVelocity:rigidBody.linvel(),angularVelocity:rigidBody.angvel(),type:entity.getPhysicsBodyType(),mass:rigidBody.mass(),gravityScale:rigidBody.gravityScale(),isSleep:rigidBody.isSleeping(),ccdEnabled:rigidBody.isCcdEnabled(),dominanceGroup:rigidBody.dominanceGroup()});let colliderSettings={};isDefined(collider)&&(colliderSettings={restitution:collider.restitution(),friction:collider.friction(),collisionGroups:collider.collisionGroups(),isSensor:collider.isSensor(),shapeParams:entity.getShapeParams()});const body=entity.getRigidBody()??entity.getCollider();let position={x:0,y:0,z:0},rotation={x:0,y:0,z:0};if(isDefined(body)){position=vector3ToXyz(body.translation());const bodyRotation=body.rotation();rotation=eulerToXyz((new Euler).setFromQuaternion(new Quaternion(bodyRotation.x,bodyRotation.y,bodyRotation.z,bodyRotation.w)))}return filterOutEmptyFields({collisionShape:entity.getPhysicsBodyShape(),...rigidBodySettings,...colliderSettings,name:entity.name,type:entity.getPhysicsBodyType(),shapeParams:entity.getShapeParams(),position:position,rotation:rotation})}function physicWorldToConfig(world){return{gravity:world.gravity,integrationParameters:{dt:world.integrationParameters.dt,lengthUnit:world.integrationParameters.lengthUnit,normalizedAllowedLinearError:world.integrationParameters.normalizedAllowedLinearError,normalizedPredictionDistance:world.integrationParameters.normalizedPredictionDistance,numSolverIterations:world.integrationParameters.numSolverIterations,numInternalPgsIterations:world.integrationParameters.numInternalPgsIterations,minIslandSize:world.integrationParameters.minIslandSize,maxCcdSubsteps:world.integrationParameters.maxCcdSubsteps}}}export{physicWorldToConfig,physicsBodyEntityToConfig};
2
2
  //# sourceMappingURL=EntityToConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Physics/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TPhysicsBody, TPhysicsBodyConfig, TPhysicsWorldConfig } from '@Anarchy/Engine/Physics/Models';\nimport type { TEulerLike } from '@Anarchy/Engine/ThreeLib';\nimport { eulerToXyz, vector3ToXyz } from '@Anarchy/Engine/Utils';\nimport { filterOutEmptyFields, isDefined } from '@Anarchy/Shared/Utils';\nimport type { Collider, RigidBody, Rotation, World } from '@dimforge/rapier3d';\nimport type { Vector3Like } from 'three';\nimport { Euler, Quaternion } from 'three';\n\nexport function physicsBodyToConfig(entity: TPhysicsBody): TPhysicsBodyConfig {\n const rigidBody: RigidBody | undefined = entity.getRigidBody();\n const collider: Collider | undefined = rigidBody?.collider(0);\n\n let rigidBodySettings = {};\n if (isDefined(rigidBody)) {\n rigidBodySettings = {\n position: rigidBody.translation(),\n rotation: rigidBody.rotation(),\n linearVelocity: rigidBody.linvel(),\n angularVelocity: rigidBody.angvel(),\n type: entity.getPhysicsBodyType(),\n mass: rigidBody.mass(),\n gravityScale: rigidBody.gravityScale(),\n isSleep: rigidBody.isSleeping(),\n ccdEnabled: rigidBody.isCcdEnabled(),\n dominanceGroup: rigidBody.dominanceGroup()\n // enabledRotations: rigidBody.enabledRotations,\n // enabledTranslations: rigidBody.enabledTranslations,\n };\n }\n\n let colliderSettings = {};\n if (isDefined(collider)) {\n colliderSettings = {\n restitution: collider.restitution(),\n friction: collider.friction(),\n collisionGroups: collider.collisionGroups(),\n isSensor: collider.isSensor(),\n shapeParams: entity.getShapeParams()\n };\n }\n\n const body: RigidBody | Collider | undefined = entity.getRigidBody() ?? entity.getCollider();\n let position: Vector3Like = { x: 0, y: 0, z: 0 };\n let rotation: TEulerLike = { x: 0, y: 0, z: 0 };\n\n if (isDefined(body)) {\n position = vector3ToXyz(body.translation());\n const bodyRotation: Rotation = body.rotation();\n rotation = eulerToXyz(new Euler().setFromQuaternion(new Quaternion(bodyRotation.x, bodyRotation.y, bodyRotation.z, bodyRotation.w)));\n }\n\n return filterOutEmptyFields({\n collisionShape: entity.getPhysicsBodyShape(),\n ...rigidBodySettings,\n ...colliderSettings,\n name: entity.name,\n type: entity.getPhysicsBodyType(),\n shapeParams: entity.getShapeParams(),\n position,\n rotation\n });\n}\n\nexport function physicWorldToConfig(world: World): TPhysicsWorldConfig {\n return {\n gravity: world.gravity,\n integrationParameters: {\n dt: world.integrationParameters.dt,\n lengthUnit: world.integrationParameters.lengthUnit,\n normalizedAllowedLinearError: world.integrationParameters.normalizedAllowedLinearError,\n normalizedPredictionDistance: world.integrationParameters.normalizedPredictionDistance,\n numSolverIterations: world.integrationParameters.numSolverIterations,\n // eslint-disable-next-line spellcheck/spell-checker\n numInternalPgsIterations: world.integrationParameters.numInternalPgsIterations,\n minIslandSize: world.integrationParameters.minIslandSize,\n // eslint-disable-next-line spellcheck/spell-checker\n maxCcdSubsteps: world.integrationParameters.maxCcdSubsteps\n }\n };\n}\n"],"names":["physicsBodyToConfig","entity","rigidBody","getRigidBody","collider","rigidBodySettings","isDefined","position","translation","rotation","linearVelocity","linvel","angularVelocity","angvel","type","getPhysicsBodyType","mass","gravityScale","isSleep","isSleeping","ccdEnabled","isCcdEnabled","dominanceGroup","colliderSettings","restitution","friction","collisionGroups","isSensor","shapeParams","getShapeParams","body","getCollider","x","y","z","vector3ToXyz","bodyRotation","eulerToXyz","Euler","setFromQuaternion","Quaternion","w","filterOutEmptyFields","collisionShape","getPhysicsBodyShape","name","physicWorldToConfig","world","gravity","integrationParameters","dt","lengthUnit","normalizedAllowedLinearError","normalizedPredictionDistance","numSolverIterations","numInternalPgsIterations","minIslandSize","maxCcdSubsteps"],"mappings":"6QAQO,SAASA,oBAAoBC,QAClC,MAAMC,UAAmCD,OAAOE,eAC1CC,SAAiCF,WAAWE,SAAS,GAE3D,IAAIC,kBAAoB,CAAA,EACpBC,UAAUJ,aACZG,kBAAoB,CAClBE,SAAUL,UAAUM,cACpBC,SAAUP,UAAUO,WACpBC,eAAgBR,UAAUS,SAC1BC,gBAAiBV,UAAUW,SAC3BC,KAAMb,OAAOc,qBACbC,KAAMd,UAAUc,OAChBC,aAAcf,UAAUe,eACxBC,QAAShB,UAAUiB,aACnBC,WAAYlB,UAAUmB,eACtBC,eAAgBpB,UAAUoB,mBAM9B,IAAIC,iBAAmB,CAAA,EACnBjB,UAAUF,YACZmB,iBAAmB,CACjBC,YAAapB,SAASoB,cACtBC,SAAUrB,SAASqB,WACnBC,gBAAiBtB,SAASsB,kBAC1BC,SAAUvB,SAASuB,WACnBC,YAAa3B,OAAO4B,mBAIxB,MAAMC,KAAyC7B,OAAOE,gBAAkBF,OAAO8B,cAC/E,IAAIxB,SAAwB,CAAEyB,EAAG,EAAGC,EAAG,EAAGC,EAAG,GACzCzB,SAAuB,CAAEuB,EAAG,EAAGC,EAAG,EAAGC,EAAG,GAE5C,GAAI5B,UAAUwB,MAAO,CACnBvB,SAAW4B,aAAaL,KAAKtB,eAC7B,MAAM4B,aAAyBN,KAAKrB,WACpCA,SAAW4B,YAAW,IAAIC,OAAQC,kBAAkB,IAAIC,WAAWJ,aAAaJ,EAAGI,aAAaH,EAAGG,aAAaF,EAAGE,aAAaK,IAClI,CAEA,OAAOC,qBAAqB,CAC1BC,eAAgB1C,OAAO2C,yBACpBvC,qBACAkB,iBACHsB,KAAM5C,OAAO4C,KACb/B,KAAMb,OAAOc,qBACba,YAAa3B,OAAO4B,iBACpBtB,kBACAE,mBAEJ,CAEO,SAASqC,oBAAoBC,OAClC,MAAO,CACLC,QAASD,MAAMC,QACfC,sBAAuB,CACrBC,GAAIH,MAAME,sBAAsBC,GAChCC,WAAYJ,MAAME,sBAAsBE,WACxCC,6BAA8BL,MAAME,sBAAsBG,6BAC1DC,6BAA8BN,MAAME,sBAAsBI,6BAC1DC,oBAAqBP,MAAME,sBAAsBK,oBAEjDC,yBAA0BR,MAAME,sBAAsBM,yBACtDC,cAAeT,MAAME,sBAAsBO,cAE3CC,eAAgBV,MAAME,sBAAsBQ,gBAGlD"}
1
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Physics/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TPhysicsBody, TPhysicsBodyConfig, TPhysicsWorldConfig } from '@Anarchy/Engine/Physics/Models';\nimport type { TEulerLike } from '@Anarchy/Engine/ThreeLib';\nimport { eulerToXyz, vector3ToXyz } from '@Anarchy/Engine/Utils';\nimport { filterOutEmptyFields, isDefined } from '@Anarchy/Shared/Utils';\nimport type { Collider, RigidBody, Rotation, World } from '@dimforge/rapier3d';\nimport type { Vector3Like } from 'three';\nimport { Euler, Quaternion } from 'three';\n\nexport function physicsBodyEntityToConfig(entity: TPhysicsBody): TPhysicsBodyConfig {\n const rigidBody: RigidBody | undefined = entity.getRigidBody();\n const collider: Collider | undefined = rigidBody?.collider(0);\n\n let rigidBodySettings = {};\n if (isDefined(rigidBody)) {\n rigidBodySettings = {\n position: rigidBody.translation(),\n rotation: rigidBody.rotation(),\n linearVelocity: rigidBody.linvel(),\n angularVelocity: rigidBody.angvel(),\n type: entity.getPhysicsBodyType(),\n mass: rigidBody.mass(),\n gravityScale: rigidBody.gravityScale(),\n isSleep: rigidBody.isSleeping(),\n ccdEnabled: rigidBody.isCcdEnabled(),\n dominanceGroup: rigidBody.dominanceGroup()\n // enabledRotations: rigidBody.enabledRotations,\n // enabledTranslations: rigidBody.enabledTranslations,\n };\n }\n\n let colliderSettings = {};\n if (isDefined(collider)) {\n colliderSettings = {\n restitution: collider.restitution(),\n friction: collider.friction(),\n collisionGroups: collider.collisionGroups(),\n isSensor: collider.isSensor(),\n shapeParams: entity.getShapeParams()\n };\n }\n\n const body: RigidBody | Collider | undefined = entity.getRigidBody() ?? entity.getCollider();\n let position: Vector3Like = { x: 0, y: 0, z: 0 };\n let rotation: TEulerLike = { x: 0, y: 0, z: 0 };\n\n if (isDefined(body)) {\n position = vector3ToXyz(body.translation());\n const bodyRotation: Rotation = body.rotation();\n rotation = eulerToXyz(new Euler().setFromQuaternion(new Quaternion(bodyRotation.x, bodyRotation.y, bodyRotation.z, bodyRotation.w)));\n }\n\n return filterOutEmptyFields({\n collisionShape: entity.getPhysicsBodyShape(),\n ...rigidBodySettings,\n ...colliderSettings,\n name: entity.name,\n type: entity.getPhysicsBodyType(),\n shapeParams: entity.getShapeParams(),\n position,\n rotation\n });\n}\n\nexport function physicWorldToConfig(world: World): TPhysicsWorldConfig {\n return {\n gravity: world.gravity,\n integrationParameters: {\n dt: world.integrationParameters.dt,\n lengthUnit: world.integrationParameters.lengthUnit,\n normalizedAllowedLinearError: world.integrationParameters.normalizedAllowedLinearError,\n normalizedPredictionDistance: world.integrationParameters.normalizedPredictionDistance,\n numSolverIterations: world.integrationParameters.numSolverIterations,\n // eslint-disable-next-line spellcheck/spell-checker\n numInternalPgsIterations: world.integrationParameters.numInternalPgsIterations,\n minIslandSize: world.integrationParameters.minIslandSize,\n // eslint-disable-next-line spellcheck/spell-checker\n maxCcdSubsteps: world.integrationParameters.maxCcdSubsteps\n }\n };\n}\n"],"names":["physicsBodyEntityToConfig","entity","rigidBody","getRigidBody","collider","rigidBodySettings","isDefined","position","translation","rotation","linearVelocity","linvel","angularVelocity","angvel","type","getPhysicsBodyType","mass","gravityScale","isSleep","isSleeping","ccdEnabled","isCcdEnabled","dominanceGroup","colliderSettings","restitution","friction","collisionGroups","isSensor","shapeParams","getShapeParams","body","getCollider","x","y","z","vector3ToXyz","bodyRotation","eulerToXyz","Euler","setFromQuaternion","Quaternion","w","filterOutEmptyFields","collisionShape","getPhysicsBodyShape","name","physicWorldToConfig","world","gravity","integrationParameters","dt","lengthUnit","normalizedAllowedLinearError","normalizedPredictionDistance","numSolverIterations","numInternalPgsIterations","minIslandSize","maxCcdSubsteps"],"mappings":"6QAQO,SAASA,0BAA0BC,QACxC,MAAMC,UAAmCD,OAAOE,eAC1CC,SAAiCF,WAAWE,SAAS,GAE3D,IAAIC,kBAAoB,CAAA,EACpBC,UAAUJ,aACZG,kBAAoB,CAClBE,SAAUL,UAAUM,cACpBC,SAAUP,UAAUO,WACpBC,eAAgBR,UAAUS,SAC1BC,gBAAiBV,UAAUW,SAC3BC,KAAMb,OAAOc,qBACbC,KAAMd,UAAUc,OAChBC,aAAcf,UAAUe,eACxBC,QAAShB,UAAUiB,aACnBC,WAAYlB,UAAUmB,eACtBC,eAAgBpB,UAAUoB,mBAM9B,IAAIC,iBAAmB,CAAA,EACnBjB,UAAUF,YACZmB,iBAAmB,CACjBC,YAAapB,SAASoB,cACtBC,SAAUrB,SAASqB,WACnBC,gBAAiBtB,SAASsB,kBAC1BC,SAAUvB,SAASuB,WACnBC,YAAa3B,OAAO4B,mBAIxB,MAAMC,KAAyC7B,OAAOE,gBAAkBF,OAAO8B,cAC/E,IAAIxB,SAAwB,CAAEyB,EAAG,EAAGC,EAAG,EAAGC,EAAG,GACzCzB,SAAuB,CAAEuB,EAAG,EAAGC,EAAG,EAAGC,EAAG,GAE5C,GAAI5B,UAAUwB,MAAO,CACnBvB,SAAW4B,aAAaL,KAAKtB,eAC7B,MAAM4B,aAAyBN,KAAKrB,WACpCA,SAAW4B,YAAW,IAAIC,OAAQC,kBAAkB,IAAIC,WAAWJ,aAAaJ,EAAGI,aAAaH,EAAGG,aAAaF,EAAGE,aAAaK,IAClI,CAEA,OAAOC,qBAAqB,CAC1BC,eAAgB1C,OAAO2C,yBACpBvC,qBACAkB,iBACHsB,KAAM5C,OAAO4C,KACb/B,KAAMb,OAAOc,qBACba,YAAa3B,OAAO4B,iBACpBtB,kBACAE,mBAEJ,CAEO,SAASqC,oBAAoBC,OAClC,MAAO,CACLC,QAASD,MAAMC,QACfC,sBAAuB,CACrBC,GAAIH,MAAME,sBAAsBC,GAChCC,WAAYJ,MAAME,sBAAsBE,WACxCC,6BAA8BL,MAAME,sBAAsBG,6BAC1DC,6BAA8BN,MAAME,sBAAsBI,6BAC1DC,oBAAqBP,MAAME,sBAAsBK,oBAEjDC,yBAA0BR,MAAME,sBAAsBM,yBACtDC,cAAeT,MAAME,sBAAsBO,cAE3CC,eAAgBV,MAAME,sBAAsBQ,gBAGlD"}
@@ -1,2 +1,2 @@
1
1
  import { TPhysicsBodyConfig, TPhysicsBodyParams } from '../Models';
2
- export declare function configToParamsBody(config: TPhysicsBodyConfig): TPhysicsBodyParams | never;
2
+ export declare function physicsBodyConfigToParams(config: TPhysicsBodyConfig): TPhysicsBodyParams | never;
@@ -1,2 +1,2 @@
1
- import{isDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{Quaternion,Euler}from"three";import{Vector3}from"three/src/math/Vector3";import{isPhysicsBodyParamsComplete}from"../Utils/ParamsUtils.js";function configToParamsBody(config){const{position:position,rotation:rotation,angularVelocity:angularVelocity,linearVelocity:linearVelocity,...rest}=config,result={...rest,position:new Vector3(position.x,position.y,position.z),rotation:(new Quaternion).setFromEuler(new Euler(rotation.x,rotation.y,rotation.z,rotation.order)),angularVelocity:isDefined(angularVelocity)?new Vector3(angularVelocity.x,angularVelocity.y,angularVelocity.z):void 0,linearVelocity:isDefined(linearVelocity)?new Vector3(linearVelocity.x,linearVelocity.y,linearVelocity.z):void 0};if(!isPhysicsBodyParamsComplete(result))throw new Error("Cannot create physics body: params are lacking of mandatory fields");return result}export{configToParamsBody};
1
+ import{isDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{Quaternion,Euler}from"three";import{Vector3}from"three/src/math/Vector3";import{isPhysicsBodyParamsComplete}from"../Utils/ParamsUtils.js";function physicsBodyConfigToParams(config){const{position:position,rotation:rotation,angularVelocity:angularVelocity,linearVelocity:linearVelocity,...rest}=config,result={...rest,position:new Vector3(position.x,position.y,position.z),rotation:(new Quaternion).setFromEuler(new Euler(rotation.x,rotation.y,rotation.z,rotation.order)),angularVelocity:isDefined(angularVelocity)?new Vector3(angularVelocity.x,angularVelocity.y,angularVelocity.z):void 0,linearVelocity:isDefined(linearVelocity)?new Vector3(linearVelocity.x,linearVelocity.y,linearVelocity.z):void 0};if(!isPhysicsBodyParamsComplete(result))throw new Error("Cannot create physics body: params are lacking of mandatory fields");return result}export{physicsBodyConfigToParams};
2
2
  //# sourceMappingURL=PhysicsBodyConfigToParams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicsBodyConfigToParams.js","sources":["../../../src/Physics/Adapters/PhysicsBodyConfigToParams.ts"],"sourcesContent":["import type { TPhysicsBodyConfig, TPhysicsBodyParams } from '@Anarchy/Engine/Physics/Models';\nimport { isPhysicsBodyParamsComplete } from '@Anarchy/Engine/Physics/Utils';\nimport type { TOptional } from '@Anarchy/Shared/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport { Euler, Quaternion } from 'three';\nimport { Vector3 } from 'three/src/math/Vector3';\n\nexport function configToParamsBody(config: TPhysicsBodyConfig): TPhysicsBodyParams | never {\n const { position, rotation, angularVelocity, linearVelocity, ...rest } = config;\n\n const result: TPhysicsBodyParams | TOptional<TPhysicsBodyParams> = {\n // type: RigidBodyTypesMap[RigidBodyTypesNames[type]],\n ...rest,\n position: new Vector3(position.x, position.y, position.z),\n rotation: new Quaternion().setFromEuler(new Euler(rotation.x, rotation.y, rotation.z, rotation.order)),\n angularVelocity: isDefined(angularVelocity) ? new Vector3(angularVelocity.x, angularVelocity.y, angularVelocity.z) : undefined,\n linearVelocity: isDefined(linearVelocity) ? new Vector3(linearVelocity.x, linearVelocity.y, linearVelocity.z) : undefined\n };\n\n if (!isPhysicsBodyParamsComplete(result)) throw new Error('Cannot create physics body: params are lacking of mandatory fields');\n return result;\n}\n"],"names":["configToParamsBody","config","position","rotation","angularVelocity","linearVelocity","rest","result","Vector3","x","y","z","Quaternion","setFromEuler","Euler","order","isDefined","isPhysicsBodyParamsComplete","Error"],"mappings":"8NAOO,SAASA,mBAAmBC,QACjC,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,gBAAUA,+BAAiBC,kBAAmBC,MAASL,OAEnEM,OAA6D,IAE9DD,KACHJ,SAAU,IAAIM,QAAQN,SAASO,EAAGP,SAASQ,EAAGR,SAASS,GACvDR,UAAU,IAAIS,YAAaC,aAAa,IAAIC,MAAMX,SAASM,EAAGN,SAASO,EAAGP,SAASQ,EAAGR,SAASY,QAC/FX,gBAAiBY,UAAUZ,iBAAmB,IAAII,QAAQJ,gBAAgBK,EAAGL,gBAAgBM,EAAGN,gBAAgBO,QAAK,EACrHN,eAAgBW,UAAUX,gBAAkB,IAAIG,QAAQH,eAAeI,EAAGJ,eAAeK,EAAGL,eAAeM,QAAK,GAGlH,IAAKM,4BAA4BV,QAAS,MAAM,IAAIW,MAAM,sEAC1D,OAAOX,MACT"}
1
+ {"version":3,"file":"PhysicsBodyConfigToParams.js","sources":["../../../src/Physics/Adapters/PhysicsBodyConfigToParams.ts"],"sourcesContent":["import type { TPhysicsBodyConfig, TPhysicsBodyParams } from '@Anarchy/Engine/Physics/Models';\nimport { isPhysicsBodyParamsComplete } from '@Anarchy/Engine/Physics/Utils';\nimport type { TOptional } from '@Anarchy/Shared/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport { Euler, Quaternion } from 'three';\nimport { Vector3 } from 'three/src/math/Vector3';\n\nexport function physicsBodyConfigToParams(config: TPhysicsBodyConfig): TPhysicsBodyParams | never {\n const { position, rotation, angularVelocity, linearVelocity, ...rest } = config;\n\n const result: TPhysicsBodyParams | TOptional<TPhysicsBodyParams> = {\n // type: RigidBodyTypesMap[RigidBodyTypesNames[type]],\n ...rest,\n position: new Vector3(position.x, position.y, position.z),\n rotation: new Quaternion().setFromEuler(new Euler(rotation.x, rotation.y, rotation.z, rotation.order)),\n angularVelocity: isDefined(angularVelocity) ? new Vector3(angularVelocity.x, angularVelocity.y, angularVelocity.z) : undefined,\n linearVelocity: isDefined(linearVelocity) ? new Vector3(linearVelocity.x, linearVelocity.y, linearVelocity.z) : undefined\n };\n\n if (!isPhysicsBodyParamsComplete(result)) throw new Error('Cannot create physics body: params are lacking of mandatory fields');\n return result;\n}\n"],"names":["physicsBodyConfigToParams","config","position","rotation","angularVelocity","linearVelocity","rest","result","Vector3","x","y","z","Quaternion","setFromEuler","Euler","order","isDefined","isPhysicsBodyParamsComplete","Error"],"mappings":"8NAOO,SAASA,0BAA0BC,QACxC,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,gBAAUA,+BAAiBC,kBAAmBC,MAASL,OAEnEM,OAA6D,IAE9DD,KACHJ,SAAU,IAAIM,QAAQN,SAASO,EAAGP,SAASQ,EAAGR,SAASS,GACvDR,UAAU,IAAIS,YAAaC,aAAa,IAAIC,MAAMX,SAASM,EAAGN,SAASO,EAAGP,SAASQ,EAAGR,SAASY,QAC/FX,gBAAiBY,UAAUZ,iBAAmB,IAAII,QAAQJ,gBAAgBK,EAAGL,gBAAgBM,EAAGN,gBAAgBO,QAAK,EACrHN,eAAgBW,UAAUX,gBAAkB,IAAIG,QAAQH,eAAeI,EAAGJ,eAAeK,EAAGL,eAAeM,QAAK,GAGlH,IAAKM,4BAA4BV,QAAS,MAAM,IAAIW,MAAM,sEAC1D,OAAOX,MACT"}
@@ -1,2 +1,2 @@
1
1
  import { TPhysicsWorldConfig, TPhysicsWorldParams } from '../Models';
2
- export declare function configToParamsWorld(config: TPhysicsWorldConfig): TPhysicsWorldParams | never;
2
+ export declare function physicsWorldConfigToParams(config: TPhysicsWorldConfig): TPhysicsWorldParams | never;
@@ -1,2 +1,2 @@
1
- function configToParamsWorld(config){return config}export{configToParamsWorld};
1
+ function physicsWorldConfigToParams(config){return config}export{physicsWorldConfigToParams};
2
2
  //# sourceMappingURL=PhysicsWorldConfigToParams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicsWorldConfigToParams.js","sources":["../../../src/Physics/Adapters/PhysicsWorldConfigToParams.ts"],"sourcesContent":["import type { TPhysicsWorldConfig, TPhysicsWorldParams } from '@Anarchy/Engine/Physics/Models';\n\nexport function configToParamsWorld(config: TPhysicsWorldConfig): TPhysicsWorldParams | never {\n return config;\n}\n"],"names":["configToParamsWorld","config"],"mappings":"AAEO,SAASA,oBAAoBC,QAClC,OAAOA,MACT"}
1
+ {"version":3,"file":"PhysicsWorldConfigToParams.js","sources":["../../../src/Physics/Adapters/PhysicsWorldConfigToParams.ts"],"sourcesContent":["import type { TPhysicsWorldConfig, TPhysicsWorldParams } from '@Anarchy/Engine/Physics/Models';\n\nexport function physicsWorldConfigToParams(config: TPhysicsWorldConfig): TPhysicsWorldParams | never {\n return config;\n}\n"],"names":["physicsWorldConfigToParams","config"],"mappings":"AAEO,SAASA,2BAA2BC,QACzC,OAAOA,MACT"}
@@ -1,2 +1,2 @@
1
- import{isDefined,isNotDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{createPhysicsBodyEntities}from"./PhysicsBodyUtils.js";import{AbstractEntity}from"../../Abstract/Entities/AbstractEntity.js";import{EntityType}from"../../Abstract/Constants/EntityType.js";import{withPhysicsBodyEntities}from"../Mixins/WithPhysicsBodyEntities.js";import{physicsBodyToConfig}from"../Adapters/EntityToConfig.js";import{RigidBodyTypesMap}from"../Constants/RigidBodyTypesMap.js";function PhysicsBody(params,{physicsWorldService:physicsWorldService}){const world=physicsWorldService.getWorld(),entities=createPhysicsBodyEntities(params,world),{isSleep:isSleep=!1}=params;isSleep&&entities.rigidBody?.sleep();const abstract=AbstractEntity(withPhysicsBodyEntities(entities),EntityType.PhysicsBody,params),destroySub$=abstract.destroy$.subscribe(()=>{isDefined(entities.rigidBody)&&world.removeRigidBody(entities.rigidBody),entities.rigidBody=null,isDefined(entities.collider)&&world.removeCollider(entities.collider,!0),entities.collider=null,destroySub$.unsubscribe()}),result=Object.assign(abstract,{setPhysicsBodyType:(type,wakeUp)=>{abstract.getRigidBody()?.setBodyType(RigidBodyTypesMap[type],wakeUp)},getPhysicsBodyType:()=>{const bodyType=abstract.getRigidBody()?.bodyType();if(isNotDefined(bodyType))return params.type;const match=Object.entries(RigidBodyTypesMap).find(([,value])=>value===bodyType),result2=match?.[0];if(isNotDefined(result2))throw new Error(`PhysicsBody: RigidBody type is not defined for object with name "${params.name}"`);return result2},getPhysicsBodyShape:()=>params.collisionShape,getShapeParams:()=>params.shapeParams,serialize:()=>physicsBodyToConfig(result)});return result}export{PhysicsBody};
1
+ import{isDefined,isNotDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{createPhysicsBodyEntities}from"./PhysicsBodyUtils.js";import{AbstractEntity}from"../../Abstract/Entities/AbstractEntity.js";import{EntityType}from"../../Abstract/Constants/EntityType.js";import{withPhysicsBodyEntities}from"../Mixins/WithPhysicsBodyEntities.js";import{physicsBodyEntityToConfig}from"../Adapters/EntityToConfig.js";import{RigidBodyTypesMap}from"../Constants/RigidBodyTypesMap.js";function PhysicsBody(params,{physicsWorldService:physicsWorldService}){const world=physicsWorldService.getWorld(),entities=createPhysicsBodyEntities(params,world),{isSleep:isSleep=!1}=params;isSleep&&entities.rigidBody?.sleep();const abstract=AbstractEntity(withPhysicsBodyEntities(entities),EntityType.PhysicsBody,params),destroySub$=abstract.destroy$.subscribe(()=>{isDefined(entities.rigidBody)&&world.removeRigidBody(entities.rigidBody),entities.rigidBody=null,isDefined(entities.collider)&&world.removeCollider(entities.collider,!0),entities.collider=null,destroySub$.unsubscribe()}),result=Object.assign(abstract,{setPhysicsBodyType:(type,wakeUp)=>{abstract.getRigidBody()?.setBodyType(RigidBodyTypesMap[type],wakeUp)},getPhysicsBodyType:()=>{const bodyType=abstract.getRigidBody()?.bodyType();if(isNotDefined(bodyType))return params.type;const match=Object.entries(RigidBodyTypesMap).find(([,value])=>value===bodyType),result2=match?.[0];if(isNotDefined(result2))throw new Error(`PhysicsBody: RigidBody type is not defined for object with name "${params.name}"`);return result2},getPhysicsBodyShape:()=>params.collisionShape,getShapeParams:()=>params.shapeParams,serialize:()=>physicsBodyEntityToConfig(result)});return result}export{PhysicsBody};
2
2
  //# sourceMappingURL=PhysicsBody.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicsBody.js","sources":["../../../src/Physics/Entities/PhysicsBody.ts"],"sourcesContent":["import { AbstractEntity, EntityType } from '@Anarchy/Engine/Abstract';\nimport { physicsBodyToConfig } from '@Anarchy/Engine/Physics/Adapters';\nimport type { CollisionShape, RigidBodyTypesNames } from '@Anarchy/Engine/Physics/Constants';\nimport { RigidBodyTypesMap } from '@Anarchy/Engine/Physics/Constants';\nimport { withPhysicsBodyEntities } from '@Anarchy/Engine/Physics/Mixins';\nimport type { TPhysicsBody, TPhysicsBodyConfig, TPhysicsBodyEntities, TPhysicsBodyParams, TPhysicsDependencies, TPhysicsShapeParams } from '@Anarchy/Engine/Physics/Models';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { RigidBodyType, World } from '@dimforge/rapier3d';\nimport type { Subscription } from 'rxjs';\n\nimport { createPhysicsBodyEntities } from './PhysicsBodyUtils';\n\nexport function PhysicsBody(params: TPhysicsBodyParams, { physicsWorldService }: TPhysicsDependencies): TPhysicsBody {\n const world: World = physicsWorldService.getWorld();\n const entities: TPhysicsBodyEntities = createPhysicsBodyEntities(params, world);\n\n const { isSleep = false } = params;\n if (isSleep) entities.rigidBody?.sleep();\n\n const abstract = AbstractEntity(withPhysicsBodyEntities(entities), EntityType.PhysicsBody, params);\n\n const destroySub$: Subscription = abstract.destroy$.subscribe((): void => {\n if (isDefined(entities.rigidBody)) world.removeRigidBody(entities.rigidBody);\n // eslint-disable-next-line functional/immutable-data\n (entities as TWriteable<TPhysicsBodyEntities>).rigidBody = null as any;\n if (isDefined(entities.collider)) world.removeCollider(entities.collider, true);\n // eslint-disable-next-line functional/immutable-data\n (entities as TWriteable<TPhysicsBodyEntities>).collider = null as any;\n\n destroySub$.unsubscribe();\n });\n\n // eslint-disable-next-line functional/immutable-data\n const result = Object.assign(abstract, {\n setPhysicsBodyType: (type: RigidBodyTypesNames, wakeUp: boolean): void => {\n abstract.getRigidBody()?.setBodyType(RigidBodyTypesMap[type], wakeUp);\n },\n getPhysicsBodyType: (): RigidBodyTypesNames | never => {\n const bodyType: RigidBodyType | undefined = abstract.getRigidBody()?.bodyType();\n if (isNotDefined(bodyType)) return params.type;\n const match = Object.entries(RigidBodyTypesMap).find(([, value]): boolean => value === bodyType);\n const result: RigidBodyTypesNames | undefined = match?.[0] as RigidBodyTypesNames | undefined;\n\n if (isNotDefined(result)) throw new Error(`PhysicsBody: RigidBody type is not defined for object with name \"${params.name}\"`);\n return result;\n },\n getPhysicsBodyShape: (): CollisionShape => params.collisionShape,\n getShapeParams: (): TPhysicsShapeParams => params.shapeParams,\n serialize: (): TPhysicsBodyConfig => physicsBodyToConfig(result)\n });\n\n return result;\n}\n"],"names":["PhysicsBody","params","physicsWorldService","world","getWorld","entities","createPhysicsBodyEntities","isSleep","rigidBody","sleep","abstract","AbstractEntity","withPhysicsBodyEntities","EntityType","destroySub$","destroy$","subscribe","isDefined","removeRigidBody","collider","removeCollider","unsubscribe","result","Object","assign","setPhysicsBodyType","type","wakeUp","getRigidBody","setBodyType","RigidBodyTypesMap","getPhysicsBodyType","bodyType","isNotDefined","match","entries","find","value","Error","name","getPhysicsBodyShape","collisionShape","getShapeParams","shapeParams","serialize","physicsBodyToConfig"],"mappings":"seAaO,SAASA,YAAYC,QAA4BC,oBAAEA,sBACxD,MAAMC,MAAeD,oBAAoBE,WACnCC,SAAiCC,0BAA0BL,OAAQE,QAEnEI,QAAEA,SAAU,GAAUN,OACxBM,SAASF,SAASG,WAAWC,QAEjC,MAAMC,SAAWC,eAAeC,wBAAwBP,UAAWQ,WAAWb,YAAaC,QAErFa,YAA4BJ,SAASK,SAASC,UAAU,KACxDC,UAAUZ,SAASG,YAAYL,MAAMe,gBAAgBb,SAASG,WAEjEH,SAA8CG,UAAY,KACvDS,UAAUZ,SAASc,iBAAiBC,eAAef,SAASc,UAAU,GAEzEd,SAA8Cc,SAAW,KAE1DL,YAAYO,gBAIRC,OAASC,OAAOC,OAAOd,SAAU,CACrCe,mBAAoB,CAACC,KAA2BC,UAC9CjB,SAASkB,gBAAgBC,YAAYC,kBAAkBJ,MAAOC,SAEhEI,mBAAoB,KAClB,MAAMC,SAAsCtB,SAASkB,gBAAgBI,WACrE,GAAIC,aAAaD,UAAW,OAAO/B,OAAOyB,KAC1C,MAAMQ,MAAQX,OAAOY,QAAQL,mBAAmBM,KAAK,GAAIC,SAAoBA,QAAUL,UACjFV,QAA0CY,QAAQ,GAExD,GAAID,aAAaX,SAAS,MAAM,IAAIgB,MAAM,oEAAoErC,OAAOsC,SACrH,OAAOjB,SAETkB,oBAAqB,IAAsBvC,OAAOwC,eAClDC,eAAgB,IAA2BzC,OAAO0C,YAClDC,UAAW,IAA0BC,oBAAoBvB,UAG3D,OAAOA,MACT"}
1
+ {"version":3,"file":"PhysicsBody.js","sources":["../../../src/Physics/Entities/PhysicsBody.ts"],"sourcesContent":["import { AbstractEntity, EntityType } from '@Anarchy/Engine/Abstract';\nimport { physicsBodyEntityToConfig } from '@Anarchy/Engine/Physics/Adapters';\nimport type { CollisionShape, RigidBodyTypesNames } from '@Anarchy/Engine/Physics/Constants';\nimport { RigidBodyTypesMap } from '@Anarchy/Engine/Physics/Constants';\nimport { withPhysicsBodyEntities } from '@Anarchy/Engine/Physics/Mixins';\nimport type { TPhysicsBody, TPhysicsBodyConfig, TPhysicsBodyEntities, TPhysicsBodyParams, TPhysicsDependencies, TPhysicsShapeParams } from '@Anarchy/Engine/Physics/Models';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { RigidBodyType, World } from '@dimforge/rapier3d';\nimport type { Subscription } from 'rxjs';\n\nimport { createPhysicsBodyEntities } from './PhysicsBodyUtils';\n\nexport function PhysicsBody(params: TPhysicsBodyParams, { physicsWorldService }: TPhysicsDependencies): TPhysicsBody {\n const world: World = physicsWorldService.getWorld();\n const entities: TPhysicsBodyEntities = createPhysicsBodyEntities(params, world);\n\n const { isSleep = false } = params;\n if (isSleep) entities.rigidBody?.sleep();\n\n const abstract = AbstractEntity(withPhysicsBodyEntities(entities), EntityType.PhysicsBody, params);\n\n const destroySub$: Subscription = abstract.destroy$.subscribe((): void => {\n if (isDefined(entities.rigidBody)) world.removeRigidBody(entities.rigidBody);\n // eslint-disable-next-line functional/immutable-data\n (entities as TWriteable<TPhysicsBodyEntities>).rigidBody = null as any;\n if (isDefined(entities.collider)) world.removeCollider(entities.collider, true);\n // eslint-disable-next-line functional/immutable-data\n (entities as TWriteable<TPhysicsBodyEntities>).collider = null as any;\n\n destroySub$.unsubscribe();\n });\n\n // eslint-disable-next-line functional/immutable-data\n const result = Object.assign(abstract, {\n setPhysicsBodyType: (type: RigidBodyTypesNames, wakeUp: boolean): void => {\n abstract.getRigidBody()?.setBodyType(RigidBodyTypesMap[type], wakeUp);\n },\n getPhysicsBodyType: (): RigidBodyTypesNames | never => {\n const bodyType: RigidBodyType | undefined = abstract.getRigidBody()?.bodyType();\n if (isNotDefined(bodyType)) return params.type;\n const match = Object.entries(RigidBodyTypesMap).find(([, value]): boolean => value === bodyType);\n const result: RigidBodyTypesNames | undefined = match?.[0] as RigidBodyTypesNames | undefined;\n\n if (isNotDefined(result)) throw new Error(`PhysicsBody: RigidBody type is not defined for object with name \"${params.name}\"`);\n return result;\n },\n getPhysicsBodyShape: (): CollisionShape => params.collisionShape,\n getShapeParams: (): TPhysicsShapeParams => params.shapeParams,\n serialize: (): TPhysicsBodyConfig => physicsBodyEntityToConfig(result)\n });\n\n return result;\n}\n"],"names":["PhysicsBody","params","physicsWorldService","world","getWorld","entities","createPhysicsBodyEntities","isSleep","rigidBody","sleep","abstract","AbstractEntity","withPhysicsBodyEntities","EntityType","destroySub$","destroy$","subscribe","isDefined","removeRigidBody","collider","removeCollider","unsubscribe","result","Object","assign","setPhysicsBodyType","type","wakeUp","getRigidBody","setBodyType","RigidBodyTypesMap","getPhysicsBodyType","bodyType","isNotDefined","match","entries","find","value","Error","name","getPhysicsBodyShape","collisionShape","getShapeParams","shapeParams","serialize","physicsBodyEntityToConfig"],"mappings":"4eAaO,SAASA,YAAYC,QAA4BC,oBAAEA,sBACxD,MAAMC,MAAeD,oBAAoBE,WACnCC,SAAiCC,0BAA0BL,OAAQE,QAEnEI,QAAEA,SAAU,GAAUN,OACxBM,SAASF,SAASG,WAAWC,QAEjC,MAAMC,SAAWC,eAAeC,wBAAwBP,UAAWQ,WAAWb,YAAaC,QAErFa,YAA4BJ,SAASK,SAASC,UAAU,KACxDC,UAAUZ,SAASG,YAAYL,MAAMe,gBAAgBb,SAASG,WAEjEH,SAA8CG,UAAY,KACvDS,UAAUZ,SAASc,iBAAiBC,eAAef,SAASc,UAAU,GAEzEd,SAA8Cc,SAAW,KAE1DL,YAAYO,gBAIRC,OAASC,OAAOC,OAAOd,SAAU,CACrCe,mBAAoB,CAACC,KAA2BC,UAC9CjB,SAASkB,gBAAgBC,YAAYC,kBAAkBJ,MAAOC,SAEhEI,mBAAoB,KAClB,MAAMC,SAAsCtB,SAASkB,gBAAgBI,WACrE,GAAIC,aAAaD,UAAW,OAAO/B,OAAOyB,KAC1C,MAAMQ,MAAQX,OAAOY,QAAQL,mBAAmBM,KAAK,GAAIC,SAAoBA,QAAUL,UACjFV,QAA0CY,QAAQ,GAExD,GAAID,aAAaX,SAAS,MAAM,IAAIgB,MAAM,oEAAoErC,OAAOsC,SACrH,OAAOjB,SAETkB,oBAAqB,IAAsBvC,OAAOwC,eAClDC,eAAgB,IAA2BzC,OAAO0C,YAClDC,UAAW,IAA0BC,0BAA0BvB,UAGjE,OAAOA,MACT"}
@@ -1,2 +1,2 @@
1
- import{configToParamsBody}from"../Adapters/PhysicsBodyConfigToParams.js";import{PhysicsBody}from"../Entities/PhysicsBody.js";import{ReactiveFactory}from"../../Abstract/Factories/ReactiveFactory.js";import{FactoryType}from"../../Abstract/Constants/FactoryType.js";function PhysicsBodyFactory(){const factory=ReactiveFactory(FactoryType.PhysicsBody,PhysicsBody);return Object.assign(factory,{configToParams:configToParamsBody})}export{PhysicsBodyFactory};
1
+ import{physicsBodyConfigToParams}from"../Adapters/PhysicsBodyConfigToParams.js";import{PhysicsBody}from"../Entities/PhysicsBody.js";import{ReactiveFactory}from"../../Abstract/Factories/ReactiveFactory.js";import{FactoryType}from"../../Abstract/Constants/FactoryType.js";function PhysicsBodyFactory(){const factory=ReactiveFactory(FactoryType.PhysicsBody,PhysicsBody);return Object.assign(factory,{configToParams:physicsBodyConfigToParams})}export{PhysicsBodyFactory};
2
2
  //# sourceMappingURL=PhysicsBodyFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicsBodyFactory.js","sources":["../../../src/Physics/Factories/PhysicsBodyFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { configToParamsBody as configToParams } from '@Anarchy/Engine/Physics/Adapters';\nimport { PhysicsBody } from '@Anarchy/Engine/Physics/Entities';\nimport type { TPhysicsBody, TPhysicsBodyFactory, TPhysicsBodyParams, TPhysicsDependencies } from '@Anarchy/Engine/Physics/Models';\n\nexport function PhysicsBodyFactory(): TPhysicsBodyFactory {\n const factory: TReactiveFactory<TPhysicsBody, TPhysicsBodyParams, TPhysicsDependencies> = ReactiveFactory(FactoryType.PhysicsBody, PhysicsBody);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams });\n}\n"],"names":["PhysicsBodyFactory","factory","ReactiveFactory","FactoryType","PhysicsBody","Object","assign","configToParams"],"mappings":"uQAMO,SAASA,qBACd,MAAMC,QAAoFC,gBAAgBC,YAAYC,YAAaA,aAGnI,OAAOC,OAAOC,OAAOL,QAAS,CAAAM,eAAEA,oBAClC"}
1
+ {"version":3,"file":"PhysicsBodyFactory.js","sources":["../../../src/Physics/Factories/PhysicsBodyFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { physicsBodyConfigToParams } from '@Anarchy/Engine/Physics/Adapters';\nimport { PhysicsBody } from '@Anarchy/Engine/Physics/Entities';\nimport type { TPhysicsBody, TPhysicsBodyFactory, TPhysicsBodyParams, TPhysicsDependencies } from '@Anarchy/Engine/Physics/Models';\n\nexport function PhysicsBodyFactory(): TPhysicsBodyFactory {\n const factory: TReactiveFactory<TPhysicsBody, TPhysicsBodyParams, TPhysicsDependencies> = ReactiveFactory(FactoryType.PhysicsBody, PhysicsBody);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: physicsBodyConfigToParams });\n}\n"],"names":["PhysicsBodyFactory","factory","ReactiveFactory","FactoryType","PhysicsBody","Object","assign","configToParams","physicsBodyConfigToParams"],"mappings":"8QAMO,SAASA,qBACd,MAAMC,QAAoFC,gBAAgBC,YAAYC,YAAaA,aAGnI,OAAOC,OAAOC,OAAOL,QAAS,CAAEM,eAAgBC,2BAClD"}
@@ -1,2 +1,2 @@
1
1
  import { TRendererConfig, TRendererParams, TRendererServiceDependencies } from '../Models';
2
- export declare function configToParams(config: TRendererConfig, { container }: TRendererServiceDependencies): TRendererParams | never;
2
+ export declare function rendererConfigToParams(config: TRendererConfig, { container }: TRendererServiceDependencies): TRendererParams | never;
@@ -1,2 +1,2 @@
1
- import{isNotDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";function configToParams(config,{container:container}){const{...rest}=config,canvas=container.canvas$.value;if(isNotDefined(canvas))throw new Error("Renderer: cannot convert config to params \u2013 canvas is not defined");return{...rest,canvas:canvas}}export{configToParams};
1
+ import{isNotDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";function rendererConfigToParams(config,{container:container}){const{...rest}=config,canvas=container.canvas$.value;if(isNotDefined(canvas))throw new Error("Renderer: cannot convert config to params \u2013 canvas is not defined");return{...rest,canvas:canvas}}export{rendererConfigToParams};
2
2
  //# sourceMappingURL=ConfigToParams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Renderer/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TRendererConfig, TRendererParams, TRendererServiceDependencies } from '@Anarchy/Engine/Renderer/Models';\nimport type { TSpaceCanvas } from '@Anarchy/Engine/Space';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\n\nexport function configToParams(config: TRendererConfig, { container }: TRendererServiceDependencies): TRendererParams | never {\n const { ...rest } = config;\n\n const canvas: TSpaceCanvas | undefined = container.canvas$.value;\n if (isNotDefined(canvas)) throw new Error('Renderer: cannot convert config to params – canvas is not defined');\n\n return {\n ...rest,\n canvas\n };\n}\n"],"names":["configToParams","config","container","rest","canvas","canvas$","value","isNotDefined","Error"],"mappings":"gFAIO,SAASA,eAAeC,QAAyBC,UAAEA,YACxD,SAAWC,MAASF,OAEdG,OAAmCF,UAAUG,QAAQC,MAC3D,GAAIC,aAAaH,QAAS,MAAM,IAAII,MAAM,0EAE1C,MAAO,IACFL,KACHC,cAEJ"}
1
+ {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Renderer/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TRendererConfig, TRendererParams, TRendererServiceDependencies } from '@Anarchy/Engine/Renderer/Models';\nimport type { TSpaceCanvas } from '@Anarchy/Engine/Space';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\n\nexport function rendererConfigToParams(config: TRendererConfig, { container }: TRendererServiceDependencies): TRendererParams | never {\n const { ...rest } = config;\n\n const canvas: TSpaceCanvas | undefined = container.canvas$.value;\n if (isNotDefined(canvas)) throw new Error('Renderer: cannot convert config to params – canvas is not defined');\n\n return {\n ...rest,\n canvas\n };\n}\n"],"names":["rendererConfigToParams","config","container","rest","canvas","canvas$","value","isNotDefined","Error"],"mappings":"gFAIO,SAASA,uBAAuBC,QAAyBC,UAAEA,YAChE,SAAWC,MAASF,OAEdG,OAAmCF,UAAUG,QAAQC,MAC3D,GAAIC,aAAaH,QAAS,MAAM,IAAII,MAAM,0EAE1C,MAAO,IACFL,KACHC,cAEJ"}
@@ -1,2 +1,2 @@
1
1
  import { TRendererConfig, TRendererWrapper } from '../Models';
2
- export declare function rendererToConfig(entity: TRendererWrapper): TRendererConfig;
2
+ export declare function rendererEntityToConfig(entity: TRendererWrapper): TRendererConfig;
@@ -1,2 +1,2 @@
1
- import{filterOutEmptyFields}from"../../packages/anarchy-shared/src/Utils/ObjectUtils.js";import{extractSerializableRegistrableFields}from"../../Mixins/Generics/ExtractSerializableRegistrableFields.js";function rendererToConfig(entity){const params=entity.getParams();return filterOutEmptyFields({precision:params.precision,alpha:params.alpha,premultipliedAlpha:params.premultipliedAlpha,antialias:params.antialias,stencil:params.stencil,preserveDrawingBuffer:params.preserveDrawingBuffer,powerPreference:params.powerPreference,depth:params.depth,logarithmicDepthBuffer:params.logarithmicDepthBuffer,failIfMajorPerformanceCaveat:params.failIfMajorPerformanceCaveat,mode:params.mode,isShadowMapEnabled:entity.isShadowMapEnabled(),maxPixelRatio:entity.entity.getPixelRatio(),isActive:entity.isActive(),...extractSerializableRegistrableFields(entity)})}export{rendererToConfig};
1
+ import{filterOutEmptyFields}from"../../packages/anarchy-shared/src/Utils/ObjectUtils.js";import{extractSerializableRegistrableFields}from"../../Mixins/Generics/ExtractSerializableRegistrableFields.js";function rendererEntityToConfig(entity){const params=entity.getParams();return filterOutEmptyFields({precision:params.precision,alpha:params.alpha,premultipliedAlpha:params.premultipliedAlpha,antialias:params.antialias,stencil:params.stencil,preserveDrawingBuffer:params.preserveDrawingBuffer,powerPreference:params.powerPreference,depth:params.depth,logarithmicDepthBuffer:params.logarithmicDepthBuffer,failIfMajorPerformanceCaveat:params.failIfMajorPerformanceCaveat,mode:params.mode,isShadowMapEnabled:entity.isShadowMapEnabled(),maxPixelRatio:entity.entity.getPixelRatio(),isActive:entity.isActive(),...extractSerializableRegistrableFields(entity)})}export{rendererEntityToConfig};
2
2
  //# sourceMappingURL=EntityToConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Renderer/Adapters/EntityToConfig.ts"],"sourcesContent":["import { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport type { TRendererConfig, TRendererParams, TRendererWrapper } from '@Anarchy/Engine/Renderer/Models';\nimport { filterOutEmptyFields } from '@Anarchy/Shared/Utils';\n\nexport function rendererToConfig(entity: TRendererWrapper): TRendererConfig {\n const params: TRendererParams = entity.getParams();\n\n return filterOutEmptyFields({\n precision: params.precision,\n alpha: params.alpha,\n premultipliedAlpha: params.premultipliedAlpha,\n antialias: params.antialias,\n stencil: params.stencil,\n preserveDrawingBuffer: params.preserveDrawingBuffer,\n powerPreference: params.powerPreference,\n depth: params.depth,\n logarithmicDepthBuffer: params.logarithmicDepthBuffer,\n failIfMajorPerformanceCaveat: params.failIfMajorPerformanceCaveat,\n mode: params.mode,\n isShadowMapEnabled: entity.isShadowMapEnabled(),\n maxPixelRatio: entity.entity.getPixelRatio(),\n isActive: entity.isActive(),\n ...extractSerializableRegistrableFields(entity)\n });\n}\n"],"names":["rendererToConfig","entity","params","getParams","filterOutEmptyFields","precision","alpha","premultipliedAlpha","antialias","stencil","preserveDrawingBuffer","powerPreference","depth","logarithmicDepthBuffer","failIfMajorPerformanceCaveat","mode","isShadowMapEnabled","maxPixelRatio","getPixelRatio","isActive","extractSerializableRegistrableFields"],"mappings":"yMAIO,SAASA,iBAAiBC,QAC/B,MAAMC,OAA0BD,OAAOE,YAEvC,OAAOC,qBAAqB,CAC1BC,UAAWH,OAAOG,UAClBC,MAAOJ,OAAOI,MACdC,mBAAoBL,OAAOK,mBAC3BC,UAAWN,OAAOM,UAClBC,QAASP,OAAOO,QAChBC,sBAAuBR,OAAOQ,sBAC9BC,gBAAiBT,OAAOS,gBACxBC,MAAOV,OAAOU,MACdC,uBAAwBX,OAAOW,uBAC/BC,6BAA8BZ,OAAOY,6BACrCC,KAAMb,OAAOa,KACbC,mBAAoBf,OAAOe,qBAC3BC,cAAehB,OAAOA,OAAOiB,gBAC7BC,SAAUlB,OAAOkB,cACdC,qCAAqCnB,SAE5C"}
1
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Renderer/Adapters/EntityToConfig.ts"],"sourcesContent":["import { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport type { TRendererConfig, TRendererParams, TRendererWrapper } from '@Anarchy/Engine/Renderer/Models';\nimport { filterOutEmptyFields } from '@Anarchy/Shared/Utils';\n\nexport function rendererEntityToConfig(entity: TRendererWrapper): TRendererConfig {\n const params: TRendererParams = entity.getParams();\n\n return filterOutEmptyFields({\n precision: params.precision,\n alpha: params.alpha,\n premultipliedAlpha: params.premultipliedAlpha,\n antialias: params.antialias,\n stencil: params.stencil,\n preserveDrawingBuffer: params.preserveDrawingBuffer,\n powerPreference: params.powerPreference,\n depth: params.depth,\n logarithmicDepthBuffer: params.logarithmicDepthBuffer,\n failIfMajorPerformanceCaveat: params.failIfMajorPerformanceCaveat,\n mode: params.mode,\n isShadowMapEnabled: entity.isShadowMapEnabled(),\n maxPixelRatio: entity.entity.getPixelRatio(),\n isActive: entity.isActive(),\n ...extractSerializableRegistrableFields(entity)\n });\n}\n"],"names":["rendererEntityToConfig","entity","params","getParams","filterOutEmptyFields","precision","alpha","premultipliedAlpha","antialias","stencil","preserveDrawingBuffer","powerPreference","depth","logarithmicDepthBuffer","failIfMajorPerformanceCaveat","mode","isShadowMapEnabled","maxPixelRatio","getPixelRatio","isActive","extractSerializableRegistrableFields"],"mappings":"yMAIO,SAASA,uBAAuBC,QACrC,MAAMC,OAA0BD,OAAOE,YAEvC,OAAOC,qBAAqB,CAC1BC,UAAWH,OAAOG,UAClBC,MAAOJ,OAAOI,MACdC,mBAAoBL,OAAOK,mBAC3BC,UAAWN,OAAOM,UAClBC,QAASP,OAAOO,QAChBC,sBAAuBR,OAAOQ,sBAC9BC,gBAAiBT,OAAOS,gBACxBC,MAAOV,OAAOU,MACdC,uBAAwBX,OAAOW,uBAC/BC,6BAA8BZ,OAAOY,6BACrCC,KAAMb,OAAOa,KACbC,mBAAoBf,OAAOe,qBAC3BC,cAAehB,OAAOA,OAAOiB,gBAC7BC,SAAUlB,OAAOkB,cACdC,qCAAqCnB,SAE5C"}
@@ -1,2 +1,2 @@
1
- import{configToParams}from"../Adapters/ConfigToParams.js";import{RendererWrapper}from"../Wrappers/RendererWrapper.js";import{ReactiveFactory}from"../../Abstract/Factories/ReactiveFactory.js";import{FactoryType}from"../../Abstract/Constants/FactoryType.js";function RendererFactory(){const factory=ReactiveFactory(FactoryType.Renderer,RendererWrapper);return Object.assign(factory,{configToParams:configToParams})}export{RendererFactory};
1
+ import{rendererConfigToParams}from"../Adapters/ConfigToParams.js";import{RendererWrapper}from"../Wrappers/RendererWrapper.js";import{ReactiveFactory}from"../../Abstract/Factories/ReactiveFactory.js";import{FactoryType}from"../../Abstract/Constants/FactoryType.js";function RendererFactory(){const factory=ReactiveFactory(FactoryType.Renderer,RendererWrapper);return Object.assign(factory,{configToParams:rendererConfigToParams})}export{RendererFactory};
2
2
  //# sourceMappingURL=RendererFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RendererFactory.js","sources":["../../../src/Renderer/Factories/RendererFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { configToParams } from '@Anarchy/Engine/Renderer/Adapters';\nimport type { TRendererFactory, TRendererParams, TRendererWrapper, TRendererWrapperDependencies } from '@Anarchy/Engine/Renderer/Models';\nimport { RendererWrapper } from '@Anarchy/Engine/Renderer/Wrappers';\n\nexport function RendererFactory(): TRendererFactory {\n const factory: TReactiveFactory<TRendererWrapper, TRendererParams, TRendererWrapperDependencies> = ReactiveFactory(FactoryType.Renderer, RendererWrapper);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams });\n}\n"],"names":["RendererFactory","factory","ReactiveFactory","FactoryType","Renderer","RendererWrapper","Object","assign","configToParams"],"mappings":"gQAMO,SAASA,kBACd,MAAMC,QAA6FC,gBAAgBC,YAAYC,SAAUC,iBAGzI,OAAOC,OAAOC,OAAON,QAAS,CAAEO,+BAClC"}
1
+ {"version":3,"file":"RendererFactory.js","sources":["../../../src/Renderer/Factories/RendererFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { rendererConfigToParams } from '@Anarchy/Engine/Renderer/Adapters';\nimport type { TRendererFactory, TRendererParams, TRendererWrapper, TRendererWrapperDependencies } from '@Anarchy/Engine/Renderer/Models';\nimport { RendererWrapper } from '@Anarchy/Engine/Renderer/Wrappers';\n\nexport function RendererFactory(): TRendererFactory {\n const factory: TReactiveFactory<TRendererWrapper, TRendererParams, TRendererWrapperDependencies> = ReactiveFactory(FactoryType.Renderer, RendererWrapper);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: rendererConfigToParams });\n}\n"],"names":["RendererFactory","factory","ReactiveFactory","FactoryType","Renderer","RendererWrapper","Object","assign","configToParams","rendererConfigToParams"],"mappings":"wQAMO,SAASA,kBACd,MAAMC,QAA6FC,gBAAgBC,YAAYC,SAAUC,iBAGzI,OAAOC,OAAOC,OAAON,QAAS,CAAEO,eAAgBC,wBAClD"}
@@ -1,2 +1,2 @@
1
- import{isNotDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{isWebGLAvailable,isWebGL2Available}from"../../packages/anarchy-shared/src/Utils/WebGlUtils.js";import{WebGLRenderer,PCFShadowMap}from"three";import{getAccessors}from"./Accessors.js";import{BehaviorSubject}from"../../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js";import{RendererModes}from"../Constants/RendererModes.js";import{distinctUntilChanged}from"../../node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js";import{rendererToConfig}from"../Adapters/EntityToConfig.js";import{AbstractWrapper}from"../../Abstract/Wrappers/AbstractWrapper.js";import{WrapperType}from"../../Abstract/Constants/WrapperType.js";import{mergeAll}from"../../Utils/ObjectUtils.js";import{withActiveMixin}from"../../Mixins/Generics/WithActiveMixin.js";function RendererWrapper(params,{container:container,renderLoop:renderLoop}){const isRendererReady$=new BehaviorSubject(!1),maxPixelRatio=params.maxPixelRatio??2;if(isNotDefined(params.canvas))throw new Error("Canvas is not defined");if(!isWebGLAvailable())throw new Error("WebGL is not supported by this device");const isWebGL2=params.mode===RendererModes.WebGL2;if(isWebGL2&&!isWebGL2Available())throw new Error("WebGL2 is not supported by this device");let options={canvas:params.canvas,alpha:params.alpha??!1,antialias:params.antialias??!0,stencil:params.stencil??!1,depth:params.depth??!0};if(isWebGL2){const context=options.canvas.getContext(RendererModes.WebGL2,options);if(isNotDefined(context))throw new Error(`WebGL2 context is not defined, however mode is set to ${RendererModes.WebGL2}`);options={...options,context:context}}let entity=new WebGLRenderer(options);const accessors=getAccessors(entity);accessors.setShadowMapEnabled(params.isShadowMapEnabled??!0),accessors.setShadowMapType(PCFShadowMap);const rendererLoopSub$=renderLoop.tick$.subscribe(()=>{const isRendererReady=entity.info.render.frame>0;isRendererReady$.value!==isRendererReady&&isRendererReady$.next(isRendererReady)}),screenSizeSub$=container.viewportRect$.pipe(distinctUntilChanged((prev,curr)=>prev?.width===curr?.width&&prev?.height===curr?.height)).subscribe(rect=>{isNotDefined(rect)||function(entity2,{width:width,height:height},ratio){isNotDefined(entity2)||(accessors.setSize(width,height),accessors.setPixelRatio(ratio,maxPixelRatio))}(entity,rect,container.getRatio())}),wrapper=AbstractWrapper(entity,WrapperType.Renderer,params),destroySub$=wrapper.destroy$.subscribe(()=>{entity.dispose(),entity.forceContextLoss(),entity=null,destroySub$.unsubscribe(),screenSizeSub$.unsubscribe(),rendererLoopSub$.unsubscribe()}),result=mergeAll(wrapper,accessors,withActiveMixin(),{getParams:()=>params,serialize:()=>rendererToConfig(result),isRendererReady$:isRendererReady$});return result._setActive(params.isActive,!0),result}export{RendererWrapper};
1
+ import{isNotDefined}from"../../packages/anarchy-shared/src/Utils/CheckUtils.js";import{isWebGLAvailable,isWebGL2Available}from"../../packages/anarchy-shared/src/Utils/WebGlUtils.js";import{WebGLRenderer,PCFShadowMap}from"three";import{getAccessors}from"./Accessors.js";import{BehaviorSubject}from"../../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js";import{RendererModes}from"../Constants/RendererModes.js";import{distinctUntilChanged}from"../../node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js";import{rendererEntityToConfig}from"../Adapters/EntityToConfig.js";import{AbstractWrapper}from"../../Abstract/Wrappers/AbstractWrapper.js";import{WrapperType}from"../../Abstract/Constants/WrapperType.js";import{mergeAll}from"../../Utils/ObjectUtils.js";import{withActiveMixin}from"../../Mixins/Generics/WithActiveMixin.js";function RendererWrapper(params,{container:container,renderLoop:renderLoop}){const isRendererReady$=new BehaviorSubject(!1),maxPixelRatio=params.maxPixelRatio??2;if(isNotDefined(params.canvas))throw new Error("Canvas is not defined");if(!isWebGLAvailable())throw new Error("WebGL is not supported by this device");const isWebGL2=params.mode===RendererModes.WebGL2;if(isWebGL2&&!isWebGL2Available())throw new Error("WebGL2 is not supported by this device");let options={canvas:params.canvas,alpha:params.alpha??!1,antialias:params.antialias??!0,stencil:params.stencil??!1,depth:params.depth??!0};if(isWebGL2){const context=options.canvas.getContext(RendererModes.WebGL2,options);if(isNotDefined(context))throw new Error(`WebGL2 context is not defined, however mode is set to ${RendererModes.WebGL2}`);options={...options,context:context}}let entity=new WebGLRenderer(options);const accessors=getAccessors(entity);accessors.setShadowMapEnabled(params.isShadowMapEnabled??!0),accessors.setShadowMapType(PCFShadowMap);const rendererLoopSub$=renderLoop.tick$.subscribe(()=>{const isRendererReady=entity.info.render.frame>0;isRendererReady$.value!==isRendererReady&&isRendererReady$.next(isRendererReady)}),screenSizeSub$=container.viewportRect$.pipe(distinctUntilChanged((prev,curr)=>prev?.width===curr?.width&&prev?.height===curr?.height)).subscribe(rect=>{isNotDefined(rect)||function(entity2,{width:width,height:height},ratio){isNotDefined(entity2)||(accessors.setSize(width,height),accessors.setPixelRatio(ratio,maxPixelRatio))}(entity,rect,container.getRatio())}),wrapper=AbstractWrapper(entity,WrapperType.Renderer,params),destroySub$=wrapper.destroy$.subscribe(()=>{entity.dispose(),entity.forceContextLoss(),entity=null,destroySub$.unsubscribe(),screenSizeSub$.unsubscribe(),rendererLoopSub$.unsubscribe()}),result=mergeAll(wrapper,accessors,withActiveMixin(),{getParams:()=>params,serialize:()=>rendererEntityToConfig(result),isRendererReady$:isRendererReady$});return result._setActive(params.isActive,!0),result}export{RendererWrapper};
2
2
  //# sourceMappingURL=RendererWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RendererWrapper.js","sources":["../../../src/Renderer/Wrappers/RendererWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@Anarchy/Engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@Anarchy/Engine/Abstract';\nimport { withActiveMixin } from '@Anarchy/Engine/Mixins';\nimport { rendererToConfig } from '@Anarchy/Engine/Renderer/Adapters';\nimport { RendererModes } from '@Anarchy/Engine/Renderer/Constants';\nimport type { TRendererAccessors, TRendererConfig, TRendererParams, TRendererWrapper, TRendererWrapperDependencies } from '@Anarchy/Engine/Renderer/Models';\nimport { mergeAll } from '@Anarchy/Engine/Utils';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isNotDefined, isWebGL2Available, isWebGLAvailable } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject, distinctUntilChanged } from 'rxjs';\nimport type { WebGLRendererParameters } from 'three';\nimport { PCFShadowMap, WebGLRenderer } from 'three';\n\nimport { getAccessors } from './Accessors';\n\nexport function RendererWrapper(params: TRendererParams, { container, renderLoop }: TRendererWrapperDependencies): TRendererWrapper {\n const isRendererReady$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n const maxPixelRatio: number = params.maxPixelRatio ?? 2;\n if (isNotDefined(params.canvas)) throw new Error(`Canvas is not defined`);\n if (!isWebGLAvailable()) throw new Error('WebGL is not supported by this device');\n const isWebGL2: boolean = params.mode === RendererModes.WebGL2;\n if (isWebGL2 && !isWebGL2Available()) throw new Error('WebGL2 is not supported by this device');\n\n let options: WebGLRendererParameters = {\n canvas: params.canvas,\n alpha: params.alpha ?? false, //until we have a reason to use it (off for a better performance)\n antialias: params.antialias ?? true,\n stencil: params.stencil ?? false, //until we have a reason to use it (off for a better performance)\n depth: params.depth ?? true\n };\n\n if (isWebGL2) {\n const context: WebGL2RenderingContext | null = (options.canvas as HTMLCanvasElement).getContext(RendererModes.WebGL2, options) as WebGL2RenderingContext | null;\n if (isNotDefined(context)) throw new Error(`WebGL2 context is not defined, however mode is set to ${RendererModes.WebGL2}`);\n\n options = { ...options, context };\n }\n\n let entity: WebGLRenderer = new WebGLRenderer(options);\n const accessors: TRendererAccessors = getAccessors(entity);\n\n accessors.setShadowMapEnabled(params.isShadowMapEnabled ?? true);\n accessors.setShadowMapType(PCFShadowMap);\n\n //When \"isRendererReady\" is true, you can assume that the scene is loaded and ready.\n // if (isRendererReady$.value !== entity.info.render.frame > 0) isRendererReady$.next(entity.info.render.frame > 0);\n\n const rendererLoopSub$: Subscription = renderLoop.tick$.subscribe((): void => {\n const isRendererReady: boolean = entity.info.render.frame > 0;\n if (isRendererReady$.value === isRendererReady) return;\n isRendererReady$.next(isRendererReady);\n });\n\n function setValues(entity: TWriteable<WebGLRenderer>, { width, height }: DOMRect, ratio: number): void {\n if (isNotDefined(entity)) return;\n accessors.setSize(width, height);\n accessors.setPixelRatio(ratio, maxPixelRatio);\n }\n\n // TODO 9.2.0 ACTIVE: This could be done only in active$ renderer and applied in onActive hook\n const screenSizeSub$: Subscription = container.viewportRect$\n .pipe(distinctUntilChanged((prev: DOMRect, curr: DOMRect): boolean => prev?.width === curr?.width && prev?.height === curr?.height))\n .subscribe((rect: DOMRect): void => {\n if (isNotDefined(rect)) return;\n setValues(entity, rect, container.getRatio());\n });\n\n const wrapper: TAbstractWrapper<WebGLRenderer> = AbstractWrapper(entity, WrapperType.Renderer, params);\n\n const destroySub$: Subscription = wrapper.destroy$.subscribe((): void => {\n entity.dispose();\n entity.forceContextLoss();\n entity = null as any;\n\n destroySub$.unsubscribe();\n screenSizeSub$.unsubscribe();\n rendererLoopSub$.unsubscribe();\n });\n\n const result = mergeAll(wrapper, accessors, withActiveMixin(), {\n getParams: (): TRendererParams => params,\n serialize: (): TRendererConfig => rendererToConfig(result),\n isRendererReady$\n });\n\n result._setActive(params.isActive, true);\n\n return result;\n}\n"],"names":["RendererWrapper","params","container","renderLoop","isRendererReady$","BehaviorSubject","maxPixelRatio","isNotDefined","canvas","Error","isWebGLAvailable","isWebGL2","mode","RendererModes","WebGL2","isWebGL2Available","options","alpha","antialias","stencil","depth","context","getContext","entity","WebGLRenderer","accessors","getAccessors","setShadowMapEnabled","isShadowMapEnabled","setShadowMapType","PCFShadowMap","rendererLoopSub$","tick$","subscribe","isRendererReady","info","render","frame","value","next","screenSizeSub$","viewportRect$","pipe","distinctUntilChanged","prev","curr","width","height","rect","ratio","setSize","setPixelRatio","setValues","getRatio","wrapper","AbstractWrapper","WrapperType","Renderer","destroySub$","destroy$","dispose","forceContextLoss","unsubscribe","result","mergeAll","withActiveMixin","getParams","serialize","rendererToConfig","_setActive","isActive"],"mappings":"40BAgBO,SAASA,gBAAgBC,QAAyBC,UAAEA,UAAAC,WAAWA,aACpE,MAAMC,iBAA6C,IAAIC,iBAAgB,GAEjEC,cAAwBL,OAAOK,eAAiB,EACtD,GAAIC,aAAaN,OAAOO,QAAS,MAAM,IAAIC,MAAM,yBACjD,IAAKC,mBAAoB,MAAM,IAAID,MAAM,yCACzC,MAAME,SAAoBV,OAAOW,OAASC,cAAcC,OACxD,GAAIH,WAAaI,oBAAqB,MAAM,IAAIN,MAAM,0CAEtD,IAAIO,QAAmC,CACrCR,OAAQP,OAAOO,OACfS,MAAOhB,OAAOgB,QAAS,EACvBC,UAAWjB,OAAOiB,YAAa,EAC/BC,QAASlB,OAAOkB,UAAW,EAC3BC,MAAOnB,OAAOmB,QAAS,GAGzB,GAAIT,SAAU,CACZ,MAAMU,QAA0CL,QAAQR,OAA6Bc,WAAWT,cAAcC,OAAQE,SACtH,GAAIT,aAAac,SAAU,MAAM,IAAIZ,MAAM,yDAAyDI,cAAcC,UAElHE,QAAU,IAAKA,QAASK,gBAC1B,CAEA,IAAIE,OAAwB,IAAIC,cAAcR,SAC9C,MAAMS,UAAgCC,aAAaH,QAEnDE,UAAUE,oBAAoB1B,OAAO2B,qBAAsB,GAC3DH,UAAUI,iBAAiBC,cAK3B,MAAMC,iBAAiC5B,WAAW6B,MAAMC,UAAU,KAChE,MAAMC,gBAA2BX,OAAOY,KAAKC,OAAOC,MAAQ,EACxDjC,iBAAiBkC,QAAUJ,iBAC/B9B,iBAAiBmC,KAAKL,mBAUlBM,eAA+BtC,UAAUuC,cAC5CC,KAAKC,qBAAqB,CAACC,KAAeC,OAA2BD,MAAME,QAAUD,MAAMC,OAASF,MAAMG,SAAWF,MAAME,SAC3Hd,UAAWe,OACNzC,aAAayC,OAVrB,SAAmBzB,SAAmCuB,MAAEA,MAAAC,OAAOA,QAAmBE,OAC5E1C,aAAagB,WACjBE,UAAUyB,QAAQJ,MAAOC,QACzBtB,UAAU0B,cAAcF,MAAO3C,eACjC,CAOI8C,CAAU7B,OAAQyB,KAAM9C,UAAUmD,cAGhCC,QAA2CC,gBAAgBhC,OAAQiC,YAAYC,SAAUxD,QAEzFyD,YAA4BJ,QAAQK,SAAS1B,UAAU,KAC3DV,OAAOqC,UACPrC,OAAOsC,mBACPtC,OAAS,KAETmC,YAAYI,cACZtB,eAAesB,cACf/B,iBAAiB+B,gBAGbC,OAASC,SAASV,QAAS7B,UAAWwC,kBAAmB,CAC7DC,UAAW,IAAuBjE,OAClCkE,UAAW,IAAuBC,iBAAiBL,QACnD3D,oCAKF,OAFA2D,OAAOM,WAAWpE,OAAOqE,UAAU,GAE5BP,MACT"}
1
+ {"version":3,"file":"RendererWrapper.js","sources":["../../../src/Renderer/Wrappers/RendererWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@Anarchy/Engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@Anarchy/Engine/Abstract';\nimport { withActiveMixin } from '@Anarchy/Engine/Mixins';\nimport { rendererEntityToConfig } from '@Anarchy/Engine/Renderer/Adapters';\nimport { RendererModes } from '@Anarchy/Engine/Renderer/Constants';\nimport type { TRendererAccessors, TRendererConfig, TRendererParams, TRendererWrapper, TRendererWrapperDependencies } from '@Anarchy/Engine/Renderer/Models';\nimport { mergeAll } from '@Anarchy/Engine/Utils';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isNotDefined, isWebGL2Available, isWebGLAvailable } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject, distinctUntilChanged } from 'rxjs';\nimport type { WebGLRendererParameters } from 'three';\nimport { PCFShadowMap, WebGLRenderer } from 'three';\n\nimport { getAccessors } from './Accessors';\n\nexport function RendererWrapper(params: TRendererParams, { container, renderLoop }: TRendererWrapperDependencies): TRendererWrapper {\n const isRendererReady$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n const maxPixelRatio: number = params.maxPixelRatio ?? 2;\n if (isNotDefined(params.canvas)) throw new Error(`Canvas is not defined`);\n if (!isWebGLAvailable()) throw new Error('WebGL is not supported by this device');\n const isWebGL2: boolean = params.mode === RendererModes.WebGL2;\n if (isWebGL2 && !isWebGL2Available()) throw new Error('WebGL2 is not supported by this device');\n\n let options: WebGLRendererParameters = {\n canvas: params.canvas,\n alpha: params.alpha ?? false, //until we have a reason to use it (off for a better performance)\n antialias: params.antialias ?? true,\n stencil: params.stencil ?? false, //until we have a reason to use it (off for a better performance)\n depth: params.depth ?? true\n };\n\n if (isWebGL2) {\n const context: WebGL2RenderingContext | null = (options.canvas as HTMLCanvasElement).getContext(RendererModes.WebGL2, options) as WebGL2RenderingContext | null;\n if (isNotDefined(context)) throw new Error(`WebGL2 context is not defined, however mode is set to ${RendererModes.WebGL2}`);\n\n options = { ...options, context };\n }\n\n let entity: WebGLRenderer = new WebGLRenderer(options);\n const accessors: TRendererAccessors = getAccessors(entity);\n\n accessors.setShadowMapEnabled(params.isShadowMapEnabled ?? true);\n accessors.setShadowMapType(PCFShadowMap);\n\n //When \"isRendererReady\" is true, you can assume that the scene is loaded and ready.\n // if (isRendererReady$.value !== entity.info.render.frame > 0) isRendererReady$.next(entity.info.render.frame > 0);\n\n const rendererLoopSub$: Subscription = renderLoop.tick$.subscribe((): void => {\n const isRendererReady: boolean = entity.info.render.frame > 0;\n if (isRendererReady$.value === isRendererReady) return;\n isRendererReady$.next(isRendererReady);\n });\n\n function setValues(entity: TWriteable<WebGLRenderer>, { width, height }: DOMRect, ratio: number): void {\n if (isNotDefined(entity)) return;\n accessors.setSize(width, height);\n accessors.setPixelRatio(ratio, maxPixelRatio);\n }\n\n // TODO 9.2.0 ACTIVE: This could be done only in active$ renderer and applied in onActive hook\n const screenSizeSub$: Subscription = container.viewportRect$\n .pipe(distinctUntilChanged((prev: DOMRect, curr: DOMRect): boolean => prev?.width === curr?.width && prev?.height === curr?.height))\n .subscribe((rect: DOMRect): void => {\n if (isNotDefined(rect)) return;\n setValues(entity, rect, container.getRatio());\n });\n\n const wrapper: TAbstractWrapper<WebGLRenderer> = AbstractWrapper(entity, WrapperType.Renderer, params);\n\n const destroySub$: Subscription = wrapper.destroy$.subscribe((): void => {\n entity.dispose();\n entity.forceContextLoss();\n entity = null as any;\n\n destroySub$.unsubscribe();\n screenSizeSub$.unsubscribe();\n rendererLoopSub$.unsubscribe();\n });\n\n const result = mergeAll(wrapper, accessors, withActiveMixin(), {\n getParams: (): TRendererParams => params,\n serialize: (): TRendererConfig => rendererEntityToConfig(result),\n isRendererReady$\n });\n\n result._setActive(params.isActive, true);\n\n return result;\n}\n"],"names":["RendererWrapper","params","container","renderLoop","isRendererReady$","BehaviorSubject","maxPixelRatio","isNotDefined","canvas","Error","isWebGLAvailable","isWebGL2","mode","RendererModes","WebGL2","isWebGL2Available","options","alpha","antialias","stencil","depth","context","getContext","entity","WebGLRenderer","accessors","getAccessors","setShadowMapEnabled","isShadowMapEnabled","setShadowMapType","PCFShadowMap","rendererLoopSub$","tick$","subscribe","isRendererReady","info","render","frame","value","next","screenSizeSub$","viewportRect$","pipe","distinctUntilChanged","prev","curr","width","height","rect","ratio","setSize","setPixelRatio","setValues","getRatio","wrapper","AbstractWrapper","WrapperType","Renderer","destroySub$","destroy$","dispose","forceContextLoss","unsubscribe","result","mergeAll","withActiveMixin","getParams","serialize","rendererEntityToConfig","_setActive","isActive"],"mappings":"k1BAgBO,SAASA,gBAAgBC,QAAyBC,UAAEA,UAAAC,WAAWA,aACpE,MAAMC,iBAA6C,IAAIC,iBAAgB,GAEjEC,cAAwBL,OAAOK,eAAiB,EACtD,GAAIC,aAAaN,OAAOO,QAAS,MAAM,IAAIC,MAAM,yBACjD,IAAKC,mBAAoB,MAAM,IAAID,MAAM,yCACzC,MAAME,SAAoBV,OAAOW,OAASC,cAAcC,OACxD,GAAIH,WAAaI,oBAAqB,MAAM,IAAIN,MAAM,0CAEtD,IAAIO,QAAmC,CACrCR,OAAQP,OAAOO,OACfS,MAAOhB,OAAOgB,QAAS,EACvBC,UAAWjB,OAAOiB,YAAa,EAC/BC,QAASlB,OAAOkB,UAAW,EAC3BC,MAAOnB,OAAOmB,QAAS,GAGzB,GAAIT,SAAU,CACZ,MAAMU,QAA0CL,QAAQR,OAA6Bc,WAAWT,cAAcC,OAAQE,SACtH,GAAIT,aAAac,SAAU,MAAM,IAAIZ,MAAM,yDAAyDI,cAAcC,UAElHE,QAAU,IAAKA,QAASK,gBAC1B,CAEA,IAAIE,OAAwB,IAAIC,cAAcR,SAC9C,MAAMS,UAAgCC,aAAaH,QAEnDE,UAAUE,oBAAoB1B,OAAO2B,qBAAsB,GAC3DH,UAAUI,iBAAiBC,cAK3B,MAAMC,iBAAiC5B,WAAW6B,MAAMC,UAAU,KAChE,MAAMC,gBAA2BX,OAAOY,KAAKC,OAAOC,MAAQ,EACxDjC,iBAAiBkC,QAAUJ,iBAC/B9B,iBAAiBmC,KAAKL,mBAUlBM,eAA+BtC,UAAUuC,cAC5CC,KAAKC,qBAAqB,CAACC,KAAeC,OAA2BD,MAAME,QAAUD,MAAMC,OAASF,MAAMG,SAAWF,MAAME,SAC3Hd,UAAWe,OACNzC,aAAayC,OAVrB,SAAmBzB,SAAmCuB,MAAEA,MAAAC,OAAOA,QAAmBE,OAC5E1C,aAAagB,WACjBE,UAAUyB,QAAQJ,MAAOC,QACzBtB,UAAU0B,cAAcF,MAAO3C,eACjC,CAOI8C,CAAU7B,OAAQyB,KAAM9C,UAAUmD,cAGhCC,QAA2CC,gBAAgBhC,OAAQiC,YAAYC,SAAUxD,QAEzFyD,YAA4BJ,QAAQK,SAAS1B,UAAU,KAC3DV,OAAOqC,UACPrC,OAAOsC,mBACPtC,OAAS,KAETmC,YAAYI,cACZtB,eAAesB,cACf/B,iBAAiB+B,gBAGbC,OAASC,SAASV,QAAS7B,UAAWwC,kBAAmB,CAC7DC,UAAW,IAAuBjE,OAClCkE,UAAW,IAAuBC,uBAAuBL,QACzD3D,oCAKF,OAFA2D,OAAOM,WAAWpE,OAAOqE,UAAU,GAE5BP,MACT"}
@@ -1,4 +1,4 @@
1
- export { configToParams as rendererConfigToParams } from './Adapters';
1
+ export * from './Adapters';
2
2
  export * from './Constants';
3
3
  export * from './Factories';
4
4
  export * from './Loop';