@hellpig/anarchy-engine 22.0.2 → 22.0.4

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 (397) hide show
  1. package/dist/Abstract/Entities/AbstractEntity.js.map +1 -1
  2. package/dist/Abstract/Factories/AbstractFactory.js.map +1 -1
  3. package/dist/Abstract/Factories/ReactiveFactory.js.map +1 -1
  4. package/dist/Abstract/Loaders/AbstractLoader.js.map +1 -1
  5. package/dist/Abstract/Mixins/WithWrapperIdMixin.js.map +1 -1
  6. package/dist/Abstract/Models/THtmlElementStyleDeclaration.d.ts +4 -4
  7. package/dist/Abstract/Registries/AbstractEntityAsyncRegistry.js.map +1 -1
  8. package/dist/Abstract/Registries/AbstractEntityRegistry.js.map +1 -1
  9. package/dist/Abstract/Registries/AbstractResourceAsyncRegistry.js.map +1 -1
  10. package/dist/Abstract/Registries/AbstractSimpleRegistry.js.map +1 -1
  11. package/dist/Abstract/Registries/AbstractWatcherRegistry.js.map +1 -1
  12. package/dist/Abstract/Registries/Mixin/Registry/WithBaseAccessorsRegistry.js.map +1 -1
  13. package/dist/Abstract/Registries/Mixin/Registry/WithReactiveRegistry.js.map +1 -1
  14. package/dist/Abstract/Services/AbstractService.js.map +1 -1
  15. package/dist/Abstract/Watchers/AbstractWatcher.js.map +1 -1
  16. package/dist/Abstract/Watchers/AbstractWatcherWithState.js.map +1 -1
  17. package/dist/Abstract/Wrappers/AbstractWrapper.js.map +1 -1
  18. package/dist/Actor/Adapters/ConfigToParams.js.map +1 -1
  19. package/dist/Actor/Adapters/EntityToConfig.js.map +1 -1
  20. package/dist/Actor/Adapters/Helpers/ActorStatesConfigToParams.js.map +1 -1
  21. package/dist/Actor/Adapters/Helpers/Model3dSettingsConfigToParams.js.map +1 -1
  22. package/dist/Actor/Entities/Actor/Actor.js.map +1 -1
  23. package/dist/Actor/Factories/ActorFactory.js.map +1 -1
  24. package/dist/Actor/Mixins/WithActorStates.js.map +1 -1
  25. package/dist/Actor/Registries/ActorRegistry.js.map +1 -1
  26. package/dist/Actor/Registries/Model3dToActorConnectionRegistry.js.map +1 -1
  27. package/dist/Actor/Services/ActorService.js.map +1 -1
  28. package/dist/Actor/TransformDrive/ActorTransformDrive.js.map +1 -1
  29. package/dist/Actor/Utils/ActorUtils.js.map +1 -1
  30. package/dist/Animations/Adapters/EntityToConfig.js.map +1 -1
  31. package/dist/Animations/Loader/AnimationsLoader.js.map +1 -1
  32. package/dist/Animations/Registries/AnimationsMetaInfoRegistry.js.map +1 -1
  33. package/dist/Animations/Registries/AnimationsResourceAsyncRegistry.js.map +1 -1
  34. package/dist/Animations/Services/AnimationsService.js.map +1 -1
  35. package/dist/Animations/Utils/SerializationUtils.js.map +1 -1
  36. package/dist/Audio/Adapters/AudioConfigToParams.js.map +1 -1
  37. package/dist/Audio/Adapters/EntityToConfig.js.map +1 -1
  38. package/dist/Audio/Factories/AudioFactory.js.map +1 -1
  39. package/dist/Audio/Loader/AudioLoader.js.map +1 -1
  40. package/dist/Audio/Registries/AudioListenersRegistry.js.map +1 -1
  41. package/dist/Audio/Registries/AudioMetaInfoRegistry.js.map +1 -1
  42. package/dist/Audio/Registries/AudioRegistry.js.map +1 -1
  43. package/dist/Audio/Registries/AudioResourceAsyncRegistry.js.map +1 -1
  44. package/dist/Audio/Services/AudioService.js.map +1 -1
  45. package/dist/Audio/TransformDrive/Audio3dTransformDrive.js.map +1 -1
  46. package/dist/Audio/Utils/AudioUtils.js.map +1 -1
  47. package/dist/Audio/Utils/DebugAudioRenderer.js.map +1 -1
  48. package/dist/Audio/Wrappers/AbstractAudioWrapper.js.map +1 -1
  49. package/dist/Audio/Wrappers/Audio3dWrapper.js.map +1 -1
  50. package/dist/Audio/Wrappers/AudioWrapper.js.map +1 -1
  51. package/dist/Camera/Adapters/ConfigToParams.js.map +1 -1
  52. package/dist/Camera/Adapters/EntityToConfig.js.map +1 -1
  53. package/dist/Camera/Factories/CameraFactory.js.map +1 -1
  54. package/dist/Camera/Registries/AbstractCameraRegistry.js.map +1 -1
  55. package/dist/Camera/Services/CameraService.js.map +1 -1
  56. package/dist/Camera/TransformDrive/CameraTransformDrive.js.map +1 -1
  57. package/dist/Camera/Utils/CameraUtils.js.map +1 -1
  58. package/dist/Camera/Wrappers/Accessors.js.map +1 -1
  59. package/dist/Camera/Wrappers/OrthographicCameraWrapper.js.map +1 -1
  60. package/dist/Camera/Wrappers/PerspectiveCameraWrapper.js.map +1 -1
  61. package/dist/Collisions/Mixins/WithCollisions.js.map +1 -1
  62. package/dist/Collisions/Services/BvhService.js.map +1 -1
  63. package/dist/Collisions/Services/CollisionsService.js.map +1 -1
  64. package/dist/Color/Adapters/EntityToConfig.js.map +1 -1
  65. package/dist/Color/Wrappers/ColorWrapper.js.map +1 -1
  66. package/dist/Context/AmbientContext/AmbientContext.js.map +1 -1
  67. package/dist/Controls/Adapters/ConfigToParams.js.map +1 -1
  68. package/dist/Controls/Adapters/EntityToConfig.js.map +1 -1
  69. package/dist/Controls/Factories/ControlsFactory.js.map +1 -1
  70. package/dist/Controls/Loop/ControlsLoopEffect.js.map +1 -1
  71. package/dist/Controls/Models/TFpsControlsWrapper.d.ts +1 -1
  72. package/dist/Controls/Models/TOrbitControlsWrapper.d.ts +1 -1
  73. package/dist/Controls/Registries/ControlsRegistry.js.map +1 -1
  74. package/dist/Controls/Services/ControlsService.js.map +1 -1
  75. package/dist/Controls/Utils/ControlsUtils.js.map +1 -1
  76. package/dist/Controls/Wrappers/FpsControls/FpsControlsAccessors.d.ts +1 -1
  77. package/dist/Controls/Wrappers/FpsControls/FpsControlsAccessors.js.map +1 -1
  78. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapper.js.map +1 -1
  79. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper.js.map +1 -1
  80. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsAccessors.d.ts +1 -1
  81. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsAccessors.js.map +1 -1
  82. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapper.js.map +1 -1
  83. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapperHelper.js.map +1 -1
  84. package/dist/Distance/Utils/DistanceUtils.js.map +1 -1
  85. package/dist/EnvMap/Adapters/ConfigToParams.js.map +1 -1
  86. package/dist/EnvMap/Adapters/EntityToConfig.js.map +1 -1
  87. package/dist/EnvMap/Factories/EnvMapFactory.js.map +1 -1
  88. package/dist/EnvMap/Loader/EnvMapLoader.js.map +1 -1
  89. package/dist/EnvMap/Registries/EnvMapMetaInfoRegistry.js.map +1 -1
  90. package/dist/EnvMap/Registries/EnvMapRegistry.js.map +1 -1
  91. package/dist/EnvMap/Registries/EnvMapTextureAsyncRegistry.js.map +1 -1
  92. package/dist/EnvMap/Services/EnvMapService.js.map +1 -1
  93. package/dist/EnvMap/Wrappers/EnvMapWrapper.js.map +1 -1
  94. package/dist/Fog/Adapters/ConfigToParams.js.map +1 -1
  95. package/dist/Fog/Adapters/EntityToConfig.js.map +1 -1
  96. package/dist/Fog/Factories/FogFactory.js.map +1 -1
  97. package/dist/Fog/Registries/FogRegistry.js.map +1 -1
  98. package/dist/Fog/Services/FogService.js.map +1 -1
  99. package/dist/Fog/Wrappers/FogWrapper.js.map +1 -1
  100. package/dist/Fsm/Adapters/ConfigToParams.js.map +1 -1
  101. package/dist/Fsm/Adapters/EntityToConfig.js.map +1 -1
  102. package/dist/Fsm/Entities/FsmSource.js.map +1 -1
  103. package/dist/Fsm/Factories/FsmInstanceFactory.js.map +1 -1
  104. package/dist/Fsm/Factories/FsmSourceFactory.js.map +1 -1
  105. package/dist/Fsm/Registries/FsmInstanceRegistry.js.map +1 -1
  106. package/dist/Fsm/Registries/FsmSourceRegistry.js.map +1 -1
  107. package/dist/Fsm/Services/FsmInstanceService.js.map +1 -1
  108. package/dist/Fsm/Services/FsmService.js.map +1 -1
  109. package/dist/Fsm/Services/FsmSourceService.js.map +1 -1
  110. package/dist/Fsm/Wrappers/FsmWrapper.js.map +1 -1
  111. package/dist/Global/Decorators/ContainerDecorator.js.map +1 -1
  112. package/dist/Global/Utils/ContainerUtils.js.map +1 -1
  113. package/dist/Intersections/Adapters/ConfigToParams.js.map +1 -1
  114. package/dist/Intersections/Adapters/EntityToConfig.js.map +1 -1
  115. package/dist/Intersections/Factories/IntersectionsWatcherFactory.js.map +1 -1
  116. package/dist/Intersections/Models/TIntersectionsDirectionWatcher.d.ts +1 -1
  117. package/dist/Intersections/Registries/IntersectionsWatcherRegistry.js.map +1 -1
  118. package/dist/Intersections/Services/IntersectionsWatcherService.js.map +1 -1
  119. package/dist/Intersections/Utils/IntersectionsWatcherUtils.js.map +1 -1
  120. package/dist/Intersections/Watchers/AbstractIntersectionsWatcher.js.map +1 -1
  121. package/dist/Intersections/Watchers/IntersectionsCameraWatcher.js.map +1 -1
  122. package/dist/Intersections/Watchers/IntersectionsDirectionWatcher.js.map +1 -1
  123. package/dist/Keyboard/Factories/KeyWatcherFactory.js.map +1 -1
  124. package/dist/Keyboard/Registries/KeyWatcherRegistry.js.map +1 -1
  125. package/dist/Keyboard/Services/KeyboardService.js.map +1 -1
  126. package/dist/Keyboard/Utils/KeysRxJsUtils.js.map +1 -1
  127. package/dist/Keyboard/Utils/KeysUtils.js.map +1 -1
  128. package/dist/Keyboard/Watchers/KeyComboWatcher.js.map +1 -1
  129. package/dist/Keyboard/Watchers/KeyPressWatcher.js.map +1 -1
  130. package/dist/Keyboard/Watchers/KeyReleaseWatcher.js.map +1 -1
  131. package/dist/Kinematic/Adapters/ConfigToParams.js.map +1 -1
  132. package/dist/Kinematic/Adapters/EntityToConfig.js.map +1 -1
  133. package/dist/Kinematic/Constants/KinematicConstants.js.map +1 -1
  134. package/dist/Kinematic/Utils/KinematicUtils.js.map +1 -1
  135. package/dist/Light/Adapters/ConfigToParams.js.map +1 -1
  136. package/dist/Light/Adapters/EntityToConfig.js.map +1 -1
  137. package/dist/Light/Factories/LightFactory.js.map +1 -1
  138. package/dist/Light/Registries/LightRegistry.js.map +1 -1
  139. package/dist/Light/Services/LightService.js.map +1 -1
  140. package/dist/Light/TransformDrive/LightTransformDrive.js.map +1 -1
  141. package/dist/Light/Utils/Utils.js.map +1 -1
  142. package/dist/Light/Wrappers/AbstractLightWrapper.js.map +1 -1
  143. package/dist/Light/Wrappers/AmbientLightWrapper.js.map +1 -1
  144. package/dist/Light/Wrappers/DirectionalLightWrapper.js.map +1 -1
  145. package/dist/Light/Wrappers/HemisphereLightWrapper.js.map +1 -1
  146. package/dist/Light/Wrappers/LightWrapperHelper.js.map +1 -1
  147. package/dist/Light/Wrappers/PointLightWrapper.js.map +1 -1
  148. package/dist/Light/Wrappers/RectAreaLightWrapper.js.map +1 -1
  149. package/dist/Light/Wrappers/SpotLightWrapper.js.map +1 -1
  150. package/dist/LoadingManager/Factories/LoadingManagerFactory.js.map +1 -1
  151. package/dist/LoadingManager/Registries/LoadingManagerRegistry.js.map +1 -1
  152. package/dist/LoadingManager/Services/LoadingManagerService.js.map +1 -1
  153. package/dist/LoadingManager/Wrappers/LoadingManagerWrapper.js.map +1 -1
  154. package/dist/Loop/Constants/LoopsDefaultSettings.js.map +1 -1
  155. package/dist/Loop/Entities/DeltaCalculator.js.map +1 -1
  156. package/dist/Loop/Entities/Loop.js.map +1 -1
  157. package/dist/Loop/Factories/LoopFactory.js.map +1 -1
  158. package/dist/Loop/Registries/LoopRegistry.js.map +1 -1
  159. package/dist/Loop/Services/LoopService.js.map +1 -1
  160. package/dist/Loop/Utils/LoopDebugUtils.js.map +1 -1
  161. package/dist/Loop/Utils/LoopUtils.js.map +1 -1
  162. package/dist/Material/Adapters/ConfigToParams.js.map +1 -1
  163. package/dist/Material/Adapters/EntityToConfig.js.map +1 -1
  164. package/dist/Material/Constants/Material/MaterialMap.js.map +1 -1
  165. package/dist/Material/Factories/MaterialFactory.js.map +1 -1
  166. package/dist/Material/Mixins/WithMaterial.d.ts +1 -1
  167. package/dist/Material/Mixins/WithMaterial.js.map +1 -1
  168. package/dist/Material/Models/TMaterialParamsOptions.d.ts +1 -4
  169. package/dist/Material/Registries/MaterialRegistry.js.map +1 -1
  170. package/dist/Material/Services/MaterialService.js.map +1 -1
  171. package/dist/Material/Utils/MaterialUtils.js.map +1 -1
  172. package/dist/Material/Wrappers/MaterialWrapper.js.map +1 -1
  173. package/dist/Math/Utils/AnglesUtils.js +1 -1
  174. package/dist/Math/Utils/AnglesUtils.js.map +1 -1
  175. package/dist/Math/Utils/DistanceUtils.js.map +1 -1
  176. package/dist/Measurements/Constants/Distance.js.map +1 -1
  177. package/dist/Measurements/Constants/Time.js.map +1 -1
  178. package/dist/Measurements/Utils/MeasurementsUtils.d.ts +1 -1
  179. package/dist/Measurements/Utils/MeasurementsUtils.js.map +1 -1
  180. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy2dMixin.js.map +1 -1
  181. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy3dMixin.js.map +1 -1
  182. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy4dMixin.js.map +1 -1
  183. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByWMixin.js.map +1 -1
  184. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByXMixin.js.map +1 -1
  185. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByYMixin.js.map +1 -1
  186. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByZMixin.js.map +1 -1
  187. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition2dMixin.js.map +1 -1
  188. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition3dMixin.js.map +1 -1
  189. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition4dMixin.js.map +1 -1
  190. package/dist/Mixins/GameObjects/Mixins/Position/WithPositionMixin.js.map +1 -1
  191. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByWMixin.js.map +1 -1
  192. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByXMixin.js.map +1 -1
  193. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByXyzMixin.js.map +1 -1
  194. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByYMixin.js.map +1 -1
  195. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByZMixin.js.map +1 -1
  196. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationMixin.js.map +1 -1
  197. package/dist/Mixins/GameObjects/Mixins/Scalable/WithScaleMixin.js.map +1 -1
  198. package/dist/Mixins/GameObjects/Mixins/WithObject3D.js.map +1 -1
  199. package/dist/Mixins/Generics/DestroyableMixin.js.map +1 -1
  200. package/dist/Mixins/Generics/ExtractSerializableRegistrableFields.js.map +1 -1
  201. package/dist/Mixins/Generics/WithActiveEntityServiceMixin.js.map +1 -1
  202. package/dist/Mixins/Generics/WithActiveMixin.js.map +1 -1
  203. package/dist/Mixins/Generics/WithNameAndNameAccessorsMixin.js.map +1 -1
  204. package/dist/Mixins/Services/WithCreateFromConfigService.js.map +1 -1
  205. package/dist/Mixins/Services/WithCreateService.js.map +1 -1
  206. package/dist/Mixins/Services/WithFactoryService.js.map +1 -1
  207. package/dist/Mixins/Services/WithRegistryService.js.map +1 -1
  208. package/dist/Mixins/Services/WithSceneGetterService.js.map +1 -1
  209. package/dist/Mixins/Services/WithSerializableEntities.js.map +1 -1
  210. package/dist/Mixins/Services/WithSerializeAllResources.js.map +1 -1
  211. package/dist/Models3d/Adapters/ConfigToParams.js.map +1 -1
  212. package/dist/Models3d/Adapters/EntityToConfig.js.map +1 -1
  213. package/dist/Models3d/Entities/Model3d.js.map +1 -1
  214. package/dist/Models3d/Factories/Models3dFactory.js.map +1 -1
  215. package/dist/Models3d/Loaders/Loader3dCore.js.map +1 -1
  216. package/dist/Models3d/Loaders/Models3dLoader.js.map +1 -1
  217. package/dist/Models3d/Mixins/WithModel3dEntities.js.map +1 -1
  218. package/dist/Models3d/Models/TModel3dParams.d.ts +1 -1
  219. package/dist/Models3d/Models/TModels3dLoader.d.ts +1 -1
  220. package/dist/Models3d/Models/TModels3dResourceAsyncRegistry.d.ts +1 -1
  221. package/dist/Models3d/Models/TModels3dService.d.ts +1 -1
  222. package/dist/Models3d/Registries/Model3dRawToModel3dConnectionRegistry.js.map +1 -1
  223. package/dist/Models3d/Registries/Models3dMetaInfoRegistry.js.map +1 -1
  224. package/dist/Models3d/Registries/Models3dRegistry.js.map +1 -1
  225. package/dist/Models3d/Registries/Models3dResourceAsyncRegistry.js.map +1 -1
  226. package/dist/Models3d/Services/Models3dService.js.map +1 -1
  227. package/dist/Models3d/Utils/SerializationUtils.js.map +1 -1
  228. package/dist/Models3d/Utils/UtilsModel3d.d.ts +1 -1
  229. package/dist/Models3d/Utils/UtilsModel3d.js.map +1 -1
  230. package/dist/Models3d/Utils/UtilsModels3dService.js.map +1 -1
  231. package/dist/Models3d/Utils/UtilsPrimitiveModels3d.d.ts +1 -1
  232. package/dist/Models3d/Utils/UtilsPrimitiveModels3d.js.map +1 -1
  233. package/dist/Mouse/Factories/MouseClickWatcherFactory.js.map +1 -1
  234. package/dist/Mouse/Factories/MousePositionWatcherFactory.js.map +1 -1
  235. package/dist/Mouse/Registries/MouseClickWatcherRegistry.js.map +1 -1
  236. package/dist/Mouse/Registries/MousePositionWatcherRegistry.js.map +1 -1
  237. package/dist/Mouse/Services/MouseService.js.map +1 -1
  238. package/dist/Mouse/Utils/MouseUtils.js.map +1 -1
  239. package/dist/Mouse/Watchers/MouseClickWatcher.js.map +1 -1
  240. package/dist/Mouse/Watchers/MousePositionWatcher.js.map +1 -1
  241. package/dist/Particles/Adapters/ConfigToParams.js.map +1 -1
  242. package/dist/Particles/Adapters/EntityToConfig.js.map +1 -1
  243. package/dist/Particles/Factories/ParticlesFactory.js.map +1 -1
  244. package/dist/Particles/Registries/ParticlesRegistry.js.map +1 -1
  245. package/dist/Particles/Services/ParticlesService.js.map +1 -1
  246. package/dist/Particles/TransformDrive/ParticlesTransformDrive.js.map +1 -1
  247. package/dist/Particles/Wrappers/ParticlesWrapper.js.map +1 -1
  248. package/dist/Physics/Adapters/EntityToConfig.d.ts +1 -1
  249. package/dist/Physics/Adapters/EntityToConfig.js.map +1 -1
  250. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js +1 -1
  251. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js.map +1 -1
  252. package/dist/Physics/Adapters/PhysicsWorldConfigToParams.js.map +1 -1
  253. package/dist/Physics/Constants/RigidBodyTypesMap.d.ts +1 -1
  254. package/dist/Physics/Constants/RigidBodyTypesMap.js +1 -1
  255. package/dist/Physics/Constants/RigidBodyTypesMap.js.map +1 -1
  256. package/dist/Physics/Entities/PhysicsBody.js.map +1 -1
  257. package/dist/Physics/Entities/PhysicsBodyUtils.d.ts +1 -1
  258. package/dist/Physics/Entities/PhysicsBodyUtils.js +1 -1
  259. package/dist/Physics/Entities/PhysicsBodyUtils.js.map +1 -1
  260. package/dist/Physics/Factories/PhysicsBodyFactory.js.map +1 -1
  261. package/dist/Physics/Mixins/WithPhysicsBodyEntities.js.map +1 -1
  262. package/dist/Physics/Models/TPhysicsWorldService.d.ts +1 -1
  263. package/dist/Physics/Registries/PhysicsBodyRegistry.js.map +1 -1
  264. package/dist/Physics/Renderers/PhysicsDebugRenderer.d.ts +1 -1
  265. package/dist/Physics/Renderers/PhysicsDebugRenderer.js.map +1 -1
  266. package/dist/Physics/Services/PhysicsBodyService.js.map +1 -1
  267. package/dist/Physics/Services/PhysicsWorldService.js +1 -1
  268. package/dist/Physics/Services/PhysicsWorldService.js.map +1 -1
  269. package/dist/Physics/Utils/ParamsUtils.js.map +1 -1
  270. package/dist/Physics/Utils/PhysicsMovementUtils.d.ts +2 -2
  271. package/dist/Physics/Utils/PhysicsMovementUtils.js +1 -1
  272. package/dist/Physics/Utils/PhysicsMovementUtils.js.map +1 -1
  273. package/dist/Renderer/Adapters/ConfigToParams.js.map +1 -1
  274. package/dist/Renderer/Adapters/EntityToConfig.js.map +1 -1
  275. package/dist/Renderer/Factories/RendererFactory.js.map +1 -1
  276. package/dist/Renderer/Loop/RendererLoopEffect.js.map +1 -1
  277. package/dist/Renderer/Mixins/WithThreeJsRendererParamsAccessors.js.map +1 -1
  278. package/dist/Renderer/Mixins/WithThreeJsRendererPropsAccessors.js.map +1 -1
  279. package/dist/Renderer/Registries/RendererRegistry.js.map +1 -1
  280. package/dist/Renderer/Services/RendererService.js.map +1 -1
  281. package/dist/Renderer/Wrappers/Accessors.js.map +1 -1
  282. package/dist/Renderer/Wrappers/RendererWrapper.js.map +1 -1
  283. package/dist/Scene/Adapters/ConfigToParams.js.map +1 -1
  284. package/dist/Scene/Adapters/EntityToConfig.js.map +1 -1
  285. package/dist/Scene/Factories/SceneFactory.js.map +1 -1
  286. package/dist/Scene/Registries/SceneRegistry.js.map +1 -1
  287. package/dist/Scene/Services/ScenesService.js.map +1 -1
  288. package/dist/Scene/Wrappers/SceneWrapper.js.map +1 -1
  289. package/dist/Space/Adapters/ConfigToParams.js.map +1 -1
  290. package/dist/Space/Adapters/EntityToConfig.js.map +1 -1
  291. package/dist/Space/Entities/Space.js.map +1 -1
  292. package/dist/Space/Entities/SpaceFromConfig.js.map +1 -1
  293. package/dist/Space/Factories/SpaceFactory.js.map +1 -1
  294. package/dist/Space/Registries/SpaceRegistry.js.map +1 -1
  295. package/dist/Space/Services/SpaceService.js.map +1 -1
  296. package/dist/Space/Utils/CanvasUtils.js.map +1 -1
  297. package/dist/Space/Utils/CreateEntitiesUtils.js.map +1 -1
  298. package/dist/Space/Utils/CreateLoopsUtils.js.map +1 -1
  299. package/dist/Space/Utils/LoadResourcesUtils.js.map +1 -1
  300. package/dist/Space/Utils/PrepareServicesUtils.js.map +1 -1
  301. package/dist/Space/Utils/SchemaValidationUtils.js.map +1 -1
  302. package/dist/Space/Validators/SchemasValidator.js.map +1 -1
  303. package/dist/Space/Validators/ValidateConfig.js.map +1 -1
  304. package/dist/Space/Validators/ValidateSpace.js.map +1 -1
  305. package/dist/Spatial/Adapters/ConfigToParams.js.map +1 -1
  306. package/dist/Spatial/Adapters/ConfigToParamsSpatialData.js.map +1 -1
  307. package/dist/Spatial/Adapters/EntityToConfig.js.map +1 -1
  308. package/dist/Spatial/Factories/SpatialGridFactory.js.map +1 -1
  309. package/dist/Spatial/Mixins/WithReactivePosition.js.map +1 -1
  310. package/dist/Spatial/Mixins/WithReactiveRotation.js.map +1 -1
  311. package/dist/Spatial/Mixins/WithSpatial.js.map +1 -1
  312. package/dist/Spatial/Mixins/WithUpdateSpatialCell.js.map +1 -1
  313. package/dist/Spatial/Registries/SpatialGridRegistry.js.map +1 -1
  314. package/dist/Spatial/Services/SpatialGridService.js.map +1 -1
  315. package/dist/Spatial/Services/SpatialHelper.d.ts +1 -1
  316. package/dist/Spatial/Services/SpatialHelper.js.map +1 -1
  317. package/dist/Spatial/Wrappers/SpatialCellWrapper.js.map +1 -1
  318. package/dist/Spatial/Wrappers/SpatialGridWrapper.js.map +1 -1
  319. package/dist/Text/Adapters/ConfigToParams.js.map +1 -1
  320. package/dist/Text/Adapters/EntityToConfig.js.map +1 -1
  321. package/dist/Text/Factories/TextFactory.js.map +1 -1
  322. package/dist/Text/Loop/TextLoopEffect.js.map +1 -1
  323. package/dist/Text/Models/TText2dRenderer.d.ts +1 -1
  324. package/dist/Text/Models/TText2dWrapper.d.ts +1 -1
  325. package/dist/Text/Models/TText3dRenderer.d.ts +1 -1
  326. package/dist/Text/Models/TText3dWrapper.d.ts +1 -1
  327. package/dist/Text/Models/TTextRenderer.d.ts +2 -2
  328. package/dist/Text/Models/TTextWrapper.d.ts +2 -2
  329. package/dist/Text/Registries/Text2dRegistry.js.map +1 -1
  330. package/dist/Text/Registries/Text2dRendererRegistry.js.map +1 -1
  331. package/dist/Text/Registries/Text3dRegistry.js.map +1 -1
  332. package/dist/Text/Registries/Text3dRendererRegistry.js.map +1 -1
  333. package/dist/Text/Registries/Text3dTextureRegistry.js.map +1 -1
  334. package/dist/Text/Renderers/Text2dRenderer.js.map +1 -1
  335. package/dist/Text/Renderers/Text3dRenderer.js.map +1 -1
  336. package/dist/Text/Renderers/TextRendererBuilder.d.ts +2 -2
  337. package/dist/Text/Renderers/TextRendererBuilder.js.map +1 -1
  338. package/dist/Text/Services/TextService.js.map +1 -1
  339. package/dist/Text/TransformDrive/TextTransformDrive.js.map +1 -1
  340. package/dist/Text/Utils/TextUtils.js.map +1 -1
  341. package/dist/Text/Wrappers/Accessors.js.map +1 -1
  342. package/dist/Text/Wrappers/Text2dWrapper.js.map +1 -1
  343. package/dist/Text/Wrappers/Text3dTextureWrapper.js.map +1 -1
  344. package/dist/Text/Wrappers/Text3dWrapper.js.map +1 -1
  345. package/dist/Text/Wrappers/TextTextureWrapper.js.map +1 -1
  346. package/dist/Text/Wrappers/TextWrapper.d.ts +2 -2
  347. package/dist/Text/Wrappers/TextWrapper.js.map +1 -1
  348. package/dist/Text/Wrappers/TextWrapperBuilder.js.map +1 -1
  349. package/dist/Text/Wrappers/TextWrapperHelper.js.map +1 -1
  350. package/dist/Texture/Loaders/TexturesLoader.js.map +1 -1
  351. package/dist/Texture/Registries/TextureMetaInfoRegistry.js.map +1 -1
  352. package/dist/Texture/Registries/TextureResourceAsyncRegistry.js.map +1 -1
  353. package/dist/Texture/Services/TextureService.js.map +1 -1
  354. package/dist/Texture/Utils/TextureServiceHelper.js.map +1 -1
  355. package/dist/ThreeLib/Utils/Object3dUtils.js.map +1 -1
  356. package/dist/TransformDrive/Adapters/EntityToConfig.js.map +1 -1
  357. package/dist/TransformDrive/Entities/Agents/AbstractTransformAgent.js.map +1 -1
  358. package/dist/TransformDrive/Entities/Agents/ConnectedTransformAgent.js.map +1 -1
  359. package/dist/TransformDrive/Entities/Agents/DefaultTransformAgent.js.map +1 -1
  360. package/dist/TransformDrive/Entities/Agents/KinematicTransformAgent.js.map +1 -1
  361. package/dist/TransformDrive/Entities/Agents/PhysicsTransformAgent.js.map +1 -1
  362. package/dist/TransformDrive/Entities/Connectors/DriveToTargetConnector.js.map +1 -1
  363. package/dist/TransformDrive/Entities/Drive/TransformDrive.js.map +1 -1
  364. package/dist/TransformDrive/Factories/TransformDriveFactory.js.map +1 -1
  365. package/dist/TransformDrive/Mixins/WithMutablePositionConnector.js.map +1 -1
  366. package/dist/TransformDrive/Mixins/WithMutableRotationConnector.js.map +1 -1
  367. package/dist/TransformDrive/Mixins/WithMutableScaleConnector.js.map +1 -1
  368. package/dist/TransformDrive/Mixins/WithProxyTransform.js.map +1 -1
  369. package/dist/TransformDrive/Registries/TransformDriveRegistry.js.map +1 -1
  370. package/dist/TransformDrive/Services/TransformDriveService.js.map +1 -1
  371. package/dist/TransformDrive/Utils/ActorDriveUtils.js.map +1 -1
  372. package/dist/TransformDrive/Utils/AgentUtils.js.map +1 -1
  373. package/dist/TransformDrive/Utils/KinematicAgentUtils.js.map +1 -1
  374. package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.d.ts +1 -1
  375. package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.js.map +1 -1
  376. package/dist/TransformDrive/Utils/TransformDriveUtils.js.map +1 -1
  377. package/dist/Utils/CheckUtils.js.map +1 -1
  378. package/dist/Utils/CoordsUtils.js.map +1 -1
  379. package/dist/Utils/DateTimeUtils.d.ts +1 -1
  380. package/dist/Utils/DestroyUtils.js.map +1 -1
  381. package/dist/Utils/DomUtils.js.map +1 -1
  382. package/dist/Utils/EntityUtils.js.map +1 -1
  383. package/dist/Utils/RegistryAsyncUtils.js.map +1 -1
  384. package/dist/Utils/RegistryUtils.js.map +1 -1
  385. package/dist/Utils/RxJsUtils.js.map +1 -1
  386. package/dist/Utils/ScreenUtils.js.map +1 -1
  387. package/dist/Utils/TagsUtils.js.map +1 -1
  388. package/dist/Utils/TransformUtils.js.map +1 -1
  389. package/dist/Utils/WrapperHelpers.d.ts +1 -1
  390. package/dist/Utils/WrapperHelpers.js.map +1 -1
  391. package/dist/assets/Loop.worker-D1bMWlsN.js.map +1 -1
  392. package/dist/packages/anarchy-shared/src/Utils/AsyncUtils.js.map +1 -1
  393. package/dist/packages/anarchy-shared/src/Utils/CssUtils.js.map +1 -1
  394. package/dist/packages/anarchy-shared/src/Utils/ObjectUtils.js.map +1 -1
  395. package/legal/NOTICE.md +1 -1
  396. package/legal/THIRD_PARTY_LICENSES.md +1 -1
  397. package/package.json +1 -1
