@hellpig/anarchy-engine 22.0.1 → 22.0.3

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 (371) 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/Registries/ControlsRegistry.js.map +1 -1
  72. package/dist/Controls/Services/ControlsService.js.map +1 -1
  73. package/dist/Controls/Utils/ControlsUtils.js.map +1 -1
  74. package/dist/Controls/Wrappers/FpsControls/FpsControlsAccessors.js.map +1 -1
  75. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapper.js.map +1 -1
  76. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper.js.map +1 -1
  77. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsAccessors.js.map +1 -1
  78. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapper.js.map +1 -1
  79. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapperHelper.js.map +1 -1
  80. package/dist/Distance/Utils/DistanceUtils.js.map +1 -1
  81. package/dist/EnvMap/Adapters/ConfigToParams.js.map +1 -1
  82. package/dist/EnvMap/Adapters/EntityToConfig.js.map +1 -1
  83. package/dist/EnvMap/Factories/EnvMapFactory.js.map +1 -1
  84. package/dist/EnvMap/Loader/EnvMapLoader.js.map +1 -1
  85. package/dist/EnvMap/Registries/EnvMapMetaInfoRegistry.js.map +1 -1
  86. package/dist/EnvMap/Registries/EnvMapRegistry.js.map +1 -1
  87. package/dist/EnvMap/Registries/EnvMapTextureAsyncRegistry.js.map +1 -1
  88. package/dist/EnvMap/Services/EnvMapService.js.map +1 -1
  89. package/dist/EnvMap/Wrappers/EnvMapWrapper.js.map +1 -1
  90. package/dist/Fog/Adapters/ConfigToParams.js.map +1 -1
  91. package/dist/Fog/Adapters/EntityToConfig.js.map +1 -1
  92. package/dist/Fog/Factories/FogFactory.js.map +1 -1
  93. package/dist/Fog/Registries/FogRegistry.js.map +1 -1
  94. package/dist/Fog/Services/FogService.js.map +1 -1
  95. package/dist/Fog/Wrappers/FogWrapper.js.map +1 -1
  96. package/dist/Fsm/Adapters/ConfigToParams.js.map +1 -1
  97. package/dist/Fsm/Adapters/EntityToConfig.js.map +1 -1
  98. package/dist/Fsm/Entities/FsmSource.js.map +1 -1
  99. package/dist/Fsm/Factories/FsmInstanceFactory.js.map +1 -1
  100. package/dist/Fsm/Factories/FsmSourceFactory.js.map +1 -1
  101. package/dist/Fsm/Registries/FsmInstanceRegistry.js.map +1 -1
  102. package/dist/Fsm/Registries/FsmSourceRegistry.js.map +1 -1
  103. package/dist/Fsm/Services/FsmInstanceService.js.map +1 -1
  104. package/dist/Fsm/Services/FsmService.js.map +1 -1
  105. package/dist/Fsm/Services/FsmSourceService.js.map +1 -1
  106. package/dist/Fsm/Wrappers/FsmWrapper.js.map +1 -1
  107. package/dist/Global/Decorators/ContainerDecorator.js.map +1 -1
  108. package/dist/Global/Utils/ContainerUtils.js.map +1 -1
  109. package/dist/Intersections/Adapters/ConfigToParams.js.map +1 -1
  110. package/dist/Intersections/Adapters/EntityToConfig.js.map +1 -1
  111. package/dist/Intersections/Factories/IntersectionsWatcherFactory.js.map +1 -1
  112. package/dist/Intersections/Registries/IntersectionsWatcherRegistry.js.map +1 -1
  113. package/dist/Intersections/Services/IntersectionsWatcherService.js.map +1 -1
  114. package/dist/Intersections/Utils/IntersectionsWatcherUtils.js.map +1 -1
  115. package/dist/Intersections/Watchers/AbstractIntersectionsWatcher.js.map +1 -1
  116. package/dist/Intersections/Watchers/IntersectionsCameraWatcher.js.map +1 -1
  117. package/dist/Intersections/Watchers/IntersectionsDirectionWatcher.js.map +1 -1
  118. package/dist/Keyboard/Factories/KeyWatcherFactory.js.map +1 -1
  119. package/dist/Keyboard/Registries/KeyWatcherRegistry.js.map +1 -1
  120. package/dist/Keyboard/Services/KeyboardService.js.map +1 -1
  121. package/dist/Keyboard/Utils/KeysRxJsUtils.js.map +1 -1
  122. package/dist/Keyboard/Utils/KeysUtils.js.map +1 -1
  123. package/dist/Keyboard/Watchers/KeyComboWatcher.js.map +1 -1
  124. package/dist/Keyboard/Watchers/KeyPressWatcher.js.map +1 -1
  125. package/dist/Keyboard/Watchers/KeyReleaseWatcher.js.map +1 -1
  126. package/dist/Kinematic/Adapters/ConfigToParams.js.map +1 -1
  127. package/dist/Kinematic/Adapters/EntityToConfig.js.map +1 -1
  128. package/dist/Kinematic/Constants/KinematicConstants.js.map +1 -1
  129. package/dist/Kinematic/Utils/KinematicUtils.js.map +1 -1
  130. package/dist/Light/Adapters/ConfigToParams.js.map +1 -1
  131. package/dist/Light/Adapters/EntityToConfig.js.map +1 -1
  132. package/dist/Light/Factories/LightFactory.js.map +1 -1
  133. package/dist/Light/Registries/LightRegistry.js.map +1 -1
  134. package/dist/Light/Services/LightService.js.map +1 -1
  135. package/dist/Light/TransformDrive/LightTransformDrive.js.map +1 -1
  136. package/dist/Light/Utils/Utils.js.map +1 -1
  137. package/dist/Light/Wrappers/AbstractLightWrapper.js.map +1 -1
  138. package/dist/Light/Wrappers/AmbientLightWrapper.js.map +1 -1
  139. package/dist/Light/Wrappers/DirectionalLightWrapper.js.map +1 -1
  140. package/dist/Light/Wrappers/HemisphereLightWrapper.js.map +1 -1
  141. package/dist/Light/Wrappers/LightWrapperHelper.js.map +1 -1
  142. package/dist/Light/Wrappers/PointLightWrapper.js.map +1 -1
  143. package/dist/Light/Wrappers/RectAreaLightWrapper.js.map +1 -1
  144. package/dist/Light/Wrappers/SpotLightWrapper.js.map +1 -1
  145. package/dist/LoadingManager/Factories/LoadingManagerFactory.js.map +1 -1
  146. package/dist/LoadingManager/Registries/LoadingManagerRegistry.js.map +1 -1
  147. package/dist/LoadingManager/Services/LoadingManagerService.js.map +1 -1
  148. package/dist/LoadingManager/Wrappers/LoadingManagerWrapper.js.map +1 -1
  149. package/dist/Loop/Constants/LoopsDefaultSettings.js.map +1 -1
  150. package/dist/Loop/Entities/DeltaCalculator.js.map +1 -1
  151. package/dist/Loop/Entities/Loop.js.map +1 -1
  152. package/dist/Loop/Factories/LoopFactory.js.map +1 -1
  153. package/dist/Loop/Registries/LoopRegistry.js.map +1 -1
  154. package/dist/Loop/Services/LoopService.js.map +1 -1
  155. package/dist/Loop/Utils/LoopDebugUtils.js.map +1 -1
  156. package/dist/Loop/Utils/LoopUtils.js.map +1 -1
  157. package/dist/Material/Adapters/ConfigToParams.js.map +1 -1
  158. package/dist/Material/Adapters/EntityToConfig.js.map +1 -1
  159. package/dist/Material/Constants/Material/MaterialMap.js.map +1 -1
  160. package/dist/Material/Factories/MaterialFactory.js.map +1 -1
  161. package/dist/Material/Mixins/WithMaterial.js.map +1 -1
  162. package/dist/Material/Registries/MaterialRegistry.js.map +1 -1
  163. package/dist/Material/Services/MaterialService.js.map +1 -1
  164. package/dist/Material/Utils/MaterialUtils.js.map +1 -1
  165. package/dist/Material/Wrappers/MaterialWrapper.js.map +1 -1
  166. package/dist/Math/Utils/AnglesUtils.js.map +1 -1
  167. package/dist/Math/Utils/DistanceUtils.js.map +1 -1
  168. package/dist/Measurements/Constants/Distance.js.map +1 -1
  169. package/dist/Measurements/Constants/Time.js.map +1 -1
  170. package/dist/Measurements/Utils/MeasurementsUtils.d.ts +1 -1
  171. package/dist/Measurements/Utils/MeasurementsUtils.js.map +1 -1
  172. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy2dMixin.js.map +1 -1
  173. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy3dMixin.js.map +1 -1
  174. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy4dMixin.js.map +1 -1
  175. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByWMixin.js.map +1 -1
  176. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByXMixin.js.map +1 -1
  177. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByYMixin.js.map +1 -1
  178. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByZMixin.js.map +1 -1
  179. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition2dMixin.js.map +1 -1
  180. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition3dMixin.js.map +1 -1
  181. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition4dMixin.js.map +1 -1
  182. package/dist/Mixins/GameObjects/Mixins/Position/WithPositionMixin.js.map +1 -1
  183. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByWMixin.js.map +1 -1
  184. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByXMixin.js.map +1 -1
  185. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByXyzMixin.js.map +1 -1
  186. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByYMixin.js.map +1 -1
  187. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByZMixin.js.map +1 -1
  188. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationMixin.js.map +1 -1
  189. package/dist/Mixins/GameObjects/Mixins/Scalable/WithScaleMixin.js.map +1 -1
  190. package/dist/Mixins/GameObjects/Mixins/WithObject3D.js.map +1 -1
  191. package/dist/Mixins/Generics/DestroyableMixin.js.map +1 -1
  192. package/dist/Mixins/Generics/ExtractSerializableRegistrableFields.js.map +1 -1
  193. package/dist/Mixins/Generics/WithActiveEntityServiceMixin.js.map +1 -1
  194. package/dist/Mixins/Generics/WithActiveMixin.js.map +1 -1
  195. package/dist/Mixins/Generics/WithNameAndNameAccessorsMixin.js.map +1 -1
  196. package/dist/Mixins/Services/WithCreateFromConfigService.js.map +1 -1
  197. package/dist/Mixins/Services/WithCreateService.js.map +1 -1
  198. package/dist/Mixins/Services/WithFactoryService.js.map +1 -1
  199. package/dist/Mixins/Services/WithRegistryService.js.map +1 -1
  200. package/dist/Mixins/Services/WithSceneGetterService.js.map +1 -1
  201. package/dist/Mixins/Services/WithSerializableEntities.js.map +1 -1
  202. package/dist/Mixins/Services/WithSerializeAllResources.js.map +1 -1
  203. package/dist/Models3d/Adapters/ConfigToParams.js.map +1 -1
  204. package/dist/Models3d/Adapters/EntityToConfig.js.map +1 -1
  205. package/dist/Models3d/Entities/Model3d.js.map +1 -1
  206. package/dist/Models3d/Factories/Models3dFactory.js.map +1 -1
  207. package/dist/Models3d/Loaders/Loader3dCore.js.map +1 -1
  208. package/dist/Models3d/Loaders/Models3dLoader.js.map +1 -1
  209. package/dist/Models3d/Mixins/WithModel3dEntities.js.map +1 -1
  210. package/dist/Models3d/Registries/Model3dRawToModel3dConnectionRegistry.js.map +1 -1
  211. package/dist/Models3d/Registries/Models3dMetaInfoRegistry.js.map +1 -1
  212. package/dist/Models3d/Registries/Models3dRegistry.js.map +1 -1
  213. package/dist/Models3d/Registries/Models3dResourceAsyncRegistry.js.map +1 -1
  214. package/dist/Models3d/Services/Models3dService.js.map +1 -1
  215. package/dist/Models3d/Utils/SerializationUtils.js.map +1 -1
  216. package/dist/Models3d/Utils/UtilsModel3d.js.map +1 -1
  217. package/dist/Models3d/Utils/UtilsModels3dService.js.map +1 -1
  218. package/dist/Models3d/Utils/UtilsPrimitiveModels3d.js.map +1 -1
  219. package/dist/Mouse/Factories/MouseClickWatcherFactory.js.map +1 -1
  220. package/dist/Mouse/Factories/MousePositionWatcherFactory.js.map +1 -1
  221. package/dist/Mouse/Registries/MouseClickWatcherRegistry.js.map +1 -1
  222. package/dist/Mouse/Registries/MousePositionWatcherRegistry.js.map +1 -1
  223. package/dist/Mouse/Services/MouseService.js.map +1 -1
  224. package/dist/Mouse/Utils/MouseUtils.js.map +1 -1
  225. package/dist/Mouse/Watchers/MouseClickWatcher.js.map +1 -1
  226. package/dist/Mouse/Watchers/MousePositionWatcher.js.map +1 -1
  227. package/dist/Particles/Adapters/ConfigToParams.js.map +1 -1
  228. package/dist/Particles/Adapters/EntityToConfig.js.map +1 -1
  229. package/dist/Particles/Factories/ParticlesFactory.js.map +1 -1
  230. package/dist/Particles/Registries/ParticlesRegistry.js.map +1 -1
  231. package/dist/Particles/Services/ParticlesService.js.map +1 -1
  232. package/dist/Particles/TransformDrive/ParticlesTransformDrive.js.map +1 -1
  233. package/dist/Particles/Wrappers/ParticlesWrapper.js.map +1 -1
  234. package/dist/Physics/Adapters/EntityToConfig.d.ts +1 -1
  235. package/dist/Physics/Adapters/EntityToConfig.js.map +1 -1
  236. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js.map +1 -1
  237. package/dist/Physics/Adapters/PhysicsWorldConfigToParams.js.map +1 -1
  238. package/dist/Physics/Constants/RigidBodyTypesMap.d.ts +1 -1
  239. package/dist/Physics/Constants/RigidBodyTypesMap.js +1 -1
  240. package/dist/Physics/Constants/RigidBodyTypesMap.js.map +1 -1
  241. package/dist/Physics/Entities/PhysicsBody.js.map +1 -1
  242. package/dist/Physics/Entities/PhysicsBodyUtils.d.ts +1 -1
  243. package/dist/Physics/Entities/PhysicsBodyUtils.js +1 -1
  244. package/dist/Physics/Entities/PhysicsBodyUtils.js.map +1 -1
  245. package/dist/Physics/Factories/PhysicsBodyFactory.js.map +1 -1
  246. package/dist/Physics/Mixins/WithPhysicsBodyEntities.js.map +1 -1
  247. package/dist/Physics/Models/TPhysicsWorldService.d.ts +1 -1
  248. package/dist/Physics/Registries/PhysicsBodyRegistry.js.map +1 -1
  249. package/dist/Physics/Renderers/PhysicsDebugRenderer.d.ts +1 -1
  250. package/dist/Physics/Renderers/PhysicsDebugRenderer.js.map +1 -1
  251. package/dist/Physics/Services/PhysicsBodyService.js.map +1 -1
  252. package/dist/Physics/Services/PhysicsWorldService.js +1 -1
  253. package/dist/Physics/Services/PhysicsWorldService.js.map +1 -1
  254. package/dist/Physics/Utils/ParamsUtils.js.map +1 -1
  255. package/dist/Physics/Utils/PhysicsMovementUtils.d.ts +2 -2
  256. package/dist/Physics/Utils/PhysicsMovementUtils.js +1 -1
  257. package/dist/Physics/Utils/PhysicsMovementUtils.js.map +1 -1
  258. package/dist/Renderer/Adapters/ConfigToParams.js.map +1 -1
  259. package/dist/Renderer/Adapters/EntityToConfig.js.map +1 -1
  260. package/dist/Renderer/Factories/RendererFactory.js.map +1 -1
  261. package/dist/Renderer/Loop/RendererLoopEffect.js.map +1 -1
  262. package/dist/Renderer/Mixins/WithThreeJsRendererParamsAccessors.js.map +1 -1
  263. package/dist/Renderer/Mixins/WithThreeJsRendererPropsAccessors.js.map +1 -1
  264. package/dist/Renderer/Registries/RendererRegistry.js.map +1 -1
  265. package/dist/Renderer/Services/RendererService.js.map +1 -1
  266. package/dist/Renderer/Wrappers/Accessors.js.map +1 -1
  267. package/dist/Renderer/Wrappers/RendererWrapper.js.map +1 -1
  268. package/dist/Scene/Adapters/ConfigToParams.js.map +1 -1
  269. package/dist/Scene/Adapters/EntityToConfig.js.map +1 -1
  270. package/dist/Scene/Factories/SceneFactory.js.map +1 -1
  271. package/dist/Scene/Registries/SceneRegistry.js.map +1 -1
  272. package/dist/Scene/Services/ScenesService.js.map +1 -1
  273. package/dist/Scene/Wrappers/SceneWrapper.js.map +1 -1
  274. package/dist/Space/Adapters/ConfigToParams.js.map +1 -1
  275. package/dist/Space/Adapters/EntityToConfig.js.map +1 -1
  276. package/dist/Space/Entities/Space.js.map +1 -1
  277. package/dist/Space/Entities/SpaceFromConfig.js.map +1 -1
  278. package/dist/Space/Factories/SpaceFactory.js.map +1 -1
  279. package/dist/Space/Registries/SpaceRegistry.js.map +1 -1
  280. package/dist/Space/Services/SpaceService.js.map +1 -1
  281. package/dist/Space/Utils/CanvasUtils.js.map +1 -1
  282. package/dist/Space/Utils/CreateEntitiesUtils.js.map +1 -1
  283. package/dist/Space/Utils/CreateLoopsUtils.js.map +1 -1
  284. package/dist/Space/Utils/LoadResourcesUtils.js.map +1 -1
  285. package/dist/Space/Utils/PrepareServicesUtils.js.map +1 -1
  286. package/dist/Space/Utils/SchemaValidationUtils.js.map +1 -1
  287. package/dist/Space/Validators/SchemasValidator.js.map +1 -1
  288. package/dist/Space/Validators/ValidateConfig.js.map +1 -1
  289. package/dist/Space/Validators/ValidateSpace.js.map +1 -1
  290. package/dist/Spatial/Adapters/ConfigToParams.js.map +1 -1
  291. package/dist/Spatial/Adapters/ConfigToParamsSpatialData.js.map +1 -1
  292. package/dist/Spatial/Adapters/EntityToConfig.js.map +1 -1
  293. package/dist/Spatial/Factories/SpatialGridFactory.js.map +1 -1
  294. package/dist/Spatial/Mixins/WithReactivePosition.js.map +1 -1
  295. package/dist/Spatial/Mixins/WithReactiveRotation.js.map +1 -1
  296. package/dist/Spatial/Mixins/WithSpatial.js.map +1 -1
  297. package/dist/Spatial/Mixins/WithUpdateSpatialCell.js.map +1 -1
  298. package/dist/Spatial/Registries/SpatialGridRegistry.js.map +1 -1
  299. package/dist/Spatial/Services/SpatialGridService.js.map +1 -1
  300. package/dist/Spatial/Services/SpatialHelper.js.map +1 -1
  301. package/dist/Spatial/Wrappers/SpatialCellWrapper.js.map +1 -1
  302. package/dist/Spatial/Wrappers/SpatialGridWrapper.js.map +1 -1
  303. package/dist/Text/Adapters/ConfigToParams.js.map +1 -1
  304. package/dist/Text/Adapters/EntityToConfig.js.map +1 -1
  305. package/dist/Text/Factories/TextFactory.js.map +1 -1
  306. package/dist/Text/Loop/TextLoopEffect.js.map +1 -1
  307. package/dist/Text/Registries/Text2dRegistry.js.map +1 -1
  308. package/dist/Text/Registries/Text2dRendererRegistry.js.map +1 -1
  309. package/dist/Text/Registries/Text3dRegistry.js.map +1 -1
  310. package/dist/Text/Registries/Text3dRendererRegistry.js.map +1 -1
  311. package/dist/Text/Registries/Text3dTextureRegistry.js.map +1 -1
  312. package/dist/Text/Renderers/Text2dRenderer.js.map +1 -1
  313. package/dist/Text/Renderers/Text3dRenderer.js.map +1 -1
  314. package/dist/Text/Renderers/TextRendererBuilder.js.map +1 -1
  315. package/dist/Text/Services/TextService.js.map +1 -1
  316. package/dist/Text/TransformDrive/TextTransformDrive.js.map +1 -1
  317. package/dist/Text/Utils/TextUtils.js.map +1 -1
  318. package/dist/Text/Wrappers/Accessors.js.map +1 -1
  319. package/dist/Text/Wrappers/Text2dWrapper.js.map +1 -1
  320. package/dist/Text/Wrappers/Text3dTextureWrapper.js.map +1 -1
  321. package/dist/Text/Wrappers/Text3dWrapper.js.map +1 -1
  322. package/dist/Text/Wrappers/TextTextureWrapper.js.map +1 -1
  323. package/dist/Text/Wrappers/TextWrapper.js.map +1 -1
  324. package/dist/Text/Wrappers/TextWrapperBuilder.js.map +1 -1
  325. package/dist/Text/Wrappers/TextWrapperHelper.js.map +1 -1
  326. package/dist/Texture/Loaders/TexturesLoader.js.map +1 -1
  327. package/dist/Texture/Registries/TextureMetaInfoRegistry.js.map +1 -1
  328. package/dist/Texture/Registries/TextureResourceAsyncRegistry.js.map +1 -1
  329. package/dist/Texture/Services/TextureService.js.map +1 -1
  330. package/dist/Texture/Utils/TextureServiceHelper.js.map +1 -1
  331. package/dist/ThreeLib/Utils/Object3dUtils.js.map +1 -1
  332. package/dist/TransformDrive/Adapters/EntityToConfig.js.map +1 -1
  333. package/dist/TransformDrive/Entities/Agents/AbstractTransformAgent.js.map +1 -1
  334. package/dist/TransformDrive/Entities/Agents/ConnectedTransformAgent.js.map +1 -1
  335. package/dist/TransformDrive/Entities/Agents/DefaultTransformAgent.js.map +1 -1
  336. package/dist/TransformDrive/Entities/Agents/KinematicTransformAgent.js.map +1 -1
  337. package/dist/TransformDrive/Entities/Agents/PhysicsTransformAgent.js.map +1 -1
  338. package/dist/TransformDrive/Entities/Connectors/DriveToTargetConnector.js.map +1 -1
  339. package/dist/TransformDrive/Entities/Drive/TransformDrive.js.map +1 -1
  340. package/dist/TransformDrive/Factories/TransformDriveFactory.js.map +1 -1
  341. package/dist/TransformDrive/Mixins/WithMutablePositionConnector.js.map +1 -1
  342. package/dist/TransformDrive/Mixins/WithMutableRotationConnector.js.map +1 -1
  343. package/dist/TransformDrive/Mixins/WithMutableScaleConnector.js.map +1 -1
  344. package/dist/TransformDrive/Mixins/WithProxyTransform.js.map +1 -1
  345. package/dist/TransformDrive/Registries/TransformDriveRegistry.js.map +1 -1
  346. package/dist/TransformDrive/Services/TransformDriveService.js.map +1 -1
  347. package/dist/TransformDrive/Utils/ActorDriveUtils.js.map +1 -1
  348. package/dist/TransformDrive/Utils/AgentUtils.js.map +1 -1
  349. package/dist/TransformDrive/Utils/KinematicAgentUtils.js.map +1 -1
  350. package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.d.ts +1 -1
  351. package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.js.map +1 -1
  352. package/dist/TransformDrive/Utils/TransformDriveUtils.js.map +1 -1
  353. package/dist/Utils/CheckUtils.js.map +1 -1
  354. package/dist/Utils/CoordsUtils.js.map +1 -1
  355. package/dist/Utils/DestroyUtils.js.map +1 -1
  356. package/dist/Utils/DomUtils.js.map +1 -1
  357. package/dist/Utils/EntityUtils.js.map +1 -1
  358. package/dist/Utils/RegistryAsyncUtils.js.map +1 -1
  359. package/dist/Utils/RegistryUtils.js.map +1 -1
  360. package/dist/Utils/RxJsUtils.js.map +1 -1
  361. package/dist/Utils/ScreenUtils.js.map +1 -1
  362. package/dist/Utils/TagsUtils.js.map +1 -1
  363. package/dist/Utils/TransformUtils.js.map +1 -1
  364. package/dist/Utils/WrapperHelpers.js.map +1 -1
  365. package/dist/assets/Loop.worker-D1bMWlsN.js.map +1 -1
  366. package/dist/packages/anarchy-shared/src/Utils/AsyncUtils.js.map +1 -1
  367. package/dist/packages/anarchy-shared/src/Utils/CssUtils.js.map +1 -1
  368. package/dist/packages/anarchy-shared/src/Utils/ObjectUtils.js.map +1 -1
  369. package/legal/NOTICE.md +1 -1
  370. package/legal/THIRD_PARTY_LICENSES.md +1 -1
  371. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractEntity.js","sources":["../../../src/Abstract/Entities/AbstractEntity.ts"],"sourcesContent":["import type { EntityType } from '@Anarchy/Engine/Abstract/Constants';\nimport type { TAbstractEntity, TEntityParams } from '@Anarchy/Engine/Abstract/Models';\nimport type { TDestroyable, TNoSpread, TRegistrable, TWithName } from '@Anarchy/Engine/Mixins';\nimport { destroyableMixin, withNameAndNameAccessorsMixin } from '@Anarchy/Engine/Mixins';\nimport { genericEntityCleanUp, mergeAll } from '@Anarchy/Engine/Utils';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { Subscription } from 'rxjs';\n\nexport function AbstractEntity<T extends Record<string, any>, P extends TEntityParams>(entities: T, type: EntityType | string, params: P): TAbstractEntity<T> {\n const id: string = isDefined(params.id) ? params.id : type + '_' + nanoid();\n\n if (isNotDefined(params.name)) throw new TypeError('Expected entity named \"' + id + '\"');\n\n const destroyable: TDestroyable = destroyableMixin();\n\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n Object.values(entities).forEach(genericEntityCleanUp);\n destroySub$.unsubscribe();\n });\n\n const partialResult: T & TRegistrable & TNoSpread & TWithName & TDestroyable = Object.assign(\n {\n ...params,\n id,\n ...entities,\n tags: params.tags ?? []\n },\n destroyable\n );\n\n const result = mergeAll(partialResult, destroyable, withNameAndNameAccessorsMixin(partialResult));\n\n if (isDefined(params.name)) result.setName(params.name);\n\n return result;\n}\n"],"names":["AbstractEntity","entities","type","params","id","isDefined","nanoid","isNotDefined","name","TypeError","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","Object","values","forEach","genericEntityCleanUp","unsubscribe","partialResult","assign","tags","result","mergeAll","withNameAndNameAccessorsMixin","setName"],"mappings":"0cASO,SAASA,eAAuEC,SAAaC,KAA2BC,QAC7H,MAAMC,GAAaC,UAAUF,OAAOC,IAAMD,OAAOC,GAAKF,KAAO,IAAMI,SAEnE,GAAIC,aAAaJ,OAAOK,YAAa,IAAIC,UAAU,0BAA4BL,GAAK,KAEpF,MAAMM,YAA4BC,mBAE5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC/DC,OAAOC,OAAOf,UAAUgB,QAAQC,sBAChCN,YAAYO,gBAGRC,cAAyEL,OAAOM,OACpF,IACKlB,OACHC,SACGH,SACHqB,KAAMnB,OAAOmB,MAAQ,IAEvBZ,aAGIa,OAASC,SAASJ,cAAeV,YAAae,8BAA8BL,gBAIlF,OAFIf,UAAUF,OAAOK,OAAOe,OAAOG,QAAQvB,OAAOK,MAE3Ce,MACT"}
1
+ {"version":3,"file":"AbstractEntity.js","sources":["../../../src/Abstract/Entities/AbstractEntity.ts"],"sourcesContent":["import type { EntityType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type { TAbstractEntity, TEntityParams } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { TDestroyable, TNoSpread, TRegistrable, TWithName } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin, withNameAndNameAccessorsMixin } from '@hellpig/anarchy-engine/Mixins';\nimport { genericEntityCleanUp, mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport { isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { Subscription } from 'rxjs';\n\nexport function AbstractEntity<T extends Record<string, any>, P extends TEntityParams>(entities: T, type: EntityType | string, params: P): TAbstractEntity<T> {\n const id: string = isDefined(params.id) ? params.id : type + '_' + nanoid();\n\n if (isNotDefined(params.name)) throw new TypeError('Expected entity named \"' + id + '\"');\n\n const destroyable: TDestroyable = destroyableMixin();\n\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n Object.values(entities).forEach(genericEntityCleanUp);\n destroySub$.unsubscribe();\n });\n\n const partialResult: T & TRegistrable & TNoSpread & TWithName & TDestroyable = Object.assign(\n {\n ...params,\n id,\n ...entities,\n tags: params.tags ?? []\n },\n destroyable\n );\n\n const result = mergeAll(partialResult, destroyable, withNameAndNameAccessorsMixin(partialResult));\n\n if (isDefined(params.name)) result.setName(params.name);\n\n return result;\n}\n"],"names":["AbstractEntity","entities","type","params","id","isDefined","nanoid","isNotDefined","name","TypeError","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","Object","values","forEach","genericEntityCleanUp","unsubscribe","partialResult","assign","tags","result","mergeAll","withNameAndNameAccessorsMixin","setName"],"mappings":"0cASO,SAASA,eAAuEC,SAAaC,KAA2BC,QAC7H,MAAMC,GAAaC,UAAUF,OAAOC,IAAMD,OAAOC,GAAKF,KAAO,IAAMI,SAEnE,GAAIC,aAAaJ,OAAOK,YAAa,IAAIC,UAAU,0BAA4BL,GAAK,KAEpF,MAAMM,YAA4BC,mBAE5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC/DC,OAAOC,OAAOf,UAAUgB,QAAQC,sBAChCN,YAAYO,gBAGRC,cAAyEL,OAAOM,OACpF,IACKlB,OACHC,SACGH,SACHqB,KAAMnB,OAAOmB,MAAQ,IAEvBZ,aAGIa,OAASC,SAASJ,cAAeV,YAAae,8BAA8BL,gBAIlF,OAFIf,UAAUF,OAAOK,OAAOe,OAAOG,QAAQvB,OAAOK,MAE3Ce,MACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractFactory.js","sources":["../../../src/Abstract/Factories/AbstractFactory.ts"],"sourcesContent":["import type { FactoryType } from '@Anarchy/Engine/Abstract/Constants';\nimport type { TFactory } from '@Anarchy/Engine/Abstract/Models';\nimport { nanoid } from 'nanoid';\n\nexport function AbstractFactory<T, P>(type: FactoryType | string): Omit<TFactory<T, P>, 'create'> {\n return { id: type + '_factory_' + nanoid(), type };\n}\n"],"names":["AbstractFactory","type","id","nanoid"],"mappings":"uFAIO,SAASA,gBAAsBC,MACpC,MAAO,CAAEC,GAAID,KAAO,YAAcE,SAAUF,UAC9C"}
1
+ {"version":3,"file":"AbstractFactory.js","sources":["../../../src/Abstract/Factories/AbstractFactory.ts"],"sourcesContent":["import type { FactoryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type { TFactory } from '@hellpig/anarchy-engine/Abstract/Models';\nimport { nanoid } from 'nanoid';\n\nexport function AbstractFactory<T, P>(type: FactoryType | string): Omit<TFactory<T, P>, 'create'> {\n return { id: type + '_factory_' + nanoid(), type };\n}\n"],"names":["AbstractFactory","type","id","nanoid"],"mappings":"uFAIO,SAASA,gBAAsBC,MACpC,MAAO,CAAEC,GAAID,KAAO,YAAcE,SAAUF,UAC9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveFactory.js","sources":["../../../src/Abstract/Factories/ReactiveFactory.ts"],"sourcesContent":["import type { FactoryType } from '@Anarchy/Engine/Abstract/Constants';\nimport type { TCreateEntityFactoryFn, TReactiveFactory } from '@Anarchy/Engine/Abstract/Models';\nimport type { TDestroyable } from '@Anarchy/Engine/Mixins';\nimport { destroyableMixin } from '@Anarchy/Engine/Mixins';\nimport type { Subscription } from 'rxjs';\nimport { Subject } from 'rxjs';\n\nimport { AbstractFactory } from './AbstractFactory';\n\nexport function ReactiveFactory<T, P, D = Record<string, any> | undefined, O extends Record<string, any> | undefined = undefined>(\n type: FactoryType | string,\n createEntityFn: TCreateEntityFactoryFn<T, P, D, O>\n): TReactiveFactory<T, P, D, O> {\n const entityCreated$: Subject<T> = new Subject<T>();\n\n function create(params: P, dependencies: D, options?: O): T {\n const entity: T = createEntityFn(params, dependencies, options);\n entityCreated$.next(entity);\n return entity;\n }\n\n const destroyable: TDestroyable = destroyableMixin();\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n entityCreated$.complete();\n });\n\n return Object.assign(AbstractFactory(type), {\n entityCreated$: entityCreated$.asObservable(),\n create,\n ...destroyable\n });\n}\n"],"names":["ReactiveFactory","type","createEntityFn","entityCreated$","Subject","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","unsubscribe","complete","Object","assign","AbstractFactory","asObservable","create","params","dependencies","options","entity","next"],"mappings":"qMASO,SAASA,gBACdC,KACAC,gBAEA,MAAMC,eAA6B,IAAIC,QAQjCC,YAA4BC,mBAC5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC/DF,YAAYG,cAEZP,eAAeQ,aAGjB,OAAOC,OAAOC,OAAOC,gBAAgBb,MAAO,CAC1CE,eAAgBA,eAAeY,eAC/BC,OAfF,SAAgBC,OAAWC,aAAiBC,SAC1C,MAAMC,OAAYlB,eAAee,OAAQC,aAAcC,SAEvD,OADAhB,eAAekB,KAAKD,QACbA,MACT,KAYKf,aAEP"}
1
+ {"version":3,"file":"ReactiveFactory.js","sources":["../../../src/Abstract/Factories/ReactiveFactory.ts"],"sourcesContent":["import type { FactoryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type { TCreateEntityFactoryFn, TReactiveFactory } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { TDestroyable } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin } from '@hellpig/anarchy-engine/Mixins';\nimport type { Subscription } from 'rxjs';\nimport { Subject } from 'rxjs';\n\nimport { AbstractFactory } from './AbstractFactory';\n\nexport function ReactiveFactory<T, P, D = Record<string, any> | undefined, O extends Record<string, any> | undefined = undefined>(\n type: FactoryType | string,\n createEntityFn: TCreateEntityFactoryFn<T, P, D, O>\n): TReactiveFactory<T, P, D, O> {\n const entityCreated$: Subject<T> = new Subject<T>();\n\n function create(params: P, dependencies: D, options?: O): T {\n const entity: T = createEntityFn(params, dependencies, options);\n entityCreated$.next(entity);\n return entity;\n }\n\n const destroyable: TDestroyable = destroyableMixin();\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n entityCreated$.complete();\n });\n\n return Object.assign(AbstractFactory(type), {\n entityCreated$: entityCreated$.asObservable(),\n create,\n ...destroyable\n });\n}\n"],"names":["ReactiveFactory","type","createEntityFn","entityCreated$","Subject","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","unsubscribe","complete","Object","assign","AbstractFactory","asObservable","create","params","dependencies","options","entity","next"],"mappings":"qMASO,SAASA,gBACdC,KACAC,gBAEA,MAAMC,eAA6B,IAAIC,QAQjCC,YAA4BC,mBAC5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC/DF,YAAYG,cAEZP,eAAeQ,aAGjB,OAAOC,OAAOC,OAAOC,gBAAgBb,MAAO,CAC1CE,eAAgBA,eAAeY,eAC/BC,OAfF,SAAgBC,OAAWC,aAAiBC,SAC1C,MAAMC,OAAYlB,eAAee,OAAQC,aAAcC,SAEvD,OADAhB,eAAekB,KAAKD,QACbA,MACT,KAYKf,aAEP"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractLoader.js","sources":["../../../src/Abstract/Loaders/AbstractLoader.ts"],"sourcesContent":["import type { LoaderType } from '@Anarchy/Engine/Abstract/Constants';\nimport type {\n TAbstractLoadedResourcePack,\n TAbstractLoader,\n TAbstractOnLoadFunction,\n TAbstractResourceAsyncRegistry,\n TAbstractResourceConfig,\n TAbstractSimpleRegistry\n} from '@Anarchy/Engine/Abstract/Models';\nimport type { TDestroyable } from '@Anarchy/Engine/Mixins';\nimport { destroyableMixin } from '@Anarchy/Engine/Mixins';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { Subscription } from 'rxjs';\nimport { Subject } from 'rxjs';\nimport type { Loader } from 'three';\n\nexport function AbstractLoader<L extends Loader<any>, R extends TAbstractResourceAsyncRegistry<T>, T, M extends TAbstractSimpleRegistry<RC>, RC extends TAbstractResourceConfig>(\n loader: L,\n registry: R,\n metaInfoRegistry: M,\n type: LoaderType\n): TAbstractLoader<T, RC, R, M> {\n const loaded$: Subject<TAbstractLoadedResourcePack<T, RC>> = new Subject<TAbstractLoadedResourcePack<T, RC>>();\n const id: string = type + '_' + nanoid();\n let onLoadedFn: TAbstractOnLoadFunction<T> | undefined = undefined;\n\n const loadFromConfigAsync = (configs: ReadonlyArray<RC>): Promise<ReadonlyArray<T>> => Promise.all(configs.map((config: RC): Promise<T> => loadAsync(config)));\n\n function loadAsync(config: RC, onProgress?: (event: ProgressEvent) => void): Promise<T> {\n const { url, isForce, name, options } = config;\n\n if (!isForce) {\n const resource: T | undefined = registry.findByKey(name);\n if (isDefined(resource)) return Promise.resolve(resource);\n }\n\n return loader.loadAsync(url, onProgress).then((loaded: TWriteable<T>): T => {\n const res: T = isDefined(onLoadedFn) ? onLoadedFn(loaded, options) : loaded;\n\n const resource: T | undefined = registry.findByKey(name);\n if (isNotDefined(resource)) registry.add(name, res);\n else registry.replace(name, res);\n\n const metaInfo: RC | undefined = metaInfoRegistry.findByKey(name);\n if (isNotDefined(metaInfo)) metaInfoRegistry.add(name, config);\n else metaInfoRegistry.replace(name, config);\n\n loaded$.next({ resource: res, options: config });\n return res;\n });\n }\n\n const loadListAsync = (packs: ReadonlyArray<RC>): Promise<ReadonlyArray<T>> => Promise.all(packs.map((pack: RC): Promise<T> => loadAsync(pack)));\n\n const setOnLoadedFn = (onLoaded: TAbstractOnLoadFunction<T>): void => void (onLoadedFn = onLoaded);\n\n const destroyable: TDestroyable = destroyableMixin();\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n (loader as any).clearCache?.();\n\n destroySub$.unsubscribe();\n loaded$.complete();\n\n registry.destroy$.next();\n metaInfoRegistry.destroy$.next();\n });\n\n return {\n id,\n type,\n loadAsync,\n loadListAsync,\n loadFromConfigAsync,\n setOnLoadedFn,\n getRegistry: (): R => registry,\n getMetaInfoRegistry: (): M => metaInfoRegistry,\n loaded$,\n ...destroyable\n };\n}\n"],"names":["AbstractLoader","loader","registry","metaInfoRegistry","type","loaded$","Subject","id","nanoid","onLoadedFn","loadAsync","config","onProgress","url","isForce","name","options","resource","findByKey","isDefined","Promise","resolve","then","loaded","res","isNotDefined","add","replace","metaInfo","next","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","clearCache","unsubscribe","complete","loadListAsync","packs","all","map","pack","loadFromConfigAsync","configs","setOnLoadedFn","onLoaded","getRegistry","getMetaInfoRegistry"],"mappings":"oUAkBO,SAASA,eACdC,OACAC,SACAC,iBACAC,MAEA,MAAMC,QAAuD,IAAIC,QAC3DC,GAAaH,KAAO,IAAMI,SAChC,IAAIC,WAIJ,SAASC,UAAUC,OAAYC,YAC7B,MAAMC,IAAEA,IAAAC,QAAKA,QAAAC,KAASA,KAAAC,QAAMA,SAAYL,OAExC,IAAKG,QAAS,CACZ,MAAMG,SAA0Bf,SAASgB,UAAUH,MACnD,GAAII,UAAUF,UAAW,OAAOG,QAAQC,QAAQJ,SAClD,CAEA,OAAOhB,OAAOS,UAAUG,IAAKD,YAAYU,KAAMC,SAC7C,MAAMC,IAASL,UAAUV,YAAcA,WAAWc,OAAQP,SAAWO,OAE/DN,SAA0Bf,SAASgB,UAAUH,MAC/CU,aAAaR,UAAWf,SAASwB,IAAIX,KAAMS,KAC1CtB,SAASyB,QAAQZ,KAAMS,KAE5B,MAAMI,SAA2BzB,iBAAiBe,UAAUH,MAK5D,OAJIU,aAAaG,UAAWzB,iBAAiBuB,IAAIX,KAAMJ,QAClDR,iBAAiBwB,QAAQZ,KAAMJ,QAEpCN,QAAQwB,KAAK,CAAEZ,SAAUO,IAAKR,QAASL,SAChCa,KAEX,CAEA,MAIMM,YAA4BC,mBAC5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC9DjC,OAAekC,eAEhBH,YAAYI,cACZ/B,QAAQgC,WAERnC,SAAS+B,SAASJ,OAClB1B,iBAAiB8B,SAASJ,SAG5B,MAAO,CACLtB,MACAH,UACAM,oBACA4B,cAnBqBC,OAAwDnB,QAAQoB,IAAID,MAAME,IAAKC,MAAyBhC,UAAUgC,QAoBvIC,oBA9C2BC,SAA0DxB,QAAQoB,IAAII,QAAQH,IAAK9B,QAA2BD,UAAUC,UA+CnJkC,cAnBqBC,WAAqDrC,WAAaqC,UAoBvFC,YAAa,IAAS7C,SACtB8C,oBAAqB,IAAS7C,iBAC9BE,mBACGyB,YAEP"}
1
+ {"version":3,"file":"AbstractLoader.js","sources":["../../../src/Abstract/Loaders/AbstractLoader.ts"],"sourcesContent":["import type { LoaderType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type {\n TAbstractLoadedResourcePack,\n TAbstractLoader,\n TAbstractOnLoadFunction,\n TAbstractResourceAsyncRegistry,\n TAbstractResourceConfig,\n TAbstractSimpleRegistry\n} from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { TDestroyable } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin } from '@hellpig/anarchy-engine/Mixins';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { Subscription } from 'rxjs';\nimport { Subject } from 'rxjs';\nimport type { Loader } from 'three';\n\nexport function AbstractLoader<L extends Loader<any>, R extends TAbstractResourceAsyncRegistry<T>, T, M extends TAbstractSimpleRegistry<RC>, RC extends TAbstractResourceConfig>(\n loader: L,\n registry: R,\n metaInfoRegistry: M,\n type: LoaderType\n): TAbstractLoader<T, RC, R, M> {\n const loaded$: Subject<TAbstractLoadedResourcePack<T, RC>> = new Subject<TAbstractLoadedResourcePack<T, RC>>();\n const id: string = type + '_' + nanoid();\n let onLoadedFn: TAbstractOnLoadFunction<T> | undefined = undefined;\n\n const loadFromConfigAsync = (configs: ReadonlyArray<RC>): Promise<ReadonlyArray<T>> => Promise.all(configs.map((config: RC): Promise<T> => loadAsync(config)));\n\n function loadAsync(config: RC, onProgress?: (event: ProgressEvent) => void): Promise<T> {\n const { url, isForce, name, options } = config;\n\n if (!isForce) {\n const resource: T | undefined = registry.findByKey(name);\n if (isDefined(resource)) return Promise.resolve(resource);\n }\n\n return loader.loadAsync(url, onProgress).then((loaded: TWriteable<T>): T => {\n const res: T = isDefined(onLoadedFn) ? onLoadedFn(loaded, options) : loaded;\n\n const resource: T | undefined = registry.findByKey(name);\n if (isNotDefined(resource)) registry.add(name, res);\n else registry.replace(name, res);\n\n const metaInfo: RC | undefined = metaInfoRegistry.findByKey(name);\n if (isNotDefined(metaInfo)) metaInfoRegistry.add(name, config);\n else metaInfoRegistry.replace(name, config);\n\n loaded$.next({ resource: res, options: config });\n return res;\n });\n }\n\n const loadListAsync = (packs: ReadonlyArray<RC>): Promise<ReadonlyArray<T>> => Promise.all(packs.map((pack: RC): Promise<T> => loadAsync(pack)));\n\n const setOnLoadedFn = (onLoaded: TAbstractOnLoadFunction<T>): void => void (onLoadedFn = onLoaded);\n\n const destroyable: TDestroyable = destroyableMixin();\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n (loader as any).clearCache?.();\n\n destroySub$.unsubscribe();\n loaded$.complete();\n\n registry.destroy$.next();\n metaInfoRegistry.destroy$.next();\n });\n\n return {\n id,\n type,\n loadAsync,\n loadListAsync,\n loadFromConfigAsync,\n setOnLoadedFn,\n getRegistry: (): R => registry,\n getMetaInfoRegistry: (): M => metaInfoRegistry,\n loaded$,\n ...destroyable\n };\n}\n"],"names":["AbstractLoader","loader","registry","metaInfoRegistry","type","loaded$","Subject","id","nanoid","onLoadedFn","loadAsync","config","onProgress","url","isForce","name","options","resource","findByKey","isDefined","Promise","resolve","then","loaded","res","isNotDefined","add","replace","metaInfo","next","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","clearCache","unsubscribe","complete","loadListAsync","packs","all","map","pack","loadFromConfigAsync","configs","setOnLoadedFn","onLoaded","getRegistry","getMetaInfoRegistry"],"mappings":"oUAkBO,SAASA,eACdC,OACAC,SACAC,iBACAC,MAEA,MAAMC,QAAuD,IAAIC,QAC3DC,GAAaH,KAAO,IAAMI,SAChC,IAAIC,WAIJ,SAASC,UAAUC,OAAYC,YAC7B,MAAMC,IAAEA,IAAAC,QAAKA,QAAAC,KAASA,KAAAC,QAAMA,SAAYL,OAExC,IAAKG,QAAS,CACZ,MAAMG,SAA0Bf,SAASgB,UAAUH,MACnD,GAAII,UAAUF,UAAW,OAAOG,QAAQC,QAAQJ,SAClD,CAEA,OAAOhB,OAAOS,UAAUG,IAAKD,YAAYU,KAAMC,SAC7C,MAAMC,IAASL,UAAUV,YAAcA,WAAWc,OAAQP,SAAWO,OAE/DN,SAA0Bf,SAASgB,UAAUH,MAC/CU,aAAaR,UAAWf,SAASwB,IAAIX,KAAMS,KAC1CtB,SAASyB,QAAQZ,KAAMS,KAE5B,MAAMI,SAA2BzB,iBAAiBe,UAAUH,MAK5D,OAJIU,aAAaG,UAAWzB,iBAAiBuB,IAAIX,KAAMJ,QAClDR,iBAAiBwB,QAAQZ,KAAMJ,QAEpCN,QAAQwB,KAAK,CAAEZ,SAAUO,IAAKR,QAASL,SAChCa,KAEX,CAEA,MAIMM,YAA4BC,mBAC5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC9DjC,OAAekC,eAEhBH,YAAYI,cACZ/B,QAAQgC,WAERnC,SAAS+B,SAASJ,OAClB1B,iBAAiB8B,SAASJ,SAG5B,MAAO,CACLtB,MACAH,UACAM,oBACA4B,cAnBqBC,OAAwDnB,QAAQoB,IAAID,MAAME,IAAKC,MAAyBhC,UAAUgC,QAoBvIC,oBA9C2BC,SAA0DxB,QAAQoB,IAAII,QAAQH,IAAK9B,QAA2BD,UAAUC,UA+CnJkC,cAnBqBC,WAAqDrC,WAAaqC,UAoBvFC,YAAa,IAAS7C,SACtB8C,oBAAqB,IAAS7C,iBAC9BE,mBACGyB,YAEP"}
@@ -1 +1 @@
1
- {"version":3,"file":"WithWrapperIdMixin.js","sources":["../../../src/Abstract/Mixins/WithWrapperIdMixin.ts"],"sourcesContent":["import type { TWithUserData, TWithWrapperId } from '@Anarchy/Engine/Abstract/Models';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\n\nexport function withWrapperIdMixin<T extends TWriteable<TWithUserData>>(entity: T): TWithWrapperId {\n function setWrapperId(id: string): void {\n // eslint-disable-next-line functional/immutable-data\n if (isNotDefined(entity.userData)) entity.userData = {};\n // eslint-disable-next-line functional/immutable-data\n entity.userData.wrapperId = id;\n }\n\n function getWrapperId(): string | undefined {\n return entity?.userData?.wrapperId as string | undefined;\n }\n\n return {\n setWrapperId,\n getWrapperId\n };\n}\n\nexport function withNoWrapperIdMixin<T extends TWriteable<TWithUserData>>(entity: T): TWithWrapperId {\n function setWrapperId(id: string): void | never {\n throw new Error(`setWrapperId is not allowed for this entity (id: \"${(entity as any).id}\", wrapperId: \"${id}\")`);\n }\n\n function getWrapperId(): string | undefined | never {\n throw new Error(`getWrapperId is not allowed for this entity (\"${(entity as any).id}\")`);\n }\n\n return {\n setWrapperId,\n getWrapperId\n };\n}\n"],"names":["withWrapperIdMixin","entity","setWrapperId","id","isNotDefined","userData","wrapperId","getWrapperId","withNoWrapperIdMixin","Error"],"mappings":"gFAIO,SAASA,mBAAwDC,QAYtE,MAAO,CACLC,aAZF,SAAsBC,IAEhBC,aAAaH,OAAOI,YAAWJ,OAAOI,SAAW,CAAA,GAErDJ,OAAOI,SAASC,UAAYH,EAC9B,EAQEI,aANF,WACE,OAAON,QAAQI,UAAUC,SAC3B,EAMF,CAEO,SAASE,qBAA0DP,QASxE,MAAO,CACLC,aATF,SAAsBC,IACpB,MAAM,IAAIM,MAAM,qDAAsDR,OAAeE,oBAAoBA,OAC3G,EAQEI,aANF,WACE,MAAM,IAAIE,MAAM,iDAAkDR,OAAeE,OACnF,EAMF"}
1
+ {"version":3,"file":"WithWrapperIdMixin.js","sources":["../../../src/Abstract/Mixins/WithWrapperIdMixin.ts"],"sourcesContent":["import type { TWithUserData, TWithWrapperId } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isNotDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function withWrapperIdMixin<T extends TWriteable<TWithUserData>>(entity: T): TWithWrapperId {\n function setWrapperId(id: string): void {\n // eslint-disable-next-line functional/immutable-data\n if (isNotDefined(entity.userData)) entity.userData = {};\n // eslint-disable-next-line functional/immutable-data\n entity.userData.wrapperId = id;\n }\n\n function getWrapperId(): string | undefined {\n return entity?.userData?.wrapperId as string | undefined;\n }\n\n return {\n setWrapperId,\n getWrapperId\n };\n}\n\nexport function withNoWrapperIdMixin<T extends TWriteable<TWithUserData>>(entity: T): TWithWrapperId {\n function setWrapperId(id: string): void | never {\n throw new Error(`setWrapperId is not allowed for this entity (id: \"${(entity as any).id}\", wrapperId: \"${id}\")`);\n }\n\n function getWrapperId(): string | undefined | never {\n throw new Error(`getWrapperId is not allowed for this entity (\"${(entity as any).id}\")`);\n }\n\n return {\n setWrapperId,\n getWrapperId\n };\n}\n"],"names":["withWrapperIdMixin","entity","setWrapperId","id","isNotDefined","userData","wrapperId","getWrapperId","withNoWrapperIdMixin","Error"],"mappings":"gFAIO,SAASA,mBAAwDC,QAYtE,MAAO,CACLC,aAZF,SAAsBC,IAEhBC,aAAaH,OAAOI,YAAWJ,OAAOI,SAAW,CAAA,GAErDJ,OAAOI,SAASC,UAAYH,EAC9B,EAQEI,aANF,WACE,OAAON,QAAQI,UAAUC,SAC3B,EAMF,CAEO,SAASE,qBAA0DP,QASxE,MAAO,CACLC,aATF,SAAsBC,IACpB,MAAM,IAAIM,MAAM,qDAAsDR,OAAeE,oBAAoBA,OAC3G,EAQEI,aANF,WACE,MAAM,IAAIE,MAAM,iDAAkDR,OAAeE,OACnF,EAMF"}
@@ -186,14 +186,14 @@ export type THtmlElementStyleDeclaration = {
186
186
  gridAutoRows: string;
187
187
  gridColumn: string;
188
188
  gridColumnEnd: string;
189
- /** @Anarchy/Enginedeprecated This is a legacy alias of `columnGap`. */
189
+ /** @hellpig/anarchy-engine deprecated This is a legacy alias of `columnGap`. */
190
190
  gridColumnGap: string;
191
191
  gridColumnStart: string;
192
- /** @Anarchy/Enginedeprecated This is a legacy alias of `gap`. */
192
+ /** @hellpig/anarchy-engine deprecated This is a legacy alias of `gap`. */
193
193
  gridGap: string;
194
194
  gridRow: string;
195
195
  gridRowEnd: string;
196
- /** @Anarchy/Enginedeprecated This is a legacy alias of `rowGap`. */
196
+ /** @hellpig/anarchy-engined deprecated This is a legacy alias of `rowGap`. */
197
197
  gridRowGap: string;
198
198
  gridRowStart: string;
199
199
  gridTemplate: string;
@@ -204,7 +204,7 @@ export type THtmlElementStyleDeclaration = {
204
204
  hyphenateCharacter: string;
205
205
  hyphens: string;
206
206
  /**
207
- * @Anarchy/Enginedeprecated
207
+ * @hellpig/anarchy-engine deprecated
208
208
  *
209
209
  * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-orientation)
210
210
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractEntityAsyncRegistry.js","sources":["../../../src/Abstract/Registries/AbstractEntityAsyncRegistry.ts"],"sourcesContent":["import type { RegistryType } from '@Anarchy/Engine/Abstract/Constants';\nimport type { TAbstractAsyncEntityRegistry, TAbstractEntityRegistry } from '@Anarchy/Engine/Abstract/Models';\nimport type { LookUpStrategy } from '@Anarchy/Engine/Abstract/Registries/Constants';\nimport type { TMultitonRegistrable, TRegistrable } from '@Anarchy/Engine/Mixins';\nimport { getAsyncUniqEntityByNameAsync, getAsyncUniqEntityWithTag, getUniqEntityByName$, getUniqEntityWithTag$, getUniqEntityWithTags$, getUniqEntityWithTagsAsync } from '@Anarchy/Engine/Utils';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { Observable } from 'rxjs';\n\nimport { AbstractEntityRegistry } from './AbstractEntityRegistry';\n\nexport function AbstractEntityAsyncRegistry<T extends TRegistrable | TMultitonRegistrable>(type: RegistryType): TAbstractAsyncEntityRegistry<T> {\n const abstractRegistry: TAbstractEntityRegistry<T> = AbstractEntityRegistry<T>(type);\n\n const findByTagsAsync = (tags: ReadonlyArray<string>, strategy: LookUpStrategy): Promise<T | undefined> => getUniqEntityWithTagsAsync<T>(tags, abstractRegistry, strategy);\n const findByTagAsync = (tag: string): Promise<T | undefined> => getAsyncUniqEntityWithTag(tag, abstractRegistry);\n const findByNameAsync = (name: string): Promise<T | undefined> => getAsyncUniqEntityByNameAsync(name, abstractRegistry);\n\n const findByTags$ = (tags: ReadonlyArray<string>, strategy: LookUpStrategy): Observable<T> => getUniqEntityWithTags$<T>(tags, abstractRegistry, strategy);\n const findByTag$ = (tag: string): Observable<T> => getUniqEntityWithTag$(tag, abstractRegistry);\n const findByName$ = (name: string): Observable<T> => getUniqEntityByName$(name, abstractRegistry);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractRegistry, {\n findByName$,\n findByNameAsync,\n findByTag$,\n findByTagAsync,\n findByTags$,\n findByTagsAsync,\n getByNameAsync: async (name: string): Promise<T | never> => {\n const result: T | undefined = await findByNameAsync(name);\n if (isNotDefined(result)) throw new Error(`[REGISTRY]: Entity with name \"${name}\" not found in registry \"${abstractRegistry.id}\".`);\n return result;\n },\n getByTagAsync: async (tag: string): Promise<T | never> => {\n const result: T | undefined = await findByTagAsync(tag);\n if (isNotDefined(result)) throw new Error(`[REGISTRY]: Entity with tag \"${tag}\" not found in registry \"${abstractRegistry.id}\".`);\n return result;\n }\n });\n}\n"],"names":["AbstractEntityAsyncRegistry","type","abstractRegistry","AbstractEntityRegistry","findByTagAsync","tag","getAsyncUniqEntityWithTag","findByNameAsync","name","getAsyncUniqEntityByNameAsync","Object","assign","findByName$","getUniqEntityByName$","findByTag$","getUniqEntityWithTag$","findByTags$","tags","strategy","getUniqEntityWithTags$","findByTagsAsync","getUniqEntityWithTagsAsync","getByNameAsync","async","result","isNotDefined","Error","id","getByTagAsync"],"mappings":"oVAUO,SAASA,4BAA2EC,MACzF,MAAMC,iBAA+CC,uBAA0BF,MAGzEG,eAAkBC,KAAwCC,0BAA0BD,IAAKH,kBACzFK,gBAAmBC,MAAyCC,8BAA8BD,KAAMN,kBAOtG,OAAOQ,OAAOC,OAAOT,iBAAkB,CACrCU,YAJmBJ,MAAgCK,qBAAqBL,KAAMN,kBAK9EK,gCACAO,WAPkBT,KAA+BU,sBAAsBV,IAAKH,kBAQ5EE,8BACAY,YAVkB,CAACC,KAA6BC,WAA4CC,uBAA0BF,KAAMf,iBAAkBgB,UAW9IE,gBAfsB,CAACH,KAA6BC,WAAqDG,2BAA8BJ,KAAMf,iBAAkBgB,UAgB/JI,eAAgBC,MAAOf,OACrB,MAAMgB,aAA8BjB,gBAAgBC,MACpD,GAAIiB,aAAaD,QAAS,MAAM,IAAIE,MAAM,iCAAiClB,gCAAgCN,iBAAiByB,QAC5H,OAAOH,QAETI,cAAeL,MAAOlB,MACpB,MAAMmB,aAA8BpB,eAAeC,KACnD,GAAIoB,aAAaD,QAAS,MAAM,IAAIE,MAAM,gCAAgCrB,+BAA+BH,iBAAiByB,QAC1H,OAAOH,SAGb"}
1
+ {"version":3,"file":"AbstractEntityAsyncRegistry.js","sources":["../../../src/Abstract/Registries/AbstractEntityAsyncRegistry.ts"],"sourcesContent":["import type { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type { TAbstractAsyncEntityRegistry, TAbstractEntityRegistry } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { LookUpStrategy } from '@hellpig/anarchy-engine/Abstract/Registries/Constants';\nimport type { TMultitonRegistrable, TRegistrable } from '@hellpig/anarchy-engine/Mixins';\nimport {\n getAsyncUniqEntityByNameAsync,\n getAsyncUniqEntityWithTag,\n getUniqEntityByName$,\n getUniqEntityWithTag$,\n getUniqEntityWithTags$,\n getUniqEntityWithTagsAsync\n} from '@hellpig/anarchy-engine/Utils';\nimport { isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Observable } from 'rxjs';\n\nimport { AbstractEntityRegistry } from './AbstractEntityRegistry';\n\nexport function AbstractEntityAsyncRegistry<T extends TRegistrable | TMultitonRegistrable>(type: RegistryType): TAbstractAsyncEntityRegistry<T> {\n const abstractRegistry: TAbstractEntityRegistry<T> = AbstractEntityRegistry<T>(type);\n\n const findByTagsAsync = (tags: ReadonlyArray<string>, strategy: LookUpStrategy): Promise<T | undefined> => getUniqEntityWithTagsAsync<T>(tags, abstractRegistry, strategy);\n const findByTagAsync = (tag: string): Promise<T | undefined> => getAsyncUniqEntityWithTag(tag, abstractRegistry);\n const findByNameAsync = (name: string): Promise<T | undefined> => getAsyncUniqEntityByNameAsync(name, abstractRegistry);\n\n const findByTags$ = (tags: ReadonlyArray<string>, strategy: LookUpStrategy): Observable<T> => getUniqEntityWithTags$<T>(tags, abstractRegistry, strategy);\n const findByTag$ = (tag: string): Observable<T> => getUniqEntityWithTag$(tag, abstractRegistry);\n const findByName$ = (name: string): Observable<T> => getUniqEntityByName$(name, abstractRegistry);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractRegistry, {\n findByName$,\n findByNameAsync,\n findByTag$,\n findByTagAsync,\n findByTags$,\n findByTagsAsync,\n getByNameAsync: async (name: string): Promise<T | never> => {\n const result: T | undefined = await findByNameAsync(name);\n if (isNotDefined(result)) throw new Error(`[REGISTRY]: Entity with name \"${name}\" not found in registry \"${abstractRegistry.id}\".`);\n return result;\n },\n getByTagAsync: async (tag: string): Promise<T | never> => {\n const result: T | undefined = await findByTagAsync(tag);\n if (isNotDefined(result)) throw new Error(`[REGISTRY]: Entity with tag \"${tag}\" not found in registry \"${abstractRegistry.id}\".`);\n return result;\n }\n });\n}\n"],"names":["AbstractEntityAsyncRegistry","type","abstractRegistry","AbstractEntityRegistry","findByTagAsync","tag","getAsyncUniqEntityWithTag","findByNameAsync","name","getAsyncUniqEntityByNameAsync","Object","assign","findByName$","getUniqEntityByName$","findByTag$","getUniqEntityWithTag$","findByTags$","tags","strategy","getUniqEntityWithTags$","findByTagsAsync","getUniqEntityWithTagsAsync","getByNameAsync","async","result","isNotDefined","Error","id","getByTagAsync"],"mappings":"oVAiBO,SAASA,4BAA2EC,MACzF,MAAMC,iBAA+CC,uBAA0BF,MAGzEG,eAAkBC,KAAwCC,0BAA0BD,IAAKH,kBACzFK,gBAAmBC,MAAyCC,8BAA8BD,KAAMN,kBAOtG,OAAOQ,OAAOC,OAAOT,iBAAkB,CACrCU,YAJmBJ,MAAgCK,qBAAqBL,KAAMN,kBAK9EK,gCACAO,WAPkBT,KAA+BU,sBAAsBV,IAAKH,kBAQ5EE,8BACAY,YAVkB,CAACC,KAA6BC,WAA4CC,uBAA0BF,KAAMf,iBAAkBgB,UAW9IE,gBAfsB,CAACH,KAA6BC,WAAqDG,2BAA8BJ,KAAMf,iBAAkBgB,UAgB/JI,eAAgBC,MAAOf,OACrB,MAAMgB,aAA8BjB,gBAAgBC,MACpD,GAAIiB,aAAaD,QAAS,MAAM,IAAIE,MAAM,iCAAiClB,gCAAgCN,iBAAiByB,QAC5H,OAAOH,QAETI,cAAeL,MAAOlB,MACpB,MAAMmB,aAA8BpB,eAAeC,KACnD,GAAIoB,aAAaD,QAAS,MAAM,IAAIE,MAAM,gCAAgCrB,+BAA+BH,iBAAiByB,QAC1H,OAAOH,SAGb"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractEntityRegistry.js","sources":["../../../src/Abstract/Registries/AbstractEntityRegistry.ts"],"sourcesContent":["import type { RegistryType } from '@Anarchy/Engine/Abstract/Constants';\nimport type { TAbstractEntityRegistry, TWithBaseAccessorsRegistry, TWithReactiveRegistry } from '@Anarchy/Engine/Abstract/Models';\nimport type { LookUpStrategy } from '@Anarchy/Engine/Abstract/Registries/Constants';\nimport { withBaseAccessorsRegistry } from '@Anarchy/Engine/Abstract/Registries/Mixin';\nimport { withReactiveRegistry } from '@Anarchy/Engine/Abstract/Registries/Mixin/Registry/WithReactiveRegistry';\nimport type { TDestroyable, TMultitonRegistrable, TRegistrable } from '@Anarchy/Engine/Mixins';\nimport { destroyableMixin } from '@Anarchy/Engine/Mixins';\nimport { getAllEntitiesWithNames, getAllEntitiesWithTag, getAllEntitiesWithTags, getUniqEntityWithTag, getUniqEntityWithTags, mergeAll } from '@Anarchy/Engine/Utils';\nimport { findInMap, findKeyWithValue, isNotDefined } from '@Anarchy/Shared/Utils';\nimport { nanoid } from 'nanoid';\n\nexport function AbstractEntityRegistry<T extends TRegistrable | TMultitonRegistrable>(type: RegistryType): TAbstractEntityRegistry<T> {\n const id: string = type + '_registry_' + nanoid();\n const registry: Map<string, T> = new Map();\n\n const destroyable: TDestroyable = destroyableMixin();\n const reactiveRegistry: TWithReactiveRegistry<T> = withReactiveRegistry<T>(registry, destroyable);\n const baseAccessors: TWithBaseAccessorsRegistry<T> = withBaseAccessorsRegistry<T>(registry);\n\n function add(entity: T): void | never {\n if (registry.has(entity.id)) throw new Error(`Cannot add an entity with id \"${entity.id}\" to registry ${id}: already exist`);\n if (isMultitonEntity(entity)) {\n registry.forEach((v: T): void => {\n if ((v as TMultitonRegistrable).key === entity.key)\n throw new Error(`Cannot add an entity with key \"${entity.key}\" (name: \"${entity.name}\") to multiton registry ${id}: already added. Only one instance per key is allowed.`);\n });\n }\n registry.set(entity.id, entity);\n reactiveRegistry.added$.next({ key: entity.id, value: entity });\n }\n\n function replace(entity: T): void | never {\n if (!registry.has(entity.id)) throw new Error(`Cannot replace an entity with id \"${entity.id}\" in registry ${id}: not exist`);\n registry.set(entity.id, entity);\n reactiveRegistry.replaced$.next({ key: entity.id, value: entity });\n }\n\n const findById = (id: string): T | undefined => registry.get(id);\n const findByName = (name: string): T | undefined => findInMap(registry, (value: T): boolean => value.name === name);\n const findAllWithNames = (names: ReadonlyArray<string>): ReadonlyArray<T> => getAllEntitiesWithNames(names, registry);\n\n function remove(id: string): void | never {\n const entity: T | undefined = registry.get(id);\n if (isNotDefined(entity)) throw new Error(`Cannot remove an entity with id \"${id}\" from registry ${id}: not exist`);\n registry.delete(id);\n reactiveRegistry.removed$.next({ key: id, value: entity });\n }\n\n const findAllByTags = (tags: ReadonlyArray<string>, strategy: LookUpStrategy): ReadonlyArray<T> => getAllEntitiesWithTags(tags, registry, strategy);\n const findAllByTag = (tag: string): ReadonlyArray<T> => getAllEntitiesWithTag(tag, registry);\n\n const findByTags = (tags: ReadonlyArray<string>, strategy: LookUpStrategy): T | undefined | never => getUniqEntityWithTags(tags, registry, strategy);\n const findByTag = (tag: string): T | undefined | never => getUniqEntityWithTag(tag, registry);\n\n const findKeyByValue = (value: T): string | undefined => findKeyWithValue(registry, value);\n\n const asObject = (): Record<string, T> => Object.fromEntries(registry.entries());\n\n return mergeAll(\n {\n add,\n added$: reactiveRegistry.added$.asObservable(),\n asObject,\n findAllByTag,\n findAllByTags,\n findAllWithNames,\n findById,\n findByName,\n findByTag,\n findByTags,\n findKeyByValue,\n getById: (entityId: string): T | never => {\n const entity: T | undefined = findById(entityId);\n if (isNotDefined(entity)) throw new Error(`[REGISTRY]: Cannot get an entity with id \"${entityId}\" from registry ${id}`);\n return entity;\n },\n getByName: (name: string): T | never => {\n const entity: T | undefined = findByName(name);\n if (isNotDefined(entity)) throw new Error(`[REGISTRY]: Cannot get an entity with name \"${name}\" from registry ${id}`);\n return entity;\n },\n getByTag: (tag: string): T | never => {\n const entity: T | undefined = findByTag(tag);\n if (isNotDefined(entity)) throw new Error(`[REGISTRY]: Cannot get an entity with tag \"${tag}\" from registry ${id}`);\n return entity;\n },\n getByTags: (tags: ReadonlyArray<string>, strategy: LookUpStrategy): T | never => {\n const entity: T | undefined = findByTags(tags, strategy);\n if (isNotDefined(entity)) throw new Error(`[REGISTRY]: Cannot get an entity with tags \"${tags.join(', ')}\" from registry ${id}`);\n return entity;\n },\n getKeyByValue: (value: T): string | never => {\n const key: string | undefined = findKeyByValue(value);\n if (isNotDefined(key)) throw new Error(`[REGISTRY]: Cannot get a key by value from registry ${id}: Does not exist in the registry.`);\n return key;\n },\n id,\n remove,\n removed$: reactiveRegistry.removed$.asObservable(),\n replace,\n replaced$: reactiveRegistry.replaced$.asObservable(),\n type\n },\n baseAccessors,\n reactiveRegistry,\n destroyable\n );\n}\n\nfunction isMultitonEntity(entity: TRegistrable | TMultitonRegistrable): entity is TMultitonRegistrable {\n return !!(entity as TMultitonRegistrable).key;\n}\n"],"names":["AbstractEntityRegistry","type","id","nanoid","registry","Map","destroyable","destroyableMixin","reactiveRegistry","withReactiveRegistry","baseAccessors","withBaseAccessorsRegistry","findById","get","findByName","name","findInMap","value","findByTags","tags","strategy","getUniqEntityWithTags","findByTag","tag","getUniqEntityWithTag","findKeyByValue","findKeyWithValue","mergeAll","add","entity","has","Error","key","isMultitonEntity","forEach","v","set","added$","next","asObservable","asObject","Object","fromEntries","entries","findAllByTag","getAllEntitiesWithTag","findAllByTags","getAllEntitiesWithTags","findAllWithNames","names","getAllEntitiesWithNames","getById","entityId","isNotDefined","getByName","getByTag","getByTags","join","getKeyByValue","remove","delete","removed$","replace","replaced$"],"mappings":"srBAWO,SAASA,uBAAsEC,MACpF,MAAMC,GAAaD,KAAO,aAAeE,SACnCC,aAA+BC,IAE/BC,YAA4BC,mBAC5BC,iBAA6CC,qBAAwBL,SAAUE,aAC/EI,cAA+CC,0BAA6BP,UAoB5EQ,SAAYV,KAA8BE,SAASS,IAAIX,KACvDY,WAAcC,MAAgCC,UAAUZ,SAAWa,OAAsBA,MAAMF,OAASA,MAaxGG,WAAa,CAACC,KAA6BC,WAAoDC,sBAAsBF,KAAMf,SAAUgB,UACrIE,UAAaC,KAAuCC,qBAAqBD,IAAKnB,UAE9EqB,eAAkBR,OAAiCS,iBAAiBtB,SAAUa,OAIpF,OAAOU,SACL,CACEC,IAzCJ,SAAaC,QACX,GAAIzB,SAAS0B,IAAID,OAAO3B,IAAK,MAAM,IAAI6B,MAAM,iCAAiCF,OAAO3B,mBAAmBA,sBAyF5G,SAA0B2B,QACxB,QAAUA,OAAgCG,GAC5C,EA1FQC,CAAiBJ,SACnBzB,SAAS8B,QAASC,IAChB,GAAKA,EAA2BH,MAAQH,OAAOG,IAC7C,MAAM,IAAID,MAAM,kCAAkCF,OAAOG,gBAAgBH,OAAOd,+BAA+Bb,8DAGrHE,SAASgC,IAAIP,OAAO3B,GAAI2B,QACxBrB,iBAAiB6B,OAAOC,KAAK,CAAEN,IAAKH,OAAO3B,GAAIe,MAAOY,QACxD,EAgCIQ,OAAQ7B,iBAAiB6B,OAAOE,eAChCC,SANa,IAAyBC,OAAOC,YAAYtC,SAASuC,WAOlEC,aAdkBrB,KAAkCsB,sBAAsBtB,IAAKnB,UAe/E0C,cAhBkB,CAAC3B,KAA6BC,WAA+C2B,uBAAuB5B,KAAMf,SAAUgB,UAiBtI4B,iBA1BsBC,OAAmDC,wBAAwBD,MAAO7C,UA2BxGQ,kBACAE,sBACAQ,oBACAJ,sBACAO,8BACA0B,QAAUC,WACR,MAAMvB,OAAwBjB,SAASwC,UACvC,GAAIC,aAAaxB,QAAS,MAAM,IAAIE,MAAM,6CAA6CqB,2BAA2BlD,MAClH,OAAO2B,QAETyB,UAAYvC,OACV,MAAMc,OAAwBf,WAAWC,MACzC,GAAIsC,aAAaxB,QAAS,MAAM,IAAIE,MAAM,+CAA+ChB,uBAAuBb,MAChH,OAAO2B,QAET0B,SAAWhC,MACT,MAAMM,OAAwBP,UAAUC,KACxC,GAAI8B,aAAaxB,QAAS,MAAM,IAAIE,MAAM,8CAA8CR,sBAAsBrB,MAC9G,OAAO2B,QAET2B,UAAW,CAACrC,KAA6BC,YACvC,MAAMS,OAAwBX,WAAWC,KAAMC,UAC/C,GAAIiC,aAAaxB,QAAS,MAAM,IAAIE,MAAM,+CAA+CZ,KAAKsC,KAAK,wBAAwBvD,MAC3H,OAAO2B,QAET6B,cAAgBzC,QACd,MAAMe,IAA0BP,eAAeR,OAC/C,GAAIoC,aAAarB,KAAM,MAAM,IAAID,MAAM,uDAAuD7B,uCAC9F,OAAO8B,KAET9B,MACAyD,OAxDJ,SAAgBzD,KACd,MAAM2B,OAAwBzB,SAASS,IAAIX,KAC3C,GAAImD,aAAaxB,QAAS,MAAM,IAAIE,MAAM,oCAAoC7B,sBAAqBA,kBACnGE,SAASwD,OAAO1D,KAChBM,iBAAiBqD,SAASvB,KAAK,CAAEN,IAAK9B,IAAIe,MAAOY,QACnD,EAoDIgC,SAAUrD,iBAAiBqD,SAAStB,eACpCuB,QApEJ,SAAiBjC,QACf,IAAKzB,SAAS0B,IAAID,OAAO3B,IAAK,MAAM,IAAI6B,MAAM,qCAAqCF,OAAO3B,mBAAmBA,iBAC7GE,SAASgC,IAAIP,OAAO3B,GAAI2B,QACxBrB,iBAAiBuD,UAAUzB,KAAK,CAAEN,IAAKH,OAAO3B,GAAIe,MAAOY,QAC3D,EAiEIkC,UAAWvD,iBAAiBuD,UAAUxB,eACtCtC,WAEFS,cACAF,iBACAF,YAEJ"}
1
+ {"version":3,"file":"AbstractEntityRegistry.js","sources":["../../../src/Abstract/Registries/AbstractEntityRegistry.ts"],"sourcesContent":["import type { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type { TAbstractEntityRegistry, TWithBaseAccessorsRegistry, TWithReactiveRegistry } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { LookUpStrategy } from '@hellpig/anarchy-engine/Abstract/Registries/Constants';\nimport { withBaseAccessorsRegistry } from '@hellpig/anarchy-engine/Abstract/Registries/Mixin';\nimport { withReactiveRegistry } from '@hellpig/anarchy-engine/Abstract/Registries/Mixin/Registry/WithReactiveRegistry';\nimport type { TDestroyable, TMultitonRegistrable, TRegistrable } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin } from '@hellpig/anarchy-engine/Mixins';\nimport { getAllEntitiesWithNames, getAllEntitiesWithTag, getAllEntitiesWithTags, getUniqEntityWithTag, getUniqEntityWithTags, mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport { findInMap, findKeyWithValue, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport { nanoid } from 'nanoid';\n\nexport function AbstractEntityRegistry<T extends TRegistrable | TMultitonRegistrable>(type: RegistryType): TAbstractEntityRegistry<T> {\n const id: string = type + '_registry_' + nanoid();\n const registry: Map<string, T> = new Map();\n\n const destroyable: TDestroyable = destroyableMixin();\n const reactiveRegistry: TWithReactiveRegistry<T> = withReactiveRegistry<T>(registry, destroyable);\n const baseAccessors: TWithBaseAccessorsRegistry<T> = withBaseAccessorsRegistry<T>(registry);\n\n function add(entity: T): void | never {\n if (registry.has(entity.id)) throw new Error(`Cannot add an entity with id \"${entity.id}\" to registry ${id}: already exist`);\n if (isMultitonEntity(entity)) {\n registry.forEach((v: T): void => {\n if ((v as TMultitonRegistrable).key === entity.key)\n throw new Error(`Cannot add an entity with key \"${entity.key}\" (name: \"${entity.name}\") to multiton registry ${id}: already added. Only one instance per key is allowed.`);\n });\n }\n registry.set(entity.id, entity);\n reactiveRegistry.added$.next({ key: entity.id, value: entity });\n }\n\n function replace(entity: T): void | never {\n if (!registry.has(entity.id)) throw new Error(`Cannot replace an entity with id \"${entity.id}\" in registry ${id}: not exist`);\n registry.set(entity.id, entity);\n reactiveRegistry.replaced$.next({ key: entity.id, value: entity });\n }\n\n const findById = (id: string): T | undefined => registry.get(id);\n const findByName = (name: string): T | undefined => findInMap(registry, (value: T): boolean => value.name === name);\n const findAllWithNames = (names: ReadonlyArray<string>): ReadonlyArray<T> => getAllEntitiesWithNames(names, registry);\n\n function remove(id: string): void | never {\n const entity: T | undefined = registry.get(id);\n if (isNotDefined(entity)) throw new Error(`Cannot remove an entity with id \"${id}\" from registry ${id}: not exist`);\n registry.delete(id);\n reactiveRegistry.removed$.next({ key: id, value: entity });\n }\n\n const findAllByTags = (tags: ReadonlyArray<string>, strategy: LookUpStrategy): ReadonlyArray<T> => getAllEntitiesWithTags(tags, registry, strategy);\n const findAllByTag = (tag: string): ReadonlyArray<T> => getAllEntitiesWithTag(tag, registry);\n\n const findByTags = (tags: ReadonlyArray<string>, strategy: LookUpStrategy): T | undefined | never => getUniqEntityWithTags(tags, registry, strategy);\n const findByTag = (tag: string): T | undefined | never => getUniqEntityWithTag(tag, registry);\n\n const findKeyByValue = (value: T): string | undefined => findKeyWithValue(registry, value);\n\n const asObject = (): Record<string, T> => Object.fromEntries(registry.entries());\n\n return mergeAll(\n {\n add,\n added$: reactiveRegistry.added$.asObservable(),\n asObject,\n findAllByTag,\n findAllByTags,\n findAllWithNames,\n findById,\n findByName,\n findByTag,\n findByTags,\n findKeyByValue,\n getById: (entityId: string): T | never => {\n const entity: T | undefined = findById(entityId);\n if (isNotDefined(entity)) throw new Error(`[REGISTRY]: Cannot get an entity with id \"${entityId}\" from registry ${id}`);\n return entity;\n },\n getByName: (name: string): T | never => {\n const entity: T | undefined = findByName(name);\n if (isNotDefined(entity)) throw new Error(`[REGISTRY]: Cannot get an entity with name \"${name}\" from registry ${id}`);\n return entity;\n },\n getByTag: (tag: string): T | never => {\n const entity: T | undefined = findByTag(tag);\n if (isNotDefined(entity)) throw new Error(`[REGISTRY]: Cannot get an entity with tag \"${tag}\" from registry ${id}`);\n return entity;\n },\n getByTags: (tags: ReadonlyArray<string>, strategy: LookUpStrategy): T | never => {\n const entity: T | undefined = findByTags(tags, strategy);\n if (isNotDefined(entity)) throw new Error(`[REGISTRY]: Cannot get an entity with tags \"${tags.join(', ')}\" from registry ${id}`);\n return entity;\n },\n getKeyByValue: (value: T): string | never => {\n const key: string | undefined = findKeyByValue(value);\n if (isNotDefined(key)) throw new Error(`[REGISTRY]: Cannot get a key by value from registry ${id}: Does not exist in the registry.`);\n return key;\n },\n id,\n remove,\n removed$: reactiveRegistry.removed$.asObservable(),\n replace,\n replaced$: reactiveRegistry.replaced$.asObservable(),\n type\n },\n baseAccessors,\n reactiveRegistry,\n destroyable\n );\n}\n\nfunction isMultitonEntity(entity: TRegistrable | TMultitonRegistrable): entity is TMultitonRegistrable {\n return !!(entity as TMultitonRegistrable).key;\n}\n"],"names":["AbstractEntityRegistry","type","id","nanoid","registry","Map","destroyable","destroyableMixin","reactiveRegistry","withReactiveRegistry","baseAccessors","withBaseAccessorsRegistry","findById","get","findByName","name","findInMap","value","findByTags","tags","strategy","getUniqEntityWithTags","findByTag","tag","getUniqEntityWithTag","findKeyByValue","findKeyWithValue","mergeAll","add","entity","has","Error","key","isMultitonEntity","forEach","v","set","added$","next","asObservable","asObject","Object","fromEntries","entries","findAllByTag","getAllEntitiesWithTag","findAllByTags","getAllEntitiesWithTags","findAllWithNames","names","getAllEntitiesWithNames","getById","entityId","isNotDefined","getByName","getByTag","getByTags","join","getKeyByValue","remove","delete","removed$","replace","replaced$"],"mappings":"srBAWO,SAASA,uBAAsEC,MACpF,MAAMC,GAAaD,KAAO,aAAeE,SACnCC,aAA+BC,IAE/BC,YAA4BC,mBAC5BC,iBAA6CC,qBAAwBL,SAAUE,aAC/EI,cAA+CC,0BAA6BP,UAoB5EQ,SAAYV,KAA8BE,SAASS,IAAIX,KACvDY,WAAcC,MAAgCC,UAAUZ,SAAWa,OAAsBA,MAAMF,OAASA,MAaxGG,WAAa,CAACC,KAA6BC,WAAoDC,sBAAsBF,KAAMf,SAAUgB,UACrIE,UAAaC,KAAuCC,qBAAqBD,IAAKnB,UAE9EqB,eAAkBR,OAAiCS,iBAAiBtB,SAAUa,OAIpF,OAAOU,SACL,CACEC,IAzCJ,SAAaC,QACX,GAAIzB,SAAS0B,IAAID,OAAO3B,IAAK,MAAM,IAAI6B,MAAM,iCAAiCF,OAAO3B,mBAAmBA,sBAyF5G,SAA0B2B,QACxB,QAAUA,OAAgCG,GAC5C,EA1FQC,CAAiBJ,SACnBzB,SAAS8B,QAASC,IAChB,GAAKA,EAA2BH,MAAQH,OAAOG,IAC7C,MAAM,IAAID,MAAM,kCAAkCF,OAAOG,gBAAgBH,OAAOd,+BAA+Bb,8DAGrHE,SAASgC,IAAIP,OAAO3B,GAAI2B,QACxBrB,iBAAiB6B,OAAOC,KAAK,CAAEN,IAAKH,OAAO3B,GAAIe,MAAOY,QACxD,EAgCIQ,OAAQ7B,iBAAiB6B,OAAOE,eAChCC,SANa,IAAyBC,OAAOC,YAAYtC,SAASuC,WAOlEC,aAdkBrB,KAAkCsB,sBAAsBtB,IAAKnB,UAe/E0C,cAhBkB,CAAC3B,KAA6BC,WAA+C2B,uBAAuB5B,KAAMf,SAAUgB,UAiBtI4B,iBA1BsBC,OAAmDC,wBAAwBD,MAAO7C,UA2BxGQ,kBACAE,sBACAQ,oBACAJ,sBACAO,8BACA0B,QAAUC,WACR,MAAMvB,OAAwBjB,SAASwC,UACvC,GAAIC,aAAaxB,QAAS,MAAM,IAAIE,MAAM,6CAA6CqB,2BAA2BlD,MAClH,OAAO2B,QAETyB,UAAYvC,OACV,MAAMc,OAAwBf,WAAWC,MACzC,GAAIsC,aAAaxB,QAAS,MAAM,IAAIE,MAAM,+CAA+ChB,uBAAuBb,MAChH,OAAO2B,QAET0B,SAAWhC,MACT,MAAMM,OAAwBP,UAAUC,KACxC,GAAI8B,aAAaxB,QAAS,MAAM,IAAIE,MAAM,8CAA8CR,sBAAsBrB,MAC9G,OAAO2B,QAET2B,UAAW,CAACrC,KAA6BC,YACvC,MAAMS,OAAwBX,WAAWC,KAAMC,UAC/C,GAAIiC,aAAaxB,QAAS,MAAM,IAAIE,MAAM,+CAA+CZ,KAAKsC,KAAK,wBAAwBvD,MAC3H,OAAO2B,QAET6B,cAAgBzC,QACd,MAAMe,IAA0BP,eAAeR,OAC/C,GAAIoC,aAAarB,KAAM,MAAM,IAAID,MAAM,uDAAuD7B,uCAC9F,OAAO8B,KAET9B,MACAyD,OAxDJ,SAAgBzD,KACd,MAAM2B,OAAwBzB,SAASS,IAAIX,KAC3C,GAAImD,aAAaxB,QAAS,MAAM,IAAIE,MAAM,oCAAoC7B,sBAAqBA,kBACnGE,SAASwD,OAAO1D,KAChBM,iBAAiBqD,SAASvB,KAAK,CAAEN,IAAK9B,IAAIe,MAAOY,QACnD,EAoDIgC,SAAUrD,iBAAiBqD,SAAStB,eACpCuB,QApEJ,SAAiBjC,QACf,IAAKzB,SAAS0B,IAAID,OAAO3B,IAAK,MAAM,IAAI6B,MAAM,qCAAqCF,OAAO3B,mBAAmBA,iBAC7GE,SAASgC,IAAIP,OAAO3B,GAAI2B,QACxBrB,iBAAiBuD,UAAUzB,KAAK,CAAEN,IAAKH,OAAO3B,GAAIe,MAAOY,QAC3D,EAiEIkC,UAAWvD,iBAAiBuD,UAAUxB,eACtCtC,WAEFS,cACAF,iBACAF,YAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractResourceAsyncRegistry.js","sources":["../../../src/Abstract/Registries/AbstractResourceAsyncRegistry.ts"],"sourcesContent":["import type { RegistryType } from '@Anarchy/Engine/Abstract/Constants';\nimport type { TAbstractResourceAsyncRegistry, TAbstractResourceConfig, TAbstractSerializeDependencies, TAbstractSimpleRegistry } from '@Anarchy/Engine/Abstract/Models';\nimport { getAsyncUniqEntityByKeyAsync, getUniqEntityByKey$ } from '@Anarchy/Engine/Utils';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { Observable } from 'rxjs';\n\nimport { AbstractSimpleRegistry } from './AbstractSimpleRegistry';\n\nexport function AbstractResourceAsyncRegistry<T>(type: RegistryType): TAbstractResourceAsyncRegistry<T> {\n const abstractSimpleAsyncRegistry: TAbstractSimpleRegistry<T> = AbstractSimpleRegistry<T>(type);\n\n const findByKeyAsync = (key: string): Promise<T | undefined> => getAsyncUniqEntityByKeyAsync(key, abstractSimpleAsyncRegistry);\n const findByKey$ = (key: string): Observable<T> => getUniqEntityByKey$(key, abstractSimpleAsyncRegistry);\n\n function serialize<C extends TAbstractResourceConfig>({ metaInfoRegistry }: TAbstractSerializeDependencies<C>): ReadonlyArray<C> {\n return abstractSimpleAsyncRegistry.map((_value: unknown, key: string | undefined): C => {\n if (isNotDefined(key)) throw new Error(`[${type}]: Cannot serialize resource: key \"${key}\" is not found`);\n const result: C | undefined = metaInfoRegistry.findByKey(key);\n if (isNotDefined(result)) throw new Error(`[${type}]: Cannot serialize resource: meta info is not found for the resource with name \"${key}\"`);\n return result;\n });\n }\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractSimpleAsyncRegistry, {\n findByKey$,\n findByKeyAsync,\n getByKeyAsync: async (name: string): Promise<T | never> => {\n const result: T | undefined = await findByKeyAsync(name);\n if (isNotDefined(result)) throw new Error(`[${type}]: Cannot get resource by name \"${name}\" from registry ${abstractSimpleAsyncRegistry.id}: resource is not found`);\n return result;\n },\n serialize\n });\n}\n"],"names":["AbstractResourceAsyncRegistry","type","abstractSimpleAsyncRegistry","AbstractSimpleRegistry","findByKeyAsync","key","getAsyncUniqEntityByKeyAsync","Object","assign","findByKey$","getUniqEntityByKey$","getByKeyAsync","async","name","result","isNotDefined","Error","id","serialize","metaInfoRegistry","map","_value","findByKey"],"mappings":"gPAQO,SAASA,8BAAiCC,MAC/C,MAAMC,4BAA0DC,uBAA0BF,MAEpFG,eAAkBC,KAAwCC,6BAA6BD,IAAKH,6BAalG,OAAOK,OAAOC,OAAON,4BAA6B,CAChDO,WAbkBJ,KAA+BK,oBAAoBL,IAAKH,6BAc1EE,8BACAO,cAAeC,MAAOC,OACpB,MAAMC,aAA8BV,eAAeS,MACnD,GAAIE,aAAaD,QAAS,MAAM,IAAIE,MAAM,IAAIf,uCAAuCY,uBAAuBX,4BAA4Be,6BACxI,OAAOH,QAETI,UAlBF,UAAsDC,iBAAEA,mBACtD,OAAOjB,4BAA4BkB,IAAI,CAACC,OAAiBhB,OACvD,GAAIU,aAAaV,KAAM,MAAM,IAAIW,MAAM,IAAIf,0CAA0CI,qBACrF,MAAMS,OAAwBK,iBAAiBG,UAAUjB,KACzD,GAAIU,aAAaD,QAAS,MAAM,IAAIE,MAAM,IAAIf,wFAAwFI,QACtI,OAAOS,QAEX,GAaF"}
1
+ {"version":3,"file":"AbstractResourceAsyncRegistry.js","sources":["../../../src/Abstract/Registries/AbstractResourceAsyncRegistry.ts"],"sourcesContent":["import type { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type { TAbstractResourceAsyncRegistry, TAbstractResourceConfig, TAbstractSerializeDependencies, TAbstractSimpleRegistry } from '@hellpig/anarchy-engine/Abstract/Models';\nimport { getAsyncUniqEntityByKeyAsync, getUniqEntityByKey$ } from '@hellpig/anarchy-engine/Utils';\nimport { isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Observable } from 'rxjs';\n\nimport { AbstractSimpleRegistry } from './AbstractSimpleRegistry';\n\nexport function AbstractResourceAsyncRegistry<T>(type: RegistryType): TAbstractResourceAsyncRegistry<T> {\n const abstractSimpleAsyncRegistry: TAbstractSimpleRegistry<T> = AbstractSimpleRegistry<T>(type);\n\n const findByKeyAsync = (key: string): Promise<T | undefined> => getAsyncUniqEntityByKeyAsync(key, abstractSimpleAsyncRegistry);\n const findByKey$ = (key: string): Observable<T> => getUniqEntityByKey$(key, abstractSimpleAsyncRegistry);\n\n function serialize<C extends TAbstractResourceConfig>({ metaInfoRegistry }: TAbstractSerializeDependencies<C>): ReadonlyArray<C> {\n return abstractSimpleAsyncRegistry.map((_value: unknown, key: string | undefined): C => {\n if (isNotDefined(key)) throw new Error(`[${type}]: Cannot serialize resource: key \"${key}\" is not found`);\n const result: C | undefined = metaInfoRegistry.findByKey(key);\n if (isNotDefined(result)) throw new Error(`[${type}]: Cannot serialize resource: meta info is not found for the resource with name \"${key}\"`);\n return result;\n });\n }\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractSimpleAsyncRegistry, {\n findByKey$,\n findByKeyAsync,\n getByKeyAsync: async (name: string): Promise<T | never> => {\n const result: T | undefined = await findByKeyAsync(name);\n if (isNotDefined(result)) throw new Error(`[${type}]: Cannot get resource by name \"${name}\" from registry ${abstractSimpleAsyncRegistry.id}: resource is not found`);\n return result;\n },\n serialize\n });\n}\n"],"names":["AbstractResourceAsyncRegistry","type","abstractSimpleAsyncRegistry","AbstractSimpleRegistry","findByKeyAsync","key","getAsyncUniqEntityByKeyAsync","Object","assign","findByKey$","getUniqEntityByKey$","getByKeyAsync","async","name","result","isNotDefined","Error","id","serialize","metaInfoRegistry","map","_value","findByKey"],"mappings":"gPAQO,SAASA,8BAAiCC,MAC/C,MAAMC,4BAA0DC,uBAA0BF,MAEpFG,eAAkBC,KAAwCC,6BAA6BD,IAAKH,6BAalG,OAAOK,OAAOC,OAAON,4BAA6B,CAChDO,WAbkBJ,KAA+BK,oBAAoBL,IAAKH,6BAc1EE,8BACAO,cAAeC,MAAOC,OACpB,MAAMC,aAA8BV,eAAeS,MACnD,GAAIE,aAAaD,QAAS,MAAM,IAAIE,MAAM,IAAIf,uCAAuCY,uBAAuBX,4BAA4Be,6BACxI,OAAOH,QAETI,UAlBF,UAAsDC,iBAAEA,mBACtD,OAAOjB,4BAA4BkB,IAAI,CAACC,OAAiBhB,OACvD,GAAIU,aAAaV,KAAM,MAAM,IAAIW,MAAM,IAAIf,0CAA0CI,qBACrF,MAAMS,OAAwBK,iBAAiBG,UAAUjB,KACzD,GAAIU,aAAaD,QAAS,MAAM,IAAIE,MAAM,IAAIf,wFAAwFI,QACtI,OAAOS,QAEX,GAaF"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSimpleRegistry.js","sources":["../../../src/Abstract/Registries/AbstractSimpleRegistry.ts"],"sourcesContent":["import type { RegistryType } from '@Anarchy/Engine/Abstract/Constants';\nimport type { TAbstractSimpleRegistry, TWithBaseAccessorsRegistry, TWithReactiveRegistry } from '@Anarchy/Engine/Abstract/Models';\nimport { withBaseAccessorsRegistry } from '@Anarchy/Engine/Abstract/Registries/Mixin';\nimport { withReactiveRegistry } from '@Anarchy/Engine/Abstract/Registries/Mixin/Registry/WithReactiveRegistry';\nimport type { TDestroyable } from '@Anarchy/Engine/Mixins';\nimport { destroyableMixin } from '@Anarchy/Engine/Mixins';\nimport { mergeAll } from '@Anarchy/Engine/Utils';\nimport { findKeyWithValue, isNotDefined } from '@Anarchy/Shared/Utils';\nimport { nanoid } from 'nanoid';\n\nexport function AbstractSimpleRegistry<T>(type: RegistryType): TAbstractSimpleRegistry<T> {\n const id: string = type + '_registry_' + nanoid();\n const registry: Map<string, T> = new Map();\n\n const destroyable: TDestroyable = destroyableMixin();\n const reactiveRegistry: TWithReactiveRegistry<T> = withReactiveRegistry<T>(registry, destroyable);\n const baseAccessors: TWithBaseAccessorsRegistry<T> = withBaseAccessorsRegistry<T>(registry);\n\n function add(key: string, value: T): void | never {\n if (registry.has(key)) throw new Error(`[REGISTRY]: Cannot add to an item by key \"${key}\" to registry(\"${id}\"): The key is already exist in the registry.`);\n registry.set(key, value);\n reactiveRegistry.added$.next({ key, value });\n }\n\n function replace(key: string, value: T): void | never {\n if (!registry.has(key)) throw new Error(`[REGISTRY]: Cannot replace to an item by key \"${key}\" to registry(\"${id}\"): The key is not exist in the registry.`);\n registry.set(key, value);\n reactiveRegistry.replaced$.next({ key, value });\n }\n\n const findByKey = (key: string): T | undefined => registry.get(key);\n\n const findKeyByValue = (value: T): string | undefined => findKeyWithValue(registry, value);\n\n function remove(key: string): void | never {\n const value: T | undefined = registry.get(key);\n if (isNotDefined(value)) throw new Error(`[REGISTRY]: Cannot remove an item by key \"${key}\" from registry \"${id}\": The key is not exist in the registry.`);\n registry.delete(key);\n reactiveRegistry.removed$.next({ key, value });\n }\n\n const asObject = (): Record<string, T> => Object.fromEntries(registry.entries());\n\n return mergeAll(\n {\n add,\n added$: reactiveRegistry.added$.asObservable(),\n asObject,\n findByKey,\n findKeyByValue,\n getByKey: (key: string): T | never => {\n const value: T | undefined = findByKey(key);\n if (isNotDefined(value)) throw new Error(`[REGISTRY]: Cannot get an item by key \"${key}\" from registry \"${id}\": The key is not exist in the registry.`);\n return value;\n },\n getKeyByValue: (value: T): string | never => {\n const key: string | undefined = findKeyByValue(value);\n if (isNotDefined(key)) throw new Error(`[REGISTRY]: Cannot get a key by value from registry \"${id}\": The value is not exist in the registry.`);\n return key;\n },\n id,\n remove,\n removed$: reactiveRegistry.removed$.asObservable(),\n replace,\n replaced$: reactiveRegistry.replaced$.asObservable(),\n type\n },\n baseAccessors,\n reactiveRegistry,\n destroyable\n );\n}\n"],"names":["AbstractSimpleRegistry","type","id","nanoid","registry","Map","destroyable","destroyableMixin","reactiveRegistry","withReactiveRegistry","baseAccessors","withBaseAccessorsRegistry","findByKey","key","get","findKeyByValue","value","findKeyWithValue","mergeAll","add","has","Error","set","added$","next","asObservable","asObject","Object","fromEntries","entries","getByKey","isNotDefined","getKeyByValue","remove","delete","removed$","replace","replaced$"],"mappings":"khBAUO,SAASA,uBAA0BC,MACxC,MAAMC,GAAaD,KAAO,aAAeE,SACnCC,aAA+BC,IAE/BC,YAA4BC,mBAC5BC,iBAA6CC,qBAAwBL,SAAUE,aAC/EI,cAA+CC,0BAA6BP,UAc5EQ,UAAaC,KAA+BT,SAASU,IAAID,KAEzDE,eAAkBC,OAAiCC,iBAAiBb,SAAUY,OAWpF,OAAOE,SACL,CACEC,IA3BJ,SAAaN,IAAaG,OACxB,GAAIZ,SAASgB,IAAIP,KAAM,MAAM,IAAIQ,MAAM,6CAA6CR,qBAAqBX,mDACzGE,SAASkB,IAAIT,IAAKG,OAClBR,iBAAiBe,OAAOC,KAAK,CAAEX,QAAKG,aACtC,EAwBIO,OAAQf,iBAAiBe,OAAOE,eAChCC,SANa,IAAyBC,OAAOC,YAAYxB,SAASyB,WAOlEjB,oBACAG,8BACAe,SAAWjB,MACT,MAAMG,MAAuBJ,UAAUC,KACvC,GAAIkB,aAAaf,OAAQ,MAAM,IAAIK,MAAM,0CAA0CR,uBAAuBX,8CAC1G,OAAOc,OAETgB,cAAgBhB,QACd,MAAMH,IAA0BE,eAAeC,OAC/C,GAAIe,aAAalB,KAAM,MAAM,IAAIQ,MAAM,wDAAwDnB,gDAC/F,OAAOW,KAETX,MACA+B,OA3BJ,SAAgBpB,KACd,MAAMG,MAAuBZ,SAASU,IAAID,KAC1C,GAAIkB,aAAaf,OAAQ,MAAM,IAAIK,MAAM,6CAA6CR,uBAAuBX,8CAC7GE,SAAS8B,OAAOrB,KAChBL,iBAAiB2B,SAASX,KAAK,CAAEX,QAAKG,aACxC,EAuBImB,SAAU3B,iBAAiB2B,SAASV,eACpCW,QAvCJ,SAAiBvB,IAAaG,OAC5B,IAAKZ,SAASgB,IAAIP,KAAM,MAAM,IAAIQ,MAAM,iDAAiDR,qBAAqBX,+CAC9GE,SAASkB,IAAIT,IAAKG,OAClBR,iBAAiB6B,UAAUb,KAAK,CAAEX,QAAKG,aACzC,EAoCIqB,UAAW7B,iBAAiB6B,UAAUZ,eACtCxB,WAEFS,cACAF,iBACAF,YAEJ"}
1
+ {"version":3,"file":"AbstractSimpleRegistry.js","sources":["../../../src/Abstract/Registries/AbstractSimpleRegistry.ts"],"sourcesContent":["import type { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type { TAbstractSimpleRegistry, TWithBaseAccessorsRegistry, TWithReactiveRegistry } from '@hellpig/anarchy-engine/Abstract/Models';\nimport { withBaseAccessorsRegistry } from '@hellpig/anarchy-engine/Abstract/Registries/Mixin';\nimport { withReactiveRegistry } from '@hellpig/anarchy-engine/Abstract/Registries/Mixin/Registry/WithReactiveRegistry';\nimport type { TDestroyable } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin } from '@hellpig/anarchy-engine/Mixins';\nimport { mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport { findKeyWithValue, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport { nanoid } from 'nanoid';\n\nexport function AbstractSimpleRegistry<T>(type: RegistryType): TAbstractSimpleRegistry<T> {\n const id: string = type + '_registry_' + nanoid();\n const registry: Map<string, T> = new Map();\n\n const destroyable: TDestroyable = destroyableMixin();\n const reactiveRegistry: TWithReactiveRegistry<T> = withReactiveRegistry<T>(registry, destroyable);\n const baseAccessors: TWithBaseAccessorsRegistry<T> = withBaseAccessorsRegistry<T>(registry);\n\n function add(key: string, value: T): void | never {\n if (registry.has(key)) throw new Error(`[REGISTRY]: Cannot add to an item by key \"${key}\" to registry(\"${id}\"): The key is already exist in the registry.`);\n registry.set(key, value);\n reactiveRegistry.added$.next({ key, value });\n }\n\n function replace(key: string, value: T): void | never {\n if (!registry.has(key)) throw new Error(`[REGISTRY]: Cannot replace to an item by key \"${key}\" to registry(\"${id}\"): The key is not exist in the registry.`);\n registry.set(key, value);\n reactiveRegistry.replaced$.next({ key, value });\n }\n\n const findByKey = (key: string): T | undefined => registry.get(key);\n\n const findKeyByValue = (value: T): string | undefined => findKeyWithValue(registry, value);\n\n function remove(key: string): void | never {\n const value: T | undefined = registry.get(key);\n if (isNotDefined(value)) throw new Error(`[REGISTRY]: Cannot remove an item by key \"${key}\" from registry \"${id}\": The key is not exist in the registry.`);\n registry.delete(key);\n reactiveRegistry.removed$.next({ key, value });\n }\n\n const asObject = (): Record<string, T> => Object.fromEntries(registry.entries());\n\n return mergeAll(\n {\n add,\n added$: reactiveRegistry.added$.asObservable(),\n asObject,\n findByKey,\n findKeyByValue,\n getByKey: (key: string): T | never => {\n const value: T | undefined = findByKey(key);\n if (isNotDefined(value)) throw new Error(`[REGISTRY]: Cannot get an item by key \"${key}\" from registry \"${id}\": The key is not exist in the registry.`);\n return value;\n },\n getKeyByValue: (value: T): string | never => {\n const key: string | undefined = findKeyByValue(value);\n if (isNotDefined(key)) throw new Error(`[REGISTRY]: Cannot get a key by value from registry \"${id}\": The value is not exist in the registry.`);\n return key;\n },\n id,\n remove,\n removed$: reactiveRegistry.removed$.asObservable(),\n replace,\n replaced$: reactiveRegistry.replaced$.asObservable(),\n type\n },\n baseAccessors,\n reactiveRegistry,\n destroyable\n );\n}\n"],"names":["AbstractSimpleRegistry","type","id","nanoid","registry","Map","destroyable","destroyableMixin","reactiveRegistry","withReactiveRegistry","baseAccessors","withBaseAccessorsRegistry","findByKey","key","get","findKeyByValue","value","findKeyWithValue","mergeAll","add","has","Error","set","added$","next","asObservable","asObject","Object","fromEntries","entries","getByKey","isNotDefined","getKeyByValue","remove","delete","removed$","replace","replaced$"],"mappings":"khBAUO,SAASA,uBAA0BC,MACxC,MAAMC,GAAaD,KAAO,aAAeE,SACnCC,aAA+BC,IAE/BC,YAA4BC,mBAC5BC,iBAA6CC,qBAAwBL,SAAUE,aAC/EI,cAA+CC,0BAA6BP,UAc5EQ,UAAaC,KAA+BT,SAASU,IAAID,KAEzDE,eAAkBC,OAAiCC,iBAAiBb,SAAUY,OAWpF,OAAOE,SACL,CACEC,IA3BJ,SAAaN,IAAaG,OACxB,GAAIZ,SAASgB,IAAIP,KAAM,MAAM,IAAIQ,MAAM,6CAA6CR,qBAAqBX,mDACzGE,SAASkB,IAAIT,IAAKG,OAClBR,iBAAiBe,OAAOC,KAAK,CAAEX,QAAKG,aACtC,EAwBIO,OAAQf,iBAAiBe,OAAOE,eAChCC,SANa,IAAyBC,OAAOC,YAAYxB,SAASyB,WAOlEjB,oBACAG,8BACAe,SAAWjB,MACT,MAAMG,MAAuBJ,UAAUC,KACvC,GAAIkB,aAAaf,OAAQ,MAAM,IAAIK,MAAM,0CAA0CR,uBAAuBX,8CAC1G,OAAOc,OAETgB,cAAgBhB,QACd,MAAMH,IAA0BE,eAAeC,OAC/C,GAAIe,aAAalB,KAAM,MAAM,IAAIQ,MAAM,wDAAwDnB,gDAC/F,OAAOW,KAETX,MACA+B,OA3BJ,SAAgBpB,KACd,MAAMG,MAAuBZ,SAASU,IAAID,KAC1C,GAAIkB,aAAaf,OAAQ,MAAM,IAAIK,MAAM,6CAA6CR,uBAAuBX,8CAC7GE,SAAS8B,OAAOrB,KAChBL,iBAAiB2B,SAASX,KAAK,CAAEX,QAAKG,aACxC,EAuBImB,SAAU3B,iBAAiB2B,SAASV,eACpCW,QAvCJ,SAAiBvB,IAAaG,OAC5B,IAAKZ,SAASgB,IAAIP,KAAM,MAAM,IAAIQ,MAAM,iDAAiDR,qBAAqBX,+CAC9GE,SAASkB,IAAIT,IAAKG,OAClBR,iBAAiB6B,UAAUb,KAAK,CAAEX,QAAKG,aACzC,EAoCIqB,UAAW7B,iBAAiB6B,UAAUZ,eACtCxB,WAEFS,cACAF,iBACAF,YAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractWatcherRegistry.js","sources":["../../../src/Abstract/Registries/AbstractWatcherRegistry.ts"],"sourcesContent":["import type { RegistryType } from '@Anarchy/Engine/Abstract/Constants';\nimport type { TAbstractEntityRegistry, TAbstractProtectedWatcherWithState, TAbstractWatcher, TAbstractWatcherRegistry } from '@Anarchy/Engine/Abstract/Models';\n\nimport { AbstractEntityRegistry } from './AbstractEntityRegistry';\n\nexport function AbstractWatcherRegistry<T extends TAbstractWatcher<any> | TAbstractProtectedWatcherWithState<any>>(type: RegistryType): TAbstractWatcherRegistry<T> {\n const abstractEntityRegistry: TAbstractEntityRegistry<T> = AbstractEntityRegistry<T>(type);\n\n abstractEntityRegistry.destroy$.subscribe((): void => {\n abstractEntityRegistry.forEach((v: T): void => {\n v.enabled$.next(false);\n });\n });\n\n return Object.assign(abstractEntityRegistry);\n}\n"],"names":["AbstractWatcherRegistry","type","abstractEntityRegistry","AbstractEntityRegistry","destroy$","subscribe","forEach","v","enabled$","next","Object","assign"],"mappings":"gEAKO,SAASA,wBAAmGC,MACjH,MAAMC,uBAAqDC,uBAA0BF,MAQrF,OANAC,uBAAuBE,SAASC,UAAU,KACxCH,uBAAuBI,QAASC,IAC9BA,EAAEC,SAASC,MAAK,OAIbC,OAAOC,OAAOT,uBACvB"}
1
+ {"version":3,"file":"AbstractWatcherRegistry.js","sources":["../../../src/Abstract/Registries/AbstractWatcherRegistry.ts"],"sourcesContent":["import type { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type { TAbstractEntityRegistry, TAbstractProtectedWatcherWithState, TAbstractWatcher, TAbstractWatcherRegistry } from '@hellpig/anarchy-engine/Abstract/Models';\n\nimport { AbstractEntityRegistry } from './AbstractEntityRegistry';\n\nexport function AbstractWatcherRegistry<T extends TAbstractWatcher<any> | TAbstractProtectedWatcherWithState<any>>(type: RegistryType): TAbstractWatcherRegistry<T> {\n const abstractEntityRegistry: TAbstractEntityRegistry<T> = AbstractEntityRegistry<T>(type);\n\n abstractEntityRegistry.destroy$.subscribe((): void => {\n abstractEntityRegistry.forEach((v: T): void => {\n v.enabled$.next(false);\n });\n });\n\n return Object.assign(abstractEntityRegistry);\n}\n"],"names":["AbstractWatcherRegistry","type","abstractEntityRegistry","AbstractEntityRegistry","destroy$","subscribe","forEach","v","enabled$","next","Object","assign"],"mappings":"gEAKO,SAASA,wBAAmGC,MACjH,MAAMC,uBAAqDC,uBAA0BF,MAQrF,OANAC,uBAAuBE,SAASC,UAAU,KACxCH,uBAAuBI,QAASC,IAC9BA,EAAEC,SAASC,MAAK,OAIbC,OAAOC,OAAOT,uBACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"WithBaseAccessorsRegistry.js","sources":["../../../../../src/Abstract/Registries/Mixin/Registry/WithBaseAccessorsRegistry.ts"],"sourcesContent":["import type { TWithBaseAccessorsRegistry } from '@Anarchy/Engine/Abstract/Models';\nimport type { TSerializable } from '@Anarchy/Engine/Mixins';\nimport { asArray } from '@Anarchy/Engine/Utils';\nimport { findInMap, findKeyInMap, isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\n\nexport function withBaseAccessorsRegistry<T>(registry: Map<string, T>): TWithBaseAccessorsRegistry<T> {\n const isEmpty = (): boolean => registry.size === 0;\n const getLength = (): number => registry.size;\n const forEach = (cb: (value: T, key: string, map: Map<string, T>) => void): void => registry.forEach(cb);\n const map = <U>(cb: (value: T, key?: string) => U): ReadonlyArray<U> => {\n return Array.from(registry, ([key, value]: [string, T]): U => cb(value, key));\n };\n const find = (predicate: (entity: T, key: string) => boolean): T | undefined => findInMap(registry, predicate);\n const findKey = (predicate: (entity: T, key: string) => boolean): string | undefined => findKeyInMap(registry, predicate);\n const clear = (): void => registry.clear();\n const getRegistryCopy = (): Map<string, T> => new Map(registry);\n const serialize = <S, D extends Record<string, any> | undefined>(dependencies?: Record<string, any> | undefined): ReadonlyArray<S> | never => {\n return map((value: T): S => {\n if (isDefined((value as TSerializable<S, D>).serialize)) return (value as TSerializable<S, D>).serialize(dependencies as D);\n if (isDefined((value as any).toString)) {\n const result = (value as any).toString().trim();\n if (result === {}.toString()) {\n throw new Error(\n `[REGISTRY]: Value \"${value}\" has no .serialize() or .toString() methods. Standard .toString() returned '[object Object]' which seems to be an error. Details: id: \"${(value as any).id}\", name: \"${(value as any).name}\"`\n );\n }\n if (result === [].toString() || result === '') {\n throw new Error(\n `[REGISTRY]: Value \"${value}\" has no .serialize() or .toString() methods. Standard .toString() returned an empty string which seems to be an error. Details: id: \"${(value as any).id}\", name: \"${(value as any).name}\"`\n );\n }\n\n return result as unknown as S;\n }\n\n console.warn(`[REGISTRY] Value \"${value}\" as no .serialize() or .toString() methods, returning as is`);\n return value as unknown as S;\n });\n };\n\n return {\n asArray: (): ReadonlyArray<T> => asArray(registry),\n clear,\n find,\n findKey,\n getKey: (predicate: (entity: T, key: string) => boolean): string | never => {\n const result: string | undefined = findKey(predicate);\n if (isNotDefined(result)) throw new Error('[REGISTRY]: Cannot find an entity key with the provided predicate');\n return result;\n },\n forEach,\n getLength,\n getRegistryCopy,\n isEmpty,\n get: (predicate: (value: T, key: string) => boolean): T | never => {\n const result: T | undefined = find(predicate);\n if (isNotDefined(result)) throw new Error('[REGISTRY]: Cannot find an entity with the provided predicate');\n return result;\n },\n map,\n serialize\n };\n}\n"],"names":["withBaseAccessorsRegistry","registry","map","cb","Array","from","key","value","find","predicate","findInMap","findKey","findKeyInMap","asArray","clear","getKey","result","isNotDefined","Error","forEach","getLength","size","getRegistryCopy","Map","isEmpty","get","serialize","dependencies","isDefined","toString","trim","id","name","console","warn"],"mappings":"sPAKO,SAASA,0BAA6BC,UAC3C,MAGMC,IAAUC,IACPC,MAAMC,KAAKJ,SAAU,EAAEK,IAAKC,SAA2BJ,GAAGI,MAAOD,MAEpEE,KAAQC,WAAkEC,UAAUT,SAAUQ,WAC9FE,QAAWF,WAAuEG,aAAaX,SAAUQ,WA2B/G,MAAO,CACLI,QAAS,IAAwBA,QAAQZ,UACzCa,MA5BY,IAAYb,SAASa,QA6BjCN,UACAG,gBACAI,OAASN,YACP,MAAMO,OAA6BL,QAAQF,WAC3C,GAAIQ,aAAaD,QAAS,MAAM,IAAIE,MAAM,qEAC1C,OAAOF,QAETG,QA1CehB,IAAmEF,SAASkB,QAAQhB,IA2CnGiB,UA5CgB,IAAcnB,SAASoB,KA6CvCC,gBArCsB,IAAsB,IAAIC,IAAItB,UAsCpDuB,QA/Cc,IAAiC,IAAlBvB,SAASoB,KAgDtCI,IAAMhB,YACJ,MAAMO,OAAwBR,KAAKC,WACnC,GAAIQ,aAAaD,QAAS,MAAM,IAAIE,MAAM,iEAC1C,OAAOF,QAETd,QACAwB,UA5C+DC,cACxDzB,IAAKK,QACV,GAAIqB,UAAWrB,MAA8BmB,WAAY,OAAQnB,MAA8BmB,UAAUC,cACzG,GAAIC,UAAWrB,MAAcsB,UAAW,CACtC,MAAMb,OAAUT,MAAcsB,WAAWC,OACzC,GAAId,SAAW,GAAGa,WAChB,MAAM,IAAIX,MACR,sBAAsBX,gJAAiJA,MAAcwB,eAAgBxB,MAAcyB,SAGvN,GAAIhB,SAAW,GAAGa,YAAyB,KAAXb,OAC9B,MAAM,IAAIE,MACR,sBAAsBX,8IAA+IA,MAAcwB,eAAgBxB,MAAcyB,SAIrN,OAAOhB,MACT,CAGA,OADAiB,QAAQC,KAAK,qBAAqB3B,qEAC3BA,QA0Bb"}
1
+ {"version":3,"file":"WithBaseAccessorsRegistry.js","sources":["../../../../../src/Abstract/Registries/Mixin/Registry/WithBaseAccessorsRegistry.ts"],"sourcesContent":["import type { TWithBaseAccessorsRegistry } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { TSerializable } from '@hellpig/anarchy-engine/Mixins';\nimport { asArray } from '@hellpig/anarchy-engine/Utils';\nimport { findInMap, findKeyInMap, isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function withBaseAccessorsRegistry<T>(registry: Map<string, T>): TWithBaseAccessorsRegistry<T> {\n const isEmpty = (): boolean => registry.size === 0;\n const getLength = (): number => registry.size;\n const forEach = (cb: (value: T, key: string, map: Map<string, T>) => void): void => registry.forEach(cb);\n const map = <U>(cb: (value: T, key?: string) => U): ReadonlyArray<U> => {\n return Array.from(registry, ([key, value]: [string, T]): U => cb(value, key));\n };\n const find = (predicate: (entity: T, key: string) => boolean): T | undefined => findInMap(registry, predicate);\n const findKey = (predicate: (entity: T, key: string) => boolean): string | undefined => findKeyInMap(registry, predicate);\n const clear = (): void => registry.clear();\n const getRegistryCopy = (): Map<string, T> => new Map(registry);\n const serialize = <S, D extends Record<string, any> | undefined>(dependencies?: Record<string, any> | undefined): ReadonlyArray<S> | never => {\n return map((value: T): S => {\n if (isDefined((value as TSerializable<S, D>).serialize)) return (value as TSerializable<S, D>).serialize(dependencies as D);\n if (isDefined((value as any).toString)) {\n const result = (value as any).toString().trim();\n if (result === {}.toString()) {\n throw new Error(\n `[REGISTRY]: Value \"${value}\" has no .serialize() or .toString() methods. Standard .toString() returned '[object Object]' which seems to be an error. Details: id: \"${(value as any).id}\", name: \"${(value as any).name}\"`\n );\n }\n if (result === [].toString() || result === '') {\n throw new Error(\n `[REGISTRY]: Value \"${value}\" has no .serialize() or .toString() methods. Standard .toString() returned an empty string which seems to be an error. Details: id: \"${(value as any).id}\", name: \"${(value as any).name}\"`\n );\n }\n\n return result as unknown as S;\n }\n\n console.warn(`[REGISTRY] Value \"${value}\" as no .serialize() or .toString() methods, returning as is`);\n return value as unknown as S;\n });\n };\n\n return {\n asArray: (): ReadonlyArray<T> => asArray(registry),\n clear,\n find,\n findKey,\n getKey: (predicate: (entity: T, key: string) => boolean): string | never => {\n const result: string | undefined = findKey(predicate);\n if (isNotDefined(result)) throw new Error('[REGISTRY]: Cannot find an entity key with the provided predicate');\n return result;\n },\n forEach,\n getLength,\n getRegistryCopy,\n isEmpty,\n get: (predicate: (value: T, key: string) => boolean): T | never => {\n const result: T | undefined = find(predicate);\n if (isNotDefined(result)) throw new Error('[REGISTRY]: Cannot find an entity with the provided predicate');\n return result;\n },\n map,\n serialize\n };\n}\n"],"names":["withBaseAccessorsRegistry","registry","map","cb","Array","from","key","value","find","predicate","findInMap","findKey","findKeyInMap","asArray","clear","getKey","result","isNotDefined","Error","forEach","getLength","size","getRegistryCopy","Map","isEmpty","get","serialize","dependencies","isDefined","toString","trim","id","name","console","warn"],"mappings":"sPAKO,SAASA,0BAA6BC,UAC3C,MAGMC,IAAUC,IACPC,MAAMC,KAAKJ,SAAU,EAAEK,IAAKC,SAA2BJ,GAAGI,MAAOD,MAEpEE,KAAQC,WAAkEC,UAAUT,SAAUQ,WAC9FE,QAAWF,WAAuEG,aAAaX,SAAUQ,WA2B/G,MAAO,CACLI,QAAS,IAAwBA,QAAQZ,UACzCa,MA5BY,IAAYb,SAASa,QA6BjCN,UACAG,gBACAI,OAASN,YACP,MAAMO,OAA6BL,QAAQF,WAC3C,GAAIQ,aAAaD,QAAS,MAAM,IAAIE,MAAM,qEAC1C,OAAOF,QAETG,QA1CehB,IAAmEF,SAASkB,QAAQhB,IA2CnGiB,UA5CgB,IAAcnB,SAASoB,KA6CvCC,gBArCsB,IAAsB,IAAIC,IAAItB,UAsCpDuB,QA/Cc,IAAiC,IAAlBvB,SAASoB,KAgDtCI,IAAMhB,YACJ,MAAMO,OAAwBR,KAAKC,WACnC,GAAIQ,aAAaD,QAAS,MAAM,IAAIE,MAAM,iEAC1C,OAAOF,QAETd,QACAwB,UA5C+DC,cACxDzB,IAAKK,QACV,GAAIqB,UAAWrB,MAA8BmB,WAAY,OAAQnB,MAA8BmB,UAAUC,cACzG,GAAIC,UAAWrB,MAAcsB,UAAW,CACtC,MAAMb,OAAUT,MAAcsB,WAAWC,OACzC,GAAId,SAAW,GAAGa,WAChB,MAAM,IAAIX,MACR,sBAAsBX,gJAAiJA,MAAcwB,eAAgBxB,MAAcyB,SAGvN,GAAIhB,SAAW,GAAGa,YAAyB,KAAXb,OAC9B,MAAM,IAAIE,MACR,sBAAsBX,8IAA+IA,MAAcwB,eAAgBxB,MAAcyB,SAIrN,OAAOhB,MACT,CAGA,OADAiB,QAAQC,KAAK,qBAAqB3B,qEAC3BA,QA0Bb"}
@@ -1 +1 @@
1
- {"version":3,"file":"WithReactiveRegistry.js","sources":["../../../../../src/Abstract/Registries/Mixin/Registry/WithReactiveRegistry.ts"],"sourcesContent":["import type { TRegistryPack, TWithReactiveRegistry } from '@Anarchy/Engine/Abstract/Models';\nimport type { TDestroyable } from '@Anarchy/Engine/Mixins';\nimport { isDestroyable } from '@Anarchy/Engine/Utils';\nimport type { Subscription } from 'rxjs';\nimport { Subject } from 'rxjs';\n\nexport function withReactiveRegistry<T>(registry: Map<string, T>, destroyable: TDestroyable): TWithReactiveRegistry<T> {\n const added$: Subject<TRegistryPack<T>> = new Subject<TRegistryPack<T>>();\n const replaced$: Subject<TRegistryPack<T>> = new Subject<TRegistryPack<T>>();\n const removed$: Subject<TRegistryPack<T>> = new Subject<TRegistryPack<T>>();\n\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n added$.complete();\n replaced$.complete();\n removed$.complete();\n registry.forEach((obj: T): void => {\n if ((obj as any).dispose) (obj as any).dispose();\n if (isDestroyable(obj)) obj.destroy$.next();\n else {\n console.warn(`Entity ${obj} (name: \"${(obj as any).name}\", id: \"${(obj as any).id}\", type: ${(obj as any).type}) is not destroyable, you may need to add destroy$ to it.`);\n }\n });\n registry.clear();\n });\n\n return {\n added$,\n replaced$,\n removed$\n };\n}\n"],"names":["withReactiveRegistry","registry","destroyable","added$","Subject","replaced$","removed$","destroySub$","destroy$","subscribe","unsubscribe","complete","forEach","obj","dispose","isDestroyable","next","console","warn","name","id","type","clear"],"mappings":"4IAMO,SAASA,qBAAwBC,SAA0BC,aAChE,MAAMC,OAAoC,IAAIC,QACxCC,UAAuC,IAAID,QAC3CE,SAAsC,IAAIF,QAE1CG,YAA4BL,YAAYM,SAASC,UAAU,KAC/DF,YAAYG,cAEZP,OAAOQ,WACPN,UAAUM,WACVL,SAASK,WACTV,SAASW,QAASC,MACXA,IAAYC,SAAUD,IAAYC,UACnCC,cAAcF,KAAMA,IAAIL,SAASQ,OAEnCC,QAAQC,KAAK,UAAUL,eAAgBA,IAAYM,eAAgBN,IAAYO,cAAeP,IAAYQ,mEAG9GpB,SAASqB,UAGX,MAAO,CACLnB,cACAE,oBACAC,kBAEJ"}
1
+ {"version":3,"file":"WithReactiveRegistry.js","sources":["../../../../../src/Abstract/Registries/Mixin/Registry/WithReactiveRegistry.ts"],"sourcesContent":["import type { TRegistryPack, TWithReactiveRegistry } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { TDestroyable } from '@hellpig/anarchy-engine/Mixins';\nimport { isDestroyable } from '@hellpig/anarchy-engine/Utils';\nimport type { Subscription } from 'rxjs';\nimport { Subject } from 'rxjs';\n\nexport function withReactiveRegistry<T>(registry: Map<string, T>, destroyable: TDestroyable): TWithReactiveRegistry<T> {\n const added$: Subject<TRegistryPack<T>> = new Subject<TRegistryPack<T>>();\n const replaced$: Subject<TRegistryPack<T>> = new Subject<TRegistryPack<T>>();\n const removed$: Subject<TRegistryPack<T>> = new Subject<TRegistryPack<T>>();\n\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n added$.complete();\n replaced$.complete();\n removed$.complete();\n registry.forEach((obj: T): void => {\n if ((obj as any).dispose) (obj as any).dispose();\n if (isDestroyable(obj)) obj.destroy$.next();\n else {\n console.warn(`Entity ${obj} (name: \"${(obj as any).name}\", id: \"${(obj as any).id}\", type: ${(obj as any).type}) is not destroyable, you may need to add destroy$ to it.`);\n }\n });\n registry.clear();\n });\n\n return {\n added$,\n replaced$,\n removed$\n };\n}\n"],"names":["withReactiveRegistry","registry","destroyable","added$","Subject","replaced$","removed$","destroySub$","destroy$","subscribe","unsubscribe","complete","forEach","obj","dispose","isDestroyable","next","console","warn","name","id","type","clear"],"mappings":"4IAMO,SAASA,qBAAwBC,SAA0BC,aAChE,MAAMC,OAAoC,IAAIC,QACxCC,UAAuC,IAAID,QAC3CE,SAAsC,IAAIF,QAE1CG,YAA4BL,YAAYM,SAASC,UAAU,KAC/DF,YAAYG,cAEZP,OAAOQ,WACPN,UAAUM,WACVL,SAASK,WACTV,SAASW,QAASC,MACXA,IAAYC,SAAUD,IAAYC,UACnCC,cAAcF,KAAMA,IAAIL,SAASQ,OAEnCC,QAAQC,KAAK,UAAUL,eAAgBA,IAAYM,eAAgBN,IAAYO,cAAeP,IAAYQ,mEAG9GpB,SAASqB,UAGX,MAAO,CACLnB,cACAE,oBACAC,kBAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractService.js","sources":["../../../src/Abstract/Services/AbstractService.ts"],"sourcesContent":["import type { TAbstractService } from '@Anarchy/Engine/Abstract/Models';\nimport type { TDestroyable, TDisposable } from '@Anarchy/Engine/Mixins';\nimport { destroyableMixin } from '@Anarchy/Engine/Mixins';\nimport type { Subscription } from 'rxjs';\n\nexport function AbstractService<T extends TDisposable>(disposable?: ReadonlyArray<T>): TAbstractService {\n const destroyable: TDestroyable = destroyableMixin();\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n disposable?.forEach((d: T): void => {\n if ((d as TDestroyable).destroy$) (d as TDestroyable).destroy$.next();\n if ((d as Subscription).unsubscribe) (d as Subscription).unsubscribe();\n });\n });\n\n return destroyable;\n}\n"],"names":["AbstractService","disposable","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","unsubscribe","forEach","d","next"],"mappings":"wEAKO,SAASA,gBAAuCC,YACrD,MAAMC,YAA4BC,mBAC5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC/DF,YAAYG,cAEZN,YAAYO,QAASC,IACdA,EAAmBJ,UAAWI,EAAmBJ,SAASK,OAC1DD,EAAmBF,aAAcE,EAAmBF,kBAI7D,OAAOL,WACT"}
1
+ {"version":3,"file":"AbstractService.js","sources":["../../../src/Abstract/Services/AbstractService.ts"],"sourcesContent":["import type { TAbstractService } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { TDestroyable, TDisposable } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin } from '@hellpig/anarchy-engine/Mixins';\nimport type { Subscription } from 'rxjs';\n\nexport function AbstractService<T extends TDisposable>(disposable?: ReadonlyArray<T>): TAbstractService {\n const destroyable: TDestroyable = destroyableMixin();\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n disposable?.forEach((d: T): void => {\n if ((d as TDestroyable).destroy$) (d as TDestroyable).destroy$.next();\n if ((d as Subscription).unsubscribe) (d as Subscription).unsubscribe();\n });\n });\n\n return destroyable;\n}\n"],"names":["AbstractService","disposable","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","unsubscribe","forEach","d","next"],"mappings":"wEAKO,SAASA,gBAAuCC,YACrD,MAAMC,YAA4BC,mBAC5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC/DF,YAAYG,cAEZN,YAAYO,QAASC,IACdA,EAAmBJ,UAAWI,EAAmBJ,SAASK,OAC1DD,EAAmBF,aAAcE,EAAmBF,kBAI7D,OAAOL,WACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractWatcher.js","sources":["../../../src/Abstract/Watchers/AbstractWatcher.ts"],"sourcesContent":["import type { WatcherType } from '@Anarchy/Engine/Abstract/Constants';\nimport type { TAbstractWatcher } from '@Anarchy/Engine/Abstract/Models';\nimport type { TDestroyable } from '@Anarchy/Engine/Mixins';\nimport { destroyableMixin, withNameAndNameAccessorsMixin } from '@Anarchy/Engine/Mixins';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nexport function AbstractWatcher<T>(type: WatcherType | string, name: string, tags: ReadonlyArray<string> = []): TAbstractWatcher<T> {\n const id: string = type + '_' + nanoid();\n const value$: Subject<T> = new Subject<T>();\n const enabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n const destroyable: TDestroyable = destroyableMixin();\n\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n enabled$.next(false);\n enabled$.complete();\n value$.complete();\n });\n\n // eslint-disable-next-line functional/immutable-data\n const partialResult = Object.assign(destroyable, {\n id,\n name,\n type,\n tags,\n value$,\n enabled$\n });\n\n // eslint-disable-next-line functional/immutable-data\n const result: TAbstractWatcher<T> = Object.assign(partialResult, withNameAndNameAccessorsMixin(partialResult));\n\n if (isDefined(name)) result.setName(name);\n\n return result;\n}\n"],"names":["AbstractWatcher","type","name","tags","id","nanoid","value$","Subject","enabled$","BehaviorSubject","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","unsubscribe","next","complete","partialResult","Object","assign","result","withNameAndNameAccessorsMixin","isDefined","setName"],"mappings":"ofASO,SAASA,gBAAmBC,KAA4BC,KAAcC,KAA8B,IACzG,MAAMC,GAAaH,KAAO,IAAMI,SAC1BC,OAAqB,IAAIC,QACzBC,SAAqC,IAAIC,iBAAyB,GAClEC,YAA4BC,mBAE5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC/DF,YAAYG,cAEZP,SAASQ,MAAK,GACdR,SAASS,WACTX,OAAOW,aAIHC,cAAgBC,OAAOC,OAAOV,YAAa,CAC/CN,MACAF,UACAD,UACAE,UACAG,cACAE,oBAIIa,OAA8BF,OAAOC,OAAOF,cAAeI,8BAA8BJ,gBAI/F,OAFIK,UAAUrB,OAAOmB,OAAOG,QAAQtB,MAE7BmB,MACT"}
1
+ {"version":3,"file":"AbstractWatcher.js","sources":["../../../src/Abstract/Watchers/AbstractWatcher.ts"],"sourcesContent":["import type { WatcherType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type { TAbstractWatcher } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { TDestroyable } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin, withNameAndNameAccessorsMixin } from '@hellpig/anarchy-engine/Mixins';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nexport function AbstractWatcher<T>(type: WatcherType | string, name: string, tags: ReadonlyArray<string> = []): TAbstractWatcher<T> {\n const id: string = type + '_' + nanoid();\n const value$: Subject<T> = new Subject<T>();\n const enabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n const destroyable: TDestroyable = destroyableMixin();\n\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n enabled$.next(false);\n enabled$.complete();\n value$.complete();\n });\n\n // eslint-disable-next-line functional/immutable-data\n const partialResult = Object.assign(destroyable, {\n id,\n name,\n type,\n tags,\n value$,\n enabled$\n });\n\n // eslint-disable-next-line functional/immutable-data\n const result: TAbstractWatcher<T> = Object.assign(partialResult, withNameAndNameAccessorsMixin(partialResult));\n\n if (isDefined(name)) result.setName(name);\n\n return result;\n}\n"],"names":["AbstractWatcher","type","name","tags","id","nanoid","value$","Subject","enabled$","BehaviorSubject","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","unsubscribe","next","complete","partialResult","Object","assign","result","withNameAndNameAccessorsMixin","isDefined","setName"],"mappings":"ofASO,SAASA,gBAAmBC,KAA4BC,KAAcC,KAA8B,IACzG,MAAMC,GAAaH,KAAO,IAAMI,SAC1BC,OAAqB,IAAIC,QACzBC,SAAqC,IAAIC,iBAAyB,GAClEC,YAA4BC,mBAE5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC/DF,YAAYG,cAEZP,SAASQ,MAAK,GACdR,SAASS,WACTX,OAAOW,aAIHC,cAAgBC,OAAOC,OAAOV,YAAa,CAC/CN,MACAF,UACAD,UACAE,UACAG,cACAE,oBAIIa,OAA8BF,OAAOC,OAAOF,cAAeI,8BAA8BJ,gBAI/F,OAFIK,UAAUrB,OAAOmB,OAAOG,QAAQtB,MAE7BmB,MACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractWatcherWithState.js","sources":["../../../src/Abstract/Watchers/AbstractWatcherWithState.ts"],"sourcesContent":["import type { WatcherType } from '@Anarchy/Engine/Abstract/Constants';\nimport type { TAbstractWatcher, TAbstractWatcherWithState } from '@Anarchy/Engine/Abstract/Models';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { AbstractWatcher } from './AbstractWatcher';\n\nexport function AbstractWatcherWithState<T>(type: WatcherType | string, name: string, initialValue: T, tags: ReadonlyArray<string> = []): TAbstractWatcherWithState<T> {\n const abstractWatcher: Omit<TAbstractWatcher<T>, 'value$'> & { value$: BehaviorSubject<T> } = AbstractWatcher(type, name, tags) as Omit<TAbstractWatcher<T>, 'value$'> & {\n value$: BehaviorSubject<T>;\n };\n\n // AbstractWatcherWithState uses BehaviorSubject instead of Subject (in AbstractWatcher), so we replace it here\n abstractWatcher.value$.complete();\n // eslint-disable-next-line functional/immutable-data\n abstractWatcher.value$ = new BehaviorSubject<T>(initialValue);\n\n const destroySub$: Subscription = abstractWatcher.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n abstractWatcher.value$.complete();\n });\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractWatcher, {\n getValue: (): T => abstractWatcher.value$.value\n });\n}\n"],"names":["AbstractWatcherWithState","type","name","initialValue","tags","abstractWatcher","AbstractWatcher","value$","complete","BehaviorSubject","destroySub$","destroy$","subscribe","unsubscribe","Object","assign","getValue","value"],"mappings":"6IAOO,SAASA,yBAA4BC,KAA4BC,KAAcC,aAAiBC,KAA8B,IACnI,MAAMC,gBAAwFC,gBAAgBL,KAAMC,KAAME,MAK1HC,gBAAgBE,OAAOC,WAEvBH,gBAAgBE,OAAS,IAAIE,gBAAmBN,cAEhD,MAAMO,YAA4BL,gBAAgBM,SAASC,UAAU,KACnEF,YAAYG,cAEZR,gBAAgBE,OAAOC,aAIzB,OAAOM,OAAOC,OAAOV,gBAAiB,CACpCW,SAAU,IAASX,gBAAgBE,OAAOU,OAE9C"}
1
+ {"version":3,"file":"AbstractWatcherWithState.js","sources":["../../../src/Abstract/Watchers/AbstractWatcherWithState.ts"],"sourcesContent":["import type { WatcherType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport type { TAbstractWatcher, TAbstractWatcherWithState } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { AbstractWatcher } from './AbstractWatcher';\n\nexport function AbstractWatcherWithState<T>(type: WatcherType | string, name: string, initialValue: T, tags: ReadonlyArray<string> = []): TAbstractWatcherWithState<T> {\n const abstractWatcher: Omit<TAbstractWatcher<T>, 'value$'> & { value$: BehaviorSubject<T> } = AbstractWatcher(type, name, tags) as Omit<TAbstractWatcher<T>, 'value$'> & {\n value$: BehaviorSubject<T>;\n };\n\n // AbstractWatcherWithState uses BehaviorSubject instead of Subject (in AbstractWatcher), so we replace it here\n abstractWatcher.value$.complete();\n // eslint-disable-next-line functional/immutable-data\n abstractWatcher.value$ = new BehaviorSubject<T>(initialValue);\n\n const destroySub$: Subscription = abstractWatcher.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n abstractWatcher.value$.complete();\n });\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractWatcher, {\n getValue: (): T => abstractWatcher.value$.value\n });\n}\n"],"names":["AbstractWatcherWithState","type","name","initialValue","tags","abstractWatcher","AbstractWatcher","value$","complete","BehaviorSubject","destroySub$","destroy$","subscribe","unsubscribe","Object","assign","getValue","value"],"mappings":"6IAOO,SAASA,yBAA4BC,KAA4BC,KAAcC,aAAiBC,KAA8B,IACnI,MAAMC,gBAAwFC,gBAAgBL,KAAMC,KAAME,MAK1HC,gBAAgBE,OAAOC,WAEvBH,gBAAgBE,OAAS,IAAIE,gBAAmBN,cAEhD,MAAMO,YAA4BL,gBAAgBM,SAASC,UAAU,KACnEF,YAAYG,cAEZR,gBAAgBE,OAAOC,aAIzB,OAAOM,OAAOC,OAAOV,gBAAiB,CACpCW,SAAU,IAASX,gBAAgBE,OAAOU,OAE9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractWrapper.js","sources":["../../../src/Abstract/Wrappers/AbstractWrapper.ts"],"sourcesContent":["import type { WrapperType } from '@Anarchy/Engine/Abstract/Constants';\nimport { withNoWrapperIdMixin, withWrapperIdMixin } from '@Anarchy/Engine/Abstract/Mixins';\nimport type { TAbstractWrapper, TWithUserData, TWithWrapperId, TWithWrapperIdEntity } from '@Anarchy/Engine/Abstract/Models';\nimport type { TDestroyable, TRegistrable, TWithEntity, TWithName } from '@Anarchy/Engine/Mixins';\nimport { destroyableMixin, withNameAndNameAccessorsMixin } from '@Anarchy/Engine/Mixins';\nimport type { TWithTags } from '@Anarchy/Engine/Mixins/Generics/Models/TWithTags';\nimport { genericEntityCleanUp, isWithUserData, isWithWrapperIdAccessors, mergeAll } from '@Anarchy/Engine/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { Subscription } from 'rxjs';\n\ntype TWrapperParams = TWithTags & TWithName;\n\nexport function AbstractWrapper<T>(entity: T, type: WrapperType | string, params?: TWrapperParams): TAbstractWrapper<T>;\nexport function AbstractWrapper<T extends TWithUserData>(entity: T, type: WrapperType | string, params?: TWrapperParams): TAbstractWrapper<TWithWrapperIdEntity<T>>;\nexport function AbstractWrapper<T extends TWithUserData>(entity: T, type: WrapperType | string, params?: TWrapperParams): TAbstractWrapper<TWithWrapperIdEntity<any>> | TAbstractWrapper<T> {\n const id: string = type + '_' + nanoid();\n\n const withWrapperId: TWithWrapperId = isWithUserData(entity) ? withWrapperIdMixin(entity) : withNoWrapperIdMixin(entity);\n const destroyable: TDestroyable = destroyableMixin();\n\n const partialResult: TWithEntity<T> & TRegistrable & TWithName = {\n id,\n entity,\n name: (entity as unknown as TWithName).name ?? params?.name,\n tags: params?.tags ?? []\n };\n\n const result: TAbstractWrapper<T> = mergeAll(partialResult, withWrapperId, destroyable, withNameAndNameAccessorsMixin(partialResult));\n\n const destroyableSub$: Subscription = destroyable.destroy$.subscribe((): void => {\n genericEntityCleanUp(entity);\n\n destroyableSub$.unsubscribe();\n });\n\n //apply params\n if (isWithUserData(entity) && isWithWrapperIdAccessors(result)) result.setWrapperId(id);\n if (isDefined(params?.name)) result.setName(params.name);\n\n return result;\n}\n"],"names":["AbstractWrapper","entity","type","params","id","nanoid","withWrapperId","isWithUserData","withWrapperIdMixin","withNoWrapperIdMixin","destroyable","destroyableMixin","partialResult","name","tags","result","mergeAll","withNameAndNameAccessorsMixin","destroyableSub$","destroy$","subscribe","genericEntityCleanUp","unsubscribe","isWithWrapperIdAccessors","setWrapperId","isDefined","setName"],"mappings":"imBAeO,SAASA,gBAAyCC,OAAWC,KAA4BC,QAC9F,MAAMC,GAAaF,KAAO,IAAMG,SAE1BC,cAAgCC,eAAeN,QAAUO,mBAAmBP,QAAUQ,qBAAqBR,QAC3GS,YAA4BC,mBAE5BC,cAA2D,CAC/DR,MACAH,cACAY,KAAOZ,OAAgCY,MAAQV,QAAQU,KACvDC,KAAMX,QAAQW,MAAQ,IAGlBC,OAA8BC,SAASJ,cAAeN,cAAeI,YAAaO,8BAA8BL,gBAEhHM,gBAAgCR,YAAYS,SAASC,UAAU,KACnEC,qBAAqBpB,QAErBiB,gBAAgBI,gBAOlB,OAHIf,eAAeN,SAAWsB,yBAAyBR,SAASA,OAAOS,aAAapB,IAChFqB,UAAUtB,QAAQU,OAAOE,OAAOW,QAAQvB,OAAOU,MAE5CE,MACT"}
1
+ {"version":3,"file":"AbstractWrapper.js","sources":["../../../src/Abstract/Wrappers/AbstractWrapper.ts"],"sourcesContent":["import type { WrapperType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { withNoWrapperIdMixin, withWrapperIdMixin } from '@hellpig/anarchy-engine/Abstract/Mixins';\nimport type { TAbstractWrapper, TWithUserData, TWithWrapperId, TWithWrapperIdEntity } from '@hellpig/anarchy-engine/Abstract/Models';\nimport type { TDestroyable, TRegistrable, TWithEntity, TWithName } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin, withNameAndNameAccessorsMixin } from '@hellpig/anarchy-engine/Mixins';\nimport type { TWithTags } from '@hellpig/anarchy-engine/Mixins/Generics/Models/TWithTags';\nimport { genericEntityCleanUp, isWithUserData, isWithWrapperIdAccessors, mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { Subscription } from 'rxjs';\n\ntype TWrapperParams = TWithTags & TWithName;\n\nexport function AbstractWrapper<T>(entity: T, type: WrapperType | string, params?: TWrapperParams): TAbstractWrapper<T>;\nexport function AbstractWrapper<T extends TWithUserData>(entity: T, type: WrapperType | string, params?: TWrapperParams): TAbstractWrapper<TWithWrapperIdEntity<T>>;\nexport function AbstractWrapper<T extends TWithUserData>(entity: T, type: WrapperType | string, params?: TWrapperParams): TAbstractWrapper<TWithWrapperIdEntity<any>> | TAbstractWrapper<T> {\n const id: string = type + '_' + nanoid();\n\n const withWrapperId: TWithWrapperId = isWithUserData(entity) ? withWrapperIdMixin(entity) : withNoWrapperIdMixin(entity);\n const destroyable: TDestroyable = destroyableMixin();\n\n const partialResult: TWithEntity<T> & TRegistrable & TWithName = {\n id,\n entity,\n name: (entity as unknown as TWithName).name ?? params?.name,\n tags: params?.tags ?? []\n };\n\n const result: TAbstractWrapper<T> = mergeAll(partialResult, withWrapperId, destroyable, withNameAndNameAccessorsMixin(partialResult));\n\n const destroyableSub$: Subscription = destroyable.destroy$.subscribe((): void => {\n genericEntityCleanUp(entity);\n\n destroyableSub$.unsubscribe();\n });\n\n //apply params\n if (isWithUserData(entity) && isWithWrapperIdAccessors(result)) result.setWrapperId(id);\n if (isDefined(params?.name)) result.setName(params.name);\n\n return result;\n}\n"],"names":["AbstractWrapper","entity","type","params","id","nanoid","withWrapperId","isWithUserData","withWrapperIdMixin","withNoWrapperIdMixin","destroyable","destroyableMixin","partialResult","name","tags","result","mergeAll","withNameAndNameAccessorsMixin","destroyableSub$","destroy$","subscribe","genericEntityCleanUp","unsubscribe","isWithWrapperIdAccessors","setWrapperId","isDefined","setName"],"mappings":"imBAeO,SAASA,gBAAyCC,OAAWC,KAA4BC,QAC9F,MAAMC,GAAaF,KAAO,IAAMG,SAE1BC,cAAgCC,eAAeN,QAAUO,mBAAmBP,QAAUQ,qBAAqBR,QAC3GS,YAA4BC,mBAE5BC,cAA2D,CAC/DR,MACAH,cACAY,KAAOZ,OAAgCY,MAAQV,QAAQU,KACvDC,KAAMX,QAAQW,MAAQ,IAGlBC,OAA8BC,SAASJ,cAAeN,cAAeI,YAAaO,8BAA8BL,gBAEhHM,gBAAgCR,YAAYS,SAASC,UAAU,KACnEC,qBAAqBpB,QAErBiB,gBAAgBI,gBAOlB,OAHIf,eAAeN,SAAWsB,yBAAyBR,SAASA,OAAOS,aAAapB,IAChFqB,UAAUtB,QAAQU,OAAOE,OAAOW,QAAQvB,OAAOU,MAE5CE,MACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Actor/Adapters/ConfigToParams.ts"],"sourcesContent":["import { actorStatesConfigToParams, model3dSettingsConfigToParams } from '@Anarchy/Engine/Actor/Adapters/Helpers';\nimport type { TActorConfig, TActorConfigToParamsDependencies, TActorParams } from '@Anarchy/Engine/Actor/Models';\nimport { kinematicConfigToParams } from '@Anarchy/Engine/Kinematic';\nimport type { TModel3d } from '@Anarchy/Engine/Models3d';\nimport { spatialDataConfigToParams } from '@Anarchy/Engine/Spatial';\nimport { object3dConfigToParams } from '@Anarchy/Engine/ThreeLib';\nimport { isDefined } from '@Anarchy/Shared/Utils';\n\nexport function actorConfigToParams(config: TActorConfig, dependencies: TActorConfigToParamsDependencies): TActorParams {\n const { position, rotation, scale, physicsBodyName, spatial, states, model3dSource, kinematic, model3dSettings, ...rest } = config;\n\n const model3d: TModel3d = dependencies.models3dService.getRegistry().getByName(model3dSource);\n\n return {\n ...rest,\n kinematic: kinematic ? kinematicConfigToParams(kinematic) : undefined,\n model3dSettings: model3dSettings ? model3dSettingsConfigToParams(model3dSettings) : undefined,\n model3dSource: model3d,\n physicsBody: isDefined(physicsBodyName) ? dependencies.physicsBodyService.getRegistry().getByName(physicsBodyName) : undefined,\n spatial: spatialDataConfigToParams(spatial, dependencies),\n states: states ? actorStatesConfigToParams(states, dependencies) : undefined,\n ...object3dConfigToParams({ position, rotation, scale })\n };\n}\n"],"names":["actorConfigToParams","config","dependencies","position","rotation","scale","physicsBodyName","spatial","states","model3dSource","kinematic","model3dSettings","rest","model3d","models3dService","getRegistry","getByName","kinematicConfigToParams","model3dSettingsConfigToParams","physicsBody","isDefined","physicsBodyService","spatialDataConfigToParams","actorStatesConfigToParams","object3dConfigToParams"],"mappings":"seAQO,SAASA,oBAAoBC,OAAsBC,cACxD,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,MAAUA,MAAAC,gBAAOA,gBAAAC,QAAiBA,QAAAC,OAASA,OAAAC,cAAQA,cAAAC,UAAeA,UAAAC,gBAAWA,mBAAoBC,MAASX,OAEtHY,QAAoBX,aAAaY,gBAAgBC,cAAcC,UAAUP,eAE/E,MAAO,IACFG,KACHF,UAAWA,UAAYO,wBAAwBP,gBAAa,EAC5DC,gBAAiBA,gBAAkBO,8BAA8BP,sBAAmB,EACpFF,cAAeI,QACfM,YAAaC,UAAUd,iBAAmBJ,aAAamB,mBAAmBN,cAAcC,UAAUV,sBAAmB,EACrHC,QAASe,0BAA0Bf,QAASL,cAC5CM,OAAQA,OAASe,0BAA0Bf,OAAQN,mBAAgB,KAChEsB,uBAAuB,CAAErB,kBAAUC,kBAAUC,cAEpD"}
1
+ {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Actor/Adapters/ConfigToParams.ts"],"sourcesContent":["import { actorStatesConfigToParams, model3dSettingsConfigToParams } from '@hellpig/anarchy-engine/Actor/Adapters/Helpers';\nimport type { TActorConfig, TActorConfigToParamsDependencies, TActorParams } from '@hellpig/anarchy-engine/Actor/Models';\nimport { kinematicConfigToParams } from '@hellpig/anarchy-engine/Kinematic';\nimport type { TModel3d } from '@hellpig/anarchy-engine/Models3d';\nimport { spatialDataConfigToParams } from '@hellpig/anarchy-engine/Spatial';\nimport { object3dConfigToParams } from '@hellpig/anarchy-engine/ThreeLib';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function actorConfigToParams(config: TActorConfig, dependencies: TActorConfigToParamsDependencies): TActorParams {\n const { position, rotation, scale, physicsBodyName, spatial, states, model3dSource, kinematic, model3dSettings, ...rest } = config;\n\n const model3d: TModel3d = dependencies.models3dService.getRegistry().getByName(model3dSource);\n\n return {\n ...rest,\n kinematic: kinematic ? kinematicConfigToParams(kinematic) : undefined,\n model3dSettings: model3dSettings ? model3dSettingsConfigToParams(model3dSettings) : undefined,\n model3dSource: model3d,\n physicsBody: isDefined(physicsBodyName) ? dependencies.physicsBodyService.getRegistry().getByName(physicsBodyName) : undefined,\n spatial: spatialDataConfigToParams(spatial, dependencies),\n states: states ? actorStatesConfigToParams(states, dependencies) : undefined,\n ...object3dConfigToParams({ position, rotation, scale })\n };\n}\n"],"names":["actorConfigToParams","config","dependencies","position","rotation","scale","physicsBodyName","spatial","states","model3dSource","kinematic","model3dSettings","rest","model3d","models3dService","getRegistry","getByName","kinematicConfigToParams","model3dSettingsConfigToParams","physicsBody","isDefined","physicsBodyService","spatialDataConfigToParams","actorStatesConfigToParams","object3dConfigToParams"],"mappings":"seAQO,SAASA,oBAAoBC,OAAsBC,cACxD,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,MAAUA,MAAAC,gBAAOA,gBAAAC,QAAiBA,QAAAC,OAASA,OAAAC,cAAQA,cAAAC,UAAeA,UAAAC,gBAAWA,mBAAoBC,MAASX,OAEtHY,QAAoBX,aAAaY,gBAAgBC,cAAcC,UAAUP,eAE/E,MAAO,IACFG,KACHF,UAAWA,UAAYO,wBAAwBP,gBAAa,EAC5DC,gBAAiBA,gBAAkBO,8BAA8BP,sBAAmB,EACpFF,cAAeI,QACfM,YAAaC,UAAUd,iBAAmBJ,aAAamB,mBAAmBN,cAAcC,UAAUV,sBAAmB,EACrHC,QAASe,0BAA0Bf,QAASL,cAC5CM,OAAQA,OAASe,0BAA0Bf,OAAQN,mBAAgB,KAChEsB,uBAAuB,CAAErB,kBAAUC,kBAAUC,cAEpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Actor/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TActor, TActorConfig, TActorEntityToConfigDependencies, TActorStates } from '@Anarchy/Engine/Actor/Models';\nimport type { TCollisionsDataConfig } from '@Anarchy/Engine/Collisions';\nimport type { TFsmConfig, TFsmWrapper } from '@Anarchy/Engine/Fsm';\nimport { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport type { TModel3d, TModels3dRegistry } from '@Anarchy/Engine/Models3d';\nimport type { TSpatialDataConfig } from '@Anarchy/Engine/Spatial';\nimport { filterOutEmptyFields, isNotDefined } from '@Anarchy/Shared/Utils';\n\nexport function actorEntityToConfig(entity: TActor, { models3dService }: TActorEntityToConfigDependencies): TActorConfig {\n const { drive } = entity;\n\n const models3dRegistry: TModels3dRegistry = models3dService.getRegistry();\n const model3d: TModel3d | undefined = models3dRegistry.getById(entity.model3d.id);\n const model3dSource: string = model3d.name;\n\n return filterOutEmptyFields({\n model3dSource,\n spatial: getSpatial(entity),\n collisions: getCollisions(entity),\n model3dSettings: entity.getModel3dSettings(),\n states: getStates(entity),\n\n ...extractSerializableRegistrableFields(entity),\n ...drive.serialize()\n });\n}\n\nfunction getSpatial(entity: TActor): TSpatialDataConfig {\n const { grid, updatePriority } = entity.spatial.data;\n if (isNotDefined(grid)) throw new Error(`[Serialization] Actor: spatial grid not found for entity with name: \"${entity.name}\", (id: \"${entity.id}\")`);\n return { isAutoUpdate: entity.spatial.autoUpdate$.value, grid: grid.name, updatePriority };\n}\n\nfunction getStates(entity: TActor): TActorStates {\n let result: TActorStates = {};\n\n Object.entries(entity.states).forEach((entry: [string, TFsmWrapper]): void => {\n const [key, state] = entry;\n const serialized: TFsmConfig = state.serialize();\n const { name, currentState, strategy } = serialized;\n result = { ...result, [key]: { name, currentState, strategy } };\n });\n\n return result;\n}\n\nfunction getCollisions(entity: TActor): TCollisionsDataConfig | undefined {\n if (isNotDefined(entity.collisions) || isNotDefined(entity.collisions.data)) return undefined;\n\n const { updatePriority } = entity.collisions.data;\n\n return { isAutoUpdate: entity.collisions.autoUpdate$.value, updatePriority };\n}\n"],"names":["actorEntityToConfig","entity","models3dService","drive","model3d","getRegistry","getById","id","filterOutEmptyFields","model3dSource","name","spatial","getSpatial","collisions","getCollisions","model3dSettings","getModel3dSettings","states","getStates","extractSerializableRegistrableFields","serialize","grid","updatePriority","data","isNotDefined","Error","isAutoUpdate","autoUpdate$","value","result","Object","entries","forEach","entry","key","state","serialized","currentState","strategy"],"mappings":"yRAQO,SAASA,oBAAoBC,QAAgBC,gBAAEA,kBACpD,MAAMC,MAAEA,OAAUF,OAGZG,QADsCF,gBAAgBG,cACLC,QAAQL,OAAOG,QAAQG,IAG9E,OAAOC,qBAAqB,CAC1BC,cAH4BL,QAAQM,KAIpCC,QAASC,WAAWX,QACpBY,WAAYC,cAAcb,QAC1Bc,gBAAiBd,OAAOe,qBACxBC,OAAQC,UAAUjB,WAEfkB,qCAAqClB,WACrCE,MAAMiB,aAEb,CAEA,SAASR,WAAWX,QAClB,MAAMoB,KAAEA,KAAAC,eAAMA,gBAAmBrB,OAAOU,QAAQY,KAChD,GAAIC,aAAaH,MAAO,MAAM,IAAII,MAAM,wEAAwExB,OAAOS,gBAAgBT,OAAOM,QAC9I,MAAO,CAAEmB,aAAczB,OAAOU,QAAQgB,YAAYC,MAAOP,KAAMA,KAAKX,KAAMY,8BAC5E,CAEA,SAASJ,UAAUjB,QACjB,IAAI4B,OAAuB,CAAA,EAS3B,OAPAC,OAAOC,QAAQ9B,OAAOgB,QAAQe,QAASC,QACrC,MAAOC,IAAKC,OAASF,MACfG,WAAyBD,MAAMf,aAC/BV,KAAEA,KAAA2B,aAAMA,aAAAC,SAAcA,UAAaF,WACzCP,OAAS,IAAKA,OAAQK,CAACA,KAAM,CAAExB,UAAM2B,0BAAcC,sBAG9CT,MACT,CAEA,SAASf,cAAcb,QACrB,GAAIuB,aAAavB,OAAOY,aAAeW,aAAavB,OAAOY,WAAWU,MAAO,OAE7E,MAAMD,eAAEA,gBAAmBrB,OAAOY,WAAWU,KAE7C,MAAO,CAAEG,aAAczB,OAAOY,WAAWc,YAAYC,MAAON,8BAC9D"}
1
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Actor/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TActor, TActorConfig, TActorEntityToConfigDependencies, TActorStates } from '@hellpig/anarchy-engine/Actor/Models';\nimport type { TCollisionsDataConfig } from '@hellpig/anarchy-engine/Collisions';\nimport type { TFsmConfig, TFsmWrapper } from '@hellpig/anarchy-engine/Fsm';\nimport { extractSerializableRegistrableFields } from '@hellpig/anarchy-engine/Mixins';\nimport type { TModel3d, TModels3dRegistry } from '@hellpig/anarchy-engine/Models3d';\nimport type { TSpatialDataConfig } from '@hellpig/anarchy-engine/Spatial';\nimport { filterOutEmptyFields, isNotDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function actorEntityToConfig(entity: TActor, { models3dService }: TActorEntityToConfigDependencies): TActorConfig {\n const { drive } = entity;\n\n const models3dRegistry: TModels3dRegistry = models3dService.getRegistry();\n const model3d: TModel3d | undefined = models3dRegistry.getById(entity.model3d.id);\n const model3dSource: string = model3d.name;\n\n return filterOutEmptyFields({\n model3dSource,\n spatial: getSpatial(entity),\n collisions: getCollisions(entity),\n model3dSettings: entity.getModel3dSettings(),\n states: getStates(entity),\n\n ...extractSerializableRegistrableFields(entity),\n ...drive.serialize()\n });\n}\n\nfunction getSpatial(entity: TActor): TSpatialDataConfig {\n const { grid, updatePriority } = entity.spatial.data;\n if (isNotDefined(grid)) throw new Error(`[Serialization] Actor: spatial grid not found for entity with name: \"${entity.name}\", (id: \"${entity.id}\")`);\n return { isAutoUpdate: entity.spatial.autoUpdate$.value, grid: grid.name, updatePriority };\n}\n\nfunction getStates(entity: TActor): TActorStates {\n let result: TActorStates = {};\n\n Object.entries(entity.states).forEach((entry: [string, TFsmWrapper]): void => {\n const [key, state] = entry;\n const serialized: TFsmConfig = state.serialize();\n const { name, currentState, strategy } = serialized;\n result = { ...result, [key]: { name, currentState, strategy } };\n });\n\n return result;\n}\n\nfunction getCollisions(entity: TActor): TCollisionsDataConfig | undefined {\n if (isNotDefined(entity.collisions) || isNotDefined(entity.collisions.data)) return undefined;\n\n const { updatePriority } = entity.collisions.data;\n\n return { isAutoUpdate: entity.collisions.autoUpdate$.value, updatePriority };\n}\n"],"names":["actorEntityToConfig","entity","models3dService","drive","model3d","getRegistry","getById","id","filterOutEmptyFields","model3dSource","name","spatial","getSpatial","collisions","getCollisions","model3dSettings","getModel3dSettings","states","getStates","extractSerializableRegistrableFields","serialize","grid","updatePriority","data","isNotDefined","Error","isAutoUpdate","autoUpdate$","value","result","Object","entries","forEach","entry","key","state","serialized","currentState","strategy"],"mappings":"yRAQO,SAASA,oBAAoBC,QAAgBC,gBAAEA,kBACpD,MAAMC,MAAEA,OAAUF,OAGZG,QADsCF,gBAAgBG,cACLC,QAAQL,OAAOG,QAAQG,IAG9E,OAAOC,qBAAqB,CAC1BC,cAH4BL,QAAQM,KAIpCC,QAASC,WAAWX,QACpBY,WAAYC,cAAcb,QAC1Bc,gBAAiBd,OAAOe,qBACxBC,OAAQC,UAAUjB,WAEfkB,qCAAqClB,WACrCE,MAAMiB,aAEb,CAEA,SAASR,WAAWX,QAClB,MAAMoB,KAAEA,KAAAC,eAAMA,gBAAmBrB,OAAOU,QAAQY,KAChD,GAAIC,aAAaH,MAAO,MAAM,IAAII,MAAM,wEAAwExB,OAAOS,gBAAgBT,OAAOM,QAC9I,MAAO,CAAEmB,aAAczB,OAAOU,QAAQgB,YAAYC,MAAOP,KAAMA,KAAKX,KAAMY,8BAC5E,CAEA,SAASJ,UAAUjB,QACjB,IAAI4B,OAAuB,CAAA,EAS3B,OAPAC,OAAOC,QAAQ9B,OAAOgB,QAAQe,QAASC,QACrC,MAAOC,IAAKC,OAASF,MACfG,WAAyBD,MAAMf,aAC/BV,KAAEA,KAAA2B,aAAMA,aAAAC,SAAcA,UAAaF,WACzCP,OAAS,IAAKA,OAAQK,CAACA,KAAM,CAAExB,UAAM2B,0BAAcC,sBAG9CT,MACT,CAEA,SAASf,cAAcb,QACrB,GAAIuB,aAAavB,OAAOY,aAAeW,aAAavB,OAAOY,WAAWU,MAAO,OAE7E,MAAMD,eAAEA,gBAAmBrB,OAAOY,WAAWU,KAE7C,MAAO,CAAEG,aAAczB,OAAOY,WAAWc,YAAYC,MAAON,8BAC9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActorStatesConfigToParams.js","sources":["../../../../src/Actor/Adapters/Helpers/ActorStatesConfigToParams.ts"],"sourcesContent":["import type { TActorConfigToParamsDependencies, TActorStates, TActorStatesConfig, TAnimationsFsmSource } from '@Anarchy/Engine/Actor/Models';\nimport type { TFsmWrapper } from '@Anarchy/Engine/Fsm';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\n\nexport function actorStatesConfigToParams(states: TActorStatesConfig, dependencies: TActorConfigToParamsDependencies): TActorStates {\n const { animationsFsm } = states;\n\n return {\n animationsFsm: animationsFsm ? getAnimationsFsm(animationsFsm, dependencies) : undefined\n };\n}\n\nfunction getAnimationsFsm(source: TAnimationsFsmSource, dependencies: TActorConfigToParamsDependencies): TFsmWrapper | never {\n const animationsFsm: TFsmWrapper | undefined = dependencies.fsmService.createInstanceBySourceName(source.name, source.currentState, source.strategy);\n if (isNotDefined(animationsFsm)) throw new Error(`Actor. ConfigToParams: AnimationsFsm \"${source}\" not found, during the actor initialization`);\n return animationsFsm;\n}\n"],"names":["actorStatesConfigToParams","states","dependencies","animationsFsm","getAnimationsFsm","source","fsmService","createInstanceBySourceName","name","currentState","strategy","isNotDefined","Error"],"mappings":"mFAIO,SAASA,0BAA0BC,OAA4BC,cACpE,MAAMC,cAAEA,eAAkBF,OAE1B,MAAO,CACLE,cAAeA,cAAgBC,iBAAiBD,cAAeD,mBAAgB,EAEnF,CAEA,SAASE,iBAAiBC,OAA8BH,cACtD,MAAMC,cAAyCD,aAAaI,WAAWC,2BAA2BF,OAAOG,KAAMH,OAAOI,aAAcJ,OAAOK,UAC3I,GAAIC,aAAaR,eAAgB,MAAM,IAAIS,MAAM,yCAAyCP,sDAC1F,OAAOF,aACT"}
1
+ {"version":3,"file":"ActorStatesConfigToParams.js","sources":["../../../../src/Actor/Adapters/Helpers/ActorStatesConfigToParams.ts"],"sourcesContent":["import type { TActorConfigToParamsDependencies, TActorStates, TActorStatesConfig, TAnimationsFsmSource } from '@hellpig/anarchy-engine/Actor/Models';\nimport type { TFsmWrapper } from '@hellpig/anarchy-engine/Fsm';\nimport { isNotDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function actorStatesConfigToParams(states: TActorStatesConfig, dependencies: TActorConfigToParamsDependencies): TActorStates {\n const { animationsFsm } = states;\n\n return {\n animationsFsm: animationsFsm ? getAnimationsFsm(animationsFsm, dependencies) : undefined\n };\n}\n\nfunction getAnimationsFsm(source: TAnimationsFsmSource, dependencies: TActorConfigToParamsDependencies): TFsmWrapper | never {\n const animationsFsm: TFsmWrapper | undefined = dependencies.fsmService.createInstanceBySourceName(source.name, source.currentState, source.strategy);\n if (isNotDefined(animationsFsm)) throw new Error(`Actor. ConfigToParams: AnimationsFsm \"${source}\" not found, during the actor initialization`);\n return animationsFsm;\n}\n"],"names":["actorStatesConfigToParams","states","dependencies","animationsFsm","getAnimationsFsm","source","fsmService","createInstanceBySourceName","name","currentState","strategy","isNotDefined","Error"],"mappings":"mFAIO,SAASA,0BAA0BC,OAA4BC,cACpE,MAAMC,cAAEA,eAAkBF,OAE1B,MAAO,CACLE,cAAeA,cAAgBC,iBAAiBD,cAAeD,mBAAgB,EAEnF,CAEA,SAASE,iBAAiBC,OAA8BH,cACtD,MAAMC,cAAyCD,aAAaI,WAAWC,2BAA2BF,OAAOG,KAAMH,OAAOI,aAAcJ,OAAOK,UAC3I,GAAIC,aAAaR,eAAgB,MAAM,IAAIS,MAAM,yCAAyCP,sDAC1F,OAAOF,aACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"Model3dSettingsConfigToParams.js","sources":["../../../../src/Actor/Adapters/Helpers/Model3dSettingsConfigToParams.ts"],"sourcesContent":["import type { TActorModel3dSettings, TActorModel3dSettingsConfig } from '@Anarchy/Engine/Actor/Models';\nimport { toQuaternion } from '@Anarchy/Engine/Math';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport { Vector3 } from 'three';\n\nexport function model3dSettingsConfigToParams(settings: TActorModel3dSettingsConfig): TActorModel3dSettings {\n const { positionOffset, rotationOffset, scaleOffset, ...rest } = settings;\n\n return {\n ...rest,\n positionOffset: isDefined(positionOffset) ? new Vector3(positionOffset.x, positionOffset.y, positionOffset.z) : undefined,\n rotationOffset: isDefined(rotationOffset) ? toQuaternion(rotationOffset) : undefined,\n scaleOffset: isDefined(scaleOffset) ? new Vector3(scaleOffset.x, scaleOffset.y, scaleOffset.z) : undefined\n };\n}\n"],"names":["model3dSettingsConfigToParams","settings","positionOffset","rotationOffset","scaleOffset","rest","isDefined","Vector3","x","y","z","toQuaternion"],"mappings":"wKAKO,SAASA,8BAA8BC,UAC5C,MAAMC,eAAEA,eAAAC,eAAgBA,eAAAC,YAAgBA,eAAgBC,MAASJ,SAEjE,MAAO,IACFI,KACHH,eAAgBI,UAAUJ,gBAAkB,IAAIK,QAAQL,eAAeM,EAAGN,eAAeO,EAAGP,eAAeQ,QAAK,EAChHP,eAAgBG,UAAUH,gBAAkBQ,aAAaR,qBAAkB,EAC3EC,YAAaE,UAAUF,aAAe,IAAIG,QAAQH,YAAYI,EAAGJ,YAAYK,EAAGL,YAAYM,QAAK,EAErG"}
1
+ {"version":3,"file":"Model3dSettingsConfigToParams.js","sources":["../../../../src/Actor/Adapters/Helpers/Model3dSettingsConfigToParams.ts"],"sourcesContent":["import type { TActorModel3dSettings, TActorModel3dSettingsConfig } from '@hellpig/anarchy-engine/Actor/Models';\nimport { toQuaternion } from '@hellpig/anarchy-engine/Math';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport { Vector3 } from 'three';\n\nexport function model3dSettingsConfigToParams(settings: TActorModel3dSettingsConfig): TActorModel3dSettings {\n const { positionOffset, rotationOffset, scaleOffset, ...rest } = settings;\n\n return {\n ...rest,\n positionOffset: isDefined(positionOffset) ? new Vector3(positionOffset.x, positionOffset.y, positionOffset.z) : undefined,\n rotationOffset: isDefined(rotationOffset) ? toQuaternion(rotationOffset) : undefined,\n scaleOffset: isDefined(scaleOffset) ? new Vector3(scaleOffset.x, scaleOffset.y, scaleOffset.z) : undefined\n };\n}\n"],"names":["model3dSettingsConfigToParams","settings","positionOffset","rotationOffset","scaleOffset","rest","isDefined","Vector3","x","y","z","toQuaternion"],"mappings":"wKAKO,SAASA,8BAA8BC,UAC5C,MAAMC,eAAEA,eAAAC,eAAgBA,eAAAC,YAAgBA,eAAgBC,MAASJ,SAEjE,MAAO,IACFI,KACHH,eAAgBI,UAAUJ,gBAAkB,IAAIK,QAAQL,eAAeM,EAAGN,eAAeO,EAAGP,eAAeQ,QAAK,EAChHP,eAAgBG,UAAUH,gBAAkBQ,aAAaR,qBAAkB,EAC3EC,YAAaE,UAAUF,aAAe,IAAIG,QAAQH,YAAYI,EAAGJ,YAAYK,EAAGL,YAAYM,QAAK,EAErG"}
@@ -1 +1 @@
1
- {"version":3,"file":"Actor.js","sources":["../../../../src/Actor/Entities/Actor/Actor.ts"],"sourcesContent":["import { AbstractEntity, EntityType } from '@Anarchy/Engine/Abstract';\nimport { actorEntityToConfig } from '@Anarchy/Engine/Actor/Adapters';\nimport { withActorStates } from '@Anarchy/Engine/Actor/Mixins';\nimport type {\n TActor,\n TActorConfig,\n TActorDependencies,\n TActorEntities,\n TActorEntityToConfigDependencies,\n TActorModel3dSettings,\n TActorParams,\n TActorTransformDrive\n} from '@Anarchy/Engine/Actor/Models';\nimport { ActorTransformDrive } from '@Anarchy/Engine/Actor/TransformDrive';\nimport { applySpatialGrid, startCollisions } from '@Anarchy/Engine/Actor/Utils';\nimport { withCollisions } from '@Anarchy/Engine/Collisions';\nimport type { TFsmWrapper } from '@Anarchy/Engine/Fsm';\nimport type { TModel3d } from '@Anarchy/Engine/Models3d';\nimport type { TPhysicsBody } from '@Anarchy/Engine/Physics';\nimport type { TSpatialLoop } from '@Anarchy/Engine/Spatial';\nimport { withSpatial, withUpdateSpatialCell } from '@Anarchy/Engine/Spatial';\nimport type { TReadonlyVector3 } from '@Anarchy/Engine/ThreeLib';\nimport type { TDriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { DriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { isEqualOrSimilarByXyzCoords, mergeAll } from '@Anarchy/Engine/Utils';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, sample, takeUntil, tap } from 'rxjs';\nimport type { Vector3, Vector3Like } from 'three';\n\nexport function Actor(\n params: TActorParams,\n { spatialGridService, loopService, collisionsService, models3dService, model3dToActorConnectionRegistry, transformDriveService }: TActorDependencies\n): TActor {\n const id: string = EntityType.Actor + '_' + nanoid();\n const isModelAlreadyInUse: boolean = isDefined(model3dToActorConnectionRegistry.findByModel3d(params.model3dSource));\n const model3d: TModel3d = isModelAlreadyInUse ? models3dService.clone(params.model3dSource) : params.model3dSource;\n\n // Init TransformDrive\n const drive: TActorTransformDrive = ActorTransformDrive(params, { transformDriveService }, id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, model3d.getRawModel3d(), params.model3dSettings);\n\n const entities: TActorEntities = mergeAll(\n {\n drive,\n driveToTargetConnector,\n model3d\n },\n withActorStates(params),\n withSpatial(params),\n withCollisions(params, collisionsService, loopService.getCollisionsLoop()),\n withUpdateSpatialCell()\n );\n\n const actor: TActor = mergeAll(AbstractEntity(entities, EntityType.Actor, { name: params.name, tags: params.tags, id }), {\n serialize: (dependencies: TActorEntityToConfigDependencies): TActorConfig => actorEntityToConfig(actor, dependencies),\n getModel3dSettings: (): TActorModel3dSettings | undefined => params.model3dSettings,\n getPhysicsBody: (): TPhysicsBody | undefined => params.physicsBody\n });\n\n const spatialLoop: TSpatialLoop = loopService.getSpatialLoop();\n\n spatialPositionUpdate(spatialLoop, drive.position$, params.spatial.performance?.noiseThreshold ?? 0.000001)\n .pipe(\n filter((): boolean => spatialLoop.shouldUpdateWithPriority(entities.spatial.getSpatialUpdatePriority())),\n takeUntil(actor.destroy$)\n )\n .subscribe((position: TReadonlyVector3): void => actor.updateSpatialCells(position));\n\n const destroySub$: Subscription = actor.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n //Remove model3d registration\n model3dToActorConnectionRegistry.removeByModel3d(model3d);\n\n //Destroy related entities\n model3d.destroy$.next();\n entities.spatial.destroy$.next();\n entities.collisions?.destroy$.next();\n\n //Destroy spatial\n actor.spatial.destroy$.next();\n\n //Destroy collisions\n actor.collisions.destroy$.next();\n\n //Destroy Fsm's\n Object.values(entities.states).forEach((value: TFsmWrapper): void => value?.destroy$.next());\n // eslint-disable-next-line functional/immutable-data\n (actor as TWriteable<TActor>).states = {};\n });\n\n applySpatialGrid(params, actor, spatialGridService);\n startCollisions(actor);\n model3dToActorConnectionRegistry.addModel3d(model3d, actor);\n return actor;\n}\n\nfunction spatialPositionUpdate<T extends Vector3Like | Vector3 | TReadonlyVector3>(spatialLoop: TSpatialLoop, position$: BehaviorSubject<T>, noiseThreshold?: number): Observable<Readonly<T>> {\n const prevValue: Float32Array = new Float32Array([0, 0, 0]);\n\n return position$.pipe(\n distinctUntilChanged((_prev: T, curr: T): boolean => isEqualOrSimilarByXyzCoords(prevValue[0], prevValue[1], prevValue[2], curr.x, curr.y, curr.z, noiseThreshold ?? 0)),\n tap((value: T): void => {\n // eslint-disable-next-line functional/immutable-data\n prevValue[0] = value.x;\n // eslint-disable-next-line functional/immutable-data\n prevValue[1] = value.y;\n // eslint-disable-next-line functional/immutable-data\n prevValue[2] = value.z;\n }),\n sample(spatialLoop.tick$)\n );\n}\n"],"names":["Actor","params","spatialGridService","loopService","collisionsService","models3dService","model3dToActorConnectionRegistry","transformDriveService","id","EntityType","nanoid","model3d","isDefined","findByModel3d","model3dSource","clone","drive","ActorTransformDrive","driveToTargetConnector","DriveToTargetConnector","getRawModel3d","model3dSettings","entities","mergeAll","withActorStates","withSpatial","withCollisions","getCollisionsLoop","withUpdateSpatialCell","actor","AbstractEntity","name","tags","serialize","dependencies","actorEntityToConfig","getModel3dSettings","getPhysicsBody","physicsBody","spatialLoop","getSpatialLoop","position$","noiseThreshold","prevValue","Float32Array","pipe","distinctUntilChanged","_prev","curr","isEqualOrSimilarByXyzCoords","x","y","z","tap","value","sample","tick$","spatialPositionUpdate","spatial","performance","filter","shouldUpdateWithPriority","getSpatialUpdatePriority","takeUntil","destroy$","subscribe","position","updateSpatialCells","destroySub$","unsubscribe","removeByModel3d","next","collisions","Object","values","states","forEach","applySpatialGrid","startCollisions","addModel3d"],"mappings":"w9CAgCO,SAASA,MACdC,QACAC,mBAAEA,mBAAAC,YAAoBA,8BAAaC,kBAAAC,gBAAmBA,gBAAAC,iCAAiBA,iCAAAC,sBAAkCA,wBAEzG,MAAMC,GAAaC,WAAWT,MAAQ,IAAMU,SAEtCC,QAD+BC,UAAUN,iCAAiCO,cAAcZ,OAAOa,gBACrDT,gBAAgBU,MAAMd,OAAOa,eAAiBb,OAAOa,cAG/FE,MAA8BC,oBAAoBhB,OAAQ,CAAEM,6CAAyBC,IACrFU,uBAAkDC,uBAAuBH,MAAOL,QAAQS,gBAAiBnB,OAAOoB,iBAEhHC,SAA2BC,SAC/B,CACEP,YACAE,8CACAP,iBAEFa,gBAAgBvB,QAChBwB,YAAYxB,QACZyB,eAAezB,OAAQG,kBAAmBD,YAAYwB,qBACtDC,yBAGIC,MAAgBN,SAASO,eAAeR,SAAUb,WAAWT,MAAO,CAAE+B,KAAM9B,OAAO8B,KAAMC,KAAM/B,OAAO+B,KAAMxB,QAAO,CACvHyB,UAAYC,cAAiEC,oBAAoBN,MAAOK,cACxGE,mBAAoB,IAAyCnC,OAAOoB,gBACpEgB,eAAgB,IAAgCpC,OAAOqC,cAGnDC,YAA4BpC,YAAYqC,kBAsChD,SAAmFD,YAA2BE,UAA+BC,gBAC3I,MAAMC,UAA0B,IAAIC,aAAa,CAAC,EAAG,EAAG,IAExD,OAAOH,UAAUI,KACfC,qBAAqB,CAACC,MAAUC,OAAqBC,4BAA4BN,UAAU,GAAIA,UAAU,GAAIA,UAAU,GAAIK,KAAKE,EAAGF,KAAKG,EAAGH,KAAKI,EAAGV,gBAAkB,IACrKW,IAAKC,QAEHX,UAAU,GAAKW,MAAMJ,EAErBP,UAAU,GAAKW,MAAMH,EAErBR,UAAU,GAAKW,MAAMF,IAEvBG,OAAOhB,YAAYiB,OAEvB,EAnDEC,CAAsBlB,YAAavB,MAAMyB,UAAWxC,OAAOyD,QAAQC,aAAajB,gBAAkB,MAC/FG,KACCe,OAAO,IAAerB,YAAYsB,yBAAyBvC,SAASoC,QAAQI,6BAC5EC,UAAUlC,MAAMmC,WAEjBC,UAAWC,UAAqCrC,MAAMsC,mBAAmBD,WAE5E,MAAME,YAA4BvC,MAAMmC,SAASC,UAAU,KACzDG,YAAYC,cAGZ/D,iCAAiCgE,gBAAgB3D,SAGjDA,QAAQqD,SAASO,OACjBjD,SAASoC,QAAQM,SAASO,OAC1BjD,SAASkD,YAAYR,SAASO,OAG9B1C,MAAM6B,QAAQM,SAASO,OAGvB1C,MAAM2C,WAAWR,SAASO,OAG1BE,OAAOC,OAAOpD,SAASqD,QAAQC,QAAStB,OAA6BA,OAAOU,SAASO,QAEpF1C,MAA6B8C,OAAS,CAAA,IAMzC,OAHAE,iBAAiB5E,OAAQ4B,MAAO3B,oBAChC4E,gBAAgBjD,OAChBvB,iCAAiCyE,WAAWpE,QAASkB,OAC9CA,KACT"}
1
+ {"version":3,"file":"Actor.js","sources":["../../../../src/Actor/Entities/Actor/Actor.ts"],"sourcesContent":["import { AbstractEntity, EntityType } from '@hellpig/anarchy-engine/Abstract';\nimport { actorEntityToConfig } from '@hellpig/anarchy-engine/Actor/Adapters';\nimport { withActorStates } from '@hellpig/anarchy-engine/Actor/Mixins';\nimport type {\n TActor,\n TActorConfig,\n TActorDependencies,\n TActorEntities,\n TActorEntityToConfigDependencies,\n TActorModel3dSettings,\n TActorParams,\n TActorTransformDrive\n} from '@hellpig/anarchy-engine/Actor/Models';\nimport { ActorTransformDrive } from '@hellpig/anarchy-engine/Actor/TransformDrive';\nimport { applySpatialGrid, startCollisions } from '@hellpig/anarchy-engine/Actor/Utils';\nimport { withCollisions } from '@hellpig/anarchy-engine/Collisions';\nimport type { TFsmWrapper } from '@hellpig/anarchy-engine/Fsm';\nimport type { TModel3d } from '@hellpig/anarchy-engine/Models3d';\nimport type { TPhysicsBody } from '@hellpig/anarchy-engine/Physics';\nimport type { TSpatialLoop } from '@hellpig/anarchy-engine/Spatial';\nimport { withSpatial, withUpdateSpatialCell } from '@hellpig/anarchy-engine/Spatial';\nimport type { TReadonlyVector3 } from '@hellpig/anarchy-engine/ThreeLib';\nimport type { TDriveToTargetConnector } from '@hellpig/anarchy-engine/TransformDrive';\nimport { DriveToTargetConnector } from '@hellpig/anarchy-engine/TransformDrive';\nimport { isEqualOrSimilarByXyzCoords, mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, sample, takeUntil, tap } from 'rxjs';\nimport type { Vector3, Vector3Like } from 'three';\n\nexport function Actor(\n params: TActorParams,\n { spatialGridService, loopService, collisionsService, models3dService, model3dToActorConnectionRegistry, transformDriveService }: TActorDependencies\n): TActor {\n const id: string = EntityType.Actor + '_' + nanoid();\n const isModelAlreadyInUse: boolean = isDefined(model3dToActorConnectionRegistry.findByModel3d(params.model3dSource));\n const model3d: TModel3d = isModelAlreadyInUse ? models3dService.clone(params.model3dSource) : params.model3dSource;\n\n // Init TransformDrive\n const drive: TActorTransformDrive = ActorTransformDrive(params, { transformDriveService }, id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, model3d.getRawModel3d(), params.model3dSettings);\n\n const entities: TActorEntities = mergeAll(\n {\n drive,\n driveToTargetConnector,\n model3d\n },\n withActorStates(params),\n withSpatial(params),\n withCollisions(params, collisionsService, loopService.getCollisionsLoop()),\n withUpdateSpatialCell()\n );\n\n const actor: TActor = mergeAll(AbstractEntity(entities, EntityType.Actor, { name: params.name, tags: params.tags, id }), {\n serialize: (dependencies: TActorEntityToConfigDependencies): TActorConfig => actorEntityToConfig(actor, dependencies),\n getModel3dSettings: (): TActorModel3dSettings | undefined => params.model3dSettings,\n getPhysicsBody: (): TPhysicsBody | undefined => params.physicsBody\n });\n\n const spatialLoop: TSpatialLoop = loopService.getSpatialLoop();\n\n spatialPositionUpdate(spatialLoop, drive.position$, params.spatial.performance?.noiseThreshold ?? 0.000001)\n .pipe(\n filter((): boolean => spatialLoop.shouldUpdateWithPriority(entities.spatial.getSpatialUpdatePriority())),\n takeUntil(actor.destroy$)\n )\n .subscribe((position: TReadonlyVector3): void => actor.updateSpatialCells(position));\n\n const destroySub$: Subscription = actor.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n //Remove model3d registration\n model3dToActorConnectionRegistry.removeByModel3d(model3d);\n\n //Destroy related entities\n model3d.destroy$.next();\n entities.spatial.destroy$.next();\n entities.collisions?.destroy$.next();\n\n //Destroy spatial\n actor.spatial.destroy$.next();\n\n //Destroy collisions\n actor.collisions.destroy$.next();\n\n //Destroy Fsm's\n Object.values(entities.states).forEach((value: TFsmWrapper): void => value?.destroy$.next());\n // eslint-disable-next-line functional/immutable-data\n (actor as TWriteable<TActor>).states = {};\n });\n\n applySpatialGrid(params, actor, spatialGridService);\n startCollisions(actor);\n model3dToActorConnectionRegistry.addModel3d(model3d, actor);\n return actor;\n}\n\nfunction spatialPositionUpdate<T extends Vector3Like | Vector3 | TReadonlyVector3>(spatialLoop: TSpatialLoop, position$: BehaviorSubject<T>, noiseThreshold?: number): Observable<Readonly<T>> {\n const prevValue: Float32Array = new Float32Array([0, 0, 0]);\n\n return position$.pipe(\n distinctUntilChanged((_prev: T, curr: T): boolean => isEqualOrSimilarByXyzCoords(prevValue[0], prevValue[1], prevValue[2], curr.x, curr.y, curr.z, noiseThreshold ?? 0)),\n tap((value: T): void => {\n // eslint-disable-next-line functional/immutable-data\n prevValue[0] = value.x;\n // eslint-disable-next-line functional/immutable-data\n prevValue[1] = value.y;\n // eslint-disable-next-line functional/immutable-data\n prevValue[2] = value.z;\n }),\n sample(spatialLoop.tick$)\n );\n}\n"],"names":["Actor","params","spatialGridService","loopService","collisionsService","models3dService","model3dToActorConnectionRegistry","transformDriveService","id","EntityType","nanoid","model3d","isDefined","findByModel3d","model3dSource","clone","drive","ActorTransformDrive","driveToTargetConnector","DriveToTargetConnector","getRawModel3d","model3dSettings","entities","mergeAll","withActorStates","withSpatial","withCollisions","getCollisionsLoop","withUpdateSpatialCell","actor","AbstractEntity","name","tags","serialize","dependencies","actorEntityToConfig","getModel3dSettings","getPhysicsBody","physicsBody","spatialLoop","getSpatialLoop","position$","noiseThreshold","prevValue","Float32Array","pipe","distinctUntilChanged","_prev","curr","isEqualOrSimilarByXyzCoords","x","y","z","tap","value","sample","tick$","spatialPositionUpdate","spatial","performance","filter","shouldUpdateWithPriority","getSpatialUpdatePriority","takeUntil","destroy$","subscribe","position","updateSpatialCells","destroySub$","unsubscribe","removeByModel3d","next","collisions","Object","values","states","forEach","applySpatialGrid","startCollisions","addModel3d"],"mappings":"w9CAgCO,SAASA,MACdC,QACAC,mBAAEA,mBAAAC,YAAoBA,8BAAaC,kBAAAC,gBAAmBA,gBAAAC,iCAAiBA,iCAAAC,sBAAkCA,wBAEzG,MAAMC,GAAaC,WAAWT,MAAQ,IAAMU,SAEtCC,QAD+BC,UAAUN,iCAAiCO,cAAcZ,OAAOa,gBACrDT,gBAAgBU,MAAMd,OAAOa,eAAiBb,OAAOa,cAG/FE,MAA8BC,oBAAoBhB,OAAQ,CAAEM,6CAAyBC,IACrFU,uBAAkDC,uBAAuBH,MAAOL,QAAQS,gBAAiBnB,OAAOoB,iBAEhHC,SAA2BC,SAC/B,CACEP,YACAE,8CACAP,iBAEFa,gBAAgBvB,QAChBwB,YAAYxB,QACZyB,eAAezB,OAAQG,kBAAmBD,YAAYwB,qBACtDC,yBAGIC,MAAgBN,SAASO,eAAeR,SAAUb,WAAWT,MAAO,CAAE+B,KAAM9B,OAAO8B,KAAMC,KAAM/B,OAAO+B,KAAMxB,QAAO,CACvHyB,UAAYC,cAAiEC,oBAAoBN,MAAOK,cACxGE,mBAAoB,IAAyCnC,OAAOoB,gBACpEgB,eAAgB,IAAgCpC,OAAOqC,cAGnDC,YAA4BpC,YAAYqC,kBAsChD,SAAmFD,YAA2BE,UAA+BC,gBAC3I,MAAMC,UAA0B,IAAIC,aAAa,CAAC,EAAG,EAAG,IAExD,OAAOH,UAAUI,KACfC,qBAAqB,CAACC,MAAUC,OAAqBC,4BAA4BN,UAAU,GAAIA,UAAU,GAAIA,UAAU,GAAIK,KAAKE,EAAGF,KAAKG,EAAGH,KAAKI,EAAGV,gBAAkB,IACrKW,IAAKC,QAEHX,UAAU,GAAKW,MAAMJ,EAErBP,UAAU,GAAKW,MAAMH,EAErBR,UAAU,GAAKW,MAAMF,IAEvBG,OAAOhB,YAAYiB,OAEvB,EAnDEC,CAAsBlB,YAAavB,MAAMyB,UAAWxC,OAAOyD,QAAQC,aAAajB,gBAAkB,MAC/FG,KACCe,OAAO,IAAerB,YAAYsB,yBAAyBvC,SAASoC,QAAQI,6BAC5EC,UAAUlC,MAAMmC,WAEjBC,UAAWC,UAAqCrC,MAAMsC,mBAAmBD,WAE5E,MAAME,YAA4BvC,MAAMmC,SAASC,UAAU,KACzDG,YAAYC,cAGZ/D,iCAAiCgE,gBAAgB3D,SAGjDA,QAAQqD,SAASO,OACjBjD,SAASoC,QAAQM,SAASO,OAC1BjD,SAASkD,YAAYR,SAASO,OAG9B1C,MAAM6B,QAAQM,SAASO,OAGvB1C,MAAM2C,WAAWR,SAASO,OAG1BE,OAAOC,OAAOpD,SAASqD,QAAQC,QAAStB,OAA6BA,OAAOU,SAASO,QAEpF1C,MAA6B8C,OAAS,CAAA,IAMzC,OAHAE,iBAAiB5E,OAAQ4B,MAAO3B,oBAChC4E,gBAAgBjD,OAChBvB,iCAAiCyE,WAAWpE,QAASkB,OAC9CA,KACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActorFactory.js","sources":["../../../src/Actor/Factories/ActorFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { actorConfigToParams } from '@Anarchy/Engine/Actor/Adapters';\nimport { Actor } from '@Anarchy/Engine/Actor/Entities';\nimport type { TActor, TActorFactory, TActorParams, TActorServiceDependencies } from '@Anarchy/Engine/Actor/Models';\n\nexport function ActorFactory(): TActorFactory {\n const factory: TReactiveFactory<TActor, TActorParams, TActorServiceDependencies> = ReactiveFactory(FactoryType.Actor, Actor);\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: actorConfigToParams });\n}\n"],"names":["ActorFactory","factory","ReactiveFactory","FactoryType","Actor","Object","assign","configToParams","actorConfigToParams"],"mappings":"uPAMO,SAASA,eACd,MAAMC,QAA6EC,gBAAgBC,YAAYC,MAAOA,OAEtH,OAAOC,OAAOC,OAAOL,QAAS,CAAEM,eAAgBC,qBAClD"}
1
+ {"version":3,"file":"ActorFactory.js","sources":["../../../src/Actor/Factories/ActorFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { actorConfigToParams } from '@hellpig/anarchy-engine/Actor/Adapters';\nimport { Actor } from '@hellpig/anarchy-engine/Actor/Entities';\nimport type { TActor, TActorFactory, TActorParams, TActorServiceDependencies } from '@hellpig/anarchy-engine/Actor/Models';\n\nexport function ActorFactory(): TActorFactory {\n const factory: TReactiveFactory<TActor, TActorParams, TActorServiceDependencies> = ReactiveFactory(FactoryType.Actor, Actor);\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: actorConfigToParams });\n}\n"],"names":["ActorFactory","factory","ReactiveFactory","FactoryType","Actor","Object","assign","configToParams","actorConfigToParams"],"mappings":"uPAMO,SAASA,eACd,MAAMC,QAA6EC,gBAAgBC,YAAYC,MAAOA,OAEtH,OAAOC,OAAOC,OAAOL,QAAS,CAAEM,eAAgBC,qBAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"WithActorStates.js","sources":["../../../src/Actor/Mixins/WithActorStates.ts"],"sourcesContent":["import type { TActorParams, TActorStates, TWithActorStates } from '@Anarchy/Engine/Actor/Models';\nimport type { TFsmWrapper } from '@Anarchy/Engine/Fsm';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\n\nexport function withActorStates(params: TActorParams): TWithActorStates {\n const states: TWriteable<TActorStates> = params.states ?? {};\n\n function setAnimationsFsm(fsm: TFsmWrapper): void {\n // eslint-disable-next-line functional/immutable-data\n states.animationsFsm = fsm;\n }\n\n if (params.states?.animationsFsm) {\n setAnimationsFsm(params.states.animationsFsm);\n }\n\n return {\n states,\n setAnimationsFsm,\n findAnimationsFsm: (): TFsmWrapper | undefined => states.animationsFsm,\n getAnimationsFsm: (): TFsmWrapper | never => {\n if (isDefined(states.animationsFsm)) return states.animationsFsm;\n throw new Error('[ACTOR]: AnimationsFSM are not exists');\n }\n };\n}\n"],"names":["withActorStates","params","states","setAnimationsFsm","fsm","animationsFsm","findAnimationsFsm","getAnimationsFsm","isDefined","Error"],"mappings":"6EAKO,SAASA,gBAAgBC,QAC9B,MAAMC,OAAmCD,OAAOC,QAAU,CAAA,EAE1D,SAASC,iBAAiBC,KAExBF,OAAOG,cAAgBD,GACzB,CAMA,OAJIH,OAAOC,QAAQG,eACjBF,iBAAiBF,OAAOC,OAAOG,eAG1B,CACLH,cACAC,kCACAG,kBAAmB,IAA+BJ,OAAOG,cACzDE,iBAAkB,KAChB,GAAIC,UAAUN,OAAOG,sBAAuBH,OAAOG,cACnD,MAAM,IAAII,MAAM,0CAGtB"}
1
+ {"version":3,"file":"WithActorStates.js","sources":["../../../src/Actor/Mixins/WithActorStates.ts"],"sourcesContent":["import type { TActorParams, TActorStates, TWithActorStates } from '@hellpig/anarchy-engine/Actor/Models';\nimport type { TFsmWrapper } from '@hellpig/anarchy-engine/Fsm';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function withActorStates(params: TActorParams): TWithActorStates {\n const states: TWriteable<TActorStates> = params.states ?? {};\n\n function setAnimationsFsm(fsm: TFsmWrapper): void {\n // eslint-disable-next-line functional/immutable-data\n states.animationsFsm = fsm;\n }\n\n if (params.states?.animationsFsm) {\n setAnimationsFsm(params.states.animationsFsm);\n }\n\n return {\n states,\n setAnimationsFsm,\n findAnimationsFsm: (): TFsmWrapper | undefined => states.animationsFsm,\n getAnimationsFsm: (): TFsmWrapper | never => {\n if (isDefined(states.animationsFsm)) return states.animationsFsm;\n throw new Error('[ACTOR]: AnimationsFSM are not exists');\n }\n };\n}\n"],"names":["withActorStates","params","states","setAnimationsFsm","fsm","animationsFsm","findAnimationsFsm","getAnimationsFsm","isDefined","Error"],"mappings":"6EAKO,SAASA,gBAAgBC,QAC9B,MAAMC,OAAmCD,OAAOC,QAAU,CAAA,EAE1D,SAASC,iBAAiBC,KAExBF,OAAOG,cAAgBD,GACzB,CAMA,OAJIH,OAAOC,QAAQG,eACjBF,iBAAiBF,OAAOC,OAAOG,eAG1B,CACLH,cACAC,kCACAG,kBAAmB,IAA+BJ,OAAOG,cACzDE,iBAAkB,KAChB,GAAIC,UAAUN,OAAOG,sBAAuBH,OAAOG,cACnD,MAAM,IAAII,MAAM,0CAGtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActorRegistry.js","sources":["../../../src/Actor/Registries/ActorRegistry.ts"],"sourcesContent":["import { AbstractEntityRegistry, RegistryType } from '@Anarchy/Engine/Abstract';\nimport type { TActor, TActorRegistry } from '@Anarchy/Engine/Actor/Models';\n\nexport function ActorRegistry(): TActorRegistry {\n return AbstractEntityRegistry<TActor>(RegistryType.Actor);\n}\n"],"names":["ActorRegistry","AbstractEntityRegistry","RegistryType","Actor"],"mappings":"2JAGO,SAASA,gBACd,OAAOC,uBAA+BC,aAAaC,MACrD"}
1
+ {"version":3,"file":"ActorRegistry.js","sources":["../../../src/Actor/Registries/ActorRegistry.ts"],"sourcesContent":["import { AbstractEntityRegistry, RegistryType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TActor, TActorRegistry } from '@hellpig/anarchy-engine/Actor/Models';\n\nexport function ActorRegistry(): TActorRegistry {\n return AbstractEntityRegistry<TActor>(RegistryType.Actor);\n}\n"],"names":["ActorRegistry","AbstractEntityRegistry","RegistryType","Actor"],"mappings":"2JAGO,SAASA,gBACd,OAAOC,uBAA+BC,aAAaC,MACrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Model3dToActorConnectionRegistry.js","sources":["../../../src/Actor/Registries/Model3dToActorConnectionRegistry.ts"],"sourcesContent":["import type { TAbstractSimpleRegistry } from '@Anarchy/Engine/Abstract';\nimport { AbstractSimpleRegistry, RegistryType } from '@Anarchy/Engine/Abstract';\nimport type { TActor, TModel3dToActorConnectionRegistry, TModel3dToActorConnectionRegistryExtension } from '@Anarchy/Engine/Actor/Models';\nimport type { TModel3d } from '@Anarchy/Engine/Models3d';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\n\nexport function Model3dToActorConnectionRegistry(): TModel3dToActorConnectionRegistry {\n const registry: TWriteable<TAbstractSimpleRegistry<string>> & TWriteable<TModel3dToActorConnectionRegistryExtension> = AbstractSimpleRegistry<string>(\n RegistryType.Models3dToActorConnection\n ) as TWriteable<TAbstractSimpleRegistry<string>> & TWriteable<TModel3dToActorConnectionRegistryExtension>;\n\n // eslint-disable-next-line functional/immutable-data\n registry.addModel3d = (model3d: TModel3d, actor: TActor): void => registry.add(model3d.id, actor.id);\n // eslint-disable-next-line functional/immutable-data\n registry.findByModel3d = (model3d: TModel3d): string | undefined => registry.findByKey(model3d.id);\n // eslint-disable-next-line functional/immutable-data\n registry.getByModel3d = (model3d: TModel3d): string | never => {\n const id: string | undefined = registry.findByModel3d(model3d);\n if (isNotDefined(id)) throw new Error(`[REGISTRY] Cannot find id by model3d with name \"${model3d.name}\" (id: \"${model3d.id}\")`);\n return id;\n };\n // eslint-disable-next-line functional/immutable-data\n registry.setByModel3d = (model3d: TModel3d, actor: TActor): void => registry.add(model3d.id, actor.id);\n // eslint-disable-next-line functional/immutable-data\n registry.removeByModel3d = (model3d: TModel3d): void => registry.remove(model3d.id);\n\n return registry;\n}\n"],"names":["Model3dToActorConnectionRegistry","registry","AbstractSimpleRegistry","RegistryType","Models3dToActorConnection","addModel3d","model3d","actor","add","id","findByModel3d","findByKey","getByModel3d","isNotDefined","Error","name","setByModel3d","removeByModel3d","remove"],"mappings":"2OAOO,SAASA,mCACd,MAAMC,SAAiHC,uBACrHC,aAAaC,2BAkBf,OAdAH,SAASI,WAAa,CAACC,QAAmBC,QAAwBN,SAASO,IAAIF,QAAQG,GAAIF,MAAME,IAEjGR,SAASS,cAAiBJ,SAA0CL,SAASU,UAAUL,QAAQG,IAE/FR,SAASW,aAAgBN,UACvB,MAAMG,GAAyBR,SAASS,cAAcJ,SACtD,GAAIO,aAAaJ,IAAK,MAAM,IAAIK,MAAM,mDAAmDR,QAAQS,eAAeT,QAAQG,QACxH,OAAOA,IAGTR,SAASe,aAAe,CAACV,QAAmBC,QAAwBN,SAASO,IAAIF,QAAQG,GAAIF,MAAME,IAEnGR,SAASgB,gBAAmBX,SAA4BL,SAASiB,OAAOZ,QAAQG,IAEzER,QACT"}
1
+ {"version":3,"file":"Model3dToActorConnectionRegistry.js","sources":["../../../src/Actor/Registries/Model3dToActorConnectionRegistry.ts"],"sourcesContent":["import type { TAbstractSimpleRegistry } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractSimpleRegistry, RegistryType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TActor, TModel3dToActorConnectionRegistry, TModel3dToActorConnectionRegistryExtension } from '@hellpig/anarchy-engine/Actor/Models';\nimport type { TModel3d } from '@hellpig/anarchy-engine/Models3d';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isNotDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function Model3dToActorConnectionRegistry(): TModel3dToActorConnectionRegistry {\n const registry: TWriteable<TAbstractSimpleRegistry<string>> & TWriteable<TModel3dToActorConnectionRegistryExtension> = AbstractSimpleRegistry<string>(\n RegistryType.Models3dToActorConnection\n ) as TWriteable<TAbstractSimpleRegistry<string>> & TWriteable<TModel3dToActorConnectionRegistryExtension>;\n\n // eslint-disable-next-line functional/immutable-data\n registry.addModel3d = (model3d: TModel3d, actor: TActor): void => registry.add(model3d.id, actor.id);\n // eslint-disable-next-line functional/immutable-data\n registry.findByModel3d = (model3d: TModel3d): string | undefined => registry.findByKey(model3d.id);\n // eslint-disable-next-line functional/immutable-data\n registry.getByModel3d = (model3d: TModel3d): string | never => {\n const id: string | undefined = registry.findByModel3d(model3d);\n if (isNotDefined(id)) throw new Error(`[REGISTRY] Cannot find id by model3d with name \"${model3d.name}\" (id: \"${model3d.id}\")`);\n return id;\n };\n // eslint-disable-next-line functional/immutable-data\n registry.setByModel3d = (model3d: TModel3d, actor: TActor): void => registry.add(model3d.id, actor.id);\n // eslint-disable-next-line functional/immutable-data\n registry.removeByModel3d = (model3d: TModel3d): void => registry.remove(model3d.id);\n\n return registry;\n}\n"],"names":["Model3dToActorConnectionRegistry","registry","AbstractSimpleRegistry","RegistryType","Models3dToActorConnection","addModel3d","model3d","actor","add","id","findByModel3d","findByKey","getByModel3d","isNotDefined","Error","name","setByModel3d","removeByModel3d","remove"],"mappings":"2OAOO,SAASA,mCACd,MAAMC,SAAiHC,uBACrHC,aAAaC,2BAkBf,OAdAH,SAASI,WAAa,CAACC,QAAmBC,QAAwBN,SAASO,IAAIF,QAAQG,GAAIF,MAAME,IAEjGR,SAASS,cAAiBJ,SAA0CL,SAASU,UAAUL,QAAQG,IAE/FR,SAASW,aAAgBN,UACvB,MAAMG,GAAyBR,SAASS,cAAcJ,SACtD,GAAIO,aAAaJ,IAAK,MAAM,IAAIK,MAAM,mDAAmDR,QAAQS,eAAeT,QAAQG,QACxH,OAAOA,IAGTR,SAASe,aAAe,CAACV,QAAmBC,QAAwBN,SAASO,IAAIF,QAAQG,GAAIF,MAAME,IAEnGR,SAASgB,gBAAmBX,SAA4BL,SAASiB,OAAOZ,QAAQG,IAEzER,QACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActorService.js","sources":["../../../src/Actor/Services/ActorService.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@Anarchy/Engine/Abstract';\nimport { AbstractService } from '@Anarchy/Engine/Abstract';\nimport type {\n TActor,\n TActorConfig,\n TActorEntityToConfigDependencies,\n TActorFactory,\n TActorParams,\n TActorRegistry,\n TActorService,\n TActorServiceDependencies,\n TActorServiceWithFactory,\n TActorServiceWithRegistry,\n TModel3dToActorConnectionRegistry\n} from '@Anarchy/Engine/Actor/Models';\nimport type { TDisposable } from '@Anarchy/Engine/Mixins';\nimport { withFactoryService, withRegistryService, withSceneGetterService, withSerializableEntities } from '@Anarchy/Engine/Mixins';\nimport type { TSceneWrapper } from '@Anarchy/Engine/Scene';\nimport type { TSpatialGridRegistry } from '@Anarchy/Engine/Spatial';\nimport { mergeAll } from '@Anarchy/Engine/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function ActorService(factory: TActorFactory, registry: TActorRegistry, actorServiceDependencies: TActorServiceDependencies, scene: TSceneWrapper): TActorService {\n const registrySub$: Subscription = registry.added$.subscribe(({ value }: TRegistryPack<TActor>): void => scene.addActor(value));\n const factorySub$: Subscription = factory.entityCreated$.subscribe((actor: TActor): void => registry.add(actor));\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, registrySub$, factorySub$, actorServiceDependencies.model3dToActorConnectionRegistry];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const create = (params: TActorParams): TActor => factory.create(params, actorServiceDependencies);\n const createFromList = (list: ReadonlyArray<TActorParams>): ReadonlyArray<TActor> => list.map(create);\n const createFromConfig = (actors: ReadonlyArray<TActorConfig>): ReadonlyArray<TActor> => {\n const spatialGridRegistry: TSpatialGridRegistry = actorServiceDependencies.spatialGridService.getRegistry();\n return actors.map(\n (config: TActorConfig): TActor =>\n create(\n factory.configToParams(config, {\n spatialGridRegistry,\n models3dService: actorServiceDependencies.models3dService,\n fsmService: actorServiceDependencies.fsmService,\n physicsBodyService: actorServiceDependencies.physicsBodyService\n })\n )\n );\n };\n\n const withFactory: TActorServiceWithFactory = withFactoryService(factory);\n const withRegistry: TActorServiceWithRegistry = withRegistryService(registry);\n\n return mergeAll(\n abstractService,\n withFactory,\n withRegistry,\n withSceneGetterService(scene),\n withSerializableEntities<TActor, TActorConfig, TActorEntityToConfigDependencies>(registry, actorServiceDependencies),\n {\n create,\n createFromList,\n createFromConfig,\n getModel3dToActorConnectionRegistry: (): TModel3dToActorConnectionRegistry => actorServiceDependencies.model3dToActorConnectionRegistry\n }\n );\n}\n"],"names":["ActorService","factory","registry","actorServiceDependencies","scene","registrySub$","added$","subscribe","value","addActor","factorySub$","entityCreated$","actor","add","abstractService","AbstractService","model3dToActorConnectionRegistry","create","params","withFactory","withFactoryService","withRegistry","withRegistryService","mergeAll","withSceneGetterService","withSerializableEntities","createFromList","list","map","createFromConfig","actors","spatialGridRegistry","spatialGridService","getRegistry","config","configToParams","models3dService","fsmService","physicsBodyService","getModel3dToActorConnectionRegistry"],"mappings":"+bAsBO,SAASA,aAAaC,QAAwBC,SAA0BC,yBAAqDC,OAClI,MAAMC,aAA6BH,SAASI,OAAOC,UAAU,EAAGC,eAAyCJ,MAAMK,SAASD,QAClHE,YAA4BT,QAAQU,eAAeJ,UAAWK,OAAwBV,SAASW,IAAID,QAEnGE,gBAAoCC,gBADK,CAACb,SAAUD,QAASI,aAAcK,YAAaP,yBAAyBa,mCAGjHC,OAAUC,QAAiCjB,QAAQgB,OAAOC,OAAQf,0BAiBlEgB,YAAwCC,mBAAmBnB,SAC3DoB,aAA0CC,oBAAoBpB,UAEpE,OAAOqB,SACLT,gBACAK,YACAE,aACAG,uBAAuBpB,OACvBqB,yBAAiFvB,SAAUC,0BAC3F,CACEc,cACAS,eA3BoBC,MAA6DA,KAAKC,IAAIX,QA4B1FY,iBA3BsBC,SACxB,MAAMC,oBAA4C5B,yBAAyB6B,mBAAmBC,cAC9F,OAAOH,OAAOF,IACXM,QACCjB,OACEhB,QAAQkC,eAAeD,OAAQ,CAC7BH,wCACAK,gBAAiBjC,yBAAyBiC,gBAC1CC,WAAYlC,yBAAyBkC,WACrCC,mBAAoBnC,yBAAyBmC,wBAmBnDC,oCAAqC,IAAyCpC,yBAAyBa,kCAG7G"}
1
+ {"version":3,"file":"ActorService.js","sources":["../../../src/Actor/Services/ActorService.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport type {\n TActor,\n TActorConfig,\n TActorEntityToConfigDependencies,\n TActorFactory,\n TActorParams,\n TActorRegistry,\n TActorService,\n TActorServiceDependencies,\n TActorServiceWithFactory,\n TActorServiceWithRegistry,\n TModel3dToActorConnectionRegistry\n} from '@hellpig/anarchy-engine/Actor/Models';\nimport type { TDisposable } from '@hellpig/anarchy-engine/Mixins';\nimport { withFactoryService, withRegistryService, withSceneGetterService, withSerializableEntities } from '@hellpig/anarchy-engine/Mixins';\nimport type { TSceneWrapper } from '@hellpig/anarchy-engine/Scene';\nimport type { TSpatialGridRegistry } from '@hellpig/anarchy-engine/Spatial';\nimport { mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function ActorService(factory: TActorFactory, registry: TActorRegistry, actorServiceDependencies: TActorServiceDependencies, scene: TSceneWrapper): TActorService {\n const registrySub$: Subscription = registry.added$.subscribe(({ value }: TRegistryPack<TActor>): void => scene.addActor(value));\n const factorySub$: Subscription = factory.entityCreated$.subscribe((actor: TActor): void => registry.add(actor));\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, registrySub$, factorySub$, actorServiceDependencies.model3dToActorConnectionRegistry];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const create = (params: TActorParams): TActor => factory.create(params, actorServiceDependencies);\n const createFromList = (list: ReadonlyArray<TActorParams>): ReadonlyArray<TActor> => list.map(create);\n const createFromConfig = (actors: ReadonlyArray<TActorConfig>): ReadonlyArray<TActor> => {\n const spatialGridRegistry: TSpatialGridRegistry = actorServiceDependencies.spatialGridService.getRegistry();\n return actors.map(\n (config: TActorConfig): TActor =>\n create(\n factory.configToParams(config, {\n spatialGridRegistry,\n models3dService: actorServiceDependencies.models3dService,\n fsmService: actorServiceDependencies.fsmService,\n physicsBodyService: actorServiceDependencies.physicsBodyService\n })\n )\n );\n };\n\n const withFactory: TActorServiceWithFactory = withFactoryService(factory);\n const withRegistry: TActorServiceWithRegistry = withRegistryService(registry);\n\n return mergeAll(\n abstractService,\n withFactory,\n withRegistry,\n withSceneGetterService(scene),\n withSerializableEntities<TActor, TActorConfig, TActorEntityToConfigDependencies>(registry, actorServiceDependencies),\n {\n create,\n createFromList,\n createFromConfig,\n getModel3dToActorConnectionRegistry: (): TModel3dToActorConnectionRegistry => actorServiceDependencies.model3dToActorConnectionRegistry\n }\n );\n}\n"],"names":["ActorService","factory","registry","actorServiceDependencies","scene","registrySub$","added$","subscribe","value","addActor","factorySub$","entityCreated$","actor","add","abstractService","AbstractService","model3dToActorConnectionRegistry","create","params","withFactory","withFactoryService","withRegistry","withRegistryService","mergeAll","withSceneGetterService","withSerializableEntities","createFromList","list","map","createFromConfig","actors","spatialGridRegistry","spatialGridService","getRegistry","config","configToParams","models3dService","fsmService","physicsBodyService","getModel3dToActorConnectionRegistry"],"mappings":"+bAsBO,SAASA,aAAaC,QAAwBC,SAA0BC,yBAAqDC,OAClI,MAAMC,aAA6BH,SAASI,OAAOC,UAAU,EAAGC,eAAyCJ,MAAMK,SAASD,QAClHE,YAA4BT,QAAQU,eAAeJ,UAAWK,OAAwBV,SAASW,IAAID,QAEnGE,gBAAoCC,gBADK,CAACb,SAAUD,QAASI,aAAcK,YAAaP,yBAAyBa,mCAGjHC,OAAUC,QAAiCjB,QAAQgB,OAAOC,OAAQf,0BAiBlEgB,YAAwCC,mBAAmBnB,SAC3DoB,aAA0CC,oBAAoBpB,UAEpE,OAAOqB,SACLT,gBACAK,YACAE,aACAG,uBAAuBpB,OACvBqB,yBAAiFvB,SAAUC,0BAC3F,CACEc,cACAS,eA3BoBC,MAA6DA,KAAKC,IAAIX,QA4B1FY,iBA3BsBC,SACxB,MAAMC,oBAA4C5B,yBAAyB6B,mBAAmBC,cAC9F,OAAOH,OAAOF,IACXM,QACCjB,OACEhB,QAAQkC,eAAeD,OAAQ,CAC7BH,wCACAK,gBAAiBjC,yBAAyBiC,gBAC1CC,WAAYlC,yBAAyBkC,WACrCC,mBAAoBnC,yBAAyBmC,wBAmBnDC,oCAAqC,IAAyCpC,yBAAyBa,kCAG7G"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActorTransformDrive.js","sources":["../../../src/Actor/TransformDrive/ActorTransformDrive.ts"],"sourcesContent":["import type { TActorDependencies, TActorParams, TActorTransformAgents, TActorTransformDrive } from '@Anarchy/Engine/Actor/Models';\nimport type { TTransformDriveParams } from '@Anarchy/Engine/TransformDrive';\n\nexport function ActorTransformDrive(params: TActorParams, { transformDriveService }: Pick<TActorDependencies, 'transformDriveService'>, relatedEntityId: string): TActorTransformDrive {\n const transformAgents: TActorTransformAgents = transformDriveService.getTransformAgents(params, {\n hasKinematic: true,\n hasPhysics: true,\n hasConnected: true\n }) as TActorTransformAgents;\n const driveParams: TTransformDriveParams = { activeAgent: params.agent, relatedEntityId };\n\n return transformDriveService.create(driveParams, transformAgents) as TActorTransformDrive;\n}\n"],"names":["ActorTransformDrive","params","transformDriveService","relatedEntityId","transformAgents","getTransformAgents","hasKinematic","hasPhysics","hasConnected","create","activeAgent","agent"],"mappings":"AAGO,SAASA,oBAAoBC,QAAsBC,sBAAEA,uBAA4EC,iBACtI,MAAMC,gBAAyCF,sBAAsBG,mBAAmBJ,OAAQ,CAC9FK,cAAc,EACdC,YAAY,EACZC,cAAc,IAIhB,OAAON,sBAAsBO,OAFc,CAAEC,YAAaT,OAAOU,MAAOR,iCAEvBC,gBACnD"}
1
+ {"version":3,"file":"ActorTransformDrive.js","sources":["../../../src/Actor/TransformDrive/ActorTransformDrive.ts"],"sourcesContent":["import type { TActorDependencies, TActorParams, TActorTransformAgents, TActorTransformDrive } from '@hellpig/anarchy-engine/Actor/Models';\nimport type { TTransformDriveParams } from '@hellpig/anarchy-engine/TransformDrive';\n\nexport function ActorTransformDrive(params: TActorParams, { transformDriveService }: Pick<TActorDependencies, 'transformDriveService'>, relatedEntityId: string): TActorTransformDrive {\n const transformAgents: TActorTransformAgents = transformDriveService.getTransformAgents(params, {\n hasKinematic: true,\n hasPhysics: true,\n hasConnected: true\n }) as TActorTransformAgents;\n const driveParams: TTransformDriveParams = { activeAgent: params.agent, relatedEntityId };\n\n return transformDriveService.create(driveParams, transformAgents) as TActorTransformDrive;\n}\n"],"names":["ActorTransformDrive","params","transformDriveService","relatedEntityId","transformAgents","getTransformAgents","hasKinematic","hasPhysics","hasConnected","create","activeAgent","agent"],"mappings":"AAGO,SAASA,oBAAoBC,QAAsBC,sBAAEA,uBAA4EC,iBACtI,MAAMC,gBAAyCF,sBAAsBG,mBAAmBJ,OAAQ,CAC9FK,cAAc,EACdC,YAAY,EACZC,cAAc,IAIhB,OAAON,sBAAsBO,OAFc,CAAEC,YAAaT,OAAOU,MAAOR,iCAEvBC,gBACnD"}