@@ -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 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
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Models3d/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TAnimationStateConfig } from '@hellpig/anarchy-engine/Animations';\nimport { animationActionToConfig } from '@hellpig/anarchy-engine/Animations/Adapters';\nimport type { TAnimations, TAnimationsResourceAsyncRegistry } from '@hellpig/anarchy-engine/Animations/Models';\nimport { extractSerializableRegistrableFields } from '@hellpig/anarchy-engine/Mixins';\nimport type { PrimitiveModel3dType } from '@hellpig/anarchy-engine/Models3d/Constants';\nimport type { TModel3d, TModel3dConfig, TModel3dConfigToParamsDependencies, TModel3dParams, TModels3dResourceAsyncRegistry, TRawModel3d } from '@hellpig/anarchy-engine/Models3d/Models';\nimport { isPrimitiveModel3dSource } from '@hellpig/anarchy-engine/Models3d/Utils';\nimport { eulerToXyz, vector3ToXyz } from '@hellpig/anarchy-engine/Utils';\nimport { filterOutEmptyFields, isDefined, isNotDefined } from '@hellpig/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 +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 { 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
+ {"version":3,"file":"Model3d.js","sources":["../../../src/Models3d/Entities/Model3d.ts"],"sourcesContent":["import type { TAbstractEntity } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractEntity, EntityType } from '@hellpig/anarchy-engine/Abstract';\nimport { withObject3d } from '@hellpig/anarchy-engine/Mixins';\nimport { model3dEntityToConfig } from '@hellpig/anarchy-engine/Models3d/Adapters';\nimport { withModel3dEntities } from '@hellpig/anarchy-engine/Models3d/Mixins';\nimport type {\n TModel3d,\n TModel3dConfig,\n TModel3dConfigToParamsDependencies,\n TModel3dDependencies,\n TModel3dEntities,\n TModel3dParams,\n TWithModel3dEntities\n} from '@hellpig/anarchy-engine/Models3d/Models';\nimport {\n applyAnimationsState,\n applyObject3dParamsToModel3d,\n applyPositionToModel3d,\n applyRotationToModel3d,\n applyScaleToModel3d,\n createModels3dEntities,\n isModel3dAlreadyInUse\n} from '@hellpig/anarchy-engine/Models3d/Utils';\nimport { applyObject3dParams, destroyModel3dAnimationEntities, disposeGltf, mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport { isDefined } from '@hellpig/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":"q4BA2BO,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 +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 { 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
+ {"version":3,"file":"Models3dFactory.js","sources":["../../../src/Models3d/Factories/Models3dFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { model3dConfigToParams } from '@hellpig/anarchy-engine/Models3d/Adapters';\nimport { Model3d } from '@hellpig/anarchy-engine/Models3d/Entities';\nimport type { TModel3d, TModel3dParams, TModels3dFactory, TModels3dServiceDependencies } from '@hellpig/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 +1 @@
1
- {"version":3,"file":"Loader3dCore.js","sources":["../../../src/Models3d/Loaders/Loader3dCore.ts"],"sourcesContent":["import type { LoaderType, TAbstractLoader, TAbstractMetaInfoRegistry, TAbstractResourceAsyncRegistry, TAbstractResourceConfig } from '@Anarchy/Engine/Abstract';\nimport { AbstractLoader } from '@Anarchy/Engine/Abstract';\nimport type { TLoadingManagerWrapper } from '@Anarchy/Engine/LoadingManager';\nimport type { TDracoLoaderSettings } from '@Anarchy/Engine/ThreeLib';\nimport { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader';\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';\n\nexport function Loader3dCore<T, RC extends TAbstractResourceConfig>(\n registry: TAbstractResourceAsyncRegistry<T>,\n metaInfoRegistry: TAbstractMetaInfoRegistry<RC>,\n type: LoaderType,\n loadingManagerWrapper: TLoadingManagerWrapper,\n settings: TDracoLoaderSettings\n): TAbstractLoader<T, RC, TAbstractResourceAsyncRegistry<T>, TAbstractMetaInfoRegistry<RC>> {\n const models3dLoader = new GLTFLoader(loadingManagerWrapper.entity);\n const dracoLoader = new DRACOLoader(loadingManagerWrapper.entity);\n const { dracoLoaderDecoderPath, dracoLoaderDecoderType } = settings;\n dracoLoader.setDecoderPath(dracoLoaderDecoderPath ?? 'three/examples/jsm/libs/draco/');\n dracoLoader.setDecoderConfig({ type: dracoLoaderDecoderType ?? 'wasm' });\n dracoLoader.preload();\n models3dLoader.setDRACOLoader(dracoLoader);\n\n return AbstractLoader(models3dLoader, registry, metaInfoRegistry, type);\n}\n"],"names":["Loader3dCore","registry","metaInfoRegistry","type","loadingManagerWrapper","settings","models3dLoader","GLTFLoader","entity","dracoLoader","DRACOLoader","dracoLoaderDecoderPath","dracoLoaderDecoderType","setDecoderPath","setDecoderConfig","preload","setDRACOLoader","AbstractLoader"],"mappings":"mMAOO,SAASA,aACdC,SACAC,iBACAC,KACAC,sBACAC,UAEA,MAAMC,eAAiB,IAAIC,WAAWH,sBAAsBI,QACtDC,YAAc,IAAIC,YAAYN,sBAAsBI,SACpDG,uBAAEA,uBAAAC,uBAAwBA,wBAA2BP,SAM3D,OALAI,YAAYI,eAAeF,wBAA0B,kCACrDF,YAAYK,iBAAiB,CAAEX,KAAMS,wBAA0B,SAC/DH,YAAYM,UACZT,eAAeU,eAAeP,aAEvBQ,eAAeX,eAAgBL,SAAUC,iBAAkBC,KACpE"}
1
+ {"version":3,"file":"Loader3dCore.js","sources":["../../../src/Models3d/Loaders/Loader3dCore.ts"],"sourcesContent":["import type { LoaderType, TAbstractLoader, TAbstractMetaInfoRegistry, TAbstractResourceAsyncRegistry, TAbstractResourceConfig } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractLoader } from '@hellpig/anarchy-engine/Abstract';\nimport type { TLoadingManagerWrapper } from '@hellpig/anarchy-engine/LoadingManager';\nimport type { TDracoLoaderSettings } from '@hellpig/anarchy-engine/ThreeLib';\nimport { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader';\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';\n\nexport function Loader3dCore<T, RC extends TAbstractResourceConfig>(\n registry: TAbstractResourceAsyncRegistry<T>,\n metaInfoRegistry: TAbstractMetaInfoRegistry<RC>,\n type: LoaderType,\n loadingManagerWrapper: TLoadingManagerWrapper,\n settings: TDracoLoaderSettings\n): TAbstractLoader<T, RC, TAbstractResourceAsyncRegistry<T>, TAbstractMetaInfoRegistry<RC>> {\n const models3dLoader = new GLTFLoader(loadingManagerWrapper.entity);\n const dracoLoader = new DRACOLoader(loadingManagerWrapper.entity);\n const { dracoLoaderDecoderPath, dracoLoaderDecoderType } = settings;\n dracoLoader.setDecoderPath(dracoLoaderDecoderPath ?? 'three/examples/jsm/libs/draco/');\n dracoLoader.setDecoderConfig({ type: dracoLoaderDecoderType ?? 'wasm' });\n dracoLoader.preload();\n models3dLoader.setDRACOLoader(dracoLoader);\n\n return AbstractLoader(models3dLoader, registry, metaInfoRegistry, type);\n}\n"],"names":["Loader3dCore","registry","metaInfoRegistry","type","loadingManagerWrapper","settings","models3dLoader","GLTFLoader","entity","dracoLoader","DRACOLoader","dracoLoaderDecoderPath","dracoLoaderDecoderType","setDecoderPath","setDecoderConfig","preload","setDRACOLoader","AbstractLoader"],"mappings":"mMAOO,SAASA,aACdC,SACAC,iBACAC,KACAC,sBACAC,UAEA,MAAMC,eAAiB,IAAIC,WAAWH,sBAAsBI,QACtDC,YAAc,IAAIC,YAAYN,sBAAsBI,SACpDG,uBAAEA,uBAAAC,uBAAwBA,wBAA2BP,SAM3D,OALAI,YAAYI,eAAeF,wBAA0B,kCACrDF,YAAYK,iBAAiB,CAAEX,KAAMS,wBAA0B,SAC/DH,YAAYM,UACZT,eAAeU,eAAeP,aAEvBQ,eAAeX,eAAgBL,SAAUC,iBAAkBC,KACpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Models3dLoader.js","sources":["../../../src/Models3d/Loaders/Models3dLoader.ts"],"sourcesContent":["import { LoaderType } from '@Anarchy/Engine/Abstract';\nimport type { TLoadingManagerWrapper } from '@Anarchy/Engine/LoadingManager';\nimport type { TModel3dResourceConfig, TModels3dLoader, TModels3dMetaInfoRegistry, TModels3dResourceAsyncRegistry } from '@Anarchy/Engine/Models3d/Models';\nimport { applyObject3dParamsToModel3d, applyPositionToModel3d, applyRotationToModel3d, applyScaleToModel3d } from '@Anarchy/Engine/Models3d/Utils';\nimport type { TDracoLoaderSettings } from '@Anarchy/Engine/ThreeLib';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\n\nimport { Loader3dCore } from './Loader3dCore';\n\nexport function Models3dLoader(\n registry: TModels3dResourceAsyncRegistry,\n metaInfoRegistry: TModels3dMetaInfoRegistry,\n loadingManagerWrapper: TLoadingManagerWrapper,\n settings: TDracoLoaderSettings = {}\n): TModels3dLoader {\n const loader: TModels3dLoader = Loader3dCore(registry, metaInfoRegistry, LoaderType.Model3d, loadingManagerWrapper, settings);\n\n function applyParamsOnLoaded(loaded: TWriteable<GLTF>, options?: TModel3dResourceConfig['options']): GLTF {\n if (isNotDefined(options)) return loaded;\n loaded.scenes.forEach((scene): void => applyObject3dParamsToModel3d(scene, options));\n\n if (isDefined(options.scale?.x) && isDefined(options.scale?.y) && isDefined(options.scale?.z)) applyScaleToModel3d(loaded.scene, options.scale);\n if (isDefined(options.position?.x) && isDefined(options.position?.y) && isDefined(options.position?.z)) applyPositionToModel3d(loaded.scene, options.position);\n if (isDefined(options.rotation?.x) && isDefined(options.rotation?.y) && isDefined(options.rotation?.z)) applyRotationToModel3d(loaded.scene, options.rotation);\n\n return loaded;\n }\n\n loader.setOnLoadedFn(applyParamsOnLoaded);\n\n return loader;\n}\n"],"names":["Models3dLoader","registry","metaInfoRegistry","loadingManagerWrapper","settings","loader","Loader3dCore","LoaderType","Model3d","setOnLoadedFn","loaded","options","isNotDefined","scenes","forEach","scene","applyObject3dParamsToModel3d","isDefined","scale","x","y","z","position","rotation"],"mappings":"kVAWO,SAASA,eACdC,SACAC,iBACAC,sBACAC,SAAiC,CAAA,GAEjC,MAAMC,OAA0BC,aAAaL,SAAUC,iBAAkBK,WAAWC,QAASL,sBAAuBC,UAepH,OAFAC,OAAOI,cAXP,SAA6BC,OAA0BC,SACrD,OAAIC,aAAaD,WACjBD,OAAOG,OAAOC,QAASC,OAAgBC,6BAA6BD,MAAOJ,UAEvEM,UAAUN,QAAQO,OAAOC,IAAMF,UAAUN,QAAQO,OAAOE,IAAMH,UAAUN,QAAQO,OAAOG,wBAAwBX,OAAOK,MAAOJ,QAAQO,OACrID,UAAUN,QAAQW,UAAUH,IAAMF,UAAUN,QAAQW,UAAUF,IAAMH,UAAUN,QAAQW,UAAUD,2BAA2BX,OAAOK,MAAOJ,QAAQW,UACjJL,UAAUN,QAAQY,UAAUJ,IAAMF,UAAUN,QAAQY,UAAUH,IAAMH,UAAUN,QAAQY,UAAUF,2BAA2BX,OAAOK,MAAOJ,QAAQY,WALnHb,MAQpC,GAIOL,MACT"}
1
+ {"version":3,"file":"Models3dLoader.js","sources":["../../../src/Models3d/Loaders/Models3dLoader.ts"],"sourcesContent":["import { LoaderType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TLoadingManagerWrapper } from '@hellpig/anarchy-engine/LoadingManager';\nimport type { TModel3dResourceConfig, TModels3dLoader, TModels3dMetaInfoRegistry, TModels3dResourceAsyncRegistry } from '@hellpig/anarchy-engine/Models3d/Models';\nimport { applyObject3dParamsToModel3d, applyPositionToModel3d, applyRotationToModel3d, applyScaleToModel3d } from '@hellpig/anarchy-engine/Models3d/Utils';\nimport type { TDracoLoaderSettings } from '@hellpig/anarchy-engine/ThreeLib';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\n\nimport { Loader3dCore } from './Loader3dCore';\n\nexport function Models3dLoader(\n registry: TModels3dResourceAsyncRegistry,\n metaInfoRegistry: TModels3dMetaInfoRegistry,\n loadingManagerWrapper: TLoadingManagerWrapper,\n settings: TDracoLoaderSettings = {}\n): TModels3dLoader {\n const loader: TModels3dLoader = Loader3dCore(registry, metaInfoRegistry, LoaderType.Model3d, loadingManagerWrapper, settings);\n\n function applyParamsOnLoaded(loaded: TWriteable<GLTF>, options?: TModel3dResourceConfig['options']): GLTF {\n if (isNotDefined(options)) return loaded;\n loaded.scenes.forEach((scene): void => applyObject3dParamsToModel3d(scene, options));\n\n if (isDefined(options.scale?.x) && isDefined(options.scale?.y) && isDefined(options.scale?.z)) applyScaleToModel3d(loaded.scene, options.scale);\n if (isDefined(options.position?.x) && isDefined(options.position?.y) && isDefined(options.position?.z)) applyPositionToModel3d(loaded.scene, options.position);\n if (isDefined(options.rotation?.x) && isDefined(options.rotation?.y) && isDefined(options.rotation?.z)) applyRotationToModel3d(loaded.scene, options.rotation);\n\n return loaded;\n }\n\n loader.setOnLoadedFn(applyParamsOnLoaded);\n\n return loader;\n}\n"],"names":["Models3dLoader","registry","metaInfoRegistry","loadingManagerWrapper","settings","loader","Loader3dCore","LoaderType","Model3d","setOnLoadedFn","loaded","options","isNotDefined","scenes","forEach","scene","applyObject3dParamsToModel3d","isDefined","scale","x","y","z","position","rotation"],"mappings":"kVAWO,SAASA,eACdC,SACAC,iBACAC,sBACAC,SAAiC,CAAA,GAEjC,MAAMC,OAA0BC,aAAaL,SAAUC,iBAAkBK,WAAWC,QAASL,sBAAuBC,UAepH,OAFAC,OAAOI,cAXP,SAA6BC,OAA0BC,SACrD,OAAIC,aAAaD,WACjBD,OAAOG,OAAOC,QAASC,OAAgBC,6BAA6BD,MAAOJ,UAEvEM,UAAUN,QAAQO,OAAOC,IAAMF,UAAUN,QAAQO,OAAOE,IAAMH,UAAUN,QAAQO,OAAOG,wBAAwBX,OAAOK,MAAOJ,QAAQO,OACrID,UAAUN,QAAQW,UAAUH,IAAMF,UAAUN,QAAQW,UAAUF,IAAMH,UAAUN,QAAQW,UAAUD,2BAA2BX,OAAOK,MAAOJ,QAAQW,UACjJL,UAAUN,QAAQY,UAAUJ,IAAMF,UAAUN,QAAQY,UAAUH,IAAMH,UAAUN,QAAQY,UAAUF,2BAA2BX,OAAOK,MAAOJ,QAAQY,WALnHb,MAQpC,GAIOL,MACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"WithModel3dEntities.js","sources":["../../../src/Models3d/Mixins/WithModel3dEntities.ts"],"sourcesContent":["import type { TAnimationActions } from '@Anarchy/Engine/Animations/Models';\nimport type { TModel3dEntities, TRawModel3d, TWithModel3dEntities } from '@Anarchy/Engine/Models3d/Models';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { AnimationAction, AnimationClip, AnimationMixer } from 'three';\n\nexport function withModel3dEntities(entities: TModel3dEntities): TWithModel3dEntities {\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(entities, {\n getRawModel3d: (): TRawModel3d => entities.model3dSource,\n getActiveAnimationAction: (): AnimationAction | undefined => {\n const allActions = entities.animationsSource?.map((clip) => entities.mixer.clipAction(clip));\n return allActions?.find((action) => action.isRunning());\n },\n getAnimations: (): ReadonlyArray<AnimationClip> => entities.animationsSource ?? [],\n setAnimations: (animations: ReadonlyArray<AnimationClip>): void => {\n // eslint-disable-next-line functional/immutable-data\n (entities as TWriteable<TModel3dEntities>).animationsSource = [...animations];\n },\n addAnimations: (animations: ReadonlyArray<AnimationClip>): void => {\n if (isNotDefined((entities as TWriteable<TModel3dEntities>).animationsSource)) {\n // eslint-disable-next-line functional/immutable-data\n return void ((entities as TWriteable<TModel3dEntities>).animationsSource = [...animations]);\n }\n\n // eslint-disable-next-line functional/immutable-data\n return void ((entities as TWriteable<TModel3dEntities>).animationsSource as Array<AnimationClip>).push(...animations);\n },\n getMixer: (): AnimationMixer => entities.mixer,\n setActions: (actions: TAnimationActions): void => {\n // eslint-disable-next-line functional/immutable-data\n (entities as TWriteable<TModel3dEntities>).actions = actions;\n },\n addActions: (actions: TAnimationActions): void => {\n Object.entries(actions).forEach(([key, value]: [string, AnimationAction]): void => {\n // eslint-disable-next-line functional/immutable-data\n (entities.actions as TWriteable<TAnimationActions>)[key as any] = value;\n });\n },\n getActions: (): TAnimationActions => entities.actions\n });\n}\n"],"names":["withModel3dEntities","entities","Object","assign","getRawModel3d","model3dSource","getActiveAnimationAction","allActions","animationsSource","map","clip","mixer","clipAction","find","action","isRunning","getAnimations","setAnimations","animations","addAnimations","isNotDefined","push","getMixer","setActions","actions","addActions","entries","forEach","key","value","getActions"],"mappings":"gFAMO,SAASA,oBAAoBC,UAElC,OAAOC,OAAOC,OAAOF,SAAU,CAC7BG,cAAe,IAAmBH,SAASI,cAC3CC,yBAA0B,KACxB,MAAMC,WAAaN,SAASO,kBAAkBC,IAAKC,MAAST,SAASU,MAAMC,WAAWF,OACtF,OAAOH,YAAYM,KAAMC,QAAWA,OAAOC,cAE7CC,cAAe,IAAoCf,SAASO,kBAAoB,GAChFS,cAAgBC,aAEbjB,SAA0CO,iBAAmB,IAAIU,aAEpEC,cAAgBD,aACVE,aAAcnB,SAA0CO,kBAE5CP,SAA0CO,iBAAmB,IAAIU,YAInEjB,SAA0CO,iBAA0Ca,QAAQH,aAE5GI,SAAU,IAAsBrB,SAASU,MACzCY,WAAaC,UAEVvB,SAA0CuB,QAAUA,SAEvDC,WAAaD,UACXtB,OAAOwB,QAAQF,SAASG,QAAQ,EAAEC,IAAKC,UAEpC5B,SAASuB,QAA0CI,KAAcC,SAGtEC,WAAY,IAAyB7B,SAASuB,SAElD"}
1
+ {"version":3,"file":"WithModel3dEntities.js","sources":["../../../src/Models3d/Mixins/WithModel3dEntities.ts"],"sourcesContent":["import type { TAnimationActions } from '@hellpig/anarchy-engine/Animations/Models';\nimport type { TModel3dEntities, TRawModel3d, TWithModel3dEntities } from '@hellpig/anarchy-engine/Models3d/Models';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { AnimationAction, AnimationClip, AnimationMixer } from 'three';\n\nexport function withModel3dEntities(entities: TModel3dEntities): TWithModel3dEntities {\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(entities, {\n getRawModel3d: (): TRawModel3d => entities.model3dSource,\n getActiveAnimationAction: (): AnimationAction | undefined => {\n const allActions = entities.animationsSource?.map((clip) => entities.mixer.clipAction(clip));\n return allActions?.find((action) => action.isRunning());\n },\n getAnimations: (): ReadonlyArray<AnimationClip> => entities.animationsSource ?? [],\n setAnimations: (animations: ReadonlyArray<AnimationClip>): void => {\n // eslint-disable-next-line functional/immutable-data\n (entities as TWriteable<TModel3dEntities>).animationsSource = [...animations];\n },\n addAnimations: (animations: ReadonlyArray<AnimationClip>): void => {\n if (isNotDefined((entities as TWriteable<TModel3dEntities>).animationsSource)) {\n // eslint-disable-next-line functional/immutable-data\n return void ((entities as TWriteable<TModel3dEntities>).animationsSource = [...animations]);\n }\n\n // eslint-disable-next-line functional/immutable-data\n return void ((entities as TWriteable<TModel3dEntities>).animationsSource as Array<AnimationClip>).push(...animations);\n },\n getMixer: (): AnimationMixer => entities.mixer,\n setActions: (actions: TAnimationActions): void => {\n // eslint-disable-next-line functional/immutable-data\n (entities as TWriteable<TModel3dEntities>).actions = actions;\n },\n addActions: (actions: TAnimationActions): void => {\n Object.entries(actions).forEach(([key, value]: [string, AnimationAction]): void => {\n // eslint-disable-next-line functional/immutable-data\n (entities.actions as TWriteable<TAnimationActions>)[key as any] = value;\n });\n },\n getActions: (): TAnimationActions => entities.actions\n });\n}\n"],"names":["withModel3dEntities","entities","Object","assign","getRawModel3d","model3dSource","getActiveAnimationAction","allActions","animationsSource","map","clip","mixer","clipAction","find","action","isRunning","getAnimations","setAnimations","animations","addAnimations","isNotDefined","push","getMixer","setActions","actions","addActions","entries","forEach","key","value","getActions"],"mappings":"gFAMO,SAASA,oBAAoBC,UAElC,OAAOC,OAAOC,OAAOF,SAAU,CAC7BG,cAAe,IAAmBH,SAASI,cAC3CC,yBAA0B,KACxB,MAAMC,WAAaN,SAASO,kBAAkBC,IAAKC,MAAST,SAASU,MAAMC,WAAWF,OACtF,OAAOH,YAAYM,KAAMC,QAAWA,OAAOC,cAE7CC,cAAe,IAAoCf,SAASO,kBAAoB,GAChFS,cAAgBC,aAEbjB,SAA0CO,iBAAmB,IAAIU,aAEpEC,cAAgBD,aACVE,aAAcnB,SAA0CO,kBAE5CP,SAA0CO,iBAAmB,IAAIU,YAInEjB,SAA0CO,iBAA0Ca,QAAQH,aAE5GI,SAAU,IAAsBrB,SAASU,MACzCY,WAAaC,UAEVvB,SAA0CuB,QAAUA,SAEvDC,WAAaD,UACXtB,OAAOwB,QAAQF,SAASG,QAAQ,EAAEC,IAAKC,UAEpC5B,SAASuB,QAA0CI,KAAcC,SAGtEC,WAAY,IAAyB7B,SAASuB,SAElD"}
@@ -4,7 +4,7 @@ import { TWithName, TWithTags } from '../../Mixins';
4
4
  import { PrimitiveModel3dType } from '../Constants';
5
5
  import { TObject3DParams } from '../../ThreeLib';
6
6
  import { AnimationClip } from 'three';
7
- import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';
7
+ import { GLTF } from '../../../../../node_modules/@types/three/examples/jsm/loaders/GLTFLoader';
8
8
  import { TModel3dOptions } from './TModel3dOptions';
9
9
  export type TModel3dParams = Readonly<{
10
10
  model3dSource: GLTF | PrimitiveModel3dType;
@@ -1,5 +1,5 @@
1
1
  import { TAbstractLoader } from '../../Abstract';
2
- import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';
2
+ import { GLTF } from '../../../../../node_modules/@types/three/examples/jsm/loaders/GLTFLoader';
3
3
  import { TModel3dResourceConfig } from './TModel3dResourceConfig';
4
4
  import { TModels3dMetaInfoRegistry } from './TModels3dMetaInfoRegistry';
5
5
  import { TModels3dResourceAsyncRegistry } from './TModels3dResourceAsyncRegistry';
@@ -1,3 +1,3 @@
1
1
  import { TAbstractResourceAsyncRegistry } from '../../Abstract';
2
- import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';
2
+ import { GLTF } from '../../../../../node_modules/@types/three/examples/jsm/loaders/GLTFLoader';
3
3
  export type TModels3dResourceAsyncRegistry = TAbstractResourceAsyncRegistry<GLTF>;
@@ -4,7 +4,7 @@ import { TMaterialService } from '../../Material';
4
4
  import { TWithCreateFromConfigService, TWithCreateService, TWithFactoryService, TWithLoadResourcesAsyncService, TWithRegistryService, TWithResourcesMetaInfoRegistryService, TWithResourcesRegistryService } from '../../Mixins';
5
5
  import { TModel3d, TModel3dConfig, TModel3dParams, TModel3dRawToModel3dConnectionRegistry, TModel3dResourceConfig, TModels3dFactory, TModels3dRegistry, TModels3dResourceAsyncRegistry, TModels3dServiceDependencies } from '.';
6
6
  import { TOptional } from '../../../../anarchy-shared/src/Utils';
7
- import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';
7
+ import { GLTF } from '../../../../../node_modules/@types/three/examples/jsm/loaders/GLTFLoader';
8
8
  export type TModel3dServiceWithCreate = TWithCreateService<TModel3d, TModel3dParams>;
9
9
  export type TModel3dServiceWithCreateFromConfig = TWithCreateFromConfigService<TModel3dConfig, TModel3d>;
10
10
  export type TModel3dServiceWithFactory = TWithFactoryService<TModel3d, TModel3dParams, Pick<TModels3dServiceDependencies, 'animationsService' | 'model3dRawToModel3dConnectionRegistry'>, TModels3dFactory>;
@@ -1 +1 @@
1
- {"version":3,"file":"Model3dRawToModel3dConnectionRegistry.js","sources":["../../../src/Models3d/Registries/Model3dRawToModel3dConnectionRegistry.ts"],"sourcesContent":["import type { TAbstractSimpleRegistry } from '@Anarchy/Engine/Abstract';\nimport { AbstractSimpleRegistry, RegistryType } from '@Anarchy/Engine/Abstract';\nimport type { TModel3d, TModel3dRawToModel3dConnectionRegistry, TModel3dRawToModel3dConnectionRegistryExtension } from '@Anarchy/Engine/Models3d/Models';\nimport type { TRawModel3d } from '@Anarchy/Engine/Models3d/Models/TRawModel3d';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\n\nexport const Model3dRawToModel3dConnectionRegistry = (): TModel3dRawToModel3dConnectionRegistry => {\n const registry: TWriteable<TAbstractSimpleRegistry<string>> & TWriteable<TModel3dRawToModel3dConnectionRegistryExtension> = AbstractSimpleRegistry<string>(\n RegistryType.Models3dRawToModels3dToConnection\n ) as TWriteable<TAbstractSimpleRegistry<string>> & TWriteable<TModel3dRawToModel3dConnectionRegistryExtension>;\n\n // eslint-disable-next-line functional/immutable-data\n registry.addModel3d = (model3dRaw: TRawModel3d, model3d: TModel3d): void => registry.add(model3dRaw.uuid, model3d.id);\n // eslint-disable-next-line functional/immutable-data\n registry.findByModel3d = (model3dRaw: TRawModel3d): string | undefined => registry.findByKey(model3dRaw.uuid);\n // eslint-disable-next-line functional/immutable-data\n registry.setByModel3d = (model3dRaw: TRawModel3d, model3d: TModel3d): void => registry.add(model3dRaw.uuid, model3d.id);\n // eslint-disable-next-line functional/immutable-data\n registry.removeByModel3d = (model3dRaw: TRawModel3d, shouldIgnoreRemoved: boolean): void => {\n if (shouldIgnoreRemoved) {\n if (registry.findByModel3d(model3dRaw)) return registry.remove(model3dRaw.uuid);\n return undefined;\n }\n return registry.remove(model3dRaw.uuid);\n };\n\n return registry;\n};\n"],"names":["Model3dRawToModel3dConnectionRegistry","registry","AbstractSimpleRegistry","RegistryType","Models3dRawToModels3dToConnection","addModel3d","model3dRaw","model3d","add","uuid","id","findByModel3d","findByKey","setByModel3d","removeByModel3d","shouldIgnoreRemoved","remove"],"mappings":"2JAMO,MAAMA,sCAAwC,KACnD,MAAMC,SAAsHC,uBAC1HC,aAAaC,mCAkBf,OAdAH,SAASI,WAAa,CAACC,WAAyBC,UAA4BN,SAASO,IAAIF,WAAWG,KAAMF,QAAQG,IAElHT,SAASU,cAAiBL,YAAgDL,SAASW,UAAUN,WAAWG,MAExGR,SAASY,aAAe,CAACP,WAAyBC,UAA4BN,SAASO,IAAIF,WAAWG,KAAMF,QAAQG,IAEpHT,SAASa,gBAAkB,CAACR,WAAyBS,sBAC/CA,oBACEd,SAASU,cAAcL,YAAoBL,SAASe,OAAOV,WAAWG,WAC1E,EAEKR,SAASe,OAAOV,WAAWG,MAG7BR"}
1
+ {"version":3,"file":"Model3dRawToModel3dConnectionRegistry.js","sources":["../../../src/Models3d/Registries/Model3dRawToModel3dConnectionRegistry.ts"],"sourcesContent":["import type { TAbstractSimpleRegistry } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractSimpleRegistry, RegistryType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TModel3d, TModel3dRawToModel3dConnectionRegistry, TModel3dRawToModel3dConnectionRegistryExtension } from '@hellpig/anarchy-engine/Models3d/Models';\nimport type { TRawModel3d } from '@hellpig/anarchy-engine/Models3d/Models/TRawModel3d';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\n\nexport const Model3dRawToModel3dConnectionRegistry = (): TModel3dRawToModel3dConnectionRegistry => {\n const registry: TWriteable<TAbstractSimpleRegistry<string>> & TWriteable<TModel3dRawToModel3dConnectionRegistryExtension> = AbstractSimpleRegistry<string>(\n RegistryType.Models3dRawToModels3dToConnection\n ) as TWriteable<TAbstractSimpleRegistry<string>> & TWriteable<TModel3dRawToModel3dConnectionRegistryExtension>;\n\n // eslint-disable-next-line functional/immutable-data\n registry.addModel3d = (model3dRaw: TRawModel3d, model3d: TModel3d): void => registry.add(model3dRaw.uuid, model3d.id);\n // eslint-disable-next-line functional/immutable-data\n registry.findByModel3d = (model3dRaw: TRawModel3d): string | undefined => registry.findByKey(model3dRaw.uuid);\n // eslint-disable-next-line functional/immutable-data\n registry.setByModel3d = (model3dRaw: TRawModel3d, model3d: TModel3d): void => registry.add(model3dRaw.uuid, model3d.id);\n // eslint-disable-next-line functional/immutable-data\n registry.removeByModel3d = (model3dRaw: TRawModel3d, shouldIgnoreRemoved: boolean): void => {\n if (shouldIgnoreRemoved) {\n if (registry.findByModel3d(model3dRaw)) return registry.remove(model3dRaw.uuid);\n return undefined;\n }\n return registry.remove(model3dRaw.uuid);\n };\n\n return registry;\n};\n"],"names":["Model3dRawToModel3dConnectionRegistry","registry","AbstractSimpleRegistry","RegistryType","Models3dRawToModels3dToConnection","addModel3d","model3dRaw","model3d","add","uuid","id","findByModel3d","findByKey","setByModel3d","removeByModel3d","shouldIgnoreRemoved","remove"],"mappings":"2JAMO,MAAMA,sCAAwC,KACnD,MAAMC,SAAsHC,uBAC1HC,aAAaC,mCAkBf,OAdAH,SAASI,WAAa,CAACC,WAAyBC,UAA4BN,SAASO,IAAIF,WAAWG,KAAMF,QAAQG,IAElHT,SAASU,cAAiBL,YAAgDL,SAASW,UAAUN,WAAWG,MAExGR,SAASY,aAAe,CAACP,WAAyBC,UAA4BN,SAASO,IAAIF,WAAWG,KAAMF,QAAQG,IAEpHT,SAASa,gBAAkB,CAACR,WAAyBS,sBAC/CA,oBACEd,SAASU,cAAcL,YAAoBL,SAASe,OAAOV,WAAWG,WAC1E,EAEKR,SAASe,OAAOV,WAAWG,MAG7BR"}
@@ -1 +1 @@
1
- {"version":3,"file":"Models3dMetaInfoRegistry.js","sources":["../../../src/Models3d/Registries/Models3dMetaInfoRegistry.ts"],"sourcesContent":["import { AbstractSimpleRegistry, RegistryType } from '@Anarchy/Engine/Abstract';\nimport type { TModel3dResourceConfig, TModels3dMetaInfoRegistry } from '@Anarchy/Engine/Models3d/Models';\n\nexport function Models3dMetaInfoRegistry(): TModels3dMetaInfoRegistry {\n return AbstractSimpleRegistry<TModel3dResourceConfig>(RegistryType.Model3dMetaInfo);\n}\n"],"names":["Models3dMetaInfoRegistry","AbstractSimpleRegistry","RegistryType","Model3dMetaInfo"],"mappings":"2JAGO,SAASA,2BACd,OAAOC,uBAA+CC,aAAaC,gBACrE"}
1
+ {"version":3,"file":"Models3dMetaInfoRegistry.js","sources":["../../../src/Models3d/Registries/Models3dMetaInfoRegistry.ts"],"sourcesContent":["import { AbstractSimpleRegistry, RegistryType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TModel3dResourceConfig, TModels3dMetaInfoRegistry } from '@hellpig/anarchy-engine/Models3d/Models';\n\nexport function Models3dMetaInfoRegistry(): TModels3dMetaInfoRegistry {\n return AbstractSimpleRegistry<TModel3dResourceConfig>(RegistryType.Model3dMetaInfo);\n}\n"],"names":["Models3dMetaInfoRegistry","AbstractSimpleRegistry","RegistryType","Model3dMetaInfo"],"mappings":"2JAGO,SAASA,2BACd,OAAOC,uBAA+CC,aAAaC,gBACrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Models3dRegistry.js","sources":["../../../src/Models3d/Registries/Models3dRegistry.ts"],"sourcesContent":["import { AbstractEntityRegistry, RegistryType } from '@Anarchy/Engine/Abstract';\nimport type { TModel3d, TModels3dRegistry } from '@Anarchy/Engine/Models3d/Models';\n\nexport function Models3dRegistry(): TModels3dRegistry {\n return AbstractEntityRegistry<TModel3d>(RegistryType.Model3d);\n}\n"],"names":["Models3dRegistry","AbstractEntityRegistry","RegistryType","Model3d"],"mappings":"2JAGO,SAASA,mBACd,OAAOC,uBAAiCC,aAAaC,QACvD"}
1
+ {"version":3,"file":"Models3dRegistry.js","sources":["../../../src/Models3d/Registries/Models3dRegistry.ts"],"sourcesContent":["import { AbstractEntityRegistry, RegistryType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TModel3d, TModels3dRegistry } from '@hellpig/anarchy-engine/Models3d/Models';\n\nexport function Models3dRegistry(): TModels3dRegistry {\n return AbstractEntityRegistry<TModel3d>(RegistryType.Model3d);\n}\n"],"names":["Models3dRegistry","AbstractEntityRegistry","RegistryType","Model3d"],"mappings":"2JAGO,SAASA,mBACd,OAAOC,uBAAiCC,aAAaC,QACvD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Models3dResourceAsyncRegistry.js","sources":["../../../src/Models3d/Registries/Models3dResourceAsyncRegistry.ts"],"sourcesContent":["import { AbstractResourceAsyncRegistry, RegistryType } from '@Anarchy/Engine/Abstract';\nimport type { TModels3dResourceAsyncRegistry } from '@Anarchy/Engine/Models3d/Models';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\n\nexport function Models3dResourceAsyncRegistry(): TModels3dResourceAsyncRegistry {\n return AbstractResourceAsyncRegistry<GLTF>(RegistryType.Model3dRaw);\n}\n"],"names":["Models3dResourceAsyncRegistry","AbstractResourceAsyncRegistry","RegistryType","Model3dRaw"],"mappings":"yKAIO,SAASA,gCACd,OAAOC,8BAAoCC,aAAaC,WAC1D"}
1
+ {"version":3,"file":"Models3dResourceAsyncRegistry.js","sources":["../../../src/Models3d/Registries/Models3dResourceAsyncRegistry.ts"],"sourcesContent":["import { AbstractResourceAsyncRegistry, RegistryType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TModels3dResourceAsyncRegistry } from '@hellpig/anarchy-engine/Models3d/Models';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\n\nexport function Models3dResourceAsyncRegistry(): TModels3dResourceAsyncRegistry {\n return AbstractResourceAsyncRegistry<GLTF>(RegistryType.Model3dRaw);\n}\n"],"names":["Models3dResourceAsyncRegistry","AbstractResourceAsyncRegistry","RegistryType","Model3dRaw"],"mappings":"yKAIO,SAASA,gCACd,OAAOC,8BAAoCC,aAAaC,WAC1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"Models3dService.js","sources":["../../../src/Models3d/Services/Models3dService.ts"],"sourcesContent":["import type { TAbstractService } from '@Anarchy/Engine/Abstract';\nimport { AbstractService } from '@Anarchy/Engine/Abstract';\nimport type { TAnimationsResourceAsyncRegistry, TAnimationsService } from '@Anarchy/Engine/Animations';\nimport type { TLoadingManagerWrapper } from '@Anarchy/Engine/LoadingManager';\nimport type { TMaterialRegistry, TMaterialService } from '@Anarchy/Engine/Material';\nimport type { TDisposable } from '@Anarchy/Engine/Mixins';\nimport { withCreateFromConfigServiceMixin, withCreateServiceMixin, withFactoryService, withRegistryService, withSerializableEntities, withSerializeAllResources } from '@Anarchy/Engine/Mixins';\nimport { Models3dLoader } from '@Anarchy/Engine/Models3d/Loaders';\nimport type {\n TModel3d,\n TModel3dConfig,\n TModel3dConfigToParamsDependencies,\n TModel3dParams,\n TModel3dRawToModel3dConnectionRegistry,\n TModel3dResourceConfig,\n TModel3dSerializeResourcesDependencies,\n TModel3dServiceWithCreate,\n TModel3dServiceWithCreateFromConfig,\n TModel3dServiceWithFactory,\n TModel3dServiceWithRegistry,\n TModels3dFactory,\n TModels3dLoader,\n TModels3dMetaInfoRegistry,\n TModels3dRegistry,\n TModels3dResourceAsyncRegistry,\n TModels3dService,\n TModels3dServiceDependencies\n} from '@Anarchy/Engine/Models3d/Models';\nimport type { TSpaceSettings } from '@Anarchy/Engine/Space';\nimport { mergeAll } from '@Anarchy/Engine/Utils';\nimport type { TOptional } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function Models3dService(\n factory: TModels3dFactory,\n registry: TModels3dRegistry,\n resourcesRegistry: TModels3dResourceAsyncRegistry,\n metaInfoRegistry: TModels3dMetaInfoRegistry,\n { materialService, animationsService, model3dRawToModel3dConnectionRegistry }: TModels3dServiceDependencies,\n loadingManagerWrapper: TLoadingManagerWrapper,\n settings: TSpaceSettings\n): TModels3dService {\n const factorySub$: Subscription = factory.entityCreated$.subscribe((model3d: TModel3d): void => registry.add(model3d));\n const model3dLoader: TModels3dLoader = Models3dLoader(resourcesRegistry, metaInfoRegistry, loadingManagerWrapper, settings.threeJsSettings?.draco);\n const materialRegistry: TMaterialRegistry = materialService.getRegistry();\n const animationsResourceAsyncRegistry: TAnimationsResourceAsyncRegistry = animationsService.getResourceRegistry();\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, resourcesRegistry, model3dRawToModel3dConnectionRegistry, factorySub$, model3dLoader];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const withCreateService: TModel3dServiceWithCreate = withCreateServiceMixin(factory, { animationsService, model3dRawToModel3dConnectionRegistry });\n const withCreateFromConfigService: TModel3dServiceWithCreateFromConfig = withCreateFromConfigServiceMixin(withCreateService.create, factory.configToParams, {\n animationsResourceAsyncRegistry,\n materialRegistry,\n model3dResourceAsyncRegistry: resourcesRegistry\n });\n const withFactory: TModel3dServiceWithFactory = withFactoryService(factory);\n const withRegistry: TModel3dServiceWithRegistry = withRegistryService(registry);\n\n function clone(model3d: TModel3d, overrides?: TOptional<TModel3dParams>): TModel3d {\n return factory.create(\n {\n ...model3d.getParams(),\n forceClone: true,\n ...overrides\n },\n { animationsService, model3dRawToModel3dConnectionRegistry }\n );\n }\n\n return mergeAll(\n abstractService,\n withCreateService,\n withCreateFromConfigService,\n withFactory,\n withRegistry,\n withSerializeAllResources<TModel3dResourceConfig, TModel3dSerializeResourcesDependencies>(resourcesRegistry, { metaInfoRegistry }),\n withSerializableEntities<TModel3d, TModel3dConfig, Pick<TModel3dConfigToParamsDependencies, 'animationsResourceAsyncRegistry' | 'model3dResourceAsyncRegistry'>>(registry, {\n animationsResourceAsyncRegistry,\n model3dResourceAsyncRegistry: resourcesRegistry\n }),\n {\n loadAsync: model3dLoader.loadAsync,\n loadFromConfigAsync: model3dLoader.loadFromConfigAsync,\n getResourceRegistry: (): TModels3dResourceAsyncRegistry => resourcesRegistry,\n getMetaInfoRegistry: (): TModels3dMetaInfoRegistry => metaInfoRegistry,\n getAnimationsService: (): TAnimationsService => animationsService,\n getMaterialService: (): TMaterialService => materialService,\n getModel3dRawToModel3dConnectionRegistry: (): TModel3dRawToModel3dConnectionRegistry => model3dRawToModel3dConnectionRegistry,\n clone\n }\n );\n}\n"],"names":["Models3dService","factory","registry","resourcesRegistry","metaInfoRegistry","materialService","animationsService","model3dRawToModel3dConnectionRegistry","loadingManagerWrapper","settings","factorySub$","entityCreated$","subscribe","model3d","add","model3dLoader","Models3dLoader","threeJsSettings","draco","materialRegistry","getRegistry","animationsResourceAsyncRegistry","getResourceRegistry","abstractService","AbstractService","withCreateService","withCreateServiceMixin","withCreateFromConfigService","withCreateFromConfigServiceMixin","create","configToParams","model3dResourceAsyncRegistry","withFactory","withFactoryService","withRegistry","withRegistryService","mergeAll","withSerializeAllResources","withSerializableEntities","loadAsync","loadFromConfigAsync","getMetaInfoRegistry","getAnimationsService","getMaterialService","getModel3dRawToModel3dConnectionRegistry","clone","overrides","getParams","forceClone"],"mappings":"grBAiCO,SAASA,gBACdC,QACAC,SACAC,kBACAC,kBACAC,gBAAEA,gBAAAC,kBAAiBA,kBAAAC,sCAAmBA,uCACtCC,sBACAC,UAEA,MAAMC,YAA4BT,QAAQU,eAAeC,UAAWC,SAA4BX,SAASY,IAAID,UACvGE,cAAiCC,eAAeb,kBAAmBC,iBAAkBI,sBAAuBC,SAASQ,iBAAiBC,OACtIC,iBAAsCd,gBAAgBe,cACtDC,gCAAoEf,kBAAkBgB,sBAEtFC,gBAAoCC,gBADK,CAACtB,SAAUD,QAASE,kBAAmBI,sCAAuCG,YAAaK,gBAGpIU,kBAA+CC,uBAAuBzB,QAAS,CAAEK,oCAAmBC,8EACpGoB,4BAAmEC,iCAAiCH,kBAAkBI,OAAQ5B,QAAQ6B,eAAgB,CAC1JT,gEACAF,kCACAY,6BAA8B5B,oBAE1B6B,YAA0CC,mBAAmBhC,SAC7DiC,aAA4CC,oBAAoBjC,UAatE,OAAOkC,SACLb,gBACAE,kBACAE,4BACAK,YACAE,aACAG,0BAA0FlC,kBAAmB,CAAEC,oCAC/GkC,yBAAiKpC,SAAU,CACzKmB,gEACAU,6BAA8B5B,oBAEhC,CACEoC,UAAWxB,cAAcwB,UACzBC,oBAAqBzB,cAAcyB,oBACnClB,oBAAqB,IAAsCnB,kBAC3DsC,oBAAqB,IAAiCrC,iBACtDsC,qBAAsB,IAA0BpC,kBAChDqC,mBAAoB,IAAwBtC,gBAC5CuC,yCAA0C,IAA8CrC,sCACxFsC,MA9BJ,SAAehC,QAAmBiC,WAChC,OAAO7C,QAAQ4B,OACb,IACKhB,QAAQkC,YACXC,YAAY,KACTF,WAEL,CAAExC,oCAAmBC,6EAEzB,GAwBF"}
1
+ {"version":3,"file":"Models3dService.js","sources":["../../../src/Models3d/Services/Models3dService.ts"],"sourcesContent":["import type { TAbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport type { TAnimationsResourceAsyncRegistry, TAnimationsService } from '@hellpig/anarchy-engine/Animations';\nimport type { TLoadingManagerWrapper } from '@hellpig/anarchy-engine/LoadingManager';\nimport type { TMaterialRegistry, TMaterialService } from '@hellpig/anarchy-engine/Material';\nimport type { TDisposable } from '@hellpig/anarchy-engine/Mixins';\nimport { withCreateFromConfigServiceMixin, withCreateServiceMixin, withFactoryService, withRegistryService, withSerializableEntities, withSerializeAllResources } from '@hellpig/anarchy-engine/Mixins';\nimport { Models3dLoader } from '@hellpig/anarchy-engine/Models3d/Loaders';\nimport type {\n TModel3d,\n TModel3dConfig,\n TModel3dConfigToParamsDependencies,\n TModel3dParams,\n TModel3dRawToModel3dConnectionRegistry,\n TModel3dResourceConfig,\n TModel3dSerializeResourcesDependencies,\n TModel3dServiceWithCreate,\n TModel3dServiceWithCreateFromConfig,\n TModel3dServiceWithFactory,\n TModel3dServiceWithRegistry,\n TModels3dFactory,\n TModels3dLoader,\n TModels3dMetaInfoRegistry,\n TModels3dRegistry,\n TModels3dResourceAsyncRegistry,\n TModels3dService,\n TModels3dServiceDependencies\n} from '@hellpig/anarchy-engine/Models3d/Models';\nimport type { TSpaceSettings } from '@hellpig/anarchy-engine/Space';\nimport { mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { TOptional } from '@hellpig/anarchy-shared/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function Models3dService(\n factory: TModels3dFactory,\n registry: TModels3dRegistry,\n resourcesRegistry: TModels3dResourceAsyncRegistry,\n metaInfoRegistry: TModels3dMetaInfoRegistry,\n { materialService, animationsService, model3dRawToModel3dConnectionRegistry }: TModels3dServiceDependencies,\n loadingManagerWrapper: TLoadingManagerWrapper,\n settings: TSpaceSettings\n): TModels3dService {\n const factorySub$: Subscription = factory.entityCreated$.subscribe((model3d: TModel3d): void => registry.add(model3d));\n const model3dLoader: TModels3dLoader = Models3dLoader(resourcesRegistry, metaInfoRegistry, loadingManagerWrapper, settings.threeJsSettings?.draco);\n const materialRegistry: TMaterialRegistry = materialService.getRegistry();\n const animationsResourceAsyncRegistry: TAnimationsResourceAsyncRegistry = animationsService.getResourceRegistry();\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, resourcesRegistry, model3dRawToModel3dConnectionRegistry, factorySub$, model3dLoader];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const withCreateService: TModel3dServiceWithCreate = withCreateServiceMixin(factory, { animationsService, model3dRawToModel3dConnectionRegistry });\n const withCreateFromConfigService: TModel3dServiceWithCreateFromConfig = withCreateFromConfigServiceMixin(withCreateService.create, factory.configToParams, {\n animationsResourceAsyncRegistry,\n materialRegistry,\n model3dResourceAsyncRegistry: resourcesRegistry\n });\n const withFactory: TModel3dServiceWithFactory = withFactoryService(factory);\n const withRegistry: TModel3dServiceWithRegistry = withRegistryService(registry);\n\n function clone(model3d: TModel3d, overrides?: TOptional<TModel3dParams>): TModel3d {\n return factory.create(\n {\n ...model3d.getParams(),\n forceClone: true,\n ...overrides\n },\n { animationsService, model3dRawToModel3dConnectionRegistry }\n );\n }\n\n return mergeAll(\n abstractService,\n withCreateService,\n withCreateFromConfigService,\n withFactory,\n withRegistry,\n withSerializeAllResources<TModel3dResourceConfig, TModel3dSerializeResourcesDependencies>(resourcesRegistry, { metaInfoRegistry }),\n withSerializableEntities<TModel3d, TModel3dConfig, Pick<TModel3dConfigToParamsDependencies, 'animationsResourceAsyncRegistry' | 'model3dResourceAsyncRegistry'>>(registry, {\n animationsResourceAsyncRegistry,\n model3dResourceAsyncRegistry: resourcesRegistry\n }),\n {\n loadAsync: model3dLoader.loadAsync,\n loadFromConfigAsync: model3dLoader.loadFromConfigAsync,\n getResourceRegistry: (): TModels3dResourceAsyncRegistry => resourcesRegistry,\n getMetaInfoRegistry: (): TModels3dMetaInfoRegistry => metaInfoRegistry,\n getAnimationsService: (): TAnimationsService => animationsService,\n getMaterialService: (): TMaterialService => materialService,\n getModel3dRawToModel3dConnectionRegistry: (): TModel3dRawToModel3dConnectionRegistry => model3dRawToModel3dConnectionRegistry,\n clone\n }\n );\n}\n"],"names":["Models3dService","factory","registry","resourcesRegistry","metaInfoRegistry","materialService","animationsService","model3dRawToModel3dConnectionRegistry","loadingManagerWrapper","settings","factorySub$","entityCreated$","subscribe","model3d","add","model3dLoader","Models3dLoader","threeJsSettings","draco","materialRegistry","getRegistry","animationsResourceAsyncRegistry","getResourceRegistry","abstractService","AbstractService","withCreateService","withCreateServiceMixin","withCreateFromConfigService","withCreateFromConfigServiceMixin","create","configToParams","model3dResourceAsyncRegistry","withFactory","withFactoryService","withRegistry","withRegistryService","mergeAll","withSerializeAllResources","withSerializableEntities","loadAsync","loadFromConfigAsync","getMetaInfoRegistry","getAnimationsService","getMaterialService","getModel3dRawToModel3dConnectionRegistry","clone","overrides","getParams","forceClone"],"mappings":"grBAiCO,SAASA,gBACdC,QACAC,SACAC,kBACAC,kBACAC,gBAAEA,gBAAAC,kBAAiBA,kBAAAC,sCAAmBA,uCACtCC,sBACAC,UAEA,MAAMC,YAA4BT,QAAQU,eAAeC,UAAWC,SAA4BX,SAASY,IAAID,UACvGE,cAAiCC,eAAeb,kBAAmBC,iBAAkBI,sBAAuBC,SAASQ,iBAAiBC,OACtIC,iBAAsCd,gBAAgBe,cACtDC,gCAAoEf,kBAAkBgB,sBAEtFC,gBAAoCC,gBADK,CAACtB,SAAUD,QAASE,kBAAmBI,sCAAuCG,YAAaK,gBAGpIU,kBAA+CC,uBAAuBzB,QAAS,CAAEK,oCAAmBC,8EACpGoB,4BAAmEC,iCAAiCH,kBAAkBI,OAAQ5B,QAAQ6B,eAAgB,CAC1JT,gEACAF,kCACAY,6BAA8B5B,oBAE1B6B,YAA0CC,mBAAmBhC,SAC7DiC,aAA4CC,oBAAoBjC,UAatE,OAAOkC,SACLb,gBACAE,kBACAE,4BACAK,YACAE,aACAG,0BAA0FlC,kBAAmB,CAAEC,oCAC/GkC,yBAAiKpC,SAAU,CACzKmB,gEACAU,6BAA8B5B,oBAEhC,CACEoC,UAAWxB,cAAcwB,UACzBC,oBAAqBzB,cAAcyB,oBACnClB,oBAAqB,IAAsCnB,kBAC3DsC,oBAAqB,IAAiCrC,iBACtDsC,qBAAsB,IAA0BpC,kBAChDqC,mBAAoB,IAAwBtC,gBAC5CuC,yCAA0C,IAA8CrC,sCACxFsC,MA9BJ,SAAehC,QAAmBiC,WAChC,OAAO7C,QAAQ4B,OACb,IACKhB,QAAQkC,YACXC,YAAY,KACTF,WAEL,CAAExC,oCAAmBC,6EAEzB,GAwBF"}
@@ -1 +1 @@
1
- {"version":3,"file":"SerializationUtils.js","sources":["../../../src/Models3d/Utils/SerializationUtils.ts"],"sourcesContent":["import type { TAnimationStateParams } from '@Anarchy/Engine/Animations';\nimport { applyAnimationActionProperties } from '@Anarchy/Engine/Animations/Utils';\nimport type { TModel3d, TModel3dParams } from '@Anarchy/Engine/Models3d/Models';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport type { AnimationAction } from 'three';\n\nexport function applyAnimationsState(model3d: TModel3d, params: TModel3dParams): void {\n if (isDefined(params.animationsState)) {\n params.animationsState.forEach((state: TAnimationStateParams): void => {\n const action: AnimationAction = model3d.actions[state.name];\n applyAnimationActionProperties(action, state);\n });\n }\n}\n"],"names":["applyAnimationsState","model3d","params","isDefined","animationsState","forEach","state","applyAnimationActionProperties","actions","name"],"mappings":"sKAMO,SAASA,qBAAqBC,QAAmBC,QAClDC,UAAUD,OAAOE,kBACnBF,OAAOE,gBAAgBC,QAASC,QAE9BC,+BADgCN,QAAQO,QAAQF,MAAMG,MACfH,QAG7C"}
1
+ {"version":3,"file":"SerializationUtils.js","sources":["../../../src/Models3d/Utils/SerializationUtils.ts"],"sourcesContent":["import type { TAnimationStateParams } from '@hellpig/anarchy-engine/Animations';\nimport { applyAnimationActionProperties } from '@hellpig/anarchy-engine/Animations/Utils';\nimport type { TModel3d, TModel3dParams } from '@hellpig/anarchy-engine/Models3d/Models';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { AnimationAction } from 'three';\n\nexport function applyAnimationsState(model3d: TModel3d, params: TModel3dParams): void {\n if (isDefined(params.animationsState)) {\n params.animationsState.forEach((state: TAnimationStateParams): void => {\n const action: AnimationAction = model3d.actions[state.name];\n applyAnimationActionProperties(action, state);\n });\n }\n}\n"],"names":["applyAnimationsState","model3d","params","isDefined","animationsState","forEach","state","applyAnimationActionProperties","actions","name"],"mappings":"sKAMO,SAASA,qBAAqBC,QAAmBC,QAClDC,UAAUD,OAAOE,kBACnBF,OAAOE,gBAAgBC,QAASC,QAE9BC,+BADgCN,QAAQO,QAAQF,MAAMG,MACfH,QAG7C"}
@@ -1,6 +1,6 @@
1
1
  import { TAnimationsService } from '../../Animations/Models';
2
2
  import { PrimitiveModel3dType } from '../Constants';
3
3
  import { TModel3dEntities, TModel3dParams, TModel3dRawToModel3dConnectionRegistry } from '../Models';
4
- import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';
4
+ import { GLTF } from '../../../../../node_modules/@types/three/examples/jsm/loaders/GLTFLoader';
5
5
  export declare function createModels3dEntities(params: TModel3dParams, animationsService: TAnimationsService): TModel3dEntities;
6
6
  export declare function isModel3dAlreadyInUse(model3dSource: GLTF | PrimitiveModel3dType, model3dRawToModel3dConnectionRegistry: TModel3dRawToModel3dConnectionRegistry): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"UtilsModel3d.js","sources":["../../../src/Models3d/Utils/UtilsModel3d.ts"],"sourcesContent":["import type { TAnimationsService } from '@Anarchy/Engine/Animations/Models';\nimport type { PrimitiveModel3dType } from '@Anarchy/Engine/Models3d/Constants';\nimport type { TModel3dEntities, TModel3dParams, TModel3dRawToModel3dConnectionRegistry } from '@Anarchy/Engine/Models3d/Models';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport type { AnimationClip, Object3D } from 'three';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\nimport * as SkeletonUtils from 'three/examples/jsm/utils/SkeletonUtils';\n\nimport { createPrimitiveModel3d, isPrimitiveModel3dSource } from './UtilsPrimitiveModels3d';\n\nexport function createModels3dEntities(params: TModel3dParams, animationsService: TAnimationsService): TModel3dEntities {\n let model3dSource: Object3D;\n let animationsSource: ReadonlyArray<AnimationClip> = params.animationsSource ?? [];\n\n if (isPrimitiveModel3dSource(params.model3dSource)) {\n model3dSource = createPrimitiveModel3d(params);\n } else {\n animationsSource = [...params.model3dSource.animations, ...animationsSource];\n model3dSource = params.forceClone ? SkeletonUtils.clone(params.model3dSource.scene) : params.model3dSource.scene;\n }\n const { actions, mixer } = animationsService.createActions(model3dSource, animationsSource);\n\n return { ...params, model3dSource, animationsSource, actions, mixer };\n}\n\nexport function isModel3dAlreadyInUse(model3dSource: GLTF | PrimitiveModel3dType, model3dRawToModel3dConnectionRegistry: TModel3dRawToModel3dConnectionRegistry): boolean {\n if (isPrimitiveModel3dSource(model3dSource)) return false;\n return isDefined(model3dRawToModel3dConnectionRegistry.findByModel3d(model3dSource.scene));\n}\n"],"names":["createModels3dEntities","params","animationsService","model3dSource","animationsSource","isPrimitiveModel3dSource","createPrimitiveModel3d","animations","forceClone","SkeletonUtils","clone","scene","actions","mixer","createActions","isModel3dAlreadyInUse","model3dRawToModel3dConnectionRegistry","isDefined","findByModel3d"],"mappings":"2OAUO,SAASA,uBAAuBC,OAAwBC,mBAC7D,IAAIC,cACAC,iBAAiDH,OAAOG,kBAAoB,GAE5EC,yBAAyBJ,OAAOE,eAClCA,cAAgBG,uBAAuBL,SAEvCG,iBAAmB,IAAIH,OAAOE,cAAcI,cAAeH,kBAC3DD,cAAgBF,OAAOO,WAAaC,cAAcC,MAAMT,OAAOE,cAAcQ,OAASV,OAAOE,cAAcQ,OAE7G,MAAMC,QAAEA,QAAAC,MAASA,OAAUX,kBAAkBY,cAAcX,cAAeC,kBAE1E,MAAO,IAAKH,OAAQE,4BAAeC,kCAAkBQ,gBAASC,YAChE,CAEO,SAASE,sBAAsBZ,cAA4Ca,uCAChF,OAAIX,yBAAyBF,gBACtBc,UAAUD,sCAAsCE,cAAcf,cAAcQ,OACrF"}
1
+ {"version":3,"file":"UtilsModel3d.js","sources":["../../../src/Models3d/Utils/UtilsModel3d.ts"],"sourcesContent":["import type { TAnimationsService } from '@hellpig/anarchy-engine/Animations/Models';\nimport type { PrimitiveModel3dType } from '@hellpig/anarchy-engine/Models3d/Constants';\nimport type { TModel3dEntities, TModel3dParams, TModel3dRawToModel3dConnectionRegistry } from '@hellpig/anarchy-engine/Models3d/Models';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { AnimationClip, Object3D } from 'three';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\nimport * as SkeletonUtils from 'three/examples/jsm/utils/SkeletonUtils';\n\nimport { createPrimitiveModel3d, isPrimitiveModel3dSource } from './UtilsPrimitiveModels3d';\n\nexport function createModels3dEntities(params: TModel3dParams, animationsService: TAnimationsService): TModel3dEntities {\n let model3dSource: Object3D;\n let animationsSource: ReadonlyArray<AnimationClip> = params.animationsSource ?? [];\n\n if (isPrimitiveModel3dSource(params.model3dSource)) {\n model3dSource = createPrimitiveModel3d(params);\n } else {\n animationsSource = [...params.model3dSource.animations, ...animationsSource];\n model3dSource = params.forceClone ? SkeletonUtils.clone(params.model3dSource.scene) : params.model3dSource.scene;\n }\n const { actions, mixer } = animationsService.createActions(model3dSource, animationsSource);\n\n return { ...params, model3dSource, animationsSource, actions, mixer };\n}\n\nexport function isModel3dAlreadyInUse(model3dSource: GLTF | PrimitiveModel3dType, model3dRawToModel3dConnectionRegistry: TModel3dRawToModel3dConnectionRegistry): boolean {\n if (isPrimitiveModel3dSource(model3dSource)) return false;\n return isDefined(model3dRawToModel3dConnectionRegistry.findByModel3d(model3dSource.scene));\n}\n"],"names":["createModels3dEntities","params","animationsService","model3dSource","animationsSource","isPrimitiveModel3dSource","createPrimitiveModel3d","animations","forceClone","SkeletonUtils","clone","scene","actions","mixer","createActions","isModel3dAlreadyInUse","model3dRawToModel3dConnectionRegistry","isDefined","findByModel3d"],"mappings":"2OAUO,SAASA,uBAAuBC,OAAwBC,mBAC7D,IAAIC,cACAC,iBAAiDH,OAAOG,kBAAoB,GAE5EC,yBAAyBJ,OAAOE,eAClCA,cAAgBG,uBAAuBL,SAEvCG,iBAAmB,IAAIH,OAAOE,cAAcI,cAAeH,kBAC3DD,cAAgBF,OAAOO,WAAaC,cAAcC,MAAMT,OAAOE,cAAcQ,OAASV,OAAOE,cAAcQ,OAE7G,MAAMC,QAAEA,QAAAC,MAASA,OAAUX,kBAAkBY,cAAcX,cAAeC,kBAE1E,MAAO,IAAKH,OAAQE,4BAAeC,kCAAkBQ,gBAASC,YAChE,CAEO,SAASE,sBAAsBZ,cAA4Ca,uCAChF,OAAIX,yBAAyBF,gBACtBc,UAAUD,sCAAsCE,cAAcf,cAAcQ,OACrF"}
@@ -1 +1 @@
1
- {"version":3,"file":"UtilsModels3dService.js","sources":["../../../src/Models3d/Utils/UtilsModels3dService.ts"],"sourcesContent":["import type { TRawModel3d } from '@Anarchy/Engine/Models3d/Models';\nimport type { TEulerLike, TObject3DParams, TObject3DPropConfig } from '@Anarchy/Engine/ThreeLib';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport type { Group, Mesh, Object3D, Object3DEventMap, Vector3Like } from 'three';\nimport { Euler } from 'three';\n\nexport const applyScaleToModel3d = (model: TRawModel3d, scale: Vector3Like): void => {\n void model.scale.copy(scale);\n};\nexport const applyRotationToModel3d = (model: TRawModel3d, rotation: TEulerLike): void => void model.rotation.copy(new Euler(rotation.x, rotation.y, rotation.z, rotation.order ?? 'XYZ'));\nexport const applyPositionToModel3d = (model: TRawModel3d, position: Vector3Like): void => void model.position.copy(position);\n\nexport function applyObject3dParamsToModel3d(model3d: TRawModel3d, { visible, castShadow, receiveShadow, frustumCulled, renderOrder }: Partial<TObject3DParams | TObject3DPropConfig>): void {\n if (isDefined(visible)) applyWithTraverseToModel3d(model3d, 'visible', visible);\n if (isDefined(castShadow)) applyWithTraverseToModel3d(model3d, 'castShadow', castShadow);\n if (isDefined(receiveShadow)) applyWithTraverseToModel3d(model3d, 'receiveShadow', receiveShadow);\n if (isDefined(frustumCulled)) applyWithTraverseToModel3d(model3d, 'frustumCulled', frustumCulled);\n if (isDefined(renderOrder)) applyWithTraverseToModel3d(model3d, 'renderOrder', renderOrder);\n}\n\ntype TValueType<T, K extends keyof T> = K extends keyof T ? T[K] : never;\n\nfunction applyWithTraverseToModel3d<K extends keyof TRawModel3d>(model: TRawModel3d, name: K, value: TValueType<TRawModel3d, K>): void {\n model.traverse((object: Mesh | Group | Object3D<Object3DEventMap>) => {\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(object[name])) object[name] = value;\n });\n}\n"],"names":["applyScaleToModel3d","model","scale","copy","applyRotationToModel3d","rotation","Euler","x","y","z","order","applyPositionToModel3d","position","applyObject3dParamsToModel3d","model3d","visible","castShadow","receiveShadow","frustumCulled","renderOrder","isDefined","applyWithTraverseToModel3d","name","value","traverse","object"],"mappings":"sGAMO,MAAMA,oBAAsB,CAACC,MAAoBC,SACjDD,MAAMC,MAAMC,KAAKD,QAEXE,uBAAyB,CAACH,MAAoBI,YAAoCJ,MAAMI,SAASF,KAAK,IAAIG,MAAMD,SAASE,EAAGF,SAASG,EAAGH,SAASI,EAAGJ,SAASK,OAAS,SACtKC,uBAAyB,CAACV,MAAoBW,YAAqCX,MAAMW,SAAST,KAAKS,WAE7G,SAASC,6BAA6BC,SAAsBC,QAAEA,QAAAC,WAASA,yBAAYC,cAAAC,cAAeA,cAAAC,YAAeA,cAClHC,UAAUL,UAAUM,2BAA2BP,QAAS,UAAWC,SACnEK,UAAUJ,aAAaK,2BAA2BP,QAAS,aAAcE,YACzEI,UAAUH,gBAAgBI,2BAA2BP,QAAS,gBAAiBG,eAC/EG,UAAUF,gBAAgBG,2BAA2BP,QAAS,gBAAiBI,eAC/EE,UAAUD,cAAcE,2BAA2BP,QAAS,cAAeK,YACjF,CAIA,SAASE,2BAAwDpB,MAAoBqB,KAASC,OAC5FtB,MAAMuB,SAAUC,SAEVL,UAAUK,OAAOH,SAAQG,OAAOH,MAAQC,QAEhD"}
1
+ {"version":3,"file":"UtilsModels3dService.js","sources":["../../../src/Models3d/Utils/UtilsModels3dService.ts"],"sourcesContent":["import type { TRawModel3d } from '@hellpig/anarchy-engine/Models3d/Models';\nimport type { TEulerLike, TObject3DParams, TObject3DPropConfig } from '@hellpig/anarchy-engine/ThreeLib';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Group, Mesh, Object3D, Object3DEventMap, Vector3Like } from 'three';\nimport { Euler } from 'three';\n\nexport const applyScaleToModel3d = (model: TRawModel3d, scale: Vector3Like): void => {\n void model.scale.copy(scale);\n};\nexport const applyRotationToModel3d = (model: TRawModel3d, rotation: TEulerLike): void => void model.rotation.copy(new Euler(rotation.x, rotation.y, rotation.z, rotation.order ?? 'XYZ'));\nexport const applyPositionToModel3d = (model: TRawModel3d, position: Vector3Like): void => void model.position.copy(position);\n\nexport function applyObject3dParamsToModel3d(model3d: TRawModel3d, { visible, castShadow, receiveShadow, frustumCulled, renderOrder }: Partial<TObject3DParams | TObject3DPropConfig>): void {\n if (isDefined(visible)) applyWithTraverseToModel3d(model3d, 'visible', visible);\n if (isDefined(castShadow)) applyWithTraverseToModel3d(model3d, 'castShadow', castShadow);\n if (isDefined(receiveShadow)) applyWithTraverseToModel3d(model3d, 'receiveShadow', receiveShadow);\n if (isDefined(frustumCulled)) applyWithTraverseToModel3d(model3d, 'frustumCulled', frustumCulled);\n if (isDefined(renderOrder)) applyWithTraverseToModel3d(model3d, 'renderOrder', renderOrder);\n}\n\ntype TValueType<T, K extends keyof T> = K extends keyof T ? T[K] : never;\n\nfunction applyWithTraverseToModel3d<K extends keyof TRawModel3d>(model: TRawModel3d, name: K, value: TValueType<TRawModel3d, K>): void {\n model.traverse((object: Mesh | Group | Object3D<Object3DEventMap>) => {\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(object[name])) object[name] = value;\n });\n}\n"],"names":["applyScaleToModel3d","model","scale","copy","applyRotationToModel3d","rotation","Euler","x","y","z","order","applyPositionToModel3d","position","applyObject3dParamsToModel3d","model3d","visible","castShadow","receiveShadow","frustumCulled","renderOrder","isDefined","applyWithTraverseToModel3d","name","value","traverse","object"],"mappings":"sGAMO,MAAMA,oBAAsB,CAACC,MAAoBC,SACjDD,MAAMC,MAAMC,KAAKD,QAEXE,uBAAyB,CAACH,MAAoBI,YAAoCJ,MAAMI,SAASF,KAAK,IAAIG,MAAMD,SAASE,EAAGF,SAASG,EAAGH,SAASI,EAAGJ,SAASK,OAAS,SACtKC,uBAAyB,CAACV,MAAoBW,YAAqCX,MAAMW,SAAST,KAAKS,WAE7G,SAASC,6BAA6BC,SAAsBC,QAAEA,QAAAC,WAASA,yBAAYC,cAAAC,cAAeA,cAAAC,YAAeA,cAClHC,UAAUL,UAAUM,2BAA2BP,QAAS,UAAWC,SACnEK,UAAUJ,aAAaK,2BAA2BP,QAAS,aAAcE,YACzEI,UAAUH,gBAAgBI,2BAA2BP,QAAS,gBAAiBG,eAC/EG,UAAUF,gBAAgBG,2BAA2BP,QAAS,gBAAiBI,eAC/EE,UAAUD,cAAcE,2BAA2BP,QAAS,cAAeK,YACjF,CAIA,SAASE,2BAAwDpB,MAAoBqB,KAASC,OAC5FtB,MAAMuB,SAAUC,SAEVL,UAAUK,OAAOH,SAAQG,OAAOH,MAAQC,QAEhD"}
@@ -1,7 +1,7 @@
1
1
  import { PrimitiveModel3dType } from '../Constants';
2
2
  import { TModel3dConfig, TModel3dParams, TModel3dResourceConfig, TRawModel3d } from '../Models';
3
3
  import { Mesh } from 'three';
4
- import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';
4
+ import { GLTF } from '../../../../../node_modules/@types/three/examples/jsm/loaders/GLTFLoader';
5
5
  export declare function createPrimitiveModel3d(params: TModel3dParams): Mesh | never;
6
6
  export declare const isPrimitiveModel3dResourceConfig: (params: TModel3dResourceConfig) => boolean;
7
7
  export declare const isPrimitiveModel3dData: (params: TModel3dConfig | TModel3dParams) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"UtilsPrimitiveModels3d.js","sources":["../../../src/Models3d/Utils/UtilsPrimitiveModels3d.ts"],"sourcesContent":["import type { TAnyMaterialWrapper, TMaterials } from '@Anarchy/Engine/Material';\nimport type { TMeters } from '@Anarchy/Engine/Math';\nimport { meters } from '@Anarchy/Engine/Measurements/Utils';\nimport { PrimitiveModel3dType } from '@Anarchy/Engine/Models3d/Constants';\nimport type { TModel3dConfig, TModel3dParams, TModel3dResourceConfig, TRawModel3d } from '@Anarchy/Engine/Models3d/Models';\nimport type { TBoxGeometryParams, TPlaneGeometryParams, TSphereGeometryParams } from '@Anarchy/Engine/ThreeLib';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport { BoxGeometry, Mesh, PlaneGeometry, SphereGeometry } from 'three';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\n\nexport function createPrimitiveModel3d(params: TModel3dParams): Mesh | never {\n if (!isPrimitiveModel3dSource(params.model3dSource)) throw new Error(`Model3d source is not a primitive model: \"${String(params.model3dSource)}\"`);\n const model3dSource: PrimitiveModel3dType = params.model3dSource;\n const material: TAnyMaterialWrapper | undefined = params.material;\n if (isNotDefined(material)) throw new Error(`Primitive model \"${model3dSource}\" has no material, but primitive models must have one`);\n\n if (isNotDefined(params.options)) throw new Error(`Primitive model \"${model3dSource}\" has no options`);\n\n if (model3dSource === PrimitiveModel3dType.Plane) return createPlane(params.options, material.entity);\n else if (model3dSource === PrimitiveModel3dType.Sphere) return createSphere(params.options, material.entity);\n else if (model3dSource === PrimitiveModel3dType.Cube) return createCube(params.options, material.entity);\n throw new Error(`Unknown primitive model type: \"${model3dSource}\"`);\n}\n\nfunction createPlane({ width, height, widthSegments, heightSegments }: TPlaneGeometryParams, material: TMaterials): Mesh {\n const w: TMeters | undefined = isDefined(width) ? meters(width) : undefined;\n const h: TMeters | undefined = isDefined(height) ? meters(height) : undefined;\n return new Mesh(new PlaneGeometry(w, h, widthSegments, heightSegments), material);\n}\n\nfunction createSphere({ radius, widthSegments, heightSegments }: TSphereGeometryParams, material: TMaterials): Mesh {\n const r: TMeters | undefined = isDefined(radius) ? meters(radius) : undefined;\n return new Mesh(new SphereGeometry(r, widthSegments, heightSegments), material);\n}\n\nfunction createCube({ width, height, depth, widthSegments, heightSegments, depthSegments }: TBoxGeometryParams, material: TMaterials): Mesh {\n const w: TMeters | undefined = isDefined(width) ? meters(width) : undefined;\n const h: TMeters | undefined = isDefined(height) ? meters(height) : undefined;\n const d: TMeters | undefined = isDefined(depth) ? meters(depth) : undefined;\n return new Mesh(new BoxGeometry(w, h, d, widthSegments, heightSegments, depthSegments), material);\n}\n\nexport const isPrimitiveModel3dResourceConfig = (params: TModel3dResourceConfig): boolean => isPrimitiveModel3dSource(params.url);\nexport const isPrimitiveModel3dData = (params: TModel3dConfig | TModel3dParams): boolean => isPrimitiveModel3dSource(params.model3dSource);\nexport const isPrimitiveModel3dSource = (model3dSource: TRawModel3d | GLTF | PrimitiveModel3dType | string): model3dSource is PrimitiveModel3dType =>\n [...Object.values(PrimitiveModel3dType)].includes(model3dSource as PrimitiveModel3dType);\n"],"names":["createPrimitiveModel3d","params","isPrimitiveModel3dSource","model3dSource","Error","String","material","isNotDefined","options","PrimitiveModel3dType","Plane","width","height","widthSegments","heightSegments","w","isDefined","meters","h","Mesh","PlaneGeometry","createPlane","entity","Sphere","radius","r","SphereGeometry","createSphere","Cube","depth","depthSegments","d","BoxGeometry","createCube","isPrimitiveModel3dResourceConfig","url","isPrimitiveModel3dData","Object","values","includes"],"mappings":"oSAUO,SAASA,uBAAuBC,QACrC,IAAKC,yBAAyBD,OAAOE,eAAgB,MAAM,IAAIC,MAAM,6CAA6CC,OAAOJ,OAAOE,mBAChI,MAAMA,cAAsCF,OAAOE,cAC7CG,SAA4CL,OAAOK,SACzD,GAAIC,aAAaD,UAAW,MAAM,IAAIF,MAAM,oBAAoBD,sEAEhE,GAAII,aAAaN,OAAOO,eAAgB,IAAIJ,MAAM,oBAAoBD,iCAEtE,GAAIA,gBAAkBM,qBAAqBC,MAAO,OAMpD,UAAqBC,MAAEA,MAAAC,OAAOA,qBAAQC,cAAAC,eAAeA,gBAAwCR,UAC3F,MAAMS,EAAyBC,UAAUL,OAASM,OAAON,YAAS,EAC5DO,EAAyBF,UAAUJ,QAAUK,OAAOL,aAAU,EACpE,OAAO,IAAIO,KAAK,IAAIC,cAAcL,EAAGG,EAAGL,cAAeC,gBAAiBR,SAC1E,CAV2De,CAAYpB,OAAOO,QAASF,SAASgB,QAAM,GAC3FnB,gBAAkBM,qBAAqBc,OAAQ,OAW1D,UAAsBC,OAAEA,OAAAX,cAAQA,cAAAC,eAAeA,gBAAyCR,UACtF,MAAMmB,EAAyBT,UAAUQ,QAAUP,OAAOO,aAAU,EACpE,OAAO,IAAIL,KAAK,IAAIO,eAAeD,EAAGZ,cAAeC,gBAAiBR,SACxE,CAdiEqB,CAAa1B,OAAOO,QAASF,SAASgB,QAAM,GAClGnB,gBAAkBM,qBAAqBmB,KAAM,OAexD,UAAoBjB,MAAEA,MAAAC,OAAOA,OAAAiB,MAAQA,oBAAOhB,cAAAC,eAAeA,eAAAgB,cAAgBA,eAAqCxB,UAC9G,MAAMS,EAAyBC,UAAUL,OAASM,OAAON,YAAS,EAC5DO,EAAyBF,UAAUJ,QAAUK,OAAOL,aAAU,EAC9DmB,EAAyBf,UAAUa,OAASZ,OAAOY,YAAS,EAClE,OAAO,IAAIV,KAAK,IAAIa,YAAYjB,EAAGG,EAAGa,EAAGlB,cAAeC,eAAgBgB,eAAgBxB,SAC1F,CApB+D2B,CAAWhC,OAAOO,QAASF,SAASgB,QACjG,MAAM,IAAIlB,MAAM,kCAAkCD,iBACpD,CAoBO,MAAM+B,iCAAoCjC,QAA4CC,yBAAyBD,OAAOkC,KAChHC,uBAA0BnC,QAAqDC,yBAAyBD,OAAOE,eAC/GD,yBAA4BC,eACvC,IAAIkC,OAAOC,OAAO7B,uBAAuB8B,SAASpC"}
1
+ {"version":3,"file":"UtilsPrimitiveModels3d.js","sources":["../../../src/Models3d/Utils/UtilsPrimitiveModels3d.ts"],"sourcesContent":["import type { TAnyMaterialWrapper, TMaterials } from '@hellpig/anarchy-engine/Material';\nimport type { TMeters } from '@hellpig/anarchy-engine/Math';\nimport { meters } from '@hellpig/anarchy-engine/Measurements/Utils';\nimport { PrimitiveModel3dType } from '@hellpig/anarchy-engine/Models3d/Constants';\nimport type { TModel3dConfig, TModel3dParams, TModel3dResourceConfig, TRawModel3d } from '@hellpig/anarchy-engine/Models3d/Models';\nimport type { TBoxGeometryParams, TPlaneGeometryParams, TSphereGeometryParams } from '@hellpig/anarchy-engine/ThreeLib';\nimport { isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport { BoxGeometry, Mesh, PlaneGeometry, SphereGeometry } from 'three';\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\n\nexport function createPrimitiveModel3d(params: TModel3dParams): Mesh | never {\n if (!isPrimitiveModel3dSource(params.model3dSource)) throw new Error(`Model3d source is not a primitive model: \"${String(params.model3dSource)}\"`);\n const model3dSource: PrimitiveModel3dType = params.model3dSource;\n const material: TAnyMaterialWrapper | undefined = params.material;\n if (isNotDefined(material)) throw new Error(`Primitive model \"${model3dSource}\" has no material, but primitive models must have one`);\n\n if (isNotDefined(params.options)) throw new Error(`Primitive model \"${model3dSource}\" has no options`);\n\n if (model3dSource === PrimitiveModel3dType.Plane) return createPlane(params.options, material.entity);\n else if (model3dSource === PrimitiveModel3dType.Sphere) return createSphere(params.options, material.entity);\n else if (model3dSource === PrimitiveModel3dType.Cube) return createCube(params.options, material.entity);\n throw new Error(`Unknown primitive model type: \"${model3dSource}\"`);\n}\n\nfunction createPlane({ width, height, widthSegments, heightSegments }: TPlaneGeometryParams, material: TMaterials): Mesh {\n const w: TMeters | undefined = isDefined(width) ? meters(width) : undefined;\n const h: TMeters | undefined = isDefined(height) ? meters(height) : undefined;\n return new Mesh(new PlaneGeometry(w, h, widthSegments, heightSegments), material);\n}\n\nfunction createSphere({ radius, widthSegments, heightSegments }: TSphereGeometryParams, material: TMaterials): Mesh {\n const r: TMeters | undefined = isDefined(radius) ? meters(radius) : undefined;\n return new Mesh(new SphereGeometry(r, widthSegments, heightSegments), material);\n}\n\nfunction createCube({ width, height, depth, widthSegments, heightSegments, depthSegments }: TBoxGeometryParams, material: TMaterials): Mesh {\n const w: TMeters | undefined = isDefined(width) ? meters(width) : undefined;\n const h: TMeters | undefined = isDefined(height) ? meters(height) : undefined;\n const d: TMeters | undefined = isDefined(depth) ? meters(depth) : undefined;\n return new Mesh(new BoxGeometry(w, h, d, widthSegments, heightSegments, depthSegments), material);\n}\n\nexport const isPrimitiveModel3dResourceConfig = (params: TModel3dResourceConfig): boolean => isPrimitiveModel3dSource(params.url);\nexport const isPrimitiveModel3dData = (params: TModel3dConfig | TModel3dParams): boolean => isPrimitiveModel3dSource(params.model3dSource);\nexport const isPrimitiveModel3dSource = (model3dSource: TRawModel3d | GLTF | PrimitiveModel3dType | string): model3dSource is PrimitiveModel3dType =>\n [...Object.values(PrimitiveModel3dType)].includes(model3dSource as PrimitiveModel3dType);\n"],"names":["createPrimitiveModel3d","params","isPrimitiveModel3dSource","model3dSource","Error","String","material","isNotDefined","options","PrimitiveModel3dType","Plane","width","height","widthSegments","heightSegments","w","isDefined","meters","h","Mesh","PlaneGeometry","createPlane","entity","Sphere","radius","r","SphereGeometry","createSphere","Cube","depth","depthSegments","d","BoxGeometry","createCube","isPrimitiveModel3dResourceConfig","url","isPrimitiveModel3dData","Object","values","includes"],"mappings":"oSAUO,SAASA,uBAAuBC,QACrC,IAAKC,yBAAyBD,OAAOE,eAAgB,MAAM,IAAIC,MAAM,6CAA6CC,OAAOJ,OAAOE,mBAChI,MAAMA,cAAsCF,OAAOE,cAC7CG,SAA4CL,OAAOK,SACzD,GAAIC,aAAaD,UAAW,MAAM,IAAIF,MAAM,oBAAoBD,sEAEhE,GAAII,aAAaN,OAAOO,eAAgB,IAAIJ,MAAM,oBAAoBD,iCAEtE,GAAIA,gBAAkBM,qBAAqBC,MAAO,OAMpD,UAAqBC,MAAEA,MAAAC,OAAOA,qBAAQC,cAAAC,eAAeA,gBAAwCR,UAC3F,MAAMS,EAAyBC,UAAUL,OAASM,OAAON,YAAS,EAC5DO,EAAyBF,UAAUJ,QAAUK,OAAOL,aAAU,EACpE,OAAO,IAAIO,KAAK,IAAIC,cAAcL,EAAGG,EAAGL,cAAeC,gBAAiBR,SAC1E,CAV2De,CAAYpB,OAAOO,QAASF,SAASgB,QAAM,GAC3FnB,gBAAkBM,qBAAqBc,OAAQ,OAW1D,UAAsBC,OAAEA,OAAAX,cAAQA,cAAAC,eAAeA,gBAAyCR,UACtF,MAAMmB,EAAyBT,UAAUQ,QAAUP,OAAOO,aAAU,EACpE,OAAO,IAAIL,KAAK,IAAIO,eAAeD,EAAGZ,cAAeC,gBAAiBR,SACxE,CAdiEqB,CAAa1B,OAAOO,QAASF,SAASgB,QAAM,GAClGnB,gBAAkBM,qBAAqBmB,KAAM,OAexD,UAAoBjB,MAAEA,MAAAC,OAAOA,OAAAiB,MAAQA,oBAAOhB,cAAAC,eAAeA,eAAAgB,cAAgBA,eAAqCxB,UAC9G,MAAMS,EAAyBC,UAAUL,OAASM,OAAON,YAAS,EAC5DO,EAAyBF,UAAUJ,QAAUK,OAAOL,aAAU,EAC9DmB,EAAyBf,UAAUa,OAASZ,OAAOY,YAAS,EAClE,OAAO,IAAIV,KAAK,IAAIa,YAAYjB,EAAGG,EAAGa,EAAGlB,cAAeC,eAAgBgB,eAAgBxB,SAC1F,CApB+D2B,CAAWhC,OAAOO,QAASF,SAASgB,QACjG,MAAM,IAAIlB,MAAM,kCAAkCD,iBACpD,CAoBO,MAAM+B,iCAAoCjC,QAA4CC,yBAAyBD,OAAOkC,KAChHC,uBAA0BnC,QAAqDC,yBAAyBD,OAAOE,eAC/GD,yBAA4BC,eACvC,IAAIkC,OAAOC,OAAO7B,uBAAuB8B,SAASpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseClickWatcherFactory.js","sources":["../../../src/Mouse/Factories/MouseClickWatcherFactory.ts"],"sourcesContent":["import { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport type { TMouseClickWatcherFactory } from '@Anarchy/Engine/Mouse/Models';\nimport { MouseClickWatcher } from '@Anarchy/Engine/Mouse/Watchers';\n\nexport const MouseClickWatcherFactory = (): TMouseClickWatcherFactory => ReactiveFactory(FactoryType.MouseClickWatcher, MouseClickWatcher);\n"],"names":["MouseClickWatcherFactory","ReactiveFactory","FactoryType","MouseClickWatcher"],"mappings":"0MAIO,MAAMA,yBAA2B,IAAiCC,gBAAgBC,YAAYC,kBAAmBA"}
1
+ {"version":3,"file":"MouseClickWatcherFactory.js","sources":["../../../src/Mouse/Factories/MouseClickWatcherFactory.ts"],"sourcesContent":["import { FactoryType, ReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport type { TMouseClickWatcherFactory } from '@hellpig/anarchy-engine/Mouse/Models';\nimport { MouseClickWatcher } from '@hellpig/anarchy-engine/Mouse/Watchers';\n\nexport const MouseClickWatcherFactory = (): TMouseClickWatcherFactory => ReactiveFactory(FactoryType.MouseClickWatcher, MouseClickWatcher);\n"],"names":["MouseClickWatcherFactory","ReactiveFactory","FactoryType","MouseClickWatcher"],"mappings":"0MAIO,MAAMA,yBAA2B,IAAiCC,gBAAgBC,YAAYC,kBAAmBA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MousePositionWatcherFactory.js","sources":["../../../src/Mouse/Factories/MousePositionWatcherFactory.ts"],"sourcesContent":["import { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport type { TMousePositionWatcher, TMousePositionWatcherDependencies, TMousePositionWatcherFactory, TMousePositionWatcherParams } from '@Anarchy/Engine/Mouse/Models';\nimport { MousePositionWatcher } from '@Anarchy/Engine/Mouse/Watchers';\n\nconst createMousePositionWatcher = (params: TMousePositionWatcherParams, { mouseLoop }: TMousePositionWatcherDependencies): TMousePositionWatcher => MousePositionWatcher(params, mouseLoop);\n\nexport function MousePositionWatcherFactory(): TMousePositionWatcherFactory {\n return ReactiveFactory(FactoryType.MousePositionWatcher, createMousePositionWatcher);\n}\n"],"names":["createMousePositionWatcher","params","mouseLoop","MousePositionWatcher","MousePositionWatcherFactory","ReactiveFactory","FactoryType"],"mappings":"gNAIA,MAAMA,2BAA6B,CAACC,QAAuCC,uBAA0EC,qBAAqBF,OAAQC,WAE3K,SAASE,8BACd,OAAOC,gBAAgBC,YAAYH,qBAAsBH,2BAC3D"}
1
+ {"version":3,"file":"MousePositionWatcherFactory.js","sources":["../../../src/Mouse/Factories/MousePositionWatcherFactory.ts"],"sourcesContent":["import { FactoryType, ReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport type { TMousePositionWatcher, TMousePositionWatcherDependencies, TMousePositionWatcherFactory, TMousePositionWatcherParams } from '@hellpig/anarchy-engine/Mouse/Models';\nimport { MousePositionWatcher } from '@hellpig/anarchy-engine/Mouse/Watchers';\n\nconst createMousePositionWatcher = (params: TMousePositionWatcherParams, { mouseLoop }: TMousePositionWatcherDependencies): TMousePositionWatcher => MousePositionWatcher(params, mouseLoop);\n\nexport function MousePositionWatcherFactory(): TMousePositionWatcherFactory {\n return ReactiveFactory(FactoryType.MousePositionWatcher, createMousePositionWatcher);\n}\n"],"names":["createMousePositionWatcher","params","mouseLoop","MousePositionWatcher","MousePositionWatcherFactory","ReactiveFactory","FactoryType"],"mappings":"gNAIA,MAAMA,2BAA6B,CAACC,QAAuCC,uBAA0EC,qBAAqBF,OAAQC,WAE3K,SAASE,8BACd,OAAOC,gBAAgBC,YAAYH,qBAAsBH,2BAC3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseClickWatcherRegistry.js","sources":["../../../src/Mouse/Registries/MouseClickWatcherRegistry.ts"],"sourcesContent":["import { RegistryType } from '@Anarchy/Engine/Abstract/Constants';\nimport { AbstractWatcherRegistry } from '@Anarchy/Engine/Abstract/Registries';\nimport type { TMouseClickWatcher, TMouseClickWatcherRegistry } from '@Anarchy/Engine/Mouse/Models';\n\nexport function MouseClickWatcherRegistry(): TMouseClickWatcherRegistry {\n return AbstractWatcherRegistry<TMouseClickWatcher>(RegistryType.MouseClickWatcher);\n}\n"],"names":["MouseClickWatcherRegistry","AbstractWatcherRegistry","RegistryType","MouseClickWatcher"],"mappings":"6JAIO,SAASA,4BACd,OAAOC,wBAA4CC,aAAaC,kBAClE"}
1
+ {"version":3,"file":"MouseClickWatcherRegistry.js","sources":["../../../src/Mouse/Registries/MouseClickWatcherRegistry.ts"],"sourcesContent":["import { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { AbstractWatcherRegistry } from '@hellpig/anarchy-engine/Abstract/Registries';\nimport type { TMouseClickWatcher, TMouseClickWatcherRegistry } from '@hellpig/anarchy-engine/Mouse/Models';\n\nexport function MouseClickWatcherRegistry(): TMouseClickWatcherRegistry {\n return AbstractWatcherRegistry<TMouseClickWatcher>(RegistryType.MouseClickWatcher);\n}\n"],"names":["MouseClickWatcherRegistry","AbstractWatcherRegistry","RegistryType","MouseClickWatcher"],"mappings":"6JAIO,SAASA,4BACd,OAAOC,wBAA4CC,aAAaC,kBAClE"}
@@ -1 +1 @@
1
- {"version":3,"file":"MousePositionWatcherRegistry.js","sources":["../../../src/Mouse/Registries/MousePositionWatcherRegistry.ts"],"sourcesContent":["import { RegistryType } from '@Anarchy/Engine/Abstract/Constants';\nimport { AbstractWatcherRegistry } from '@Anarchy/Engine/Abstract/Registries';\nimport type { TMousePositionWatcher, TMousePositionWatcherRegistry } from '@Anarchy/Engine/Mouse/Models';\n\nexport function MousePositionWatcherRegistry(): TMousePositionWatcherRegistry {\n return AbstractWatcherRegistry<TMousePositionWatcher>(RegistryType.MousePositionWatcher);\n}\n"],"names":["MousePositionWatcherRegistry","AbstractWatcherRegistry","RegistryType","MousePositionWatcher"],"mappings":"6JAIO,SAASA,+BACd,OAAOC,wBAA+CC,aAAaC,qBACrE"}
1
+ {"version":3,"file":"MousePositionWatcherRegistry.js","sources":["../../../src/Mouse/Registries/MousePositionWatcherRegistry.ts"],"sourcesContent":["import { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { AbstractWatcherRegistry } from '@hellpig/anarchy-engine/Abstract/Registries';\nimport type { TMousePositionWatcher, TMousePositionWatcherRegistry } from '@hellpig/anarchy-engine/Mouse/Models';\n\nexport function MousePositionWatcherRegistry(): TMousePositionWatcherRegistry {\n return AbstractWatcherRegistry<TMousePositionWatcher>(RegistryType.MousePositionWatcher);\n}\n"],"names":["MousePositionWatcherRegistry","AbstractWatcherRegistry","RegistryType","MousePositionWatcher"],"mappings":"6JAIO,SAASA,+BACd,OAAOC,wBAA+CC,aAAaC,qBACrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseService.js","sources":["../../../src/Mouse/Services/MouseService.ts"],"sourcesContent":["import type { TAbstractService } from '@Anarchy/Engine/Abstract';\nimport { AbstractService, WatcherTag } from '@Anarchy/Engine/Abstract';\nimport type { TContainerDecorator } from '@Anarchy/Engine/Global';\nimport { MouseButtonValue, MouseEventType, MouseWheelValue } from '@Anarchy/Engine/Mouse/Constants';\nimport type {\n TMouseClickWatcher,\n TMouseClickWatcherFactory,\n TMouseClickWatcherRegistry,\n TMousePositionWatcher,\n TMousePositionWatcherFactory,\n TMousePositionWatcherRegistry,\n TMouseService,\n TMouseStateUpdate,\n TMouseWatcherEvent\n} from '@Anarchy/Engine/Mouse/Models';\nimport type { TSpaceLoops } from '@Anarchy/Engine/Space';\nimport type { Observable, Subscription } from 'rxjs';\nimport { EMPTY, filter, map, merge, mergeMap, Subject } from 'rxjs';\n\nexport function MouseService(\n container: TContainerDecorator,\n mouseClickWatcherFactory: TMouseClickWatcherFactory,\n mouseClickWatcherRegistry: TMouseClickWatcherRegistry,\n mousePositionWatcherFactory: TMousePositionWatcherFactory,\n mousePositionWatcherRegistry: TMousePositionWatcherRegistry,\n { mouseLoop }: TSpaceLoops\n): TMouseService {\n mouseClickWatcherFactory.entityCreated$.subscribe((watcher: TMouseClickWatcher): void => mouseClickWatcherRegistry.add(watcher));\n const mouseClickWatcher: TMouseClickWatcher = mouseClickWatcherFactory.create({ container, tags: [WatcherTag.Initial, WatcherTag.Global] }, undefined);\n mouseClickWatcher.enabled$.next(true);\n\n mousePositionWatcherFactory.entityCreated$.subscribe((watcher: TMousePositionWatcher): void => mousePositionWatcherRegistry.add(watcher));\n const mousePositionWatcher: TMousePositionWatcher = mousePositionWatcherFactory.create({ container, tags: [WatcherTag.Initial, WatcherTag.Global] }, { mouseLoop });\n mousePositionWatcher.enabled$.next(true);\n\n const abstractService: TAbstractService = AbstractService([mouseClickWatcherFactory, mousePositionWatcherFactory, mouseClickWatcherRegistry, mousePositionWatcherRegistry]);\n\n const clickPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickLeftPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickRightPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickMiddlePress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickBackPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickForwardPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickExtraPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n\n const clickRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickLeftRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickRightRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickMiddleRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickBackRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickForwardRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickExtraRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n\n const isLeftPressed$: Subject<boolean> = new Subject<boolean>();\n const isRightPressed$: Subject<boolean> = new Subject<boolean>();\n const isMiddlePressed$: Subject<boolean> = new Subject<boolean>();\n const isBackPressed$: Subject<boolean> = new Subject<boolean>();\n const isForwardPressed$: Subject<boolean> = new Subject<boolean>();\n const isExtraPressed$: Subject<boolean> = new Subject<boolean>();\n\n const doubleClick$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const doubleLeftClick$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const doubleRightClick$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n\n const wheel$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const wheelUp$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const wheelDown$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n\n const buttonPressMap = new Map<MouseButtonValue | MouseWheelValue, Subject<TMouseWatcherEvent>>([\n [MouseButtonValue.Left, clickLeftPress$],\n [MouseButtonValue.Right, clickRightPress$],\n [MouseButtonValue.Middle, clickMiddlePress$],\n [MouseButtonValue.Back, clickBackPress$],\n [MouseButtonValue.Forward, clickForwardPress$],\n [MouseButtonValue.Extra, clickExtraPress$]\n ]);\n\n clickPress$\n .pipe(\n mergeMap((event: TMouseWatcherEvent): Subject<TMouseWatcherEvent> | Observable<never> => {\n const subject = buttonPressMap.get(event.value);\n if (subject) subject.next(event);\n return subject ?? EMPTY;\n })\n )\n .subscribe();\n\n const buttonReleaseMap = new Map<MouseButtonValue | MouseWheelValue, Subject<TMouseWatcherEvent>>([\n [MouseButtonValue.Left, clickLeftRelease$],\n [MouseButtonValue.Right, clickRightRelease$],\n [MouseButtonValue.Middle, clickMiddleRelease$],\n [MouseButtonValue.Back, clickBackRelease$],\n [MouseButtonValue.Forward, clickForwardRelease$],\n [MouseButtonValue.Extra, clickExtraRelease$]\n ]);\n\n clickRelease$\n .pipe(\n mergeMap((event: TMouseWatcherEvent): Subject<TMouseWatcherEvent> | Observable<never> => {\n const subject = buttonReleaseMap.get(event.value);\n if (subject) subject.next(event);\n return subject ?? EMPTY;\n })\n )\n .subscribe();\n\n const mergeSub$: Subscription = merge(\n clickLeftPress$.pipe(map((): TMouseStateUpdate => ({ state$: isLeftPressed$, value: true }))),\n clickRightPress$.pipe(map((): TMouseStateUpdate => ({ state$: isRightPressed$, value: true }))),\n clickMiddlePress$.pipe(map((): TMouseStateUpdate => ({ state$: isMiddlePressed$, value: true }))),\n clickBackPress$.pipe(map((): TMouseStateUpdate => ({ state$: isBackPressed$, value: true }))),\n clickForwardPress$.pipe(map((): TMouseStateUpdate => ({ state$: isForwardPressed$, value: true }))),\n clickExtraPress$.pipe(map((): TMouseStateUpdate => ({ state$: isExtraPressed$, value: true }))),\n clickLeftRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isLeftPressed$, value: false }))),\n clickRightRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isRightPressed$, value: false }))),\n clickMiddleRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isMiddlePressed$, value: false }))),\n clickBackRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isBackPressed$, value: false }))),\n clickForwardRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isForwardPressed$, value: false }))),\n clickExtraRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isExtraPressed$, value: false })))\n ).subscribe(({ state$, value }: TMouseStateUpdate): void => state$.next(value));\n\n doubleClick$.pipe(filter((event: TMouseWatcherEvent): boolean => event.value === MouseButtonValue.Left)).subscribe((event: TMouseWatcherEvent): void => doubleLeftClick$.next(event));\n doubleClick$.pipe(filter((event: TMouseWatcherEvent): boolean => event.value === MouseButtonValue.Right)).subscribe((event: TMouseWatcherEvent): void => doubleRightClick$.next(event));\n\n wheel$.pipe(filter((event: TMouseWatcherEvent): boolean => event.value === MouseWheelValue.WheelUp)).subscribe((event: TMouseWatcherEvent): void => wheelUp$.next(event));\n wheel$.pipe(filter((event: TMouseWatcherEvent): boolean => event.value === MouseWheelValue.WheelDown)).subscribe((event: TMouseWatcherEvent): void => wheelDown$.next(event));\n\n mouseClickWatcher.value$.subscribe((event: TMouseWatcherEvent): void => {\n if (event.type === MouseEventType.MouseDown) clickPress$.next(event);\n if (event.type === MouseEventType.MouseUp) clickRelease$.next(event);\n if (event.type === MouseEventType.DoubleClick) doubleClick$.next(event);\n if (event.type === MouseEventType.Wheel) wheel$.next(event);\n });\n\n const destroySub$: Subscription = abstractService.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n clickPress$.complete();\n clickLeftPress$.complete();\n clickRightPress$.complete();\n clickMiddlePress$.complete();\n clickBackPress$.complete();\n clickForwardPress$.complete();\n clickExtraPress$.complete();\n\n clickRelease$.complete();\n clickLeftRelease$.complete();\n clickRightRelease$.complete();\n clickMiddleRelease$.complete();\n clickBackRelease$.complete();\n clickForwardRelease$.complete();\n clickExtraRelease$.complete();\n\n isLeftPressed$.complete();\n isRightPressed$.complete();\n isMiddlePressed$.complete();\n isBackPressed$.complete();\n isForwardPressed$.complete();\n isExtraPressed$.complete();\n\n doubleClick$.complete();\n doubleLeftClick$.complete();\n doubleRightClick$.complete();\n\n wheel$.complete();\n wheelUp$.complete();\n wheelDown$.complete();\n\n mergeSub$.unsubscribe();\n\n mouseClickWatcherRegistry.destroy$.next();\n mousePositionWatcherRegistry.destroy$.next();\n });\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractService, {\n clickPress$: clickPress$.asObservable(),\n clickLeftPress$: clickLeftPress$.asObservable(),\n clickRightPress$: clickRightPress$.asObservable(),\n clickMiddlePress$: clickMiddlePress$.asObservable(),\n clickBackPress$: clickBackPress$.asObservable(),\n clickForwardPress$: clickForwardPress$.asObservable(),\n clickExtraPress$: clickExtraPress$.asObservable(),\n\n clickRelease$: clickRelease$.asObservable(),\n clickLeftRelease$: clickLeftRelease$.asObservable(),\n clickRightRelease$: clickRightRelease$.asObservable(),\n clickMiddleRelease$: clickMiddleRelease$.asObservable(),\n clickBackRelease$: clickBackRelease$.asObservable(),\n clickForwardRelease$: clickForwardRelease$.asObservable(),\n clickExtraRelease$: clickExtraRelease$.asObservable(),\n\n isLeftPressed$: isLeftPressed$.asObservable(),\n isRightPressed$: isRightPressed$.asObservable(),\n isMiddlePressed$: isMiddlePressed$.asObservable(),\n isBackPressed$: isBackPressed$.asObservable(),\n isForwardPressed$: isForwardPressed$.asObservable(),\n isExtraPressed$: isExtraPressed$.asObservable(),\n\n doubleClick$: doubleClick$.asObservable(),\n doubleLeftClick$: doubleLeftClick$.asObservable(),\n doubleRightClick$: doubleRightClick$.asObservable(),\n\n wheel$: wheel$.asObservable(),\n wheelUp$: wheelUp$.asObservable(),\n wheelDown$: wheelDown$.asObservable(),\n\n position$: mousePositionWatcher.value$,\n normalizedPosition$: mousePositionWatcher.valueNormalized$,\n\n getMouseClickWatcherRegistry: (): TMouseClickWatcherRegistry => mouseClickWatcherRegistry,\n getMouseClickWatcherFactory: (): TMouseClickWatcherFactory => mouseClickWatcherFactory,\n getMousePositionWatcherRegistry: (): TMousePositionWatcherRegistry => mousePositionWatcherRegistry,\n getMousePositionWatcherFactory: (): TMousePositionWatcherFactory => mousePositionWatcherFactory\n });\n}\n"],"names":["MouseService","container","mouseClickWatcherFactory","mouseClickWatcherRegistry","mousePositionWatcherFactory","mousePositionWatcherRegistry","mouseLoop","entityCreated$","subscribe","watcher","add","mouseClickWatcher","create","tags","WatcherTag","Initial","Global","enabled$","next","mousePositionWatcher","abstractService","AbstractService","clickPress$","Subject","clickLeftPress$","clickRightPress$","clickMiddlePress$","clickBackPress$","clickForwardPress$","clickExtraPress$","clickRelease$","clickLeftRelease$","clickRightRelease$","clickMiddleRelease$","clickBackRelease$","clickForwardRelease$","clickExtraRelease$","isLeftPressed$","isRightPressed$","isMiddlePressed$","isBackPressed$","isForwardPressed$","isExtraPressed$","doubleClick$","doubleLeftClick$","doubleRightClick$","wheel$","wheelUp$","wheelDown$","buttonPressMap","Map","MouseButtonValue","Left","Right","Middle","Back","Forward","Extra","pipe","mergeMap","event","subject","get","value","EMPTY","buttonReleaseMap","mergeSub$","merge","map","state$","filter","MouseWheelValue","WheelUp","WheelDown","value$","type","MouseEventType","MouseDown","MouseUp","DoubleClick","Wheel","destroySub$","destroy$","unsubscribe","complete","Object","assign","asObservable","position$","normalizedPosition$","valueNormalized$","getMouseClickWatcherRegistry","getMouseClickWatcherFactory","getMousePositionWatcherRegistry","getMousePositionWatcherFactory"],"mappings":"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"}
1
+ {"version":3,"file":"MouseService.js","sources":["../../../src/Mouse/Services/MouseService.ts"],"sourcesContent":["import type { TAbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService, WatcherTag } from '@hellpig/anarchy-engine/Abstract';\nimport type { TContainerDecorator } from '@hellpig/anarchy-engine/Global';\nimport { MouseButtonValue, MouseEventType, MouseWheelValue } from '@hellpig/anarchy-engine/Mouse/Constants';\nimport type {\n TMouseClickWatcher,\n TMouseClickWatcherFactory,\n TMouseClickWatcherRegistry,\n TMousePositionWatcher,\n TMousePositionWatcherFactory,\n TMousePositionWatcherRegistry,\n TMouseService,\n TMouseStateUpdate,\n TMouseWatcherEvent\n} from '@hellpig/anarchy-engine/Mouse/Models';\nimport type { TSpaceLoops } from '@hellpig/anarchy-engine/Space';\nimport type { Observable, Subscription } from 'rxjs';\nimport { EMPTY, filter, map, merge, mergeMap, Subject } from 'rxjs';\n\nexport function MouseService(\n container: TContainerDecorator,\n mouseClickWatcherFactory: TMouseClickWatcherFactory,\n mouseClickWatcherRegistry: TMouseClickWatcherRegistry,\n mousePositionWatcherFactory: TMousePositionWatcherFactory,\n mousePositionWatcherRegistry: TMousePositionWatcherRegistry,\n { mouseLoop }: TSpaceLoops\n): TMouseService {\n mouseClickWatcherFactory.entityCreated$.subscribe((watcher: TMouseClickWatcher): void => mouseClickWatcherRegistry.add(watcher));\n const mouseClickWatcher: TMouseClickWatcher = mouseClickWatcherFactory.create({ container, tags: [WatcherTag.Initial, WatcherTag.Global] }, undefined);\n mouseClickWatcher.enabled$.next(true);\n\n mousePositionWatcherFactory.entityCreated$.subscribe((watcher: TMousePositionWatcher): void => mousePositionWatcherRegistry.add(watcher));\n const mousePositionWatcher: TMousePositionWatcher = mousePositionWatcherFactory.create({ container, tags: [WatcherTag.Initial, WatcherTag.Global] }, { mouseLoop });\n mousePositionWatcher.enabled$.next(true);\n\n const abstractService: TAbstractService = AbstractService([mouseClickWatcherFactory, mousePositionWatcherFactory, mouseClickWatcherRegistry, mousePositionWatcherRegistry]);\n\n const clickPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickLeftPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickRightPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickMiddlePress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickBackPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickForwardPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickExtraPress$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n\n const clickRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickLeftRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickRightRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickMiddleRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickBackRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickForwardRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const clickExtraRelease$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n\n const isLeftPressed$: Subject<boolean> = new Subject<boolean>();\n const isRightPressed$: Subject<boolean> = new Subject<boolean>();\n const isMiddlePressed$: Subject<boolean> = new Subject<boolean>();\n const isBackPressed$: Subject<boolean> = new Subject<boolean>();\n const isForwardPressed$: Subject<boolean> = new Subject<boolean>();\n const isExtraPressed$: Subject<boolean> = new Subject<boolean>();\n\n const doubleClick$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const doubleLeftClick$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const doubleRightClick$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n\n const wheel$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const wheelUp$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n const wheelDown$: Subject<TMouseWatcherEvent> = new Subject<TMouseWatcherEvent>();\n\n const buttonPressMap = new Map<MouseButtonValue | MouseWheelValue, Subject<TMouseWatcherEvent>>([\n [MouseButtonValue.Left, clickLeftPress$],\n [MouseButtonValue.Right, clickRightPress$],\n [MouseButtonValue.Middle, clickMiddlePress$],\n [MouseButtonValue.Back, clickBackPress$],\n [MouseButtonValue.Forward, clickForwardPress$],\n [MouseButtonValue.Extra, clickExtraPress$]\n ]);\n\n clickPress$\n .pipe(\n mergeMap((event: TMouseWatcherEvent): Subject<TMouseWatcherEvent> | Observable<never> => {\n const subject = buttonPressMap.get(event.value);\n if (subject) subject.next(event);\n return subject ?? EMPTY;\n })\n )\n .subscribe();\n\n const buttonReleaseMap = new Map<MouseButtonValue | MouseWheelValue, Subject<TMouseWatcherEvent>>([\n [MouseButtonValue.Left, clickLeftRelease$],\n [MouseButtonValue.Right, clickRightRelease$],\n [MouseButtonValue.Middle, clickMiddleRelease$],\n [MouseButtonValue.Back, clickBackRelease$],\n [MouseButtonValue.Forward, clickForwardRelease$],\n [MouseButtonValue.Extra, clickExtraRelease$]\n ]);\n\n clickRelease$\n .pipe(\n mergeMap((event: TMouseWatcherEvent): Subject<TMouseWatcherEvent> | Observable<never> => {\n const subject = buttonReleaseMap.get(event.value);\n if (subject) subject.next(event);\n return subject ?? EMPTY;\n })\n )\n .subscribe();\n\n const mergeSub$: Subscription = merge(\n clickLeftPress$.pipe(map((): TMouseStateUpdate => ({ state$: isLeftPressed$, value: true }))),\n clickRightPress$.pipe(map((): TMouseStateUpdate => ({ state$: isRightPressed$, value: true }))),\n clickMiddlePress$.pipe(map((): TMouseStateUpdate => ({ state$: isMiddlePressed$, value: true }))),\n clickBackPress$.pipe(map((): TMouseStateUpdate => ({ state$: isBackPressed$, value: true }))),\n clickForwardPress$.pipe(map((): TMouseStateUpdate => ({ state$: isForwardPressed$, value: true }))),\n clickExtraPress$.pipe(map((): TMouseStateUpdate => ({ state$: isExtraPressed$, value: true }))),\n clickLeftRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isLeftPressed$, value: false }))),\n clickRightRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isRightPressed$, value: false }))),\n clickMiddleRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isMiddlePressed$, value: false }))),\n clickBackRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isBackPressed$, value: false }))),\n clickForwardRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isForwardPressed$, value: false }))),\n clickExtraRelease$.pipe(map((): TMouseStateUpdate => ({ state$: isExtraPressed$, value: false })))\n ).subscribe(({ state$, value }: TMouseStateUpdate): void => state$.next(value));\n\n doubleClick$.pipe(filter((event: TMouseWatcherEvent): boolean => event.value === MouseButtonValue.Left)).subscribe((event: TMouseWatcherEvent): void => doubleLeftClick$.next(event));\n doubleClick$.pipe(filter((event: TMouseWatcherEvent): boolean => event.value === MouseButtonValue.Right)).subscribe((event: TMouseWatcherEvent): void => doubleRightClick$.next(event));\n\n wheel$.pipe(filter((event: TMouseWatcherEvent): boolean => event.value === MouseWheelValue.WheelUp)).subscribe((event: TMouseWatcherEvent): void => wheelUp$.next(event));\n wheel$.pipe(filter((event: TMouseWatcherEvent): boolean => event.value === MouseWheelValue.WheelDown)).subscribe((event: TMouseWatcherEvent): void => wheelDown$.next(event));\n\n mouseClickWatcher.value$.subscribe((event: TMouseWatcherEvent): void => {\n if (event.type === MouseEventType.MouseDown) clickPress$.next(event);\n if (event.type === MouseEventType.MouseUp) clickRelease$.next(event);\n if (event.type === MouseEventType.DoubleClick) doubleClick$.next(event);\n if (event.type === MouseEventType.Wheel) wheel$.next(event);\n });\n\n const destroySub$: Subscription = abstractService.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n clickPress$.complete();\n clickLeftPress$.complete();\n clickRightPress$.complete();\n clickMiddlePress$.complete();\n clickBackPress$.complete();\n clickForwardPress$.complete();\n clickExtraPress$.complete();\n\n clickRelease$.complete();\n clickLeftRelease$.complete();\n clickRightRelease$.complete();\n clickMiddleRelease$.complete();\n clickBackRelease$.complete();\n clickForwardRelease$.complete();\n clickExtraRelease$.complete();\n\n isLeftPressed$.complete();\n isRightPressed$.complete();\n isMiddlePressed$.complete();\n isBackPressed$.complete();\n isForwardPressed$.complete();\n isExtraPressed$.complete();\n\n doubleClick$.complete();\n doubleLeftClick$.complete();\n doubleRightClick$.complete();\n\n wheel$.complete();\n wheelUp$.complete();\n wheelDown$.complete();\n\n mergeSub$.unsubscribe();\n\n mouseClickWatcherRegistry.destroy$.next();\n mousePositionWatcherRegistry.destroy$.next();\n });\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractService, {\n clickPress$: clickPress$.asObservable(),\n clickLeftPress$: clickLeftPress$.asObservable(),\n clickRightPress$: clickRightPress$.asObservable(),\n clickMiddlePress$: clickMiddlePress$.asObservable(),\n clickBackPress$: clickBackPress$.asObservable(),\n clickForwardPress$: clickForwardPress$.asObservable(),\n clickExtraPress$: clickExtraPress$.asObservable(),\n\n clickRelease$: clickRelease$.asObservable(),\n clickLeftRelease$: clickLeftRelease$.asObservable(),\n clickRightRelease$: clickRightRelease$.asObservable(),\n clickMiddleRelease$: clickMiddleRelease$.asObservable(),\n clickBackRelease$: clickBackRelease$.asObservable(),\n clickForwardRelease$: clickForwardRelease$.asObservable(),\n clickExtraRelease$: clickExtraRelease$.asObservable(),\n\n isLeftPressed$: isLeftPressed$.asObservable(),\n isRightPressed$: isRightPressed$.asObservable(),\n isMiddlePressed$: isMiddlePressed$.asObservable(),\n isBackPressed$: isBackPressed$.asObservable(),\n isForwardPressed$: isForwardPressed$.asObservable(),\n isExtraPressed$: isExtraPressed$.asObservable(),\n\n doubleClick$: doubleClick$.asObservable(),\n doubleLeftClick$: doubleLeftClick$.asObservable(),\n doubleRightClick$: doubleRightClick$.asObservable(),\n\n wheel$: wheel$.asObservable(),\n wheelUp$: wheelUp$.asObservable(),\n wheelDown$: wheelDown$.asObservable(),\n\n position$: mousePositionWatcher.value$,\n normalizedPosition$: mousePositionWatcher.valueNormalized$,\n\n getMouseClickWatcherRegistry: (): TMouseClickWatcherRegistry => mouseClickWatcherRegistry,\n getMouseClickWatcherFactory: (): TMouseClickWatcherFactory => mouseClickWatcherFactory,\n getMousePositionWatcherRegistry: (): TMousePositionWatcherRegistry => mousePositionWatcherRegistry,\n getMousePositionWatcherFactory: (): TMousePositionWatcherFactory => mousePositionWatcherFactory\n });\n}\n"],"names":["MouseService","container","mouseClickWatcherFactory","mouseClickWatcherRegistry","mousePositionWatcherFactory","mousePositionWatcherRegistry","mouseLoop","entityCreated$","subscribe","watcher","add","mouseClickWatcher","create","tags","WatcherTag","Initial","Global","enabled$","next","mousePositionWatcher","abstractService","AbstractService","clickPress$","Subject","clickLeftPress$","clickRightPress$","clickMiddlePress$","clickBackPress$","clickForwardPress$","clickExtraPress$","clickRelease$","clickLeftRelease$","clickRightRelease$","clickMiddleRelease$","clickBackRelease$","clickForwardRelease$","clickExtraRelease$","isLeftPressed$","isRightPressed$","isMiddlePressed$","isBackPressed$","isForwardPressed$","isExtraPressed$","doubleClick$","doubleLeftClick$","doubleRightClick$","wheel$","wheelUp$","wheelDown$","buttonPressMap","Map","MouseButtonValue","Left","Right","Middle","Back","Forward","Extra","pipe","mergeMap","event","subject","get","value","EMPTY","buttonReleaseMap","mergeSub$","merge","map","state$","filter","MouseWheelValue","WheelUp","WheelDown","value$","type","MouseEventType","MouseDown","MouseUp","DoubleClick","Wheel","destroySub$","destroy$","unsubscribe","complete","Object","assign","asObservable","position$","normalizedPosition$","valueNormalized$","getMouseClickWatcherRegistry","getMouseClickWatcherFactory","getMousePositionWatcherRegistry","getMousePositionWatcherFactory"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseUtils.js","sources":["../../../src/Mouse/Utils/MouseUtils.ts"],"sourcesContent":["import { MouseButtonValue, MouseEventType, MouseWheelValue } from '@Anarchy/Engine/Mouse/Constants';\nimport type { TMouseWatcherEvent } from '@Anarchy/Engine/Mouse/Models';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { Vector2Like } from 'three';\n\nexport const getNormalizedMousePosition = ({ x, y }: Vector2Like, rect: DOMRect): Vector2Like => ({ x: (x / rect.width) * 2 - 1, y: -((y / rect.height) * 2 - 1) });\n\nexport function getMouseButtonValue({ button }: MouseEvent | WheelEvent): MouseButtonValue {\n switch (button) {\n case 0:\n return MouseButtonValue.Left;\n case 1:\n return MouseButtonValue.Middle;\n case 2:\n return MouseButtonValue.Right;\n case 3:\n return MouseButtonValue.Back;\n case 4:\n return MouseButtonValue.Forward;\n default:\n return MouseButtonValue.Extra;\n }\n}\n\nexport function getMouseEventType(event: MouseEvent | WheelEvent): MouseEventType | never {\n switch (event.type) {\n case 'mouseup':\n return MouseEventType.MouseUp;\n case 'mousedown':\n return MouseEventType.MouseDown;\n case 'dblclick':\n return MouseEventType.DoubleClick;\n case 'wheel':\n return MouseEventType.Wheel;\n default:\n throw new Error(`Unknown mouse event type: ${event.type}`);\n }\n}\n\nexport function getMouseWheelValue(event: MouseEvent | WheelEvent): MouseWheelValue | never {\n if (isNotDefined((event as WheelEvent).deltaY)) throw new Error('Mouse wheel event does not have deltaY property');\n return (event as WheelEvent).deltaY < 0 ? MouseWheelValue.WheelUp : MouseWheelValue.WheelDown;\n}\n\nexport function getMouseWatcherEvent(event: MouseEvent | WheelEvent): TMouseWatcherEvent {\n const type: MouseEventType = getMouseEventType(event);\n const value: MouseButtonValue | MouseWheelValue = type === MouseEventType.Wheel ? getMouseWheelValue(event) : getMouseButtonValue(event);\n\n return { type, value, button: event.button, x: event.clientX, y: event.clientY, deltaY: (event as WheelEvent)?.deltaY };\n}\n"],"names":["getNormalizedMousePosition","x","y","rect","width","height","getMouseButtonValue","button","MouseButtonValue","Left","Middle","Right","Back","Forward","Extra","getMouseEventType","event","type","MouseEventType","MouseUp","MouseDown","DoubleClick","Wheel","Error","getMouseWheelValue","isNotDefined","deltaY","MouseWheelValue","WheelUp","WheelDown","getMouseWatcherEvent","value","clientX","clientY"],"mappings":"uQAKO,MAAMA,2BAA6B,EAAGC,IAAGC,KAAkBC,SAAkCF,EAAIA,EAAIE,KAAKC,MAAS,EAAI,EAAGF,IAAMA,EAAIC,KAAKE,OAAU,EAAI,KAEvJ,SAASC,qBAAoBC,OAAEA,SACpC,OAAQA,QACN,KAAK,EACH,OAAOC,iBAAiBC,KAC1B,KAAK,EACH,OAAOD,iBAAiBE,OAC1B,KAAK,EACH,OAAOF,iBAAiBG,MAC1B,KAAK,EACH,OAAOH,iBAAiBI,KAC1B,KAAK,EACH,OAAOJ,iBAAiBK,QAC1B,QACE,OAAOL,iBAAiBM,MAE9B,CAEO,SAASC,kBAAkBC,OAChC,OAAQA,MAAMC,MACZ,IAAK,UACH,OAAOC,eAAeC,QACxB,IAAK,YACH,OAAOD,eAAeE,UACxB,IAAK,WACH,OAAOF,eAAeG,YACxB,IAAK,QACH,OAAOH,eAAeI,MACxB,QACE,MAAM,IAAIC,MAAM,6BAA6BP,MAAMC,QAEzD,CAEO,SAASO,mBAAmBR,OACjC,GAAIS,aAAcT,MAAqBU,QAAS,MAAM,IAAIH,MAAM,mDAChE,OAAQP,MAAqBU,OAAS,EAAIC,gBAAgBC,QAAUD,gBAAgBE,SACtF,CAEO,SAASC,qBAAqBd,OACnC,MAAMC,KAAuBF,kBAAkBC,OAG/C,MAAO,CAAEC,UAAMc,MAFmCd,OAASC,eAAeI,MAAQE,mBAAmBR,OAASV,oBAAoBU,OAE5GT,OAAQS,MAAMT,OAAQN,EAAGe,MAAMgB,QAAS9B,EAAGc,MAAMiB,QAASP,OAASV,OAAsBU,OACjH"}
1
+ {"version":3,"file":"MouseUtils.js","sources":["../../../src/Mouse/Utils/MouseUtils.ts"],"sourcesContent":["import { MouseButtonValue, MouseEventType, MouseWheelValue } from '@hellpig/anarchy-engine/Mouse/Constants';\nimport type { TMouseWatcherEvent } from '@hellpig/anarchy-engine/Mouse/Models';\nimport { isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Vector2Like } from 'three';\n\nexport const getNormalizedMousePosition = ({ x, y }: Vector2Like, rect: DOMRect): Vector2Like => ({ x: (x / rect.width) * 2 - 1, y: -((y / rect.height) * 2 - 1) });\n\nexport function getMouseButtonValue({ button }: MouseEvent | WheelEvent): MouseButtonValue {\n switch (button) {\n case 0:\n return MouseButtonValue.Left;\n case 1:\n return MouseButtonValue.Middle;\n case 2:\n return MouseButtonValue.Right;\n case 3:\n return MouseButtonValue.Back;\n case 4:\n return MouseButtonValue.Forward;\n default:\n return MouseButtonValue.Extra;\n }\n}\n\nexport function getMouseEventType(event: MouseEvent | WheelEvent): MouseEventType | never {\n switch (event.type) {\n case 'mouseup':\n return MouseEventType.MouseUp;\n case 'mousedown':\n return MouseEventType.MouseDown;\n case 'dblclick':\n return MouseEventType.DoubleClick;\n case 'wheel':\n return MouseEventType.Wheel;\n default:\n throw new Error(`Unknown mouse event type: ${event.type}`);\n }\n}\n\nexport function getMouseWheelValue(event: MouseEvent | WheelEvent): MouseWheelValue | never {\n if (isNotDefined((event as WheelEvent).deltaY)) throw new Error('Mouse wheel event does not have deltaY property');\n return (event as WheelEvent).deltaY < 0 ? MouseWheelValue.WheelUp : MouseWheelValue.WheelDown;\n}\n\nexport function getMouseWatcherEvent(event: MouseEvent | WheelEvent): TMouseWatcherEvent {\n const type: MouseEventType = getMouseEventType(event);\n const value: MouseButtonValue | MouseWheelValue = type === MouseEventType.Wheel ? getMouseWheelValue(event) : getMouseButtonValue(event);\n\n return { type, value, button: event.button, x: event.clientX, y: event.clientY, deltaY: (event as WheelEvent)?.deltaY };\n}\n"],"names":["getNormalizedMousePosition","x","y","rect","width","height","getMouseButtonValue","button","MouseButtonValue","Left","Middle","Right","Back","Forward","Extra","getMouseEventType","event","type","MouseEventType","MouseUp","MouseDown","DoubleClick","Wheel","Error","getMouseWheelValue","isNotDefined","deltaY","MouseWheelValue","WheelUp","WheelDown","getMouseWatcherEvent","value","clientX","clientY"],"mappings":"uQAKO,MAAMA,2BAA6B,EAAGC,IAAGC,KAAkBC,SAAkCF,EAAIA,EAAIE,KAAKC,MAAS,EAAI,EAAGF,IAAMA,EAAIC,KAAKE,OAAU,EAAI,KAEvJ,SAASC,qBAAoBC,OAAEA,SACpC,OAAQA,QACN,KAAK,EACH,OAAOC,iBAAiBC,KAC1B,KAAK,EACH,OAAOD,iBAAiBE,OAC1B,KAAK,EACH,OAAOF,iBAAiBG,MAC1B,KAAK,EACH,OAAOH,iBAAiBI,KAC1B,KAAK,EACH,OAAOJ,iBAAiBK,QAC1B,QACE,OAAOL,iBAAiBM,MAE9B,CAEO,SAASC,kBAAkBC,OAChC,OAAQA,MAAMC,MACZ,IAAK,UACH,OAAOC,eAAeC,QACxB,IAAK,YACH,OAAOD,eAAeE,UACxB,IAAK,WACH,OAAOF,eAAeG,YACxB,IAAK,QACH,OAAOH,eAAeI,MACxB,QACE,MAAM,IAAIC,MAAM,6BAA6BP,MAAMC,QAEzD,CAEO,SAASO,mBAAmBR,OACjC,GAAIS,aAAcT,MAAqBU,QAAS,MAAM,IAAIH,MAAM,mDAChE,OAAQP,MAAqBU,OAAS,EAAIC,gBAAgBC,QAAUD,gBAAgBE,SACtF,CAEO,SAASC,qBAAqBd,OACnC,MAAMC,KAAuBF,kBAAkBC,OAG/C,MAAO,CAAEC,UAAMc,MAFmCd,OAASC,eAAeI,MAAQE,mBAAmBR,OAASV,oBAAoBU,OAE5GT,OAAQS,MAAMT,OAAQN,EAAGe,MAAMgB,QAAS9B,EAAGc,MAAMiB,QAASP,OAASV,OAAsBU,OACjH"}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseClickWatcher.js","sources":["../../../src/Mouse/Watchers/MouseClickWatcher.ts"],"sourcesContent":["import type { TAbstractWatcher } from '@Anarchy/Engine/Abstract';\nimport { AbstractWatcher, WatcherType } from '@Anarchy/Engine/Abstract';\nimport { MouseEventType } from '@Anarchy/Engine/Mouse/Constants';\nimport type { TMouseClickWatcher, TMouseClickWatcherParams, TMouseWatcherEvent } from '@Anarchy/Engine/Mouse/Models';\nimport { getMouseWatcherEvent } from '@Anarchy/Engine/Mouse/Utils';\nimport { TextCssClass } from '@Anarchy/Engine/Text/Constants';\nimport { distinctUntilChanged, takeUntil } from 'rxjs';\n\nconst textCssClasses = [TextCssClass.RendererText2d, TextCssClass.RendererText3d, TextCssClass.Text2d, TextCssClass.Text3d];\nconst textCssClassesRegexp = new RegExp(`(?:^|\\\\s)(?:${textCssClasses.join('|')})(?:\\\\s|$)`);\n\nexport function MouseClickWatcher({ container, tags }: TMouseClickWatcherParams): TMouseClickWatcher {\n const containerIdTag: string = `container_id_${container.id}`;\n const abstractWatcher: TAbstractWatcher<TMouseWatcherEvent> = AbstractWatcher<TMouseWatcherEvent>(WatcherType.MouseClickWatcher, 'mouse_click_watcher', tags);\n\n const isGameLayerTarget = (event: MouseEvent | WheelEvent): boolean => {\n const target: Element | null = event.target as Element | null;\n if (!target) return false;\n if (target === container.canvas$.value) return true;\n\n const classes: DOMTokenList | undefined = target?.classList;\n if (!classes || classes.length === 0) return false;\n else return textCssClassesRegexp.test(classes.value);\n };\n\n const onMouseListener = (event: MouseEvent | WheelEvent): void => {\n //Must make sure, that targeting a game layer (canvas, text renderer), to not catch events from other elements (UI, etc.)\n if ((event.type as MouseEventType) !== MouseEventType.Wheel && event.cancelable && !isGameLayerTarget(event)) {\n // if (event.cancelable) event.preventDefault();\n return;\n }\n\n const e: TMouseWatcherEvent = getMouseWatcherEvent(event);\n abstractWatcher.value$.next(e);\n };\n\n abstractWatcher.enabled$.pipe(distinctUntilChanged(), takeUntil(abstractWatcher.destroy$)).subscribe((value: boolean): void => {\n if (value) {\n container.startWatch(MouseEventType.MouseUp, onMouseListener);\n container.startWatch(MouseEventType.MouseDown, onMouseListener);\n container.startWatch(MouseEventType.DoubleClick, onMouseListener);\n container.startWatch(MouseEventType.Wheel, onMouseListener);\n } else {\n container.stopWatch(MouseEventType.MouseUp, onMouseListener);\n container.stopWatch(MouseEventType.MouseDown, onMouseListener);\n container.stopWatch(MouseEventType.DoubleClick, onMouseListener);\n container.stopWatch(MouseEventType.Wheel, onMouseListener);\n }\n });\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractWatcher, {\n key: containerIdTag\n });\n}\n"],"names":["textCssClassesRegexp","RegExp","TextCssClass","RendererText2d","RendererText3d","Text2d","Text3d","join","MouseClickWatcher","container","tags","containerIdTag","id","abstractWatcher","AbstractWatcher","WatcherType","onMouseListener","event","type","MouseEventType","Wheel","cancelable","target","canvas$","value","classes","classList","length","test","isGameLayerTarget","e","getMouseWatcherEvent","value$","next","enabled$","pipe","distinctUntilChanged","takeUntil","destroy$","subscribe","startWatch","MouseUp","MouseDown","DoubleClick","stopWatch","Object","assign","key"],"mappings":"ogBAQA,MACMA,qBAAuB,IAAIC,OAAO,eADjB,CAACC,aAAaC,eAAgBD,aAAaE,eAAgBF,aAAaG,OAAQH,aAAaI,QAC9CC,KAAK,kBAEpE,SAASC,mBAAkBC,UAAEA,UAAAC,KAAWA,OAC7C,MAAMC,eAAyB,gBAAgBF,UAAUG,KACnDC,gBAAwDC,gBAAoCC,YAAYP,kBAAmB,sBAAuBE,MAYlJM,gBAAmBC,QAEvB,GAAKA,MAAMC,OAA4BC,eAAeC,OAASH,MAAMI,aAZ7C,CAACJ,QACzB,MAAMK,OAAyBL,MAAMK,OACrC,IAAKA,OAAQ,OAAO,EACpB,GAAIA,SAAWb,UAAUc,QAAQC,MAAO,OAAO,EAE/C,MAAMC,QAAoCH,QAAQI,UAClD,SAAKD,SAA8B,IAAnBA,QAAQE,SACZ3B,qBAAqB4B,KAAKH,QAAQD,QAKsCK,CAAkBZ,OAEpG,OAGF,MAAMa,EAAwBC,qBAAqBd,OACnDJ,gBAAgBmB,OAAOC,KAAKH,IAkB9B,OAfAjB,gBAAgBqB,SAASC,KAAKC,uBAAwBC,UAAUxB,gBAAgByB,WAAWC,UAAWf,QAChGA,OACFf,UAAU+B,WAAWrB,eAAesB,QAASzB,iBAC7CP,UAAU+B,WAAWrB,eAAeuB,UAAW1B,iBAC/CP,UAAU+B,WAAWrB,eAAewB,YAAa3B,iBACjDP,UAAU+B,WAAWrB,eAAeC,MAAOJ,mBAE3CP,UAAUmC,UAAUzB,eAAesB,QAASzB,iBAC5CP,UAAUmC,UAAUzB,eAAeuB,UAAW1B,iBAC9CP,UAAUmC,UAAUzB,eAAewB,YAAa3B,iBAChDP,UAAUmC,UAAUzB,eAAeC,MAAOJ,oBAKvC6B,OAAOC,OAAOjC,gBAAiB,CACpCkC,IAAKpC,gBAET"}
1
+ {"version":3,"file":"MouseClickWatcher.js","sources":["../../../src/Mouse/Watchers/MouseClickWatcher.ts"],"sourcesContent":["import type { TAbstractWatcher } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractWatcher, WatcherType } from '@hellpig/anarchy-engine/Abstract';\nimport { MouseEventType } from '@hellpig/anarchy-engine/Mouse/Constants';\nimport type { TMouseClickWatcher, TMouseClickWatcherParams, TMouseWatcherEvent } from '@hellpig/anarchy-engine/Mouse/Models';\nimport { getMouseWatcherEvent } from '@hellpig/anarchy-engine/Mouse/Utils';\nimport { TextCssClass } from '@hellpig/anarchy-engine/Text/Constants';\nimport { distinctUntilChanged, takeUntil } from 'rxjs';\n\nconst textCssClasses = [TextCssClass.RendererText2d, TextCssClass.RendererText3d, TextCssClass.Text2d, TextCssClass.Text3d];\nconst textCssClassesRegexp = new RegExp(`(?:^|\\\\s)(?:${textCssClasses.join('|')})(?:\\\\s|$)`);\n\nexport function MouseClickWatcher({ container, tags }: TMouseClickWatcherParams): TMouseClickWatcher {\n const containerIdTag: string = `container_id_${container.id}`;\n const abstractWatcher: TAbstractWatcher<TMouseWatcherEvent> = AbstractWatcher<TMouseWatcherEvent>(WatcherType.MouseClickWatcher, 'mouse_click_watcher', tags);\n\n const isGameLayerTarget = (event: MouseEvent | WheelEvent): boolean => {\n const target: Element | null = event.target as Element | null;\n if (!target) return false;\n if (target === container.canvas$.value) return true;\n\n const classes: DOMTokenList | undefined = target?.classList;\n if (!classes || classes.length === 0) return false;\n else return textCssClassesRegexp.test(classes.value);\n };\n\n const onMouseListener = (event: MouseEvent | WheelEvent): void => {\n //Must make sure, that targeting a game layer (canvas, text renderer), to not catch events from other elements (UI, etc.)\n if ((event.type as MouseEventType) !== MouseEventType.Wheel && event.cancelable && !isGameLayerTarget(event)) {\n // if (event.cancelable) event.preventDefault();\n return;\n }\n\n const e: TMouseWatcherEvent = getMouseWatcherEvent(event);\n abstractWatcher.value$.next(e);\n };\n\n abstractWatcher.enabled$.pipe(distinctUntilChanged(), takeUntil(abstractWatcher.destroy$)).subscribe((value: boolean): void => {\n if (value) {\n container.startWatch(MouseEventType.MouseUp, onMouseListener);\n container.startWatch(MouseEventType.MouseDown, onMouseListener);\n container.startWatch(MouseEventType.DoubleClick, onMouseListener);\n container.startWatch(MouseEventType.Wheel, onMouseListener);\n } else {\n container.stopWatch(MouseEventType.MouseUp, onMouseListener);\n container.stopWatch(MouseEventType.MouseDown, onMouseListener);\n container.stopWatch(MouseEventType.DoubleClick, onMouseListener);\n container.stopWatch(MouseEventType.Wheel, onMouseListener);\n }\n });\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractWatcher, {\n key: containerIdTag\n });\n}\n"],"names":["textCssClassesRegexp","RegExp","TextCssClass","RendererText2d","RendererText3d","Text2d","Text3d","join","MouseClickWatcher","container","tags","containerIdTag","id","abstractWatcher","AbstractWatcher","WatcherType","onMouseListener","event","type","MouseEventType","Wheel","cancelable","target","canvas$","value","classes","classList","length","test","isGameLayerTarget","e","getMouseWatcherEvent","value$","next","enabled$","pipe","distinctUntilChanged","takeUntil","destroy$","subscribe","startWatch","MouseUp","MouseDown","DoubleClick","stopWatch","Object","assign","key"],"mappings":"ogBAQA,MACMA,qBAAuB,IAAIC,OAAO,eADjB,CAACC,aAAaC,eAAgBD,aAAaE,eAAgBF,aAAaG,OAAQH,aAAaI,QAC9CC,KAAK,kBAEpE,SAASC,mBAAkBC,UAAEA,UAAAC,KAAWA,OAC7C,MAAMC,eAAyB,gBAAgBF,UAAUG,KACnDC,gBAAwDC,gBAAoCC,YAAYP,kBAAmB,sBAAuBE,MAYlJM,gBAAmBC,QAEvB,GAAKA,MAAMC,OAA4BC,eAAeC,OAASH,MAAMI,aAZ7C,CAACJ,QACzB,MAAMK,OAAyBL,MAAMK,OACrC,IAAKA,OAAQ,OAAO,EACpB,GAAIA,SAAWb,UAAUc,QAAQC,MAAO,OAAO,EAE/C,MAAMC,QAAoCH,QAAQI,UAClD,SAAKD,SAA8B,IAAnBA,QAAQE,SACZ3B,qBAAqB4B,KAAKH,QAAQD,QAKsCK,CAAkBZ,OAEpG,OAGF,MAAMa,EAAwBC,qBAAqBd,OACnDJ,gBAAgBmB,OAAOC,KAAKH,IAkB9B,OAfAjB,gBAAgBqB,SAASC,KAAKC,uBAAwBC,UAAUxB,gBAAgByB,WAAWC,UAAWf,QAChGA,OACFf,UAAU+B,WAAWrB,eAAesB,QAASzB,iBAC7CP,UAAU+B,WAAWrB,eAAeuB,UAAW1B,iBAC/CP,UAAU+B,WAAWrB,eAAewB,YAAa3B,iBACjDP,UAAU+B,WAAWrB,eAAeC,MAAOJ,mBAE3CP,UAAUmC,UAAUzB,eAAesB,QAASzB,iBAC5CP,UAAUmC,UAAUzB,eAAeuB,UAAW1B,iBAC9CP,UAAUmC,UAAUzB,eAAewB,YAAa3B,iBAChDP,UAAUmC,UAAUzB,eAAeC,MAAOJ,oBAKvC6B,OAAOC,OAAOjC,gBAAiB,CACpCkC,IAAKpC,gBAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"MousePositionWatcher.js","sources":["../../../src/Mouse/Watchers/MousePositionWatcher.ts"],"sourcesContent":["import type { TAbstractWatcherWithState } from '@Anarchy/Engine/Abstract';\nimport { AbstractWatcherWithState, WatcherType } from '@Anarchy/Engine/Abstract';\nimport type { TMouseEvent, TMouseLoop, TMousePositionWatcher, TMousePositionWatcherParams } from '@Anarchy/Engine/Mouse/Models';\nimport { getNormalizedMousePosition } from '@Anarchy/Engine/Mouse/Utils';\nimport { isEqualOrSimilarByXyCoords } from '@Anarchy/Engine/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, identity, map, takeUntil, tap, withLatestFrom } from 'rxjs';\nimport type { Vector2Like } from 'three';\n\nexport function MousePositionWatcher({ container, tags, performance }: TMousePositionWatcherParams, mouseLoop: TMouseLoop): TMousePositionWatcher {\n const containerIdTag: string = `container_id_${container.id}`;\n const abstractWatcher: TAbstractWatcherWithState<Vector2Like> = AbstractWatcherWithState(WatcherType.MousePositionWatcher, 'mouse_position_watcher', { x: 0, y: 0 }, tags);\n let prevPosition: Float32Array = new Float32Array(2); // [x, y] = [0, 0]\n let position: Float32Array = new Float32Array(2); // [x, y] = [0, 0]\n\n const onMouseMoveListener = (event: TMouseEvent): void => {\n const rect: DOMRect = container.viewportRect$.value ?? ({ left: 0, top: 0 } as DOMRect);\n // eslint-disable-next-line functional/immutable-data\n position[0] = event.clientX - rect.left;\n // eslint-disable-next-line functional/immutable-data\n position[1] = event.clientY - rect.top;\n };\n\n const threshold: number = performance?.noiseThreshold ?? 0.001;\n // shouldReactOnlyOnChange might improve performance, however won't fire an event if the mouse is not moving (and actor or scene is moving)\n const shouldReactOnlyOnChange: boolean = performance?.shouldReactOnlyOnChange ?? false;\n\n mouseLoop.tick$\n .pipe(\n shouldReactOnlyOnChange ? distinctUntilChanged((): boolean => isEqualOrSimilarByXyCoords(prevPosition[0], prevPosition[1], position[0], position[1], threshold)) : identity,\n tap((): void => {\n // eslint-disable-next-line functional/immutable-data\n prevPosition[0] = position[0]; //x\n // eslint-disable-next-line functional/immutable-data\n prevPosition[1] = position[1]; //y\n }),\n takeUntil(abstractWatcher.destroy$)\n )\n .subscribe((): void => abstractWatcher.value$.next({ x: position[0], y: position[1] }));\n\n abstractWatcher.enabled$.pipe(distinctUntilChanged(), takeUntil(abstractWatcher.destroy$)).subscribe((value: boolean): void => {\n if (value) container.startWatch('mousemove', onMouseMoveListener);\n else container.stopWatch('mousemove', onMouseMoveListener);\n });\n\n const destroySub$: Subscription = abstractWatcher.destroy$.subscribe((): void => {\n prevPosition = null as any;\n position = null as any;\n\n destroySub$.unsubscribe();\n });\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractWatcher, {\n getValue: (): Vector2Like => ({ ...abstractWatcher.value$.value }),\n valueNormalized$: abstractWatcher.value$.pipe(\n withLatestFrom(container.viewportRect$),\n filter(([, rect]: [Vector2Like, DOMRect]): boolean => isDefined(rect)),\n map(([coords, rect]: [Vector2Like, DOMRect]): Vector2Like => getNormalizedMousePosition(coords, rect as DOMRect))\n ),\n key: containerIdTag\n });\n}\n"],"names":["MousePositionWatcher","container","tags","performance","mouseLoop","containerIdTag","id","abstractWatcher","AbstractWatcherWithState","WatcherType","x","y","prevPosition","Float32Array","position","onMouseMoveListener","event","rect","viewportRect$","value","left","top","clientX","clientY","threshold","noiseThreshold","tick$","pipe","shouldReactOnlyOnChange","distinctUntilChanged","isEqualOrSimilarByXyCoords","identity","tap","takeUntil","destroy$","subscribe","value$","next","enabled$","startWatch","stopWatch","destroySub$","unsubscribe","Object","assign","getValue","valueNormalized$","withLatestFrom","filter","isDefined","map","coords","getNormalizedMousePosition","key"],"mappings":"u9BAUO,SAASA,sBAAqBC,UAAEA,UAAAC,KAAWA,KAAAC,YAAMA,aAA4CC,WAClG,MAAMC,eAAyB,gBAAgBJ,UAAUK,KACnDC,gBAA0DC,yBAAyBC,YAAYT,qBAAsB,yBAA0B,CAAEU,EAAG,EAAGC,EAAG,GAAKT,MACrK,IAAIU,aAA6B,IAAIC,aAAa,GAC9CC,SAAyB,IAAID,aAAa,GAE9C,MAAME,oBAAuBC,QAC3B,MAAMC,KAAgBhB,UAAUiB,cAAcC,OAAU,CAAEC,KAAM,EAAGC,IAAK,GAExEP,SAAS,GAAKE,MAAMM,QAAUL,KAAKG,KAEnCN,SAAS,GAAKE,MAAMO,QAAUN,KAAKI,KAG/BG,UAAoBrB,aAAasB,gBAAkB,KAIzDrB,UAAUsB,MACPC,KAHsCxB,aAAayB,wBAIxBC,qBAAqB,IAAeC,2BAA2BlB,aAAa,GAAIA,aAAa,GAAIE,SAAS,GAAIA,SAAS,GAAIU,YAAcO,SACnKC,IAAI,KAEFpB,aAAa,GAAKE,SAAS,GAE3BF,aAAa,GAAKE,SAAS,KAE7BmB,UAAU1B,gBAAgB2B,WAE3BC,UAAU,IAAY5B,gBAAgB6B,OAAOC,KAAK,CAAE3B,EAAGI,SAAS,GAAIH,EAAGG,SAAS,MAEnFP,gBAAgB+B,SAASX,KAAKE,uBAAwBI,UAAU1B,gBAAgB2B,WAAWC,UAAWhB,QAChGA,MAAOlB,UAAUsC,WAAW,YAAaxB,qBACxCd,UAAUuC,UAAU,YAAazB,uBAGxC,MAAM0B,YAA4BlC,gBAAgB2B,SAASC,UAAU,KACnEvB,aAAe,KACfE,SAAW,KAEX2B,YAAYC,gBAId,OAAOC,OAAOC,OAAOrC,gBAAiB,CACpCsC,SAAU,KAAA,IAAyBtC,gBAAgB6B,OAAOjB,QAC1D2B,iBAAkBvC,gBAAgB6B,OAAOT,KACvCoB,eAAe9C,UAAUiB,eACzB8B,OAAO,EAAC,CAAG/B,QAA2CgC,UAAUhC,OAChEiC,IAAI,EAAEC,OAAQlC,QAA+CmC,2BAA2BD,OAAQlC,QAElGoC,IAAKhD,gBAET"}
1
+ {"version":3,"file":"MousePositionWatcher.js","sources":["../../../src/Mouse/Watchers/MousePositionWatcher.ts"],"sourcesContent":["import type { TAbstractWatcherWithState } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractWatcherWithState, WatcherType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TMouseEvent, TMouseLoop, TMousePositionWatcher, TMousePositionWatcherParams } from '@hellpig/anarchy-engine/Mouse/Models';\nimport { getNormalizedMousePosition } from '@hellpig/anarchy-engine/Mouse/Utils';\nimport { isEqualOrSimilarByXyCoords } from '@hellpig/anarchy-engine/Utils';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, identity, map, takeUntil, tap, withLatestFrom } from 'rxjs';\nimport type { Vector2Like } from 'three';\n\nexport function MousePositionWatcher({ container, tags, performance }: TMousePositionWatcherParams, mouseLoop: TMouseLoop): TMousePositionWatcher {\n const containerIdTag: string = `container_id_${container.id}`;\n const abstractWatcher: TAbstractWatcherWithState<Vector2Like> = AbstractWatcherWithState(WatcherType.MousePositionWatcher, 'mouse_position_watcher', { x: 0, y: 0 }, tags);\n let prevPosition: Float32Array = new Float32Array(2); // [x, y] = [0, 0]\n let position: Float32Array = new Float32Array(2); // [x, y] = [0, 0]\n\n const onMouseMoveListener = (event: TMouseEvent): void => {\n const rect: DOMRect = container.viewportRect$.value ?? ({ left: 0, top: 0 } as DOMRect);\n // eslint-disable-next-line functional/immutable-data\n position[0] = event.clientX - rect.left;\n // eslint-disable-next-line functional/immutable-data\n position[1] = event.clientY - rect.top;\n };\n\n const threshold: number = performance?.noiseThreshold ?? 0.001;\n // shouldReactOnlyOnChange might improve performance, however won't fire an event if the mouse is not moving (and actor or scene is moving)\n const shouldReactOnlyOnChange: boolean = performance?.shouldReactOnlyOnChange ?? false;\n\n mouseLoop.tick$\n .pipe(\n shouldReactOnlyOnChange ? distinctUntilChanged((): boolean => isEqualOrSimilarByXyCoords(prevPosition[0], prevPosition[1], position[0], position[1], threshold)) : identity,\n tap((): void => {\n // eslint-disable-next-line functional/immutable-data\n prevPosition[0] = position[0]; //x\n // eslint-disable-next-line functional/immutable-data\n prevPosition[1] = position[1]; //y\n }),\n takeUntil(abstractWatcher.destroy$)\n )\n .subscribe((): void => abstractWatcher.value$.next({ x: position[0], y: position[1] }));\n\n abstractWatcher.enabled$.pipe(distinctUntilChanged(), takeUntil(abstractWatcher.destroy$)).subscribe((value: boolean): void => {\n if (value) container.startWatch('mousemove', onMouseMoveListener);\n else container.stopWatch('mousemove', onMouseMoveListener);\n });\n\n const destroySub$: Subscription = abstractWatcher.destroy$.subscribe((): void => {\n prevPosition = null as any;\n position = null as any;\n\n destroySub$.unsubscribe();\n });\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractWatcher, {\n getValue: (): Vector2Like => ({ ...abstractWatcher.value$.value }),\n valueNormalized$: abstractWatcher.value$.pipe(\n withLatestFrom(container.viewportRect$),\n filter(([, rect]: [Vector2Like, DOMRect]): boolean => isDefined(rect)),\n map(([coords, rect]: [Vector2Like, DOMRect]): Vector2Like => getNormalizedMousePosition(coords, rect as DOMRect))\n ),\n key: containerIdTag\n });\n}\n"],"names":["MousePositionWatcher","container","tags","performance","mouseLoop","containerIdTag","id","abstractWatcher","AbstractWatcherWithState","WatcherType","x","y","prevPosition","Float32Array","position","onMouseMoveListener","event","rect","viewportRect$","value","left","top","clientX","clientY","threshold","noiseThreshold","tick$","pipe","shouldReactOnlyOnChange","distinctUntilChanged","isEqualOrSimilarByXyCoords","identity","tap","takeUntil","destroy$","subscribe","value$","next","enabled$","startWatch","stopWatch","destroySub$","unsubscribe","Object","assign","getValue","valueNormalized$","withLatestFrom","filter","isDefined","map","coords","getNormalizedMousePosition","key"],"mappings":"u9BAUO,SAASA,sBAAqBC,UAAEA,UAAAC,KAAWA,KAAAC,YAAMA,aAA4CC,WAClG,MAAMC,eAAyB,gBAAgBJ,UAAUK,KACnDC,gBAA0DC,yBAAyBC,YAAYT,qBAAsB,yBAA0B,CAAEU,EAAG,EAAGC,EAAG,GAAKT,MACrK,IAAIU,aAA6B,IAAIC,aAAa,GAC9CC,SAAyB,IAAID,aAAa,GAE9C,MAAME,oBAAuBC,QAC3B,MAAMC,KAAgBhB,UAAUiB,cAAcC,OAAU,CAAEC,KAAM,EAAGC,IAAK,GAExEP,SAAS,GAAKE,MAAMM,QAAUL,KAAKG,KAEnCN,SAAS,GAAKE,MAAMO,QAAUN,KAAKI,KAG/BG,UAAoBrB,aAAasB,gBAAkB,KAIzDrB,UAAUsB,MACPC,KAHsCxB,aAAayB,wBAIxBC,qBAAqB,IAAeC,2BAA2BlB,aAAa,GAAIA,aAAa,GAAIE,SAAS,GAAIA,SAAS,GAAIU,YAAcO,SACnKC,IAAI,KAEFpB,aAAa,GAAKE,SAAS,GAE3BF,aAAa,GAAKE,SAAS,KAE7BmB,UAAU1B,gBAAgB2B,WAE3BC,UAAU,IAAY5B,gBAAgB6B,OAAOC,KAAK,CAAE3B,EAAGI,SAAS,GAAIH,EAAGG,SAAS,MAEnFP,gBAAgB+B,SAASX,KAAKE,uBAAwBI,UAAU1B,gBAAgB2B,WAAWC,UAAWhB,QAChGA,MAAOlB,UAAUsC,WAAW,YAAaxB,qBACxCd,UAAUuC,UAAU,YAAazB,uBAGxC,MAAM0B,YAA4BlC,gBAAgB2B,SAASC,UAAU,KACnEvB,aAAe,KACfE,SAAW,KAEX2B,YAAYC,gBAId,OAAOC,OAAOC,OAAOrC,gBAAiB,CACpCsC,SAAU,KAAA,IAAyBtC,gBAAgB6B,OAAOjB,QAC1D2B,iBAAkBvC,gBAAgB6B,OAAOT,KACvCoB,eAAe9C,UAAUiB,eACzB8B,OAAO,EAAC,CAAG/B,QAA2CgC,UAAUhC,OAChEiC,IAAI,EAAEC,OAAQlC,QAA+CmC,2BAA2BD,OAAQlC,QAElGoC,IAAKhD,gBAET"}
@@ -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 { 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
+ {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Particles/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TAnyMaterialWrapper } from '@hellpig/anarchy-engine/Material';\nimport type { TParticlesConfig, TParticlesConfigToParamsDependencies, TParticlesParams } from '@hellpig/anarchy-engine/Particles/Models';\nimport { object3dConfigToParams } from '@hellpig/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"}