@hellpig/anarchy-engine 22.0.2 → 22.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/dist/Abstract/Entities/AbstractEntity.js.map +1 -1
  2. package/dist/Abstract/Factories/AbstractFactory.js.map +1 -1
  3. package/dist/Abstract/Factories/ReactiveFactory.js.map +1 -1
  4. package/dist/Abstract/Loaders/AbstractLoader.js.map +1 -1
  5. package/dist/Abstract/Mixins/WithWrapperIdMixin.js.map +1 -1
  6. package/dist/Abstract/Models/THtmlElementStyleDeclaration.d.ts +4 -4
  7. package/dist/Abstract/Registries/AbstractEntityAsyncRegistry.js.map +1 -1
  8. package/dist/Abstract/Registries/AbstractEntityRegistry.js.map +1 -1
  9. package/dist/Abstract/Registries/AbstractResourceAsyncRegistry.js.map +1 -1
  10. package/dist/Abstract/Registries/AbstractSimpleRegistry.js.map +1 -1
  11. package/dist/Abstract/Registries/AbstractWatcherRegistry.js.map +1 -1
  12. package/dist/Abstract/Registries/Mixin/Registry/WithBaseAccessorsRegistry.js.map +1 -1
  13. package/dist/Abstract/Registries/Mixin/Registry/WithReactiveRegistry.js.map +1 -1
  14. package/dist/Abstract/Services/AbstractService.js.map +1 -1
  15. package/dist/Abstract/Watchers/AbstractWatcher.js.map +1 -1
  16. package/dist/Abstract/Watchers/AbstractWatcherWithState.js.map +1 -1
  17. package/dist/Abstract/Wrappers/AbstractWrapper.js.map +1 -1
  18. package/dist/Actor/Adapters/ConfigToParams.js.map +1 -1
  19. package/dist/Actor/Adapters/EntityToConfig.js.map +1 -1
  20. package/dist/Actor/Adapters/Helpers/ActorStatesConfigToParams.js.map +1 -1
  21. package/dist/Actor/Adapters/Helpers/Model3dSettingsConfigToParams.js.map +1 -1
  22. package/dist/Actor/Entities/Actor/Actor.js.map +1 -1
  23. package/dist/Actor/Factories/ActorFactory.js.map +1 -1
  24. package/dist/Actor/Mixins/WithActorStates.js.map +1 -1
  25. package/dist/Actor/Registries/ActorRegistry.js.map +1 -1
  26. package/dist/Actor/Registries/Model3dToActorConnectionRegistry.js.map +1 -1
  27. package/dist/Actor/Services/ActorService.js.map +1 -1
  28. package/dist/Actor/TransformDrive/ActorTransformDrive.js.map +1 -1
  29. package/dist/Actor/Utils/ActorUtils.js.map +1 -1
  30. package/dist/Animations/Adapters/EntityToConfig.js.map +1 -1
  31. package/dist/Animations/Loader/AnimationsLoader.js.map +1 -1
  32. package/dist/Animations/Registries/AnimationsMetaInfoRegistry.js.map +1 -1
  33. package/dist/Animations/Registries/AnimationsResourceAsyncRegistry.js.map +1 -1
  34. package/dist/Animations/Services/AnimationsService.js.map +1 -1
  35. package/dist/Animations/Utils/SerializationUtils.js.map +1 -1
  36. package/dist/Audio/Adapters/AudioConfigToParams.js.map +1 -1
  37. package/dist/Audio/Adapters/EntityToConfig.js.map +1 -1
  38. package/dist/Audio/Factories/AudioFactory.js.map +1 -1
  39. package/dist/Audio/Loader/AudioLoader.js.map +1 -1
  40. package/dist/Audio/Registries/AudioListenersRegistry.js.map +1 -1
  41. package/dist/Audio/Registries/AudioMetaInfoRegistry.js.map +1 -1
  42. package/dist/Audio/Registries/AudioRegistry.js.map +1 -1
  43. package/dist/Audio/Registries/AudioResourceAsyncRegistry.js.map +1 -1
  44. package/dist/Audio/Services/AudioService.js.map +1 -1
  45. package/dist/Audio/TransformDrive/Audio3dTransformDrive.js.map +1 -1
  46. package/dist/Audio/Utils/AudioUtils.js.map +1 -1
  47. package/dist/Audio/Utils/DebugAudioRenderer.js.map +1 -1
  48. package/dist/Audio/Wrappers/AbstractAudioWrapper.js.map +1 -1
  49. package/dist/Audio/Wrappers/Audio3dWrapper.js.map +1 -1
  50. package/dist/Audio/Wrappers/AudioWrapper.js.map +1 -1
  51. package/dist/Camera/Adapters/ConfigToParams.js.map +1 -1
  52. package/dist/Camera/Adapters/EntityToConfig.js.map +1 -1
  53. package/dist/Camera/Factories/CameraFactory.js.map +1 -1
  54. package/dist/Camera/Registries/AbstractCameraRegistry.js.map +1 -1
  55. package/dist/Camera/Services/CameraService.js.map +1 -1
  56. package/dist/Camera/TransformDrive/CameraTransformDrive.js.map +1 -1
  57. package/dist/Camera/Utils/CameraUtils.js.map +1 -1
  58. package/dist/Camera/Wrappers/Accessors.js.map +1 -1
  59. package/dist/Camera/Wrappers/OrthographicCameraWrapper.js.map +1 -1
  60. package/dist/Camera/Wrappers/PerspectiveCameraWrapper.js.map +1 -1
  61. package/dist/Collisions/Mixins/WithCollisions.js.map +1 -1
  62. package/dist/Collisions/Services/BvhService.js.map +1 -1
  63. package/dist/Collisions/Services/CollisionsService.js.map +1 -1
  64. package/dist/Color/Adapters/EntityToConfig.js.map +1 -1
  65. package/dist/Color/Wrappers/ColorWrapper.js.map +1 -1
  66. package/dist/Context/AmbientContext/AmbientContext.js.map +1 -1
  67. package/dist/Controls/Adapters/ConfigToParams.js.map +1 -1
  68. package/dist/Controls/Adapters/EntityToConfig.js.map +1 -1
  69. package/dist/Controls/Factories/ControlsFactory.js.map +1 -1
  70. package/dist/Controls/Loop/ControlsLoopEffect.js.map +1 -1
  71. package/dist/Controls/Models/TFpsControlsWrapper.d.ts +1 -1
  72. package/dist/Controls/Models/TOrbitControlsWrapper.d.ts +1 -1
  73. package/dist/Controls/Registries/ControlsRegistry.js.map +1 -1
  74. package/dist/Controls/Services/ControlsService.js.map +1 -1
  75. package/dist/Controls/Utils/ControlsUtils.js.map +1 -1
  76. package/dist/Controls/Wrappers/FpsControls/FpsControlsAccessors.d.ts +1 -1
  77. package/dist/Controls/Wrappers/FpsControls/FpsControlsAccessors.js.map +1 -1
  78. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapper.js.map +1 -1
  79. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper.js.map +1 -1
  80. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsAccessors.d.ts +1 -1
  81. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsAccessors.js.map +1 -1
  82. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapper.js.map +1 -1
  83. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapperHelper.js.map +1 -1
  84. package/dist/Distance/Utils/DistanceUtils.js.map +1 -1
  85. package/dist/EnvMap/Adapters/ConfigToParams.js.map +1 -1
  86. package/dist/EnvMap/Adapters/EntityToConfig.js.map +1 -1
  87. package/dist/EnvMap/Factories/EnvMapFactory.js.map +1 -1
  88. package/dist/EnvMap/Loader/EnvMapLoader.js.map +1 -1
  89. package/dist/EnvMap/Registries/EnvMapMetaInfoRegistry.js.map +1 -1
  90. package/dist/EnvMap/Registries/EnvMapRegistry.js.map +1 -1
  91. package/dist/EnvMap/Registries/EnvMapTextureAsyncRegistry.js.map +1 -1
  92. package/dist/EnvMap/Services/EnvMapService.js.map +1 -1
  93. package/dist/EnvMap/Wrappers/EnvMapWrapper.js.map +1 -1
  94. package/dist/Fog/Adapters/ConfigToParams.js.map +1 -1
  95. package/dist/Fog/Adapters/EntityToConfig.js.map +1 -1
  96. package/dist/Fog/Factories/FogFactory.js.map +1 -1
  97. package/dist/Fog/Registries/FogRegistry.js.map +1 -1
  98. package/dist/Fog/Services/FogService.js.map +1 -1
  99. package/dist/Fog/Wrappers/FogWrapper.js.map +1 -1
  100. package/dist/Fsm/Adapters/ConfigToParams.js.map +1 -1
  101. package/dist/Fsm/Adapters/EntityToConfig.js.map +1 -1
  102. package/dist/Fsm/Entities/FsmSource.js.map +1 -1
  103. package/dist/Fsm/Factories/FsmInstanceFactory.js.map +1 -1
  104. package/dist/Fsm/Factories/FsmSourceFactory.js.map +1 -1
  105. package/dist/Fsm/Registries/FsmInstanceRegistry.js.map +1 -1
  106. package/dist/Fsm/Registries/FsmSourceRegistry.js.map +1 -1
  107. package/dist/Fsm/Services/FsmInstanceService.js.map +1 -1
  108. package/dist/Fsm/Services/FsmService.js.map +1 -1
  109. package/dist/Fsm/Services/FsmSourceService.js.map +1 -1
  110. package/dist/Fsm/Wrappers/FsmWrapper.js.map +1 -1
  111. package/dist/Global/Decorators/ContainerDecorator.js.map +1 -1
  112. package/dist/Global/Utils/ContainerUtils.js.map +1 -1
  113. package/dist/Intersections/Adapters/ConfigToParams.js.map +1 -1
  114. package/dist/Intersections/Adapters/EntityToConfig.js.map +1 -1
  115. package/dist/Intersections/Factories/IntersectionsWatcherFactory.js.map +1 -1
  116. package/dist/Intersections/Models/TIntersectionsDirectionWatcher.d.ts +1 -1
  117. package/dist/Intersections/Registries/IntersectionsWatcherRegistry.js.map +1 -1
  118. package/dist/Intersections/Services/IntersectionsWatcherService.js.map +1 -1
  119. package/dist/Intersections/Utils/IntersectionsWatcherUtils.js.map +1 -1
  120. package/dist/Intersections/Watchers/AbstractIntersectionsWatcher.js.map +1 -1
  121. package/dist/Intersections/Watchers/IntersectionsCameraWatcher.js.map +1 -1
  122. package/dist/Intersections/Watchers/IntersectionsDirectionWatcher.js.map +1 -1
  123. package/dist/Keyboard/Factories/KeyWatcherFactory.js.map +1 -1
  124. package/dist/Keyboard/Registries/KeyWatcherRegistry.js.map +1 -1
  125. package/dist/Keyboard/Services/KeyboardService.js.map +1 -1
  126. package/dist/Keyboard/Utils/KeysRxJsUtils.js.map +1 -1
  127. package/dist/Keyboard/Utils/KeysUtils.js.map +1 -1
  128. package/dist/Keyboard/Watchers/KeyComboWatcher.js.map +1 -1
  129. package/dist/Keyboard/Watchers/KeyPressWatcher.js.map +1 -1
  130. package/dist/Keyboard/Watchers/KeyReleaseWatcher.js.map +1 -1
  131. package/dist/Kinematic/Adapters/ConfigToParams.js.map +1 -1
  132. package/dist/Kinematic/Adapters/EntityToConfig.js.map +1 -1
  133. package/dist/Kinematic/Constants/KinematicConstants.js.map +1 -1
  134. package/dist/Kinematic/Utils/KinematicUtils.js.map +1 -1
  135. package/dist/Light/Adapters/ConfigToParams.js.map +1 -1
  136. package/dist/Light/Adapters/EntityToConfig.js.map +1 -1
  137. package/dist/Light/Factories/LightFactory.js.map +1 -1
  138. package/dist/Light/Registries/LightRegistry.js.map +1 -1
  139. package/dist/Light/Services/LightService.js.map +1 -1
  140. package/dist/Light/TransformDrive/LightTransformDrive.js.map +1 -1
  141. package/dist/Light/Utils/Utils.js.map +1 -1
  142. package/dist/Light/Wrappers/AbstractLightWrapper.js.map +1 -1
  143. package/dist/Light/Wrappers/AmbientLightWrapper.js.map +1 -1
  144. package/dist/Light/Wrappers/DirectionalLightWrapper.js.map +1 -1
  145. package/dist/Light/Wrappers/HemisphereLightWrapper.js.map +1 -1
  146. package/dist/Light/Wrappers/LightWrapperHelper.js.map +1 -1
  147. package/dist/Light/Wrappers/PointLightWrapper.js.map +1 -1
  148. package/dist/Light/Wrappers/RectAreaLightWrapper.js.map +1 -1
  149. package/dist/Light/Wrappers/SpotLightWrapper.js.map +1 -1
  150. package/dist/LoadingManager/Factories/LoadingManagerFactory.js.map +1 -1
  151. package/dist/LoadingManager/Registries/LoadingManagerRegistry.js.map +1 -1
  152. package/dist/LoadingManager/Services/LoadingManagerService.js.map +1 -1
  153. package/dist/LoadingManager/Wrappers/LoadingManagerWrapper.js.map +1 -1
  154. package/dist/Loop/Constants/LoopsDefaultSettings.js.map +1 -1
  155. package/dist/Loop/Entities/DeltaCalculator.js.map +1 -1
  156. package/dist/Loop/Entities/Loop.js.map +1 -1
  157. package/dist/Loop/Factories/LoopFactory.js.map +1 -1
  158. package/dist/Loop/Registries/LoopRegistry.js.map +1 -1
  159. package/dist/Loop/Services/LoopService.js.map +1 -1
  160. package/dist/Loop/Utils/LoopDebugUtils.js.map +1 -1
  161. package/dist/Loop/Utils/LoopUtils.js.map +1 -1
  162. package/dist/Material/Adapters/ConfigToParams.js.map +1 -1
  163. package/dist/Material/Adapters/EntityToConfig.js.map +1 -1
  164. package/dist/Material/Constants/Material/MaterialMap.js.map +1 -1
  165. package/dist/Material/Factories/MaterialFactory.js.map +1 -1
  166. package/dist/Material/Mixins/WithMaterial.d.ts +1 -1
  167. package/dist/Material/Mixins/WithMaterial.js.map +1 -1
  168. package/dist/Material/Models/TMaterialParamsOptions.d.ts +1 -4
  169. package/dist/Material/Registries/MaterialRegistry.js.map +1 -1
  170. package/dist/Material/Services/MaterialService.js.map +1 -1
  171. package/dist/Material/Utils/MaterialUtils.js.map +1 -1
  172. package/dist/Material/Wrappers/MaterialWrapper.js.map +1 -1
  173. package/dist/Math/Utils/AnglesUtils.js +1 -1
  174. package/dist/Math/Utils/AnglesUtils.js.map +1 -1
  175. package/dist/Math/Utils/DistanceUtils.js.map +1 -1
  176. package/dist/Measurements/Constants/Distance.js.map +1 -1
  177. package/dist/Measurements/Constants/Time.js.map +1 -1
  178. package/dist/Measurements/Utils/MeasurementsUtils.d.ts +1 -1
  179. package/dist/Measurements/Utils/MeasurementsUtils.js.map +1 -1
  180. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy2dMixin.js.map +1 -1
  181. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy3dMixin.js.map +1 -1
  182. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy4dMixin.js.map +1 -1
  183. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByWMixin.js.map +1 -1
  184. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByXMixin.js.map +1 -1
  185. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByYMixin.js.map +1 -1
  186. package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByZMixin.js.map +1 -1
  187. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition2dMixin.js.map +1 -1
  188. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition3dMixin.js.map +1 -1
  189. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition4dMixin.js.map +1 -1
  190. package/dist/Mixins/GameObjects/Mixins/Position/WithPositionMixin.js.map +1 -1
  191. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByWMixin.js.map +1 -1
  192. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByXMixin.js.map +1 -1
  193. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByXyzMixin.js.map +1 -1
  194. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByYMixin.js.map +1 -1
  195. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByZMixin.js.map +1 -1
  196. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationMixin.js.map +1 -1
  197. package/dist/Mixins/GameObjects/Mixins/Scalable/WithScaleMixin.js.map +1 -1
  198. package/dist/Mixins/GameObjects/Mixins/WithObject3D.js.map +1 -1
  199. package/dist/Mixins/Generics/DestroyableMixin.js.map +1 -1
  200. package/dist/Mixins/Generics/ExtractSerializableRegistrableFields.js.map +1 -1
  201. package/dist/Mixins/Generics/WithActiveEntityServiceMixin.js.map +1 -1
  202. package/dist/Mixins/Generics/WithActiveMixin.js.map +1 -1
  203. package/dist/Mixins/Generics/WithNameAndNameAccessorsMixin.js.map +1 -1
  204. package/dist/Mixins/Services/WithCreateFromConfigService.js.map +1 -1
  205. package/dist/Mixins/Services/WithCreateService.js.map +1 -1
  206. package/dist/Mixins/Services/WithFactoryService.js.map +1 -1
  207. package/dist/Mixins/Services/WithRegistryService.js.map +1 -1
  208. package/dist/Mixins/Services/WithSceneGetterService.js.map +1 -1
  209. package/dist/Mixins/Services/WithSerializableEntities.js.map +1 -1
  210. package/dist/Mixins/Services/WithSerializeAllResources.js.map +1 -1
  211. package/dist/Models3d/Adapters/ConfigToParams.js.map +1 -1
  212. package/dist/Models3d/Adapters/EntityToConfig.js.map +1 -1
  213. package/dist/Models3d/Entities/Model3d.js.map +1 -1
  214. package/dist/Models3d/Factories/Models3dFactory.js.map +1 -1
  215. package/dist/Models3d/Loaders/Loader3dCore.js.map +1 -1
  216. package/dist/Models3d/Loaders/Models3dLoader.js.map +1 -1
  217. package/dist/Models3d/Mixins/WithModel3dEntities.js.map +1 -1
  218. package/dist/Models3d/Models/TModel3dParams.d.ts +1 -1
  219. package/dist/Models3d/Models/TModels3dLoader.d.ts +1 -1
  220. package/dist/Models3d/Models/TModels3dResourceAsyncRegistry.d.ts +1 -1
  221. package/dist/Models3d/Models/TModels3dService.d.ts +1 -1
  222. package/dist/Models3d/Registries/Model3dRawToModel3dConnectionRegistry.js.map +1 -1
  223. package/dist/Models3d/Registries/Models3dMetaInfoRegistry.js.map +1 -1
  224. package/dist/Models3d/Registries/Models3dRegistry.js.map +1 -1
  225. package/dist/Models3d/Registries/Models3dResourceAsyncRegistry.js.map +1 -1
  226. package/dist/Models3d/Services/Models3dService.js.map +1 -1
  227. package/dist/Models3d/Utils/SerializationUtils.js.map +1 -1
  228. package/dist/Models3d/Utils/UtilsModel3d.d.ts +1 -1
  229. package/dist/Models3d/Utils/UtilsModel3d.js.map +1 -1
  230. package/dist/Models3d/Utils/UtilsModels3dService.js.map +1 -1
  231. package/dist/Models3d/Utils/UtilsPrimitiveModels3d.d.ts +1 -1
  232. package/dist/Models3d/Utils/UtilsPrimitiveModels3d.js.map +1 -1
  233. package/dist/Mouse/Factories/MouseClickWatcherFactory.js.map +1 -1
  234. package/dist/Mouse/Factories/MousePositionWatcherFactory.js.map +1 -1
  235. package/dist/Mouse/Registries/MouseClickWatcherRegistry.js.map +1 -1
  236. package/dist/Mouse/Registries/MousePositionWatcherRegistry.js.map +1 -1
  237. package/dist/Mouse/Services/MouseService.js.map +1 -1
  238. package/dist/Mouse/Utils/MouseUtils.js.map +1 -1
  239. package/dist/Mouse/Watchers/MouseClickWatcher.js.map +1 -1
  240. package/dist/Mouse/Watchers/MousePositionWatcher.js.map +1 -1
  241. package/dist/Particles/Adapters/ConfigToParams.js.map +1 -1
  242. package/dist/Particles/Adapters/EntityToConfig.js.map +1 -1
  243. package/dist/Particles/Factories/ParticlesFactory.js.map +1 -1
  244. package/dist/Particles/Registries/ParticlesRegistry.js.map +1 -1
  245. package/dist/Particles/Services/ParticlesService.js.map +1 -1
  246. package/dist/Particles/TransformDrive/ParticlesTransformDrive.js.map +1 -1
  247. package/dist/Particles/Wrappers/ParticlesWrapper.js.map +1 -1
  248. package/dist/Physics/Adapters/EntityToConfig.d.ts +1 -1
  249. package/dist/Physics/Adapters/EntityToConfig.js.map +1 -1
  250. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js +1 -1
  251. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js.map +1 -1
  252. package/dist/Physics/Adapters/PhysicsWorldConfigToParams.js.map +1 -1
  253. package/dist/Physics/Constants/RigidBodyTypesMap.d.ts +1 -1
  254. package/dist/Physics/Constants/RigidBodyTypesMap.js +1 -1
  255. package/dist/Physics/Constants/RigidBodyTypesMap.js.map +1 -1
  256. package/dist/Physics/Entities/PhysicsBody.js.map +1 -1
  257. package/dist/Physics/Entities/PhysicsBodyUtils.d.ts +1 -1
  258. package/dist/Physics/Entities/PhysicsBodyUtils.js +1 -1
  259. package/dist/Physics/Entities/PhysicsBodyUtils.js.map +1 -1
  260. package/dist/Physics/Factories/PhysicsBodyFactory.js.map +1 -1
  261. package/dist/Physics/Mixins/WithPhysicsBodyEntities.js.map +1 -1
  262. package/dist/Physics/Models/TPhysicsWorldService.d.ts +1 -1
  263. package/dist/Physics/Registries/PhysicsBodyRegistry.js.map +1 -1
  264. package/dist/Physics/Renderers/PhysicsDebugRenderer.d.ts +1 -1
  265. package/dist/Physics/Renderers/PhysicsDebugRenderer.js.map +1 -1
  266. package/dist/Physics/Services/PhysicsBodyService.js.map +1 -1
  267. package/dist/Physics/Services/PhysicsWorldService.js +1 -1
  268. package/dist/Physics/Services/PhysicsWorldService.js.map +1 -1
  269. package/dist/Physics/Utils/ParamsUtils.js.map +1 -1
  270. package/dist/Physics/Utils/PhysicsMovementUtils.d.ts +2 -2
  271. package/dist/Physics/Utils/PhysicsMovementUtils.js +1 -1
  272. package/dist/Physics/Utils/PhysicsMovementUtils.js.map +1 -1
  273. package/dist/Renderer/Adapters/ConfigToParams.js.map +1 -1
  274. package/dist/Renderer/Adapters/EntityToConfig.js.map +1 -1
  275. package/dist/Renderer/Factories/RendererFactory.js.map +1 -1
  276. package/dist/Renderer/Loop/RendererLoopEffect.js.map +1 -1
  277. package/dist/Renderer/Mixins/WithThreeJsRendererParamsAccessors.js.map +1 -1
  278. package/dist/Renderer/Mixins/WithThreeJsRendererPropsAccessors.js.map +1 -1
  279. package/dist/Renderer/Registries/RendererRegistry.js.map +1 -1
  280. package/dist/Renderer/Services/RendererService.js.map +1 -1
  281. package/dist/Renderer/Wrappers/Accessors.js.map +1 -1
  282. package/dist/Renderer/Wrappers/RendererWrapper.js.map +1 -1
  283. package/dist/Scene/Adapters/ConfigToParams.js.map +1 -1
  284. package/dist/Scene/Adapters/EntityToConfig.js.map +1 -1
  285. package/dist/Scene/Factories/SceneFactory.js.map +1 -1
  286. package/dist/Scene/Registries/SceneRegistry.js.map +1 -1
  287. package/dist/Scene/Services/ScenesService.js.map +1 -1
  288. package/dist/Scene/Wrappers/SceneWrapper.js.map +1 -1
  289. package/dist/Space/Adapters/ConfigToParams.js.map +1 -1
  290. package/dist/Space/Adapters/EntityToConfig.js.map +1 -1
  291. package/dist/Space/Entities/Space.js.map +1 -1
  292. package/dist/Space/Entities/SpaceFromConfig.js.map +1 -1
  293. package/dist/Space/Factories/SpaceFactory.js.map +1 -1
  294. package/dist/Space/Registries/SpaceRegistry.js.map +1 -1
  295. package/dist/Space/Services/SpaceService.js.map +1 -1
  296. package/dist/Space/Utils/CanvasUtils.js.map +1 -1
  297. package/dist/Space/Utils/CreateEntitiesUtils.js.map +1 -1
  298. package/dist/Space/Utils/CreateLoopsUtils.js.map +1 -1
  299. package/dist/Space/Utils/LoadResourcesUtils.js.map +1 -1
  300. package/dist/Space/Utils/PrepareServicesUtils.js.map +1 -1
  301. package/dist/Space/Utils/SchemaValidationUtils.js.map +1 -1
  302. package/dist/Space/Validators/SchemasValidator.js.map +1 -1
  303. package/dist/Space/Validators/ValidateConfig.js.map +1 -1
  304. package/dist/Space/Validators/ValidateSpace.js.map +1 -1
  305. package/dist/Spatial/Adapters/ConfigToParams.js.map +1 -1
  306. package/dist/Spatial/Adapters/ConfigToParamsSpatialData.js.map +1 -1
  307. package/dist/Spatial/Adapters/EntityToConfig.js.map +1 -1
  308. package/dist/Spatial/Factories/SpatialGridFactory.js.map +1 -1
  309. package/dist/Spatial/Mixins/WithReactivePosition.js.map +1 -1
  310. package/dist/Spatial/Mixins/WithReactiveRotation.js.map +1 -1
  311. package/dist/Spatial/Mixins/WithSpatial.js.map +1 -1
  312. package/dist/Spatial/Mixins/WithUpdateSpatialCell.js.map +1 -1
  313. package/dist/Spatial/Registries/SpatialGridRegistry.js.map +1 -1
  314. package/dist/Spatial/Services/SpatialGridService.js.map +1 -1
  315. package/dist/Spatial/Services/SpatialHelper.d.ts +1 -1
  316. package/dist/Spatial/Services/SpatialHelper.js.map +1 -1
  317. package/dist/Spatial/Wrappers/SpatialCellWrapper.js.map +1 -1
  318. package/dist/Spatial/Wrappers/SpatialGridWrapper.js.map +1 -1
  319. package/dist/Text/Adapters/ConfigToParams.js.map +1 -1
  320. package/dist/Text/Adapters/EntityToConfig.js.map +1 -1
  321. package/dist/Text/Factories/TextFactory.js.map +1 -1
  322. package/dist/Text/Loop/TextLoopEffect.js.map +1 -1
  323. package/dist/Text/Models/TText2dRenderer.d.ts +1 -1
  324. package/dist/Text/Models/TText2dWrapper.d.ts +1 -1
  325. package/dist/Text/Models/TText3dRenderer.d.ts +1 -1
  326. package/dist/Text/Models/TText3dWrapper.d.ts +1 -1
  327. package/dist/Text/Models/TTextRenderer.d.ts +2 -2
  328. package/dist/Text/Models/TTextWrapper.d.ts +2 -2
  329. package/dist/Text/Registries/Text2dRegistry.js.map +1 -1
  330. package/dist/Text/Registries/Text2dRendererRegistry.js.map +1 -1
  331. package/dist/Text/Registries/Text3dRegistry.js.map +1 -1
  332. package/dist/Text/Registries/Text3dRendererRegistry.js.map +1 -1
  333. package/dist/Text/Registries/Text3dTextureRegistry.js.map +1 -1
  334. package/dist/Text/Renderers/Text2dRenderer.js.map +1 -1
  335. package/dist/Text/Renderers/Text3dRenderer.js.map +1 -1
  336. package/dist/Text/Renderers/TextRendererBuilder.d.ts +2 -2
  337. package/dist/Text/Renderers/TextRendererBuilder.js.map +1 -1
  338. package/dist/Text/Services/TextService.js.map +1 -1
  339. package/dist/Text/TransformDrive/TextTransformDrive.js.map +1 -1
  340. package/dist/Text/Utils/TextUtils.js.map +1 -1
  341. package/dist/Text/Wrappers/Accessors.js.map +1 -1
  342. package/dist/Text/Wrappers/Text2dWrapper.js.map +1 -1
  343. package/dist/Text/Wrappers/Text3dTextureWrapper.js.map +1 -1
  344. package/dist/Text/Wrappers/Text3dWrapper.js.map +1 -1
  345. package/dist/Text/Wrappers/TextTextureWrapper.js.map +1 -1
  346. package/dist/Text/Wrappers/TextWrapper.d.ts +2 -2
  347. package/dist/Text/Wrappers/TextWrapper.js.map +1 -1
  348. package/dist/Text/Wrappers/TextWrapperBuilder.js.map +1 -1
  349. package/dist/Text/Wrappers/TextWrapperHelper.js.map +1 -1
  350. package/dist/Texture/Loaders/TexturesLoader.js.map +1 -1
  351. package/dist/Texture/Registries/TextureMetaInfoRegistry.js.map +1 -1
  352. package/dist/Texture/Registries/TextureResourceAsyncRegistry.js.map +1 -1
  353. package/dist/Texture/Services/TextureService.js.map +1 -1
  354. package/dist/Texture/Utils/TextureServiceHelper.js.map +1 -1
  355. package/dist/ThreeLib/Utils/Object3dUtils.js.map +1 -1
  356. package/dist/TransformDrive/Adapters/EntityToConfig.js.map +1 -1
  357. package/dist/TransformDrive/Entities/Agents/AbstractTransformAgent.js.map +1 -1
  358. package/dist/TransformDrive/Entities/Agents/ConnectedTransformAgent.js.map +1 -1
  359. package/dist/TransformDrive/Entities/Agents/DefaultTransformAgent.js.map +1 -1
  360. package/dist/TransformDrive/Entities/Agents/KinematicTransformAgent.js.map +1 -1
  361. package/dist/TransformDrive/Entities/Agents/PhysicsTransformAgent.js.map +1 -1
  362. package/dist/TransformDrive/Entities/Connectors/DriveToTargetConnector.js.map +1 -1
  363. package/dist/TransformDrive/Entities/Drive/TransformDrive.js.map +1 -1
  364. package/dist/TransformDrive/Factories/TransformDriveFactory.js.map +1 -1
  365. package/dist/TransformDrive/Mixins/WithMutablePositionConnector.js.map +1 -1
  366. package/dist/TransformDrive/Mixins/WithMutableRotationConnector.js.map +1 -1
  367. package/dist/TransformDrive/Mixins/WithMutableScaleConnector.js.map +1 -1
  368. package/dist/TransformDrive/Mixins/WithProxyTransform.js.map +1 -1
  369. package/dist/TransformDrive/Registries/TransformDriveRegistry.js.map +1 -1
  370. package/dist/TransformDrive/Services/TransformDriveService.js.map +1 -1
  371. package/dist/TransformDrive/Utils/ActorDriveUtils.js.map +1 -1
  372. package/dist/TransformDrive/Utils/AgentUtils.js.map +1 -1
  373. package/dist/TransformDrive/Utils/KinematicAgentUtils.js.map +1 -1
  374. package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.d.ts +1 -1
  375. package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.js.map +1 -1
  376. package/dist/TransformDrive/Utils/TransformDriveUtils.js.map +1 -1
  377. package/dist/Utils/CheckUtils.js.map +1 -1
  378. package/dist/Utils/CoordsUtils.js.map +1 -1
  379. package/dist/Utils/DateTimeUtils.d.ts +1 -1
  380. package/dist/Utils/DestroyUtils.js.map +1 -1
  381. package/dist/Utils/DomUtils.js.map +1 -1
  382. package/dist/Utils/EntityUtils.js.map +1 -1
  383. package/dist/Utils/RegistryAsyncUtils.js.map +1 -1
  384. package/dist/Utils/RegistryUtils.js.map +1 -1
  385. package/dist/Utils/RxJsUtils.js.map +1 -1
  386. package/dist/Utils/ScreenUtils.js.map +1 -1
  387. package/dist/Utils/TagsUtils.js.map +1 -1
  388. package/dist/Utils/TransformUtils.js.map +1 -1
  389. package/dist/Utils/WrapperHelpers.d.ts +1 -1
  390. package/dist/Utils/WrapperHelpers.js.map +1 -1
  391. package/dist/assets/Loop.worker-D1bMWlsN.js.map +1 -1
  392. package/dist/packages/anarchy-shared/src/Utils/AsyncUtils.js.map +1 -1
  393. package/dist/packages/anarchy-shared/src/Utils/CssUtils.js.map +1 -1
  394. package/dist/packages/anarchy-shared/src/Utils/ObjectUtils.js.map +1 -1
  395. package/legal/NOTICE.md +1 -1
  396. package/legal/THIRD_PARTY_LICENSES.md +1 -1
  397. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Renderer/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TRendererConfig, TRendererParams, TRendererServiceDependencies } from '@Anarchy/Engine/Renderer/Models';\nimport type { TSpaceCanvas } from '@Anarchy/Engine/Space';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\n\nexport function rendererConfigToParams(config: TRendererConfig, { container }: TRendererServiceDependencies): TRendererParams | never {\n const { ...rest } = config;\n\n const canvas: TSpaceCanvas | undefined = container.canvas$.value;\n if (isNotDefined(canvas)) throw new Error('Renderer: cannot convert config to params – canvas is not defined');\n\n return {\n ...rest,\n canvas\n };\n}\n"],"names":["rendererConfigToParams","config","container","rest","canvas","canvas$","value","isNotDefined","Error"],"mappings":"gFAIO,SAASA,uBAAuBC,QAAyBC,UAAEA,YAChE,SAAWC,MAASF,OAEdG,OAAmCF,UAAUG,QAAQC,MAC3D,GAAIC,aAAaH,QAAS,MAAM,IAAII,MAAM,0EAE1C,MAAO,IACFL,KACHC,cAEJ"}
1
+ {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Renderer/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TRendererConfig, TRendererParams, TRendererServiceDependencies } from '@hellpig/anarchy-engine/Renderer/Models';\nimport type { TSpaceCanvas } from '@hellpig/anarchy-engine/Space';\nimport { isNotDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function rendererConfigToParams(config: TRendererConfig, { container }: TRendererServiceDependencies): TRendererParams | never {\n const { ...rest } = config;\n\n const canvas: TSpaceCanvas | undefined = container.canvas$.value;\n if (isNotDefined(canvas)) throw new Error('Renderer: cannot convert config to params – canvas is not defined');\n\n return {\n ...rest,\n canvas\n };\n}\n"],"names":["rendererConfigToParams","config","container","rest","canvas","canvas$","value","isNotDefined","Error"],"mappings":"gFAIO,SAASA,uBAAuBC,QAAyBC,UAAEA,YAChE,SAAWC,MAASF,OAEdG,OAAmCF,UAAUG,QAAQC,MAC3D,GAAIC,aAAaH,QAAS,MAAM,IAAII,MAAM,0EAE1C,MAAO,IACFL,KACHC,cAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Renderer/Adapters/EntityToConfig.ts"],"sourcesContent":["import { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport type { TRendererConfig, TRendererParams, TRendererWrapper } from '@Anarchy/Engine/Renderer/Models';\nimport { filterOutEmptyFields } from '@Anarchy/Shared/Utils';\n\nexport function rendererEntityToConfig(entity: TRendererWrapper): TRendererConfig {\n const params: TRendererParams = entity.getParams();\n\n return filterOutEmptyFields({\n precision: params.precision,\n alpha: params.alpha,\n premultipliedAlpha: params.premultipliedAlpha,\n antialias: params.antialias,\n stencil: params.stencil,\n preserveDrawingBuffer: params.preserveDrawingBuffer,\n powerPreference: params.powerPreference,\n depth: params.depth,\n logarithmicDepthBuffer: params.logarithmicDepthBuffer,\n failIfMajorPerformanceCaveat: params.failIfMajorPerformanceCaveat,\n mode: params.mode,\n isShadowMapEnabled: entity.isShadowMapEnabled(),\n maxPixelRatio: entity.entity.getPixelRatio(),\n isActive: entity.isActive(),\n ...extractSerializableRegistrableFields(entity)\n });\n}\n"],"names":["rendererEntityToConfig","entity","params","getParams","filterOutEmptyFields","precision","alpha","premultipliedAlpha","antialias","stencil","preserveDrawingBuffer","powerPreference","depth","logarithmicDepthBuffer","failIfMajorPerformanceCaveat","mode","isShadowMapEnabled","maxPixelRatio","getPixelRatio","isActive","extractSerializableRegistrableFields"],"mappings":"yMAIO,SAASA,uBAAuBC,QACrC,MAAMC,OAA0BD,OAAOE,YAEvC,OAAOC,qBAAqB,CAC1BC,UAAWH,OAAOG,UAClBC,MAAOJ,OAAOI,MACdC,mBAAoBL,OAAOK,mBAC3BC,UAAWN,OAAOM,UAClBC,QAASP,OAAOO,QAChBC,sBAAuBR,OAAOQ,sBAC9BC,gBAAiBT,OAAOS,gBACxBC,MAAOV,OAAOU,MACdC,uBAAwBX,OAAOW,uBAC/BC,6BAA8BZ,OAAOY,6BACrCC,KAAMb,OAAOa,KACbC,mBAAoBf,OAAOe,qBAC3BC,cAAehB,OAAOA,OAAOiB,gBAC7BC,SAAUlB,OAAOkB,cACdC,qCAAqCnB,SAE5C"}
1
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Renderer/Adapters/EntityToConfig.ts"],"sourcesContent":["import { extractSerializableRegistrableFields } from '@hellpig/anarchy-engine/Mixins';\nimport type { TRendererConfig, TRendererParams, TRendererWrapper } from '@hellpig/anarchy-engine/Renderer/Models';\nimport { filterOutEmptyFields } from '@hellpig/anarchy-shared/Utils';\n\nexport function rendererEntityToConfig(entity: TRendererWrapper): TRendererConfig {\n const params: TRendererParams = entity.getParams();\n\n return filterOutEmptyFields({\n precision: params.precision,\n alpha: params.alpha,\n premultipliedAlpha: params.premultipliedAlpha,\n antialias: params.antialias,\n stencil: params.stencil,\n preserveDrawingBuffer: params.preserveDrawingBuffer,\n powerPreference: params.powerPreference,\n depth: params.depth,\n logarithmicDepthBuffer: params.logarithmicDepthBuffer,\n failIfMajorPerformanceCaveat: params.failIfMajorPerformanceCaveat,\n mode: params.mode,\n isShadowMapEnabled: entity.isShadowMapEnabled(),\n maxPixelRatio: entity.entity.getPixelRatio(),\n isActive: entity.isActive(),\n ...extractSerializableRegistrableFields(entity)\n });\n}\n"],"names":["rendererEntityToConfig","entity","params","getParams","filterOutEmptyFields","precision","alpha","premultipliedAlpha","antialias","stencil","preserveDrawingBuffer","powerPreference","depth","logarithmicDepthBuffer","failIfMajorPerformanceCaveat","mode","isShadowMapEnabled","maxPixelRatio","getPixelRatio","isActive","extractSerializableRegistrableFields"],"mappings":"yMAIO,SAASA,uBAAuBC,QACrC,MAAMC,OAA0BD,OAAOE,YAEvC,OAAOC,qBAAqB,CAC1BC,UAAWH,OAAOG,UAClBC,MAAOJ,OAAOI,MACdC,mBAAoBL,OAAOK,mBAC3BC,UAAWN,OAAOM,UAClBC,QAASP,OAAOO,QAChBC,sBAAuBR,OAAOQ,sBAC9BC,gBAAiBT,OAAOS,gBACxBC,MAAOV,OAAOU,MACdC,uBAAwBX,OAAOW,uBAC/BC,6BAA8BZ,OAAOY,6BACrCC,KAAMb,OAAOa,KACbC,mBAAoBf,OAAOe,qBAC3BC,cAAehB,OAAOA,OAAOiB,gBAC7BC,SAAUlB,OAAOkB,cACdC,qCAAqCnB,SAE5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"RendererFactory.js","sources":["../../../src/Renderer/Factories/RendererFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { rendererConfigToParams } from '@Anarchy/Engine/Renderer/Adapters';\nimport type { TRendererFactory, TRendererParams, TRendererWrapper, TRendererWrapperDependencies } from '@Anarchy/Engine/Renderer/Models';\nimport { RendererWrapper } from '@Anarchy/Engine/Renderer/Wrappers';\n\nexport function RendererFactory(): TRendererFactory {\n const factory: TReactiveFactory<TRendererWrapper, TRendererParams, TRendererWrapperDependencies> = ReactiveFactory(FactoryType.Renderer, RendererWrapper);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: rendererConfigToParams });\n}\n"],"names":["RendererFactory","factory","ReactiveFactory","FactoryType","Renderer","RendererWrapper","Object","assign","configToParams","rendererConfigToParams"],"mappings":"wQAMO,SAASA,kBACd,MAAMC,QAA6FC,gBAAgBC,YAAYC,SAAUC,iBAGzI,OAAOC,OAAOC,OAAON,QAAS,CAAEO,eAAgBC,wBAClD"}
1
+ {"version":3,"file":"RendererFactory.js","sources":["../../../src/Renderer/Factories/RendererFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { rendererConfigToParams } from '@hellpig/anarchy-engine/Renderer/Adapters';\nimport type { TRendererFactory, TRendererParams, TRendererWrapper, TRendererWrapperDependencies } from '@hellpig/anarchy-engine/Renderer/Models';\nimport { RendererWrapper } from '@hellpig/anarchy-engine/Renderer/Wrappers';\n\nexport function RendererFactory(): TRendererFactory {\n const factory: TReactiveFactory<TRendererWrapper, TRendererParams, TRendererWrapperDependencies> = ReactiveFactory(FactoryType.Renderer, RendererWrapper);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: rendererConfigToParams });\n}\n"],"names":["RendererFactory","factory","ReactiveFactory","FactoryType","Renderer","RendererWrapper","Object","assign","configToParams","rendererConfigToParams"],"mappings":"wQAMO,SAASA,kBACd,MAAMC,QAA6FC,gBAAgBC,YAAYC,SAAUC,iBAGzI,OAAOC,OAAOC,OAAON,QAAS,CAAEO,eAAgBC,wBAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"RendererLoopEffect.js","sources":["../../../src/Renderer/Loop/RendererLoopEffect.ts"],"sourcesContent":["import type { TAnyCameraWrapper, TCameraService } from '@Anarchy/Engine/Camera';\nimport type { TMilliseconds } from '@Anarchy/Engine/Math';\nimport type { TRendererWrapper } from '@Anarchy/Engine/Renderer/Models';\nimport type { TSceneWrapper } from '@Anarchy/Engine/Scene';\nimport type { TRenderLoop } from '@Anarchy/Engine/Space';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { BehaviorSubject, Subscription } from 'rxjs';\nimport { withLatestFrom } from 'rxjs';\n\nexport function renderLoopEffect(loop: TRenderLoop, activeRenderer$: BehaviorSubject<TRendererWrapper | undefined>, cameraService: TCameraService, scene: TSceneWrapper): Subscription {\n return loop.tick$\n .pipe(withLatestFrom(activeRenderer$, cameraService.active$))\n .subscribe(([, rendererW, activeCameraW]: [TMilliseconds, TRendererWrapper | undefined, TAnyCameraWrapper | undefined]): void => {\n if (isNotDefined(activeCameraW)) return;\n if (isNotDefined(rendererW)) {\n loop.stop();\n throw new Error('RenderLoopEffect: Cannot find an active renderer');\n }\n rendererW.entity.render(scene.entity, activeCameraW.entity);\n });\n}\n"],"names":["renderLoopEffect","loop","activeRenderer$","cameraService","scene","tick$","pipe","withLatestFrom","active$","subscribe","rendererW","activeCameraW","isNotDefined","stop","Error","entity","render"],"mappings":"mLASO,SAASA,iBAAiBC,KAAmBC,gBAAgEC,cAA+BC,OACjJ,OAAOH,KAAKI,MACTC,KAAKC,eAAeL,gBAAiBC,cAAcK,UACnDC,UAAU,EAAC,CAAGC,UAAWC,kBACxB,IAAIC,aAAaD,eAAjB,CACA,GAAIC,aAAaF,WAEf,MADAT,KAAKY,OACC,IAAIC,MAAM,oDAElBJ,UAAUK,OAAOC,OAAOZ,MAAMW,OAAQJ,cAAcI,OALnB,GAOvC"}
1
+ {"version":3,"file":"RendererLoopEffect.js","sources":["../../../src/Renderer/Loop/RendererLoopEffect.ts"],"sourcesContent":["import type { TAnyCameraWrapper, TCameraService } from '@hellpig/anarchy-engine/Camera';\nimport type { TMilliseconds } from '@hellpig/anarchy-engine/Math';\nimport type { TRendererWrapper } from '@hellpig/anarchy-engine/Renderer/Models';\nimport type { TSceneWrapper } from '@hellpig/anarchy-engine/Scene';\nimport type { TRenderLoop } from '@hellpig/anarchy-engine/Space';\nimport { isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { BehaviorSubject, Subscription } from 'rxjs';\nimport { withLatestFrom } from 'rxjs';\n\nexport function renderLoopEffect(loop: TRenderLoop, activeRenderer$: BehaviorSubject<TRendererWrapper | undefined>, cameraService: TCameraService, scene: TSceneWrapper): Subscription {\n return loop.tick$\n .pipe(withLatestFrom(activeRenderer$, cameraService.active$))\n .subscribe(([, rendererW, activeCameraW]: [TMilliseconds, TRendererWrapper | undefined, TAnyCameraWrapper | undefined]): void => {\n if (isNotDefined(activeCameraW)) return;\n if (isNotDefined(rendererW)) {\n loop.stop();\n throw new Error('RenderLoopEffect: Cannot find an active renderer');\n }\n rendererW.entity.render(scene.entity, activeCameraW.entity);\n });\n}\n"],"names":["renderLoopEffect","loop","activeRenderer$","cameraService","scene","tick$","pipe","withLatestFrom","active$","subscribe","rendererW","activeCameraW","isNotDefined","stop","Error","entity","render"],"mappings":"mLASO,SAASA,iBAAiBC,KAAmBC,gBAAgEC,cAA+BC,OACjJ,OAAOH,KAAKI,MACTC,KAAKC,eAAeL,gBAAiBC,cAAcK,UACnDC,UAAU,EAAC,CAAGC,UAAWC,kBACxB,IAAIC,aAAaD,eAAjB,CACA,GAAIC,aAAaF,WAEf,MADAT,KAAKY,OACC,IAAIC,MAAM,oDAElBJ,UAAUK,OAAOC,OAAOZ,MAAMW,OAAQJ,cAAcI,OALnB,GAOvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WithThreeJsRendererParamsAccessors.js","sources":["../../../src/Renderer/Mixins/WithThreeJsRendererParamsAccessors.ts"],"sourcesContent":["import type { TThreeJsRendererParamsAccessors } from '@Anarchy/Engine/Renderer/Models';\nimport type { WebGLRenderer } from 'three';\n\nexport function withThreeJsRendererParamsAccessors(entity: WebGLRenderer): TThreeJsRendererParamsAccessors {\n // const setCanvas = (canvas: HTMLCanvasElement): void => void (entity.domElement = canvas);\n // const getCanvas = (): HTMLCanvasElement => entity.domElement;\n\n // const setContext = (context: WebGLRenderingContext): void => void (entity.context = context);\n const getContext = (): WebGLRenderingContext => entity.getContext();\n\n // const setPrecision = (precision: string): void => void (entity.precision = precision);\n // const getPrecision = (): string => entity.precision;\n\n // const setAlpha = (isAlpha: boolean): void => void (entity.alpha = isAlpha);\n // const isAlpha = (): boolean => entity.alpha;\n\n // const setPremultipliedAlpha = (isPremultipliedAlpha: boolean): void => void (entity.premultipliedAlpha = isPremultipliedAlpha);\n // const isPremultipliedAlpha = (): boolean => entity.premultipliedAlpha;\n\n // const setAntialias = (isAntialias: boolean): void => void (entity.antialias = isAntialias);\n // const isAntialias = (): boolean => entity.antialias;\n\n // const setStencil = (isStencil: boolean): void => entity.stencil = isStencil;\n // const isStencil = (): boolean => entity.stencil;\n\n // const setPreserveDrawingBuffer = (isPreserveDrawingBuffer: boolean): void => void (entity.preserveDrawingBuffer = isPreserveDrawingBuffer);\n // const isPreserveDrawingBuffer = (): boolean => entity.preserveDrawingBuffer;\n\n // const setPowerPreference = (powerPreference: string): void => entity.powerPreference = powerPreference;\n // const getPowerPreference = (): string => entity.powerPreference;\n\n // const setDepth = (isDepth: boolean): void => entity.depth = isDepth;\n // const isDepth = (): boolean => entity.depth;\n\n // const setLogarithmicDepthBuffer = (isLogarithmicDepthBuffer: boolean): void => void (entity.logarithmicDepthBuffer = isLogarithmicDepthBuffer);\n // const isLogarithmicDepthBuffer = (): boolean => entity.logarithmicDepthBuffer;\n\n // const setFailIfMajorPerformanceCaveat = (isFailIfMajorPerformanceCaveat: boolean): void => void (entity.failIfMajorPerformanceCaveat = isFailIfMajorPerformanceCaveat);\n // const isFailIfMajorPerformanceCaveat = (): boolean => entity.failIfMajorPerformanceCaveat;\n\n return {\n // setCanvas,\n // getCanvas,\n // setContext,\n getContext\n // setPrecision,\n // getPrecision,\n // setAlpha,\n // isAlpha,\n // setPremultipliedAlpha,\n // isPremultipliedAlpha,\n // setAntialias,\n // isAntialias,\n // setStencil,\n // isStencil,\n // setPreserveDrawingBuffer,\n // isPreserveDrawingBuffer,\n // setPowerPreference,\n // getPowerPreference,\n // setDepth,\n // isDepth,\n // setLogarithmicDepthBuffer,\n // isLogarithmicDepthBuffer,\n // setFailIfMajorPerformanceCaveat,\n // isFailIfMajorPerformanceCaveat\n };\n}\n"],"names":["withThreeJsRendererParamsAccessors","entity","getContext"],"mappings":"AAGO,SAASA,mCAAmCC,QAqCjD,MAAO,CAILC,WApCiB,IAA6BD,OAAOC,aA0DzD"}
1
+ {"version":3,"file":"WithThreeJsRendererParamsAccessors.js","sources":["../../../src/Renderer/Mixins/WithThreeJsRendererParamsAccessors.ts"],"sourcesContent":["import type { TThreeJsRendererParamsAccessors } from '@hellpig/anarchy-engine/Renderer/Models';\nimport type { WebGLRenderer } from 'three';\n\nexport function withThreeJsRendererParamsAccessors(entity: WebGLRenderer): TThreeJsRendererParamsAccessors {\n // const setCanvas = (canvas: HTMLCanvasElement): void => void (entity.domElement = canvas);\n // const getCanvas = (): HTMLCanvasElement => entity.domElement;\n\n // const setContext = (context: WebGLRenderingContext): void => void (entity.context = context);\n const getContext = (): WebGLRenderingContext => entity.getContext();\n\n // const setPrecision = (precision: string): void => void (entity.precision = precision);\n // const getPrecision = (): string => entity.precision;\n\n // const setAlpha = (isAlpha: boolean): void => void (entity.alpha = isAlpha);\n // const isAlpha = (): boolean => entity.alpha;\n\n // const setPremultipliedAlpha = (isPremultipliedAlpha: boolean): void => void (entity.premultipliedAlpha = isPremultipliedAlpha);\n // const isPremultipliedAlpha = (): boolean => entity.premultipliedAlpha;\n\n // const setAntialias = (isAntialias: boolean): void => void (entity.antialias = isAntialias);\n // const isAntialias = (): boolean => entity.antialias;\n\n // const setStencil = (isStencil: boolean): void => entity.stencil = isStencil;\n // const isStencil = (): boolean => entity.stencil;\n\n // const setPreserveDrawingBuffer = (isPreserveDrawingBuffer: boolean): void => void (entity.preserveDrawingBuffer = isPreserveDrawingBuffer);\n // const isPreserveDrawingBuffer = (): boolean => entity.preserveDrawingBuffer;\n\n // const setPowerPreference = (powerPreference: string): void => entity.powerPreference = powerPreference;\n // const getPowerPreference = (): string => entity.powerPreference;\n\n // const setDepth = (isDepth: boolean): void => entity.depth = isDepth;\n // const isDepth = (): boolean => entity.depth;\n\n // const setLogarithmicDepthBuffer = (isLogarithmicDepthBuffer: boolean): void => void (entity.logarithmicDepthBuffer = isLogarithmicDepthBuffer);\n // const isLogarithmicDepthBuffer = (): boolean => entity.logarithmicDepthBuffer;\n\n // const setFailIfMajorPerformanceCaveat = (isFailIfMajorPerformanceCaveat: boolean): void => void (entity.failIfMajorPerformanceCaveat = isFailIfMajorPerformanceCaveat);\n // const isFailIfMajorPerformanceCaveat = (): boolean => entity.failIfMajorPerformanceCaveat;\n\n return {\n // setCanvas,\n // getCanvas,\n // setContext,\n getContext\n // setPrecision,\n // getPrecision,\n // setAlpha,\n // isAlpha,\n // setPremultipliedAlpha,\n // isPremultipliedAlpha,\n // setAntialias,\n // isAntialias,\n // setStencil,\n // isStencil,\n // setPreserveDrawingBuffer,\n // isPreserveDrawingBuffer,\n // setPowerPreference,\n // getPowerPreference,\n // setDepth,\n // isDepth,\n // setLogarithmicDepthBuffer,\n // isLogarithmicDepthBuffer,\n // setFailIfMajorPerformanceCaveat,\n // isFailIfMajorPerformanceCaveat\n };\n}\n"],"names":["withThreeJsRendererParamsAccessors","entity","getContext"],"mappings":"AAGO,SAASA,mCAAmCC,QAqCjD,MAAO,CAILC,WApCiB,IAA6BD,OAAOC,aA0DzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"WithThreeJsRendererPropsAccessors.js","sources":["../../../src/Renderer/Mixins/WithThreeJsRendererPropsAccessors.ts"],"sourcesContent":["import type { TThreeJsRendererPropsAccessors } from '@Anarchy/Engine/Renderer/Models';\nimport type { ShadowMapType, WebGLRenderer } from 'three';\n\nexport function withThreeJsRendererPropsAccessors(entity: WebGLRenderer): TThreeJsRendererPropsAccessors {\n // eslint-disable-next-line functional/immutable-data\n const setShadowMapEnabled = (isShadowMapEnabled: boolean): void => void (entity.shadowMap.enabled = isShadowMapEnabled);\n const isShadowMapEnabled = (): boolean => entity.shadowMap.enabled;\n\n // eslint-disable-next-line functional/immutable-data\n const setShadowMapType = (shadowMapType: ShadowMapType): void => void (entity.shadowMap.type = shadowMapType);\n const getShadowMapType = (): ShadowMapType => entity.shadowMap.type;\n\n return {\n setShadowMapEnabled,\n isShadowMapEnabled,\n setShadowMapType,\n getShadowMapType\n };\n}\n"],"names":["withThreeJsRendererPropsAccessors","entity","setShadowMapEnabled","isShadowMapEnabled","shadowMap","enabled","setShadowMapType","shadowMapType","type","getShadowMapType"],"mappings":"AAGO,SAASA,kCAAkCC,QAShD,MAAO,CACLC,oBAR2BC,sBAA4CF,OAAOG,UAAUC,QAAUF,qBASlGA,mBARyB,IAAeF,OAAOG,UAAUC,QASzDC,iBANwBC,gBAA6CN,OAAOG,UAAUI,KAAOD,eAO7FE,iBANuB,IAAqBR,OAAOG,UAAUI,KAQjE"}
1
+ {"version":3,"file":"WithThreeJsRendererPropsAccessors.js","sources":["../../../src/Renderer/Mixins/WithThreeJsRendererPropsAccessors.ts"],"sourcesContent":["import type { TThreeJsRendererPropsAccessors } from '@hellpig/anarchy-engine/Renderer/Models';\nimport type { ShadowMapType, WebGLRenderer } from 'three';\n\nexport function withThreeJsRendererPropsAccessors(entity: WebGLRenderer): TThreeJsRendererPropsAccessors {\n // eslint-disable-next-line functional/immutable-data\n const setShadowMapEnabled = (isShadowMapEnabled: boolean): void => void (entity.shadowMap.enabled = isShadowMapEnabled);\n const isShadowMapEnabled = (): boolean => entity.shadowMap.enabled;\n\n // eslint-disable-next-line functional/immutable-data\n const setShadowMapType = (shadowMapType: ShadowMapType): void => void (entity.shadowMap.type = shadowMapType);\n const getShadowMapType = (): ShadowMapType => entity.shadowMap.type;\n\n return {\n setShadowMapEnabled,\n isShadowMapEnabled,\n setShadowMapType,\n getShadowMapType\n };\n}\n"],"names":["withThreeJsRendererPropsAccessors","entity","setShadowMapEnabled","isShadowMapEnabled","shadowMap","enabled","setShadowMapType","shadowMapType","type","getShadowMapType"],"mappings":"AAGO,SAASA,kCAAkCC,QAShD,MAAO,CACLC,oBAR2BC,sBAA4CF,OAAOG,UAAUC,QAAUF,qBASlGA,mBARyB,IAAeF,OAAOG,UAAUC,QASzDC,iBANwBC,gBAA6CN,OAAOG,UAAUI,KAAOD,eAO7FE,iBANuB,IAAqBR,OAAOG,UAAUI,KAQjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"RendererRegistry.js","sources":["../../../src/Renderer/Registries/RendererRegistry.ts"],"sourcesContent":["import { RegistryType } from '@Anarchy/Engine/Abstract/Constants';\nimport { AbstractEntityRegistry } from '@Anarchy/Engine/Abstract/Registries';\nimport type { TRendererRegistry, TRendererWrapper } from '@Anarchy/Engine/Renderer/Models';\n\nexport function RendererRegistry(): TRendererRegistry {\n return AbstractEntityRegistry<TRendererWrapper>(RegistryType.Renderer);\n}\n"],"names":["RendererRegistry","AbstractEntityRegistry","RegistryType","Renderer"],"mappings":"2JAIO,SAASA,mBACd,OAAOC,uBAAyCC,aAAaC,SAC/D"}
1
+ {"version":3,"file":"RendererRegistry.js","sources":["../../../src/Renderer/Registries/RendererRegistry.ts"],"sourcesContent":["import { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { AbstractEntityRegistry } from '@hellpig/anarchy-engine/Abstract/Registries';\nimport type { TRendererRegistry, TRendererWrapper } from '@hellpig/anarchy-engine/Renderer/Models';\n\nexport function RendererRegistry(): TRendererRegistry {\n return AbstractEntityRegistry<TRendererWrapper>(RegistryType.Renderer);\n}\n"],"names":["RendererRegistry","AbstractEntityRegistry","RegistryType","Renderer"],"mappings":"2JAIO,SAASA,mBACd,OAAOC,uBAAyCC,aAAaC,SAC/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"RendererService.js","sources":["../../../src/Renderer/Services/RendererService.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@Anarchy/Engine/Abstract';\nimport { AbstractService } from '@Anarchy/Engine/Abstract';\nimport type { TDisposable, TWithActiveMixinResult } from '@Anarchy/Engine/Mixins';\nimport { withActiveEntityServiceMixin, withCreateFromConfigServiceMixin, withCreateServiceMixin, withFactoryService, withRegistryService, withSerializableEntities } from '@Anarchy/Engine/Mixins';\nimport { renderLoopEffect } from '@Anarchy/Engine/Renderer/Loop';\nimport type {\n TRendererConfig,\n TRendererFactory,\n TRendererRegistry,\n TRendererService,\n TRendererServiceDependencies,\n TRendererServiceWithCreate,\n TRendererServiceWithCreateFromConfig,\n TRendererServiceWithFactory,\n TRendererServiceWithRegistry,\n TRendererWrapper\n} from '@Anarchy/Engine/Renderer/Models';\nimport type { TSceneWrapper } from '@Anarchy/Engine/Scene';\nimport type { TSpaceLoops } from '@Anarchy/Engine/Space';\nimport { mergeAll } from '@Anarchy/Engine/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function RendererService(\n factory: TRendererFactory,\n registry: TRendererRegistry,\n { renderLoop }: TSpaceLoops,\n { cameraService, container }: TRendererServiceDependencies,\n scene: TSceneWrapper\n): TRendererService {\n const withActive: TWithActiveMixinResult<TRendererWrapper> = withActiveEntityServiceMixin<TRendererWrapper>(registry);\n const registrySub$: Subscription = registry.added$.subscribe(({ value }: TRegistryPack<TRendererWrapper>): void => {\n if (value.isActive()) withActive.active$.next(value);\n });\n\n const factorySub$: Subscription = factory.entityCreated$.subscribe((wrapper: TRendererWrapper): void => registry.add(wrapper));\n\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, factorySub$, registrySub$];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const withCreateService: TRendererServiceWithCreate = withCreateServiceMixin(factory, { container, renderLoop });\n const withCreateFromConfigService: TRendererServiceWithCreateFromConfig = withCreateFromConfigServiceMixin(withCreateService.create, factory.configToParams, { cameraService, container });\n const withFactory: TRendererServiceWithFactory = withFactoryService(factory);\n const withRegistry: TRendererServiceWithRegistry = withRegistryService(registry);\n\n const loopSub$: Subscription = renderLoopEffect(renderLoop, withActive.active$, cameraService, scene);\n\n const destroySub$: Subscription = abstractService.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n loopSub$.unsubscribe();\n\n withActive.active$.complete();\n });\n\n return mergeAll(abstractService, withCreateService, withCreateFromConfigService, withFactory, withRegistry, withSerializableEntities<TRendererWrapper, TRendererConfig, undefined>(registry), {\n setActive: withActive.setActive,\n findActive: withActive.findActive,\n getActive: withActive.getActive,\n active$: withActive.active$\n });\n}\n"],"names":["RendererService","factory","registry","renderLoop","cameraService","container","scene","withActive","withActiveEntityServiceMixin","registrySub$","added$","subscribe","value","isActive","active$","next","factorySub$","entityCreated$","wrapper","add","abstractService","AbstractService","withCreateService","withCreateServiceMixin","withCreateFromConfigService","withCreateFromConfigServiceMixin","create","configToParams","withFactory","withFactoryService","withRegistry","withRegistryService","loopSub$","renderLoopEffect","destroySub$","destroy$","unsubscribe","complete","mergeAll","withSerializableEntities","setActive","findActive","getActive"],"mappings":"yrBAsBO,SAASA,gBACdC,QACAC,UACAC,WAAEA,aACFC,cAAEA,cAAAC,UAAeA,WACjBC,OAEA,MAAMC,WAAuDC,6BAA+CN,UACtGO,aAA6BP,SAASQ,OAAOC,UAAU,EAAGC,gBAC1DA,MAAMC,YAAYN,WAAWO,QAAQC,KAAKH,SAG1CI,YAA4Bf,QAAQgB,eAAeN,UAAWO,SAAoChB,SAASiB,IAAID,UAG/GE,gBAAoCC,gBADK,CAACnB,SAAUD,QAASe,YAAaP,eAG1Ea,kBAAgDC,uBAAuBtB,QAAS,CAAEI,oBAAWF,wBAC7FqB,4BAAoEC,iCAAiCH,kBAAkBI,OAAQzB,QAAQ0B,eAAgB,CAAEvB,4BAAeC,sBACxKuB,YAA2CC,mBAAmB5B,SAC9D6B,aAA6CC,oBAAoB7B,UAEjE8B,SAAyBC,iBAAiB9B,WAAYI,WAAWO,QAASV,cAAeE,OAEzF4B,YAA4Bd,gBAAgBe,SAASxB,UAAU,KACnEuB,YAAYE,cACZJ,SAASI,cAET7B,WAAWO,QAAQuB,aAGrB,OAAOC,SAASlB,gBAAiBE,kBAAmBE,4BAA6BI,YAAaE,aAAcS,yBAAuErC,UAAW,CAC5LsC,UAAWjC,WAAWiC,UACtBC,WAAYlC,WAAWkC,WACvBC,UAAWnC,WAAWmC,UACtB5B,QAASP,WAAWO,SAExB"}
1
+ {"version":3,"file":"RendererService.js","sources":["../../../src/Renderer/Services/RendererService.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport type { TDisposable, TWithActiveMixinResult } from '@hellpig/anarchy-engine/Mixins';\nimport {\n withActiveEntityServiceMixin,\n withCreateFromConfigServiceMixin,\n withCreateServiceMixin,\n withFactoryService,\n withRegistryService,\n withSerializableEntities\n} from '@hellpig/anarchy-engine/Mixins';\nimport { renderLoopEffect } from '@hellpig/anarchy-engine/Renderer/Loop';\nimport type {\n TRendererConfig,\n TRendererFactory,\n TRendererRegistry,\n TRendererService,\n TRendererServiceDependencies,\n TRendererServiceWithCreate,\n TRendererServiceWithCreateFromConfig,\n TRendererServiceWithFactory,\n TRendererServiceWithRegistry,\n TRendererWrapper\n} from '@hellpig/anarchy-engine/Renderer/Models';\nimport type { TSceneWrapper } from '@hellpig/anarchy-engine/Scene';\nimport type { TSpaceLoops } from '@hellpig/anarchy-engine/Space';\nimport { mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function RendererService(\n factory: TRendererFactory,\n registry: TRendererRegistry,\n { renderLoop }: TSpaceLoops,\n { cameraService, container }: TRendererServiceDependencies,\n scene: TSceneWrapper\n): TRendererService {\n const withActive: TWithActiveMixinResult<TRendererWrapper> = withActiveEntityServiceMixin<TRendererWrapper>(registry);\n const registrySub$: Subscription = registry.added$.subscribe(({ value }: TRegistryPack<TRendererWrapper>): void => {\n if (value.isActive()) withActive.active$.next(value);\n });\n\n const factorySub$: Subscription = factory.entityCreated$.subscribe((wrapper: TRendererWrapper): void => registry.add(wrapper));\n\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, factorySub$, registrySub$];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const withCreateService: TRendererServiceWithCreate = withCreateServiceMixin(factory, { container, renderLoop });\n const withCreateFromConfigService: TRendererServiceWithCreateFromConfig = withCreateFromConfigServiceMixin(withCreateService.create, factory.configToParams, { cameraService, container });\n const withFactory: TRendererServiceWithFactory = withFactoryService(factory);\n const withRegistry: TRendererServiceWithRegistry = withRegistryService(registry);\n\n const loopSub$: Subscription = renderLoopEffect(renderLoop, withActive.active$, cameraService, scene);\n\n const destroySub$: Subscription = abstractService.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n loopSub$.unsubscribe();\n\n withActive.active$.complete();\n });\n\n return mergeAll(abstractService, withCreateService, withCreateFromConfigService, withFactory, withRegistry, withSerializableEntities<TRendererWrapper, TRendererConfig, undefined>(registry), {\n setActive: withActive.setActive,\n findActive: withActive.findActive,\n getActive: withActive.getActive,\n active$: withActive.active$\n });\n}\n"],"names":["RendererService","factory","registry","renderLoop","cameraService","container","scene","withActive","withActiveEntityServiceMixin","registrySub$","added$","subscribe","value","isActive","active$","next","factorySub$","entityCreated$","wrapper","add","abstractService","AbstractService","withCreateService","withCreateServiceMixin","withCreateFromConfigService","withCreateFromConfigServiceMixin","create","configToParams","withFactory","withFactoryService","withRegistry","withRegistryService","loopSub$","renderLoopEffect","destroySub$","destroy$","unsubscribe","complete","mergeAll","withSerializableEntities","setActive","findActive","getActive"],"mappings":"yrBA6BO,SAASA,gBACdC,QACAC,UACAC,WAAEA,aACFC,cAAEA,cAAAC,UAAeA,WACjBC,OAEA,MAAMC,WAAuDC,6BAA+CN,UACtGO,aAA6BP,SAASQ,OAAOC,UAAU,EAAGC,gBAC1DA,MAAMC,YAAYN,WAAWO,QAAQC,KAAKH,SAG1CI,YAA4Bf,QAAQgB,eAAeN,UAAWO,SAAoChB,SAASiB,IAAID,UAG/GE,gBAAoCC,gBADK,CAACnB,SAAUD,QAASe,YAAaP,eAG1Ea,kBAAgDC,uBAAuBtB,QAAS,CAAEI,oBAAWF,wBAC7FqB,4BAAoEC,iCAAiCH,kBAAkBI,OAAQzB,QAAQ0B,eAAgB,CAAEvB,4BAAeC,sBACxKuB,YAA2CC,mBAAmB5B,SAC9D6B,aAA6CC,oBAAoB7B,UAEjE8B,SAAyBC,iBAAiB9B,WAAYI,WAAWO,QAASV,cAAeE,OAEzF4B,YAA4Bd,gBAAgBe,SAASxB,UAAU,KACnEuB,YAAYE,cACZJ,SAASI,cAET7B,WAAWO,QAAQuB,aAGrB,OAAOC,SAASlB,gBAAiBE,kBAAmBE,4BAA6BI,YAAaE,aAAcS,yBAAuErC,UAAW,CAC5LsC,UAAWjC,WAAWiC,UACtBC,WAAYlC,WAAWkC,WACvBC,UAAWnC,WAAWmC,UACtB5B,QAASP,WAAWO,SAExB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Accessors.js","sources":["../../../src/Renderer/Wrappers/Accessors.ts"],"sourcesContent":["import { withThreeJsRendererParamsAccessors, withThreeJsRendererPropsAccessors } from '@Anarchy/Engine/Renderer/Mixins';\nimport type { TRendererAccessors } from '@Anarchy/Engine/Renderer/Models';\nimport type { WebGLRenderer } from 'three';\n\nexport function getAccessors(entity: WebGLRenderer): TRendererAccessors {\n const setSize = (width: number, height: number): void => void entity.setSize(width, height);\n const setPixelRatio = (ratio: number, maxPixelRatio: number): void => entity.setPixelRatio(Math.min(ratio, maxPixelRatio));\n\n return {\n setSize,\n setPixelRatio,\n ...withThreeJsRendererParamsAccessors(entity),\n ...withThreeJsRendererPropsAccessors(entity)\n };\n}\n"],"names":["getAccessors","entity","setSize","width","height","setPixelRatio","ratio","maxPixelRatio","Math","min","withThreeJsRendererParamsAccessors","withThreeJsRendererPropsAccessors"],"mappings":"8LAIO,SAASA,aAAaC,QAI3B,MAAO,CACLC,QAJc,CAACC,MAAeC,UAA8BH,OAAOC,QAAQC,MAAOC,SAKlFC,cAJoB,CAACC,MAAeC,gBAAgCN,OAAOI,cAAcG,KAAKC,IAAIH,MAAOC,mBAKtGG,mCAAmCT,WACnCU,kCAAkCV,QAEzC"}
1
+ {"version":3,"file":"Accessors.js","sources":["../../../src/Renderer/Wrappers/Accessors.ts"],"sourcesContent":["import { withThreeJsRendererParamsAccessors, withThreeJsRendererPropsAccessors } from '@hellpig/anarchy-engine/Renderer/Mixins';\nimport type { TRendererAccessors } from '@hellpig/anarchy-engine/Renderer/Models';\nimport type { WebGLRenderer } from 'three';\n\nexport function getAccessors(entity: WebGLRenderer): TRendererAccessors {\n const setSize = (width: number, height: number): void => void entity.setSize(width, height);\n const setPixelRatio = (ratio: number, maxPixelRatio: number): void => entity.setPixelRatio(Math.min(ratio, maxPixelRatio));\n\n return {\n setSize,\n setPixelRatio,\n ...withThreeJsRendererParamsAccessors(entity),\n ...withThreeJsRendererPropsAccessors(entity)\n };\n}\n"],"names":["getAccessors","entity","setSize","width","height","setPixelRatio","ratio","maxPixelRatio","Math","min","withThreeJsRendererParamsAccessors","withThreeJsRendererPropsAccessors"],"mappings":"8LAIO,SAASA,aAAaC,QAI3B,MAAO,CACLC,QAJc,CAACC,MAAeC,UAA8BH,OAAOC,QAAQC,MAAOC,SAKlFC,cAJoB,CAACC,MAAeC,gBAAgCN,OAAOI,cAAcG,KAAKC,IAAIH,MAAOC,mBAKtGG,mCAAmCT,WACnCU,kCAAkCV,QAEzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RendererWrapper.js","sources":["../../../src/Renderer/Wrappers/RendererWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@Anarchy/Engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@Anarchy/Engine/Abstract';\nimport { withActiveMixin } from '@Anarchy/Engine/Mixins';\nimport { rendererEntityToConfig } from '@Anarchy/Engine/Renderer/Adapters';\nimport { RendererModes } from '@Anarchy/Engine/Renderer/Constants';\nimport type { TRendererAccessors, TRendererConfig, TRendererParams, TRendererWrapper, TRendererWrapperDependencies } from '@Anarchy/Engine/Renderer/Models';\nimport { mergeAll } from '@Anarchy/Engine/Utils';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isNotDefined, isWebGL2Available, isWebGLAvailable } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject, distinctUntilChanged } from 'rxjs';\nimport type { WebGLRendererParameters } from 'three';\nimport { PCFShadowMap, WebGLRenderer } from 'three';\n\nimport { getAccessors } from './Accessors';\n\nexport function RendererWrapper(params: TRendererParams, { container, renderLoop }: TRendererWrapperDependencies): TRendererWrapper {\n const isRendererReady$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n const maxPixelRatio: number = params.maxPixelRatio ?? 2;\n if (isNotDefined(params.canvas)) throw new Error(`Canvas is not defined`);\n if (!isWebGLAvailable()) throw new Error('WebGL is not supported by this device');\n const isWebGL2: boolean = params.mode === RendererModes.WebGL2;\n if (isWebGL2 && !isWebGL2Available()) throw new Error('WebGL2 is not supported by this device');\n\n let options: WebGLRendererParameters = {\n canvas: params.canvas,\n alpha: params.alpha ?? false, //until we have a reason to use it (off for a better performance)\n antialias: params.antialias ?? true,\n stencil: params.stencil ?? false, //until we have a reason to use it (off for a better performance)\n depth: params.depth ?? true\n };\n\n if (isWebGL2) {\n const context: WebGL2RenderingContext | null = (options.canvas as HTMLCanvasElement).getContext(RendererModes.WebGL2, options) as WebGL2RenderingContext | null;\n if (isNotDefined(context)) throw new Error(`WebGL2 context is not defined, however mode is set to ${RendererModes.WebGL2}`);\n\n options = { ...options, context };\n }\n\n let entity: WebGLRenderer = new WebGLRenderer(options);\n const accessors: TRendererAccessors = getAccessors(entity);\n\n accessors.setShadowMapEnabled(params.isShadowMapEnabled ?? true);\n accessors.setShadowMapType(PCFShadowMap);\n\n //When \"isRendererReady\" is true, you can assume that the scene is loaded and ready.\n // if (isRendererReady$.value !== entity.info.render.frame > 0) isRendererReady$.next(entity.info.render.frame > 0);\n\n const rendererLoopSub$: Subscription = renderLoop.tick$.subscribe((): void => {\n const isRendererReady: boolean = entity.info.render.frame > 0;\n if (isRendererReady$.value === isRendererReady) return;\n isRendererReady$.next(isRendererReady);\n });\n\n function setValues(entity: TWriteable<WebGLRenderer>, { width, height }: DOMRect, ratio: number): void {\n if (isNotDefined(entity)) return;\n accessors.setSize(width, height);\n accessors.setPixelRatio(ratio, maxPixelRatio);\n }\n\n // TODO 9.2.0 ACTIVE: This could be done only in active$ renderer and applied in onActive hook\n const screenSizeSub$: Subscription = container.viewportRect$\n .pipe(distinctUntilChanged((prev: DOMRect, curr: DOMRect): boolean => prev?.width === curr?.width && prev?.height === curr?.height))\n .subscribe((rect: DOMRect): void => {\n if (isNotDefined(rect)) return;\n setValues(entity, rect, container.getRatio());\n });\n\n const wrapper: TAbstractWrapper<WebGLRenderer> = AbstractWrapper(entity, WrapperType.Renderer, params);\n\n const destroySub$: Subscription = wrapper.destroy$.subscribe((): void => {\n entity.dispose();\n entity.forceContextLoss();\n entity = null as any;\n\n destroySub$.unsubscribe();\n screenSizeSub$.unsubscribe();\n rendererLoopSub$.unsubscribe();\n });\n\n const result = mergeAll(wrapper, accessors, withActiveMixin(), {\n getParams: (): TRendererParams => params,\n serialize: (): TRendererConfig => rendererEntityToConfig(result),\n isRendererReady$\n });\n\n result._setActive(params.isActive, true);\n\n return result;\n}\n"],"names":["RendererWrapper","params","container","renderLoop","isRendererReady$","BehaviorSubject","maxPixelRatio","isNotDefined","canvas","Error","isWebGLAvailable","isWebGL2","mode","RendererModes","WebGL2","isWebGL2Available","options","alpha","antialias","stencil","depth","context","getContext","entity","WebGLRenderer","accessors","getAccessors","setShadowMapEnabled","isShadowMapEnabled","setShadowMapType","PCFShadowMap","rendererLoopSub$","tick$","subscribe","isRendererReady","info","render","frame","value","next","screenSizeSub$","viewportRect$","pipe","distinctUntilChanged","prev","curr","width","height","rect","ratio","setSize","setPixelRatio","setValues","getRatio","wrapper","AbstractWrapper","WrapperType","Renderer","destroySub$","destroy$","dispose","forceContextLoss","unsubscribe","result","mergeAll","withActiveMixin","getParams","serialize","rendererEntityToConfig","_setActive","isActive"],"mappings":"k1BAgBO,SAASA,gBAAgBC,QAAyBC,UAAEA,UAAAC,WAAWA,aACpE,MAAMC,iBAA6C,IAAIC,iBAAgB,GAEjEC,cAAwBL,OAAOK,eAAiB,EACtD,GAAIC,aAAaN,OAAOO,QAAS,MAAM,IAAIC,MAAM,yBACjD,IAAKC,mBAAoB,MAAM,IAAID,MAAM,yCACzC,MAAME,SAAoBV,OAAOW,OAASC,cAAcC,OACxD,GAAIH,WAAaI,oBAAqB,MAAM,IAAIN,MAAM,0CAEtD,IAAIO,QAAmC,CACrCR,OAAQP,OAAOO,OACfS,MAAOhB,OAAOgB,QAAS,EACvBC,UAAWjB,OAAOiB,YAAa,EAC/BC,QAASlB,OAAOkB,UAAW,EAC3BC,MAAOnB,OAAOmB,QAAS,GAGzB,GAAIT,SAAU,CACZ,MAAMU,QAA0CL,QAAQR,OAA6Bc,WAAWT,cAAcC,OAAQE,SACtH,GAAIT,aAAac,SAAU,MAAM,IAAIZ,MAAM,yDAAyDI,cAAcC,UAElHE,QAAU,IAAKA,QAASK,gBAC1B,CAEA,IAAIE,OAAwB,IAAIC,cAAcR,SAC9C,MAAMS,UAAgCC,aAAaH,QAEnDE,UAAUE,oBAAoB1B,OAAO2B,qBAAsB,GAC3DH,UAAUI,iBAAiBC,cAK3B,MAAMC,iBAAiC5B,WAAW6B,MAAMC,UAAU,KAChE,MAAMC,gBAA2BX,OAAOY,KAAKC,OAAOC,MAAQ,EACxDjC,iBAAiBkC,QAAUJ,iBAC/B9B,iBAAiBmC,KAAKL,mBAUlBM,eAA+BtC,UAAUuC,cAC5CC,KAAKC,qBAAqB,CAACC,KAAeC,OAA2BD,MAAME,QAAUD,MAAMC,OAASF,MAAMG,SAAWF,MAAME,SAC3Hd,UAAWe,OACNzC,aAAayC,OAVrB,SAAmBzB,SAAmCuB,MAAEA,MAAAC,OAAOA,QAAmBE,OAC5E1C,aAAagB,WACjBE,UAAUyB,QAAQJ,MAAOC,QACzBtB,UAAU0B,cAAcF,MAAO3C,eACjC,CAOI8C,CAAU7B,OAAQyB,KAAM9C,UAAUmD,cAGhCC,QAA2CC,gBAAgBhC,OAAQiC,YAAYC,SAAUxD,QAEzFyD,YAA4BJ,QAAQK,SAAS1B,UAAU,KAC3DV,OAAOqC,UACPrC,OAAOsC,mBACPtC,OAAS,KAETmC,YAAYI,cACZtB,eAAesB,cACf/B,iBAAiB+B,gBAGbC,OAASC,SAASV,QAAS7B,UAAWwC,kBAAmB,CAC7DC,UAAW,IAAuBjE,OAClCkE,UAAW,IAAuBC,uBAAuBL,QACzD3D,oCAKF,OAFA2D,OAAOM,WAAWpE,OAAOqE,UAAU,GAE5BP,MACT"}
1
+ {"version":3,"file":"RendererWrapper.js","sources":["../../../src/Renderer/Wrappers/RendererWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@hellpig/anarchy-engine/Abstract';\nimport { withActiveMixin } from '@hellpig/anarchy-engine/Mixins';\nimport { rendererEntityToConfig } from '@hellpig/anarchy-engine/Renderer/Adapters';\nimport { RendererModes } from '@hellpig/anarchy-engine/Renderer/Constants';\nimport type { TRendererAccessors, TRendererConfig, TRendererParams, TRendererWrapper, TRendererWrapperDependencies } from '@hellpig/anarchy-engine/Renderer/Models';\nimport { mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isNotDefined, isWebGL2Available, isWebGLAvailable } from '@hellpig/anarchy-shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject, distinctUntilChanged } from 'rxjs';\nimport type { WebGLRendererParameters } from 'three';\nimport { PCFShadowMap, WebGLRenderer } from 'three';\n\nimport { getAccessors } from './Accessors';\n\nexport function RendererWrapper(params: TRendererParams, { container, renderLoop }: TRendererWrapperDependencies): TRendererWrapper {\n const isRendererReady$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n const maxPixelRatio: number = params.maxPixelRatio ?? 2;\n if (isNotDefined(params.canvas)) throw new Error(`Canvas is not defined`);\n if (!isWebGLAvailable()) throw new Error('WebGL is not supported by this device');\n const isWebGL2: boolean = params.mode === RendererModes.WebGL2;\n if (isWebGL2 && !isWebGL2Available()) throw new Error('WebGL2 is not supported by this device');\n\n let options: WebGLRendererParameters = {\n canvas: params.canvas,\n alpha: params.alpha ?? false, //until we have a reason to use it (off for a better performance)\n antialias: params.antialias ?? true,\n stencil: params.stencil ?? false, //until we have a reason to use it (off for a better performance)\n depth: params.depth ?? true\n };\n\n if (isWebGL2) {\n const context: WebGL2RenderingContext | null = (options.canvas as HTMLCanvasElement).getContext(RendererModes.WebGL2, options) as WebGL2RenderingContext | null;\n if (isNotDefined(context)) throw new Error(`WebGL2 context is not defined, however mode is set to ${RendererModes.WebGL2}`);\n\n options = { ...options, context };\n }\n\n let entity: WebGLRenderer = new WebGLRenderer(options);\n const accessors: TRendererAccessors = getAccessors(entity);\n\n accessors.setShadowMapEnabled(params.isShadowMapEnabled ?? true);\n accessors.setShadowMapType(PCFShadowMap);\n\n //When \"isRendererReady\" is true, you can assume that the scene is loaded and ready.\n // if (isRendererReady$.value !== entity.info.render.frame > 0) isRendererReady$.next(entity.info.render.frame > 0);\n\n const rendererLoopSub$: Subscription = renderLoop.tick$.subscribe((): void => {\n const isRendererReady: boolean = entity.info.render.frame > 0;\n if (isRendererReady$.value === isRendererReady) return;\n isRendererReady$.next(isRendererReady);\n });\n\n function setValues(entity: TWriteable<WebGLRenderer>, { width, height }: DOMRect, ratio: number): void {\n if (isNotDefined(entity)) return;\n accessors.setSize(width, height);\n accessors.setPixelRatio(ratio, maxPixelRatio);\n }\n\n // TODO 9.2.0 ACTIVE: This could be done only in active$ renderer and applied in onActive hook\n const screenSizeSub$: Subscription = container.viewportRect$\n .pipe(distinctUntilChanged((prev: DOMRect, curr: DOMRect): boolean => prev?.width === curr?.width && prev?.height === curr?.height))\n .subscribe((rect: DOMRect): void => {\n if (isNotDefined(rect)) return;\n setValues(entity, rect, container.getRatio());\n });\n\n const wrapper: TAbstractWrapper<WebGLRenderer> = AbstractWrapper(entity, WrapperType.Renderer, params);\n\n const destroySub$: Subscription = wrapper.destroy$.subscribe((): void => {\n entity.dispose();\n entity.forceContextLoss();\n entity = null as any;\n\n destroySub$.unsubscribe();\n screenSizeSub$.unsubscribe();\n rendererLoopSub$.unsubscribe();\n });\n\n const result = mergeAll(wrapper, accessors, withActiveMixin(), {\n getParams: (): TRendererParams => params,\n serialize: (): TRendererConfig => rendererEntityToConfig(result),\n isRendererReady$\n });\n\n result._setActive(params.isActive, true);\n\n return result;\n}\n"],"names":["RendererWrapper","params","container","renderLoop","isRendererReady$","BehaviorSubject","maxPixelRatio","isNotDefined","canvas","Error","isWebGLAvailable","isWebGL2","mode","RendererModes","WebGL2","isWebGL2Available","options","alpha","antialias","stencil","depth","context","getContext","entity","WebGLRenderer","accessors","getAccessors","setShadowMapEnabled","isShadowMapEnabled","setShadowMapType","PCFShadowMap","rendererLoopSub$","tick$","subscribe","isRendererReady","info","render","frame","value","next","screenSizeSub$","viewportRect$","pipe","distinctUntilChanged","prev","curr","width","height","rect","ratio","setSize","setPixelRatio","setValues","getRatio","wrapper","AbstractWrapper","WrapperType","Renderer","destroySub$","destroy$","dispose","forceContextLoss","unsubscribe","result","mergeAll","withActiveMixin","getParams","serialize","rendererEntityToConfig","_setActive","isActive"],"mappings":"k1BAgBO,SAASA,gBAAgBC,QAAyBC,UAAEA,UAAAC,WAAWA,aACpE,MAAMC,iBAA6C,IAAIC,iBAAgB,GAEjEC,cAAwBL,OAAOK,eAAiB,EACtD,GAAIC,aAAaN,OAAOO,QAAS,MAAM,IAAIC,MAAM,yBACjD,IAAKC,mBAAoB,MAAM,IAAID,MAAM,yCACzC,MAAME,SAAoBV,OAAOW,OAASC,cAAcC,OACxD,GAAIH,WAAaI,oBAAqB,MAAM,IAAIN,MAAM,0CAEtD,IAAIO,QAAmC,CACrCR,OAAQP,OAAOO,OACfS,MAAOhB,OAAOgB,QAAS,EACvBC,UAAWjB,OAAOiB,YAAa,EAC/BC,QAASlB,OAAOkB,UAAW,EAC3BC,MAAOnB,OAAOmB,QAAS,GAGzB,GAAIT,SAAU,CACZ,MAAMU,QAA0CL,QAAQR,OAA6Bc,WAAWT,cAAcC,OAAQE,SACtH,GAAIT,aAAac,SAAU,MAAM,IAAIZ,MAAM,yDAAyDI,cAAcC,UAElHE,QAAU,IAAKA,QAASK,gBAC1B,CAEA,IAAIE,OAAwB,IAAIC,cAAcR,SAC9C,MAAMS,UAAgCC,aAAaH,QAEnDE,UAAUE,oBAAoB1B,OAAO2B,qBAAsB,GAC3DH,UAAUI,iBAAiBC,cAK3B,MAAMC,iBAAiC5B,WAAW6B,MAAMC,UAAU,KAChE,MAAMC,gBAA2BX,OAAOY,KAAKC,OAAOC,MAAQ,EACxDjC,iBAAiBkC,QAAUJ,iBAC/B9B,iBAAiBmC,KAAKL,mBAUlBM,eAA+BtC,UAAUuC,cAC5CC,KAAKC,qBAAqB,CAACC,KAAeC,OAA2BD,MAAME,QAAUD,MAAMC,OAASF,MAAMG,SAAWF,MAAME,SAC3Hd,UAAWe,OACNzC,aAAayC,OAVrB,SAAmBzB,SAAmCuB,MAAEA,MAAAC,OAAOA,QAAmBE,OAC5E1C,aAAagB,WACjBE,UAAUyB,QAAQJ,MAAOC,QACzBtB,UAAU0B,cAAcF,MAAO3C,eACjC,CAOI8C,CAAU7B,OAAQyB,KAAM9C,UAAUmD,cAGhCC,QAA2CC,gBAAgBhC,OAAQiC,YAAYC,SAAUxD,QAEzFyD,YAA4BJ,QAAQK,SAAS1B,UAAU,KAC3DV,OAAOqC,UACPrC,OAAOsC,mBACPtC,OAAS,KAETmC,YAAYI,cACZtB,eAAesB,cACf/B,iBAAiB+B,gBAGbC,OAASC,SAASV,QAAS7B,UAAWwC,kBAAmB,CAC7DC,UAAW,IAAuBjE,OAClCkE,UAAW,IAAuBC,uBAAuBL,QACzD3D,oCAKF,OAFA2D,OAAOM,WAAWpE,OAAOqE,UAAU,GAE5BP,MACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Scene/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TSceneConfig, TSceneParams } from '@Anarchy/Engine/Scene/Models';\nimport { object3dConfigToParams } from '@Anarchy/Engine/ThreeLib';\n\nexport function sceneConfigToParams(config: TSceneConfig): TSceneParams {\n const { position, rotation, scale, layers, ...rest } = config;\n\n return {\n ...rest,\n ...object3dConfigToParams({ position, rotation, scale, layers })\n };\n}\n"],"names":["sceneConfigToParams","config","position","rotation","scale","layers","rest","object3dConfigToParams"],"mappings":"0EAGO,SAASA,oBAAoBC,QAClC,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,MAAUA,aAAOC,UAAWC,MAASL,OAEvD,MAAO,IACFK,QACAC,uBAAuB,CAAEL,kBAAUC,kBAAUC,YAAOC,gBAE3D"}
1
+ {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Scene/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TSceneConfig, TSceneParams } from '@hellpig/anarchy-engine/Scene/Models';\nimport { object3dConfigToParams } from '@hellpig/anarchy-engine/ThreeLib';\n\nexport function sceneConfigToParams(config: TSceneConfig): TSceneParams {\n const { position, rotation, scale, layers, ...rest } = config;\n\n return {\n ...rest,\n ...object3dConfigToParams({ position, rotation, scale, layers })\n };\n}\n"],"names":["sceneConfigToParams","config","position","rotation","scale","layers","rest","object3dConfigToParams"],"mappings":"0EAGO,SAASA,oBAAoBC,QAClC,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,MAAUA,aAAOC,UAAWC,MAASL,OAEvD,MAAO,IACFK,QACAC,uBAAuB,CAAEL,kBAAUC,kBAAUC,YAAOC,gBAE3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Scene/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TColor } from '@Anarchy/Engine/Color';\nimport { serializeColor } from '@Anarchy/Engine/Color';\nimport { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport type { TSceneConfig, TSceneWrapper } from '@Anarchy/Engine/Scene/Models';\nimport { filterOutEmptyFields, isDefined } from '@Anarchy/Shared/Utils';\n\nexport function sceneEntityToConfig(entity: TSceneWrapper): TSceneConfig {\n const background: TColor | undefined = entity.getBackground() as TColor | undefined;\n // TODO we cannot serialize other backgrounds than Color at the moment\n const hexString: string | undefined = isDefined(background) && background.isColor ? serializeColor(background) : undefined;\n\n return filterOutEmptyFields({\n background: hexString,\n isActive: entity.isActive(),\n ...extractSerializableRegistrableFields(entity)\n });\n}\n"],"names":["sceneEntityToConfig","entity","background","getBackground","hexString","isDefined","isColor","serializeColor","filterOutEmptyFields","isActive","extractSerializableRegistrableFields"],"mappings":"yVAMO,SAASA,oBAAoBC,QAClC,MAAMC,WAAiCD,OAAOE,gBAExCC,UAAgCC,UAAUH,aAAeA,WAAWI,QAAUC,eAAeL,iBAAc,EAEjH,OAAOM,qBAAqB,CAC1BN,WAAYE,UACZK,SAAUR,OAAOQ,cACdC,qCAAqCT,SAE5C"}
1
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Scene/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TColor } from '@hellpig/anarchy-engine/Color';\nimport { serializeColor } from '@hellpig/anarchy-engine/Color';\nimport { extractSerializableRegistrableFields } from '@hellpig/anarchy-engine/Mixins';\nimport type { TSceneConfig, TSceneWrapper } from '@hellpig/anarchy-engine/Scene/Models';\nimport { filterOutEmptyFields, isDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function sceneEntityToConfig(entity: TSceneWrapper): TSceneConfig {\n const background: TColor | undefined = entity.getBackground() as TColor | undefined;\n // TODO we cannot serialize other backgrounds than Color at the moment\n const hexString: string | undefined = isDefined(background) && background.isColor ? serializeColor(background) : undefined;\n\n return filterOutEmptyFields({\n background: hexString,\n isActive: entity.isActive(),\n ...extractSerializableRegistrableFields(entity)\n });\n}\n"],"names":["sceneEntityToConfig","entity","background","getBackground","hexString","isDefined","isColor","serializeColor","filterOutEmptyFields","isActive","extractSerializableRegistrableFields"],"mappings":"yVAMO,SAASA,oBAAoBC,QAClC,MAAMC,WAAiCD,OAAOE,gBAExCC,UAAgCC,UAAUH,aAAeA,WAAWI,QAAUC,eAAeL,iBAAc,EAEjH,OAAOM,qBAAqB,CAC1BN,WAAYE,UACZK,SAAUR,OAAOQ,cACdC,qCAAqCT,SAE5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"SceneFactory.js","sources":["../../../src/Scene/Factories/SceneFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { sceneConfigToParams } from '@Anarchy/Engine/Scene/Adapters';\nimport type { TSceneFactory, TSceneParams, TSceneWrapper } from '@Anarchy/Engine/Scene/Models';\nimport { SceneWrapper } from '@Anarchy/Engine/Scene/Wrappers';\n\nexport function SceneFactory(): TSceneFactory {\n const factory: TReactiveFactory<TSceneWrapper, TSceneParams> = ReactiveFactory(FactoryType.Scene, SceneWrapper);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: sceneConfigToParams });\n}\n"],"names":["SceneFactory","factory","ReactiveFactory","FactoryType","Scene","SceneWrapper","Object","assign","configToParams","sceneConfigToParams"],"mappings":"+PAMO,SAASA,eACd,MAAMC,QAAyDC,gBAAgBC,YAAYC,MAAOC,cAGlG,OAAOC,OAAOC,OAAON,QAAS,CAAEO,eAAgBC,qBAClD"}
1
+ {"version":3,"file":"SceneFactory.js","sources":["../../../src/Scene/Factories/SceneFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { sceneConfigToParams } from '@hellpig/anarchy-engine/Scene/Adapters';\nimport type { TSceneFactory, TSceneParams, TSceneWrapper } from '@hellpig/anarchy-engine/Scene/Models';\nimport { SceneWrapper } from '@hellpig/anarchy-engine/Scene/Wrappers';\n\nexport function SceneFactory(): TSceneFactory {\n const factory: TReactiveFactory<TSceneWrapper, TSceneParams> = ReactiveFactory(FactoryType.Scene, SceneWrapper);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: sceneConfigToParams });\n}\n"],"names":["SceneFactory","factory","ReactiveFactory","FactoryType","Scene","SceneWrapper","Object","assign","configToParams","sceneConfigToParams"],"mappings":"+PAMO,SAASA,eACd,MAAMC,QAAyDC,gBAAgBC,YAAYC,MAAOC,cAGlG,OAAOC,OAAOC,OAAON,QAAS,CAAEO,eAAgBC,qBAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"SceneRegistry.js","sources":["../../../src/Scene/Registries/SceneRegistry.ts"],"sourcesContent":["import { RegistryType } from '@Anarchy/Engine/Abstract/Constants';\nimport { AbstractEntityRegistry } from '@Anarchy/Engine/Abstract/Registries';\nimport type { TSceneRegistry, TSceneWrapper } from '@Anarchy/Engine/Scene/Models';\n\nexport const SceneRegistry = (): TSceneRegistry => {\n return AbstractEntityRegistry<TSceneWrapper>(RegistryType.Scene);\n};\n"],"names":["SceneRegistry","AbstractEntityRegistry","RegistryType","Scene"],"mappings":"2JAIO,MAAMA,cAAgB,IACpBC,uBAAsCC,aAAaC"}
1
+ {"version":3,"file":"SceneRegistry.js","sources":["../../../src/Scene/Registries/SceneRegistry.ts"],"sourcesContent":["import { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { AbstractEntityRegistry } from '@hellpig/anarchy-engine/Abstract/Registries';\nimport type { TSceneRegistry, TSceneWrapper } from '@hellpig/anarchy-engine/Scene/Models';\n\nexport const SceneRegistry = (): TSceneRegistry => {\n return AbstractEntityRegistry<TSceneWrapper>(RegistryType.Scene);\n};\n"],"names":["SceneRegistry","AbstractEntityRegistry","RegistryType","Scene"],"mappings":"2JAIO,MAAMA,cAAgB,IACpBC,uBAAsCC,aAAaC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScenesService.js","sources":["../../../src/Scene/Services/ScenesService.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@Anarchy/Engine/Abstract';\nimport { AbstractService } from '@Anarchy/Engine/Abstract';\nimport type { TDisposable, TWithActiveMixinResult } from '@Anarchy/Engine/Mixins';\nimport { withActiveEntityServiceMixin, withCreateFromConfigServiceMixin, withCreateServiceMixin, withFactoryService, withRegistryService, withSerializableEntities } from '@Anarchy/Engine/Mixins';\nimport type {\n TSceneConfig,\n TSceneFactory,\n TSceneRegistry,\n TScenesService,\n TScenesServiceWithCreate,\n TScenesServiceWithCreateFromConfig,\n TScenesServiceWithFactory,\n TScenesServiceWithRegistry,\n TSceneWrapper\n} from '@Anarchy/Engine/Scene/Models';\nimport { mergeAll } from '@Anarchy/Engine/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function ScenesService(factory: TSceneFactory, registry: TSceneRegistry): TScenesService {\n const withActive: TWithActiveMixinResult<TSceneWrapper> = withActiveEntityServiceMixin<TSceneWrapper>(registry);\n const registrySub$: Subscription = registry.added$.subscribe(({ value }: TRegistryPack<TSceneWrapper>): void => {\n if (value.isActive()) withActive.active$.next(value);\n });\n\n const factorySub$: Subscription = factory.entityCreated$.subscribe((wrapper: TSceneWrapper): void => registry.add(wrapper));\n\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, registrySub$, factorySub$];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const withCreateService: TScenesServiceWithCreate = withCreateServiceMixin(factory, undefined);\n const withCreateFromConfigService: TScenesServiceWithCreateFromConfig = withCreateFromConfigServiceMixin(withCreateService.create, factory.configToParams, undefined);\n const withFactory: TScenesServiceWithFactory = withFactoryService(factory);\n const withRegistry: TScenesServiceWithRegistry = withRegistryService(registry);\n\n const destroySub$: Subscription = abstractService.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n withActive.active$.complete();\n });\n\n return mergeAll(\n abstractService,\n withCreateService,\n withCreateFromConfigService,\n withFactory,\n withRegistry,\n withSerializableEntities<TSceneWrapper, TSceneConfig, undefined>(registry),\n\n {\n setActive: withActive.setActive,\n findActive: withActive.findActive,\n getActive: withActive.getActive,\n active$: withActive.active$\n }\n );\n}\n"],"names":["ScenesService","factory","registry","withActive","withActiveEntityServiceMixin","registrySub$","added$","subscribe","value","isActive","active$","next","factorySub$","entityCreated$","wrapper","add","abstractService","AbstractService","withCreateService","withCreateServiceMixin","withCreateFromConfigService","withCreateFromConfigServiceMixin","create","configToParams","withFactory","withFactoryService","withRegistry","withRegistryService","destroySub$","destroy$","unsubscribe","complete","mergeAll","withSerializableEntities","setActive","findActive","getActive"],"mappings":"6nBAkBO,SAASA,cAAcC,QAAwBC,UACpD,MAAMC,WAAoDC,6BAA4CF,UAChGG,aAA6BH,SAASI,OAAOC,UAAU,EAAGC,gBAC1DA,MAAMC,YAAYN,WAAWO,QAAQC,KAAKH,SAG1CI,YAA4BX,QAAQY,eAAeN,UAAWO,SAAiCZ,SAASa,IAAID,UAG5GE,gBAAoCC,gBADK,CAACf,SAAUD,QAASI,aAAcO,cAG3EM,kBAA8CC,uBAAuBlB,gBACrEmB,4BAAkEC,iCAAiCH,kBAAkBI,OAAQrB,QAAQsB,uBACrIC,YAAyCC,mBAAmBxB,SAC5DyB,aAA2CC,oBAAoBzB,UAE/D0B,YAA4BZ,gBAAgBa,SAAStB,UAAU,KACnEqB,YAAYE,cAEZ3B,WAAWO,QAAQqB,aAGrB,OAAOC,SACLhB,gBACAE,kBACAE,4BACAI,YACAE,aACAO,yBAAiE/B,UAEjE,CACEgC,UAAW/B,WAAW+B,UACtBC,WAAYhC,WAAWgC,WACvBC,UAAWjC,WAAWiC,UACtB1B,QAASP,WAAWO,SAG1B"}
1
+ {"version":3,"file":"ScenesService.js","sources":["../../../src/Scene/Services/ScenesService.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport type { TDisposable, TWithActiveMixinResult } from '@hellpig/anarchy-engine/Mixins';\nimport {\n withActiveEntityServiceMixin,\n withCreateFromConfigServiceMixin,\n withCreateServiceMixin,\n withFactoryService,\n withRegistryService,\n withSerializableEntities\n} from '@hellpig/anarchy-engine/Mixins';\nimport type {\n TSceneConfig,\n TSceneFactory,\n TSceneRegistry,\n TScenesService,\n TScenesServiceWithCreate,\n TScenesServiceWithCreateFromConfig,\n TScenesServiceWithFactory,\n TScenesServiceWithRegistry,\n TSceneWrapper\n} from '@hellpig/anarchy-engine/Scene/Models';\nimport { mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function ScenesService(factory: TSceneFactory, registry: TSceneRegistry): TScenesService {\n const withActive: TWithActiveMixinResult<TSceneWrapper> = withActiveEntityServiceMixin<TSceneWrapper>(registry);\n const registrySub$: Subscription = registry.added$.subscribe(({ value }: TRegistryPack<TSceneWrapper>): void => {\n if (value.isActive()) withActive.active$.next(value);\n });\n\n const factorySub$: Subscription = factory.entityCreated$.subscribe((wrapper: TSceneWrapper): void => registry.add(wrapper));\n\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, registrySub$, factorySub$];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const withCreateService: TScenesServiceWithCreate = withCreateServiceMixin(factory, undefined);\n const withCreateFromConfigService: TScenesServiceWithCreateFromConfig = withCreateFromConfigServiceMixin(withCreateService.create, factory.configToParams, undefined);\n const withFactory: TScenesServiceWithFactory = withFactoryService(factory);\n const withRegistry: TScenesServiceWithRegistry = withRegistryService(registry);\n\n const destroySub$: Subscription = abstractService.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n withActive.active$.complete();\n });\n\n return mergeAll(\n abstractService,\n withCreateService,\n withCreateFromConfigService,\n withFactory,\n withRegistry,\n withSerializableEntities<TSceneWrapper, TSceneConfig, undefined>(registry),\n\n {\n setActive: withActive.setActive,\n findActive: withActive.findActive,\n getActive: withActive.getActive,\n active$: withActive.active$\n }\n );\n}\n"],"names":["ScenesService","factory","registry","withActive","withActiveEntityServiceMixin","registrySub$","added$","subscribe","value","isActive","active$","next","factorySub$","entityCreated$","wrapper","add","abstractService","AbstractService","withCreateService","withCreateServiceMixin","withCreateFromConfigService","withCreateFromConfigServiceMixin","create","configToParams","withFactory","withFactoryService","withRegistry","withRegistryService","destroySub$","destroy$","unsubscribe","complete","mergeAll","withSerializableEntities","setActive","findActive","getActive"],"mappings":"6nBAyBO,SAASA,cAAcC,QAAwBC,UACpD,MAAMC,WAAoDC,6BAA4CF,UAChGG,aAA6BH,SAASI,OAAOC,UAAU,EAAGC,gBAC1DA,MAAMC,YAAYN,WAAWO,QAAQC,KAAKH,SAG1CI,YAA4BX,QAAQY,eAAeN,UAAWO,SAAiCZ,SAASa,IAAID,UAG5GE,gBAAoCC,gBADK,CAACf,SAAUD,QAASI,aAAcO,cAG3EM,kBAA8CC,uBAAuBlB,gBACrEmB,4BAAkEC,iCAAiCH,kBAAkBI,OAAQrB,QAAQsB,uBACrIC,YAAyCC,mBAAmBxB,SAC5DyB,aAA2CC,oBAAoBzB,UAE/D0B,YAA4BZ,gBAAgBa,SAAStB,UAAU,KACnEqB,YAAYE,cAEZ3B,WAAWO,QAAQqB,aAGrB,OAAOC,SACLhB,gBACAE,kBACAE,4BACAI,YACAE,aACAO,yBAAiE/B,UAEjE,CACEgC,UAAW/B,WAAW+B,UACtBC,WAAYhC,WAAWgC,WACvBC,UAAWjC,WAAWiC,UACtB1B,QAASP,WAAWO,SAG1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SceneWrapper.js","sources":["../../../src/Scene/Wrappers/SceneWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@Anarchy/Engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@Anarchy/Engine/Abstract';\nimport type { TActor } from '@Anarchy/Engine/Actor';\nimport type { TAnyCameraWrapper } from '@Anarchy/Engine/Camera';\nimport type { TColor } from '@Anarchy/Engine/Color';\nimport { ColorWrapper } from '@Anarchy/Engine/Color';\nimport type { TEnvMapTexture } from '@Anarchy/Engine/EnvMap';\nimport type { TFogWrapper } from '@Anarchy/Engine/Fog';\nimport type { TAbstractLightWrapper, TAnyLight } from '@Anarchy/Engine/Light';\nimport type { TDestroyable } from '@Anarchy/Engine/Mixins';\nimport { withActiveMixin, withObject3d } from '@Anarchy/Engine/Mixins';\nimport type { TModel3d } from '@Anarchy/Engine/Models3d';\nimport type { TParticlesWrapper } from '@Anarchy/Engine/Particles';\nimport { sceneEntityToConfig } from '@Anarchy/Engine/Scene/Adapters';\nimport type { TSceneConfig, TSceneObject, TSceneParams, TSceneWrapper } from '@Anarchy/Engine/Scene/Models';\nimport type { TTextAnyWrapper } from '@Anarchy/Engine/Text';\nimport type { TTexture } from '@Anarchy/Engine/Texture';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined, isNotDefined, isString } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport type { CubeTexture } from 'three';\nimport { Scene } from 'three';\n\nexport function SceneWrapper(params: TSceneParams): TSceneWrapper {\n const entity: TWriteable<Scene> = new Scene();\n\n if (isDefined(params.background)) setBackground(params.background);\n\n const wrapper: TAbstractWrapper<Scene> = AbstractWrapper(entity, WrapperType.Scene, params);\n\n const add = (obj: TSceneObject): void => void entity.add(obj);\n const addCamera = (camera: TAnyCameraWrapper): void => add(camera.entity);\n const addModel3d = (model3d: TModel3d): void => add(model3d.getRawModel3d());\n const addActor = (actor: TActor): void => addModel3d(actor.model3d);\n const addLight = <T extends TAnyLight>(light: Readonly<TAbstractLightWrapper<T>>): void => add(light.entity);\n const addParticles = (particles: Readonly<TParticlesWrapper>): void => add(particles.entity);\n\n const addText = (text: Readonly<TTextAnyWrapper>): void => add(text.entity);\n\n // eslint-disable-next-line functional/immutable-data\n const setFog = (fog: Readonly<TFogWrapper>): void => void (entity.fog = fog.entity);\n\n function setBackground(color: string | TColor | TTexture | CubeTexture | TEnvMapTexture): void {\n let background: string | TColor | TTexture | CubeTexture | null = null;\n if (isString(color)) background = ColorWrapper(color).entity;\n else background = color;\n if (isNotDefined(background)) throw new Error('Invalid background');\n // eslint-disable-next-line functional/immutable-data\n entity.background = background;\n }\n\n const getBackground = (): TColor | TTexture | CubeTexture | null => entity.background;\n\n // eslint-disable-next-line functional/immutable-data\n const setEnvironmentMap = (texture: TEnvMapTexture | TTexture): void => void (entity.environment = texture);\n\n const getEnvironmentMap = (): TTexture | null => entity.environment;\n\n // eslint-disable-next-line functional/immutable-data\n const result = Object.assign(wrapper, {\n addCamera,\n addLight,\n addModel3d,\n addActor,\n setFog,\n addText,\n addParticles,\n setBackground,\n getBackground,\n setEnvironmentMap,\n getEnvironmentMap,\n ...withObject3d(entity),\n ...withActiveMixin(),\n entity,\n serialize: (): TSceneConfig => sceneEntityToConfig(result)\n });\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n entity.traverse((entity: unknown): void => (entity as TDestroyable).destroy$?.next());\n entity.clear();\n (entity.background as CubeTexture)?.dispose?.();\n\n destroySub$.unsubscribe();\n });\n\n result._setActive(params.isActive, true);\n\n return result;\n}\n"],"names":["SceneWrapper","params","entity","Scene","isDefined","background","setBackground","wrapper","AbstractWrapper","WrapperType","add","obj","addModel3d","model3d","getRawModel3d","color","isString","ColorWrapper","isNotDefined","Error","result","Object","assign","addCamera","camera","addLight","light","addActor","actor","setFog","fog","addText","text","addParticles","particles","getBackground","setEnvironmentMap","texture","environment","getEnvironmentMap","withObject3d","withActiveMixin","serialize","sceneEntityToConfig","destroySub$","destroy$","subscribe","traverse","next","clear","dispose","unsubscribe","_setActive","isActive"],"mappings":"mhBAuBO,SAASA,aAAaC,QAC3B,MAAMC,OAA4B,IAAIC,MAElCC,UAAUH,OAAOI,aAAaC,cAAcL,OAAOI,YAEvD,MAAME,QAAmCC,gBAAgBN,OAAQO,YAAYN,MAAOF,QAE9ES,IAAOC,MAAiCT,OAAOQ,IAAIC,MAEnDC,WAAcC,SAA4BH,IAAIG,QAAQC,iBAU5D,SAASR,cAAcS,OACrB,IAAIV,WAA8D,KAGlE,GAFqBA,WAAjBW,SAASD,OAAqBE,aAAaF,OAAOb,OACpCa,MACdG,aAAab,YAAa,MAAM,IAAIc,MAAM,sBAE9CjB,OAAOG,WAAaA,UACtB,CAEA,MAQMe,OAASC,OAAOC,OAAOf,QAAS,CACpCgB,UA7BiBC,QAAoCd,IAAIc,OAAOtB,QA8BhEuB,SA3BqCC,OAAoDhB,IAAIgB,MAAMxB,QA4BnGU,sBACAe,SA9BgBC,OAAwBhB,WAAWgB,MAAMf,SA+BzDgB,OAxBcC,MAA2C5B,OAAO4B,IAAMA,IAAI5B,QAyB1E6B,QA5BeC,MAA0CtB,IAAIsB,KAAK9B,QA6BlE+B,aA/BoBC,WAAiDxB,IAAIwB,UAAUhC,QAgCnFI,4BACA6B,cAjBoB,IAA8CjC,OAAOG,WAkBzE+B,kBAfyBC,UAAmDnC,OAAOoC,YAAcD,SAgBjGE,kBAdwB,IAAuBrC,OAAOoC,eAenDE,aAAatC,WACbuC,kBACHvC,cACAwC,UAAW,IAAoBC,oBAAoBvB,UAG/CwB,YAA4BxB,OAAOyB,SAASC,UAAU,KAC1D5C,OAAO6C,SAAU7C,SAA2BA,QAAwB2C,UAAUG,QAC9E9C,OAAO+C,QACN/C,OAAOG,YAA4B6C,YAEpCN,YAAYO,gBAKd,OAFA/B,OAAOgC,WAAWnD,OAAOoD,UAAU,GAE5BjC,MACT"}
1
+ {"version":3,"file":"SceneWrapper.js","sources":["../../../src/Scene/Wrappers/SceneWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TActor } from '@hellpig/anarchy-engine/Actor';\nimport type { TAnyCameraWrapper } from '@hellpig/anarchy-engine/Camera';\nimport type { TColor } from '@hellpig/anarchy-engine/Color';\nimport { ColorWrapper } from '@hellpig/anarchy-engine/Color';\nimport type { TEnvMapTexture } from '@hellpig/anarchy-engine/EnvMap';\nimport type { TFogWrapper } from '@hellpig/anarchy-engine/Fog';\nimport type { TAbstractLightWrapper, TAnyLight } from '@hellpig/anarchy-engine/Light';\nimport type { TDestroyable } from '@hellpig/anarchy-engine/Mixins';\nimport { withActiveMixin, withObject3d } from '@hellpig/anarchy-engine/Mixins';\nimport type { TModel3d } from '@hellpig/anarchy-engine/Models3d';\nimport type { TParticlesWrapper } from '@hellpig/anarchy-engine/Particles';\nimport { sceneEntityToConfig } from '@hellpig/anarchy-engine/Scene/Adapters';\nimport type { TSceneConfig, TSceneObject, TSceneParams, TSceneWrapper } from '@hellpig/anarchy-engine/Scene/Models';\nimport type { TTextAnyWrapper } from '@hellpig/anarchy-engine/Text';\nimport type { TTexture } from '@hellpig/anarchy-engine/Texture';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined, isNotDefined, isString } from '@hellpig/anarchy-shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport type { CubeTexture } from 'three';\nimport { Scene } from 'three';\n\nexport function SceneWrapper(params: TSceneParams): TSceneWrapper {\n const entity: TWriteable<Scene> = new Scene();\n\n if (isDefined(params.background)) setBackground(params.background);\n\n const wrapper: TAbstractWrapper<Scene> = AbstractWrapper(entity, WrapperType.Scene, params);\n\n const add = (obj: TSceneObject): void => void entity.add(obj);\n const addCamera = (camera: TAnyCameraWrapper): void => add(camera.entity);\n const addModel3d = (model3d: TModel3d): void => add(model3d.getRawModel3d());\n const addActor = (actor: TActor): void => addModel3d(actor.model3d);\n const addLight = <T extends TAnyLight>(light: Readonly<TAbstractLightWrapper<T>>): void => add(light.entity);\n const addParticles = (particles: Readonly<TParticlesWrapper>): void => add(particles.entity);\n\n const addText = (text: Readonly<TTextAnyWrapper>): void => add(text.entity);\n\n // eslint-disable-next-line functional/immutable-data\n const setFog = (fog: Readonly<TFogWrapper>): void => void (entity.fog = fog.entity);\n\n function setBackground(color: string | TColor | TTexture | CubeTexture | TEnvMapTexture): void {\n let background: string | TColor | TTexture | CubeTexture | null = null;\n if (isString(color)) background = ColorWrapper(color).entity;\n else background = color;\n if (isNotDefined(background)) throw new Error('Invalid background');\n // eslint-disable-next-line functional/immutable-data\n entity.background = background;\n }\n\n const getBackground = (): TColor | TTexture | CubeTexture | null => entity.background;\n\n // eslint-disable-next-line functional/immutable-data\n const setEnvironmentMap = (texture: TEnvMapTexture | TTexture): void => void (entity.environment = texture);\n\n const getEnvironmentMap = (): TTexture | null => entity.environment;\n\n // eslint-disable-next-line functional/immutable-data\n const result = Object.assign(wrapper, {\n addCamera,\n addLight,\n addModel3d,\n addActor,\n setFog,\n addText,\n addParticles,\n setBackground,\n getBackground,\n setEnvironmentMap,\n getEnvironmentMap,\n ...withObject3d(entity),\n ...withActiveMixin(),\n entity,\n serialize: (): TSceneConfig => sceneEntityToConfig(result)\n });\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n entity.traverse((entity: unknown): void => (entity as TDestroyable).destroy$?.next());\n entity.clear();\n (entity.background as CubeTexture)?.dispose?.();\n\n destroySub$.unsubscribe();\n });\n\n result._setActive(params.isActive, true);\n\n return result;\n}\n"],"names":["SceneWrapper","params","entity","Scene","isDefined","background","setBackground","wrapper","AbstractWrapper","WrapperType","add","obj","addModel3d","model3d","getRawModel3d","color","isString","ColorWrapper","isNotDefined","Error","result","Object","assign","addCamera","camera","addLight","light","addActor","actor","setFog","fog","addText","text","addParticles","particles","getBackground","setEnvironmentMap","texture","environment","getEnvironmentMap","withObject3d","withActiveMixin","serialize","sceneEntityToConfig","destroySub$","destroy$","subscribe","traverse","next","clear","dispose","unsubscribe","_setActive","isActive"],"mappings":"mhBAuBO,SAASA,aAAaC,QAC3B,MAAMC,OAA4B,IAAIC,MAElCC,UAAUH,OAAOI,aAAaC,cAAcL,OAAOI,YAEvD,MAAME,QAAmCC,gBAAgBN,OAAQO,YAAYN,MAAOF,QAE9ES,IAAOC,MAAiCT,OAAOQ,IAAIC,MAEnDC,WAAcC,SAA4BH,IAAIG,QAAQC,iBAU5D,SAASR,cAAcS,OACrB,IAAIV,WAA8D,KAGlE,GAFqBA,WAAjBW,SAASD,OAAqBE,aAAaF,OAAOb,OACpCa,MACdG,aAAab,YAAa,MAAM,IAAIc,MAAM,sBAE9CjB,OAAOG,WAAaA,UACtB,CAEA,MAQMe,OAASC,OAAOC,OAAOf,QAAS,CACpCgB,UA7BiBC,QAAoCd,IAAIc,OAAOtB,QA8BhEuB,SA3BqCC,OAAoDhB,IAAIgB,MAAMxB,QA4BnGU,sBACAe,SA9BgBC,OAAwBhB,WAAWgB,MAAMf,SA+BzDgB,OAxBcC,MAA2C5B,OAAO4B,IAAMA,IAAI5B,QAyB1E6B,QA5BeC,MAA0CtB,IAAIsB,KAAK9B,QA6BlE+B,aA/BoBC,WAAiDxB,IAAIwB,UAAUhC,QAgCnFI,4BACA6B,cAjBoB,IAA8CjC,OAAOG,WAkBzE+B,kBAfyBC,UAAmDnC,OAAOoC,YAAcD,SAgBjGE,kBAdwB,IAAuBrC,OAAOoC,eAenDE,aAAatC,WACbuC,kBACHvC,cACAwC,UAAW,IAAoBC,oBAAoBvB,UAG/CwB,YAA4BxB,OAAOyB,SAASC,UAAU,KAC1D5C,OAAO6C,SAAU7C,SAA2BA,QAAwB2C,UAAUG,QAC9E9C,OAAO+C,QACN/C,OAAOG,YAA4B6C,YAEpCN,YAAYO,gBAKd,OAFA/B,OAAOgC,WAAWnD,OAAOoD,UAAU,GAE5BjC,MACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Space/Adapters/ConfigToParams.ts"],"sourcesContent":["import { sceneConfigToParams } from '@Anarchy/Engine/Scene/Adapters';\nimport type { TSpaceConfig, TSpaceParams } from '@Anarchy/Engine/Space/Models';\n\nexport function spaceConfigToParams(config: TSpaceConfig): TSpaceParams | never {\n const { scenes, ...rest } = config;\n\n return {\n ...rest,\n scenes: scenes.map(sceneConfigToParams),\n //we can't get entities here, services must be initialized first\n entities: undefined\n };\n}\n"],"names":["spaceConfigToParams","config","scenes","rest","map","sceneConfigToParams","entities"],"mappings":"wEAGO,SAASA,oBAAoBC,QAClC,MAAMC,OAAEA,UAAWC,MAASF,OAE5B,MAAO,IACFE,KACHD,OAAQA,OAAOE,IAAIC,qBAEnBC,cAAU,EAEd"}
1
+ {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Space/Adapters/ConfigToParams.ts"],"sourcesContent":["import { sceneConfigToParams } from '@hellpig/anarchy-engine/Scene/Adapters';\nimport type { TSpaceConfig, TSpaceParams } from '@hellpig/anarchy-engine/Space/Models';\n\nexport function spaceConfigToParams(config: TSpaceConfig): TSpaceParams | never {\n const { scenes, ...rest } = config;\n\n return {\n ...rest,\n scenes: scenes.map(sceneConfigToParams),\n //we can't get entities here, services must be initialized first\n entities: undefined\n };\n}\n"],"names":["spaceConfigToParams","config","scenes","rest","map","sceneConfigToParams","entities"],"mappings":"wEAGO,SAASA,oBAAoBC,QAClC,MAAMC,OAAEA,UAAWC,MAASF,OAE5B,MAAO,IACFE,KACHD,OAAQA,OAAOE,IAAIC,qBAEnBC,cAAU,EAEd"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Space/Adapters/EntityToConfig.ts"],"sourcesContent":["import { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport type { SpaceSchemaVersion } from '@Anarchy/Engine/Space/Constants';\nimport type { TSpace, TSpaceConfig, TSpaceConfigEntities, TSpaceConfigResources, TSpaceServices } from '@Anarchy/Engine/Space/Models';\nimport { filterOutEmptyFieldsRecursive, isDefined } from '@Anarchy/Shared/Utils';\n\nexport function spaceEntityToConfig(\n entity: TSpace,\n {\n actorService,\n animationsService,\n audioService,\n cameraService,\n controlsService,\n envMapService,\n fogService,\n fsmService,\n intersectionsWatcherService,\n lightService,\n materialService,\n models3dService,\n particlesService,\n physicsBodyService,\n physicsWorldService,\n rendererService,\n scenesService,\n spatialGridService,\n textService,\n textureService\n }: TSpaceServices\n): TSpaceConfig {\n const entities: TSpaceConfigEntities = {\n actors: actorService.serializeAllEntities(),\n audio: audioService.serializeAllEntities(),\n cameras: cameraService.serializeAllEntities(),\n controls: controlsService.serializeAllEntities(),\n envMaps: envMapService.serializeAllEntities(),\n fogs: fogService.serializeAllEntities(),\n fsm: fsmService.serializeAllEntities(),\n intersections: intersectionsWatcherService.serializeAllEntities(),\n lights: lightService.serializeAllEntities(),\n materials: materialService.serializeAllEntities(),\n models3d: models3dService.serializeAllEntities(),\n particles: particlesService.serializeAllEntities(),\n physics: isDefined(entity.services.physicsWorldService.findWorld())\n ? {\n world: physicsWorldService.serializeWorld(),\n bodies: physicsBodyService.serializeAllEntities()\n }\n : {},\n renderers: rendererService.serializeAllEntities(),\n spatialGrids: spatialGridService.serializeAllEntities(),\n texts: textService.serializeAllEntities()\n };\n\n const resources: TSpaceConfigResources = {\n animations: animationsService.serializeAllResources(),\n audio: audioService.serializeAllResources(),\n envMaps: envMapService.serializeAllResources(),\n models3d: models3dService.serializeAllResources(),\n textures: textureService.serializeAllResources()\n };\n\n return filterOutEmptyFieldsRecursive({\n canvasSelector: entity.getCanvasSelector(),\n version: entity.version as SpaceSchemaVersion,\n entities,\n resources,\n scenes: scenesService.serializeAllEntities(),\n ...extractSerializableRegistrableFields(entity)\n });\n}\n"],"names":["spaceEntityToConfig","entity","actorService","animationsService","audioService","cameraService","controlsService","envMapService","fogService","fsmService","intersectionsWatcherService","lightService","materialService","models3dService","particlesService","physicsBodyService","physicsWorldService","rendererService","scenesService","spatialGridService","textService","textureService","entities","actors","serializeAllEntities","audio","cameras","controls","envMaps","fogs","fsm","intersections","lights","materials","models3d","particles","physics","isDefined","services","findWorld","world","serializeWorld","bodies","renderers","spatialGrids","texts","resources","animations","serializeAllResources","textures","filterOutEmptyFieldsRecursive","canvasSelector","getCanvasSelector","version","scenes","extractSerializableRegistrableFields"],"mappings":"+RAKO,SAASA,oBACdC,QACAC,aACEA,aAAAC,kBACAA,kBAAAC,aACAA,aAAAC,cACAA,cAAAC,gBACAA,gBAAAC,cACAA,cAAAC,WACAA,WAAAC,WACAA,WAAAC,4BACAA,4BAAAC,aACAA,aAAAC,gBACAA,gBAAAC,gBACAA,gBAAAC,iBACAA,iBAAAC,mBACAA,mBAAAC,oBACAA,oBAAAC,gBACAA,gBAAAC,cACAA,cAAAC,mBACAA,mBAAAC,YACAA,YAAAC,eACAA,iBAGF,MAAMC,SAAiC,CACrCC,OAAQrB,aAAasB,uBACrBC,MAAOrB,aAAaoB,uBACpBE,QAASrB,cAAcmB,uBACvBG,SAAUrB,gBAAgBkB,uBAC1BI,QAASrB,cAAciB,uBACvBK,KAAMrB,WAAWgB,uBACjBM,IAAKrB,WAAWe,uBAChBO,cAAerB,4BAA4Bc,uBAC3CQ,OAAQrB,aAAaa,uBACrBS,UAAWrB,gBAAgBY,uBAC3BU,SAAUrB,gBAAgBW,uBAC1BW,UAAWrB,iBAAiBU,uBAC5BY,QAASC,UAAUpC,OAAOqC,SAAStB,oBAAoBuB,aACnD,CACEC,MAAOxB,oBAAoByB,iBAC3BC,OAAQ3B,mBAAmBS,wBAE7B,CAAA,EACJmB,UAAW1B,gBAAgBO,uBAC3BoB,aAAczB,mBAAmBK,uBACjCqB,MAAOzB,YAAYI,wBAGfsB,UAAmC,CACvCC,WAAY5C,kBAAkB6C,wBAC9BvB,MAAOrB,aAAa4C,wBACpBpB,QAASrB,cAAcyC,wBACvBd,SAAUrB,gBAAgBmC,wBAC1BC,SAAU5B,eAAe2B,yBAG3B,OAAOE,8BAA8B,CACnCC,eAAgBlD,OAAOmD,oBACvBC,QAASpD,OAAOoD,QAChB/B,kBACAwB,oBACAQ,OAAQpC,cAAcM,0BACnB+B,qCAAqCtD,SAE5C"}
1
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Space/Adapters/EntityToConfig.ts"],"sourcesContent":["import { extractSerializableRegistrableFields } from '@hellpig/anarchy-engine/Mixins';\nimport type { SpaceSchemaVersion } from '@hellpig/anarchy-engine/Space/Constants';\nimport type { TSpace, TSpaceConfig, TSpaceConfigEntities, TSpaceConfigResources, TSpaceServices } from '@hellpig/anarchy-engine/Space/Models';\nimport { filterOutEmptyFieldsRecursive, isDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function spaceEntityToConfig(\n entity: TSpace,\n {\n actorService,\n animationsService,\n audioService,\n cameraService,\n controlsService,\n envMapService,\n fogService,\n fsmService,\n intersectionsWatcherService,\n lightService,\n materialService,\n models3dService,\n particlesService,\n physicsBodyService,\n physicsWorldService,\n rendererService,\n scenesService,\n spatialGridService,\n textService,\n textureService\n }: TSpaceServices\n): TSpaceConfig {\n const entities: TSpaceConfigEntities = {\n actors: actorService.serializeAllEntities(),\n audio: audioService.serializeAllEntities(),\n cameras: cameraService.serializeAllEntities(),\n controls: controlsService.serializeAllEntities(),\n envMaps: envMapService.serializeAllEntities(),\n fogs: fogService.serializeAllEntities(),\n fsm: fsmService.serializeAllEntities(),\n intersections: intersectionsWatcherService.serializeAllEntities(),\n lights: lightService.serializeAllEntities(),\n materials: materialService.serializeAllEntities(),\n models3d: models3dService.serializeAllEntities(),\n particles: particlesService.serializeAllEntities(),\n physics: isDefined(entity.services.physicsWorldService.findWorld())\n ? {\n world: physicsWorldService.serializeWorld(),\n bodies: physicsBodyService.serializeAllEntities()\n }\n : {},\n renderers: rendererService.serializeAllEntities(),\n spatialGrids: spatialGridService.serializeAllEntities(),\n texts: textService.serializeAllEntities()\n };\n\n const resources: TSpaceConfigResources = {\n animations: animationsService.serializeAllResources(),\n audio: audioService.serializeAllResources(),\n envMaps: envMapService.serializeAllResources(),\n models3d: models3dService.serializeAllResources(),\n textures: textureService.serializeAllResources()\n };\n\n return filterOutEmptyFieldsRecursive({\n canvasSelector: entity.getCanvasSelector(),\n version: entity.version as SpaceSchemaVersion,\n entities,\n resources,\n scenes: scenesService.serializeAllEntities(),\n ...extractSerializableRegistrableFields(entity)\n });\n}\n"],"names":["spaceEntityToConfig","entity","actorService","animationsService","audioService","cameraService","controlsService","envMapService","fogService","fsmService","intersectionsWatcherService","lightService","materialService","models3dService","particlesService","physicsBodyService","physicsWorldService","rendererService","scenesService","spatialGridService","textService","textureService","entities","actors","serializeAllEntities","audio","cameras","controls","envMaps","fogs","fsm","intersections","lights","materials","models3d","particles","physics","isDefined","services","findWorld","world","serializeWorld","bodies","renderers","spatialGrids","texts","resources","animations","serializeAllResources","textures","filterOutEmptyFieldsRecursive","canvasSelector","getCanvasSelector","version","scenes","extractSerializableRegistrableFields"],"mappings":"+RAKO,SAASA,oBACdC,QACAC,aACEA,aAAAC,kBACAA,kBAAAC,aACAA,aAAAC,cACAA,cAAAC,gBACAA,gBAAAC,cACAA,cAAAC,WACAA,WAAAC,WACAA,WAAAC,4BACAA,4BAAAC,aACAA,aAAAC,gBACAA,gBAAAC,gBACAA,gBAAAC,iBACAA,iBAAAC,mBACAA,mBAAAC,oBACAA,oBAAAC,gBACAA,gBAAAC,cACAA,cAAAC,mBACAA,mBAAAC,YACAA,YAAAC,eACAA,iBAGF,MAAMC,SAAiC,CACrCC,OAAQrB,aAAasB,uBACrBC,MAAOrB,aAAaoB,uBACpBE,QAASrB,cAAcmB,uBACvBG,SAAUrB,gBAAgBkB,uBAC1BI,QAASrB,cAAciB,uBACvBK,KAAMrB,WAAWgB,uBACjBM,IAAKrB,WAAWe,uBAChBO,cAAerB,4BAA4Bc,uBAC3CQ,OAAQrB,aAAaa,uBACrBS,UAAWrB,gBAAgBY,uBAC3BU,SAAUrB,gBAAgBW,uBAC1BW,UAAWrB,iBAAiBU,uBAC5BY,QAASC,UAAUpC,OAAOqC,SAAStB,oBAAoBuB,aACnD,CACEC,MAAOxB,oBAAoByB,iBAC3BC,OAAQ3B,mBAAmBS,wBAE7B,CAAA,EACJmB,UAAW1B,gBAAgBO,uBAC3BoB,aAAczB,mBAAmBK,uBACjCqB,MAAOzB,YAAYI,wBAGfsB,UAAmC,CACvCC,WAAY5C,kBAAkB6C,wBAC9BvB,MAAOrB,aAAa4C,wBACpBpB,QAASrB,cAAcyC,wBACvBd,SAAUrB,gBAAgBmC,wBAC1BC,SAAU5B,eAAe2B,yBAG3B,OAAOE,8BAA8B,CACnCC,eAAgBlD,OAAOmD,oBACvBC,QAASpD,OAAOoD,QAChB/B,kBACAwB,oBACAQ,OAAQpC,cAAcM,0BACnB+B,qCAAqCtD,SAE5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Space.js","sources":["../../../src/Space/Entities/Space.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@Anarchy/Engine/Abstract';\nimport { AbstractEntity, EntityType } from '@Anarchy/Engine/Abstract';\nimport { ambientContext } from '@Anarchy/Engine/Context';\nimport type { TContainerDecorator } from '@Anarchy/Engine/Global';\nimport { getCanvasContainer } from '@Anarchy/Engine/Global';\nimport type { TAnyIntersectionsWatcher } from '@Anarchy/Engine/Intersections';\nimport type { TLoop } from '@Anarchy/Engine/Loop';\nimport type { TMouseClickWatcher, TMousePositionWatcher } from '@Anarchy/Engine/Mouse';\nimport type { TSceneWrapper } from '@Anarchy/Engine/Scene';\nimport { spaceEntityToConfig } from '@Anarchy/Engine/Space/Adapters';\nimport { CreateEntitiesStrategy, SpaceEvents } from '@Anarchy/Engine/Space/Constants';\nimport type {\n TSpace,\n TSpaceAnyEvent,\n TSpaceBaseServices,\n TSpaceCanvas,\n TSpaceConfig,\n TSpaceLoops,\n TSpaceParams,\n TSpaceParts,\n TSpaceRegistry,\n TSpaceServices,\n TSpaceSettings\n} from '@Anarchy/Engine/Space/Models';\nimport { buildBaseServices, buildEntitiesServices, createEntities, createLoops } from '@Anarchy/Engine/Space/Utils';\nimport { findDomElement, getOrCreateCanvasFromSelector, isCanvasElement, isDestroyable, mergeAll } from '@Anarchy/Engine/Utils';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject, distinctUntilChanged, filter, skip, Subject } from 'rxjs';\n\nexport function Space(params: TSpaceParams, registry: TSpaceRegistry, settings?: TSpaceSettings): TSpace {\n const { canvasSelector, version, name, tags } = params;\n const built$: BehaviorSubject<TSpace | undefined> = new BehaviorSubject<TSpace | undefined>(undefined);\n const start$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n const events$: Subject<TSpaceAnyEvent> = new Subject<TSpaceAnyEvent>();\n const serializationInProgress$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n const canvas: TSpaceCanvas = getOrCreateCanvasFromSelector(ambientContext, canvasSelector);\n const container: TContainerDecorator = getCanvasContainer(canvas);\n\n const { services, loops } = initSpaceServices(canvas, container, params, settings, events$);\n events$.next({ name: SpaceEvents.AfterAllServicesInitialized, args: { canvas, services, loops, params } });\n\n let entitiesCreationPromise: Promise<void> = Promise.resolve();\n if (isDefined(params.entities) && Object.values(params.entities).length > 0) {\n events$.next({ name: SpaceEvents.BeforeEntitiesCreated, args: { params, services, loops } });\n entitiesCreationPromise = createEntities(params.entities, services, container, CreateEntitiesStrategy.Params).then((): void => {\n events$.next({ name: SpaceEvents.AfterEntitiesCreated, args: { params, services, loops } });\n // TODO 14-0-0: Find a better place for this\n services.intersectionsWatcherService.getRegistry().added$.subscribe(({ value }: TRegistryPack<TAnyIntersectionsWatcher>): void => {\n if (value.isAutoStart && !value.isStarted) value.enabled$.next(true);\n });\n });\n }\n\n const parts: TSpaceParts = {\n services,\n loops,\n built$: built$.pipe(filter(isDefined)),\n start$\n };\n\n function getCanvasElement(): TSpaceCanvas | never {\n const result: HTMLElement | TSpaceCanvas | null = findDomElement(ambientContext, canvasSelector);\n if (isNotDefined(result)) throw new Error(`Space: Can't find canvas element: ${result}`);\n if (!isCanvasElement(result)) throw new Error(`Space: Element (${result}) is found, but it isn't a canvas`);\n return result;\n }\n\n function drop(): void {\n space.destroy$.next();\n canvas.remove();\n }\n\n const space: TSpace = mergeAll(\n AbstractEntity(parts, EntityType.Space, {\n version,\n name,\n tags\n }),\n {\n getCanvasElement,\n container,\n drop,\n version,\n getCanvasSelector: (): string => canvasSelector,\n serializationInProgress$: serializationInProgress$.asObservable(),\n serialize: (): TSpaceConfig => {\n serializationInProgress$.next(true);\n const config: TSpaceConfig = spaceEntityToConfig(space, space.services);\n serializationInProgress$.next(false);\n return config;\n }\n },\n { events$ }\n );\n\n start$.pipe(skip(1), distinctUntilChanged()).subscribe((value: boolean): void => {\n if (value) return Object.values(space.loops).forEach((loop: TLoop): void => loop.start());\n\n //stop\n if (isNotDefined(space)) throw new Error('Engine is not started yet (space is not defined)');\n Object.values(space.loops).forEach((loop: TLoop): void => loop.stop());\n\n stopWatchers(space.services);\n\n return undefined;\n });\n\n const destroySub$: Subscription = space.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n container.destroy$.next();\n\n built$.complete();\n start$.complete();\n serializationInProgress$.complete();\n Object.values(services).forEach((service: TAbstractService): void => void (isDestroyable(service) && service.destroy$.next()));\n Object.values(loops).forEach((loop: TLoop): void => void (isDestroyable(loop) && loop.destroy$.next()));\n\n registry.remove(space.id);\n });\n\n // eslint-disable-next-line functional/immutable-data\n const result = Object.assign(space, parts);\n\n entitiesCreationPromise.then(() => built$.next(result));\n\n return result;\n}\n\nfunction initSpaceServices(\n canvas: TSpaceCanvas,\n container: TContainerDecorator,\n params: TSpaceParams,\n settings: TSpaceSettings = {},\n events$: Subject<TSpaceAnyEvent>\n): {\n services: TSpaceServices;\n loops: TSpaceLoops;\n} {\n events$.next({ name: SpaceEvents.BeforeBaseServicesBuilt, args: { canvas, params } });\n const baseServices: TSpaceBaseServices = buildBaseServices();\n container.canvas$.next(canvas);\n\n baseServices.scenesService.createFromList(params.scenes);\n const sceneW: TSceneWrapper = baseServices.scenesService.getActive();\n\n events$.next({ name: SpaceEvents.BeforeLoopsCreated, args: { params } });\n const loops: TSpaceLoops = createLoops(baseServices.loopService, settings);\n\n events$.next({ name: SpaceEvents.BeforeEntitiesServicesBuilt, args: { canvas, params } });\n const services: TSpaceServices = buildEntitiesServices(sceneW, canvas, container, loops, baseServices, settings);\n\n services.textService.injectStyle();\n\n return { services, loops };\n}\n\nfunction stopWatchers({ intersectionsWatcherService, mouseService }: TSpaceServices): void {\n mouseService.getMouseClickWatcherRegistry().forEach((watcher: TMouseClickWatcher): void => watcher.enabled$.next(false));\n mouseService.getMousePositionWatcherRegistry().forEach((watcher: TMousePositionWatcher): void => watcher.enabled$.next(true));\n intersectionsWatcherService.getRegistry().forEach((watcher: TAnyIntersectionsWatcher): void => void (watcher.isStarted && watcher.enabled$.next(false)));\n}\n"],"names":["Space","params","registry","settings","canvasSelector","version","name","tags","built$","BehaviorSubject","start$","events$","Subject","serializationInProgress$","canvas","getOrCreateCanvasFromSelector","ambientContext","container","getCanvasContainer","services","loops","next","SpaceEvents","BeforeBaseServicesBuilt","args","baseServices","buildBaseServices","canvas$","scenesService","createFromList","scenes","sceneW","getActive","BeforeLoopsCreated","createLoops","loopService","BeforeEntitiesServicesBuilt","buildEntitiesServices","textService","injectStyle","initSpaceServices","AfterAllServicesInitialized","entitiesCreationPromise","Promise","resolve","isDefined","entities","Object","values","length","BeforeEntitiesCreated","createEntities","CreateEntitiesStrategy","Params","then","AfterEntitiesCreated","intersectionsWatcherService","getRegistry","added$","subscribe","value","isAutoStart","isStarted","enabled$","parts","pipe","filter","space","mergeAll","AbstractEntity","EntityType","getCanvasElement","result","findDomElement","isNotDefined","Error","isCanvasElement","drop","destroy$","remove","getCanvasSelector","asObservable","serialize","config","spaceEntityToConfig","skip","distinctUntilChanged","forEach","loop","start","stop","mouseService","getMouseClickWatcherRegistry","watcher","getMousePositionWatcherRegistry","stopWatchers","destroySub$","unsubscribe","complete","service","isDestroyable","id","assign"],"mappings":"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"}
1
+ {"version":3,"file":"Space.js","sources":["../../../src/Space/Entities/Space.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractEntity, EntityType } from '@hellpig/anarchy-engine/Abstract';\nimport { ambientContext } from '@hellpig/anarchy-engine/Context';\nimport type { TContainerDecorator } from '@hellpig/anarchy-engine/Global';\nimport { getCanvasContainer } from '@hellpig/anarchy-engine/Global';\nimport type { TAnyIntersectionsWatcher } from '@hellpig/anarchy-engine/Intersections';\nimport type { TLoop } from '@hellpig/anarchy-engine/Loop';\nimport type { TMouseClickWatcher, TMousePositionWatcher } from '@hellpig/anarchy-engine/Mouse';\nimport type { TSceneWrapper } from '@hellpig/anarchy-engine/Scene';\nimport { spaceEntityToConfig } from '@hellpig/anarchy-engine/Space/Adapters';\nimport { CreateEntitiesStrategy, SpaceEvents } from '@hellpig/anarchy-engine/Space/Constants';\nimport type {\n TSpace,\n TSpaceAnyEvent,\n TSpaceBaseServices,\n TSpaceCanvas,\n TSpaceConfig,\n TSpaceLoops,\n TSpaceParams,\n TSpaceParts,\n TSpaceRegistry,\n TSpaceServices,\n TSpaceSettings\n} from '@hellpig/anarchy-engine/Space/Models';\nimport { buildBaseServices, buildEntitiesServices, createEntities, createLoops } from '@hellpig/anarchy-engine/Space/Utils';\nimport { findDomElement, getOrCreateCanvasFromSelector, isCanvasElement, isDestroyable, mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport { isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject, distinctUntilChanged, filter, skip, Subject } from 'rxjs';\n\nexport function Space(params: TSpaceParams, registry: TSpaceRegistry, settings?: TSpaceSettings): TSpace {\n const { canvasSelector, version, name, tags } = params;\n const built$: BehaviorSubject<TSpace | undefined> = new BehaviorSubject<TSpace | undefined>(undefined);\n const start$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n const events$: Subject<TSpaceAnyEvent> = new Subject<TSpaceAnyEvent>();\n const serializationInProgress$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n const canvas: TSpaceCanvas = getOrCreateCanvasFromSelector(ambientContext, canvasSelector);\n const container: TContainerDecorator = getCanvasContainer(canvas);\n\n const { services, loops } = initSpaceServices(canvas, container, params, settings, events$);\n events$.next({ name: SpaceEvents.AfterAllServicesInitialized, args: { canvas, services, loops, params } });\n\n let entitiesCreationPromise: Promise<void> = Promise.resolve();\n if (isDefined(params.entities) && Object.values(params.entities).length > 0) {\n events$.next({ name: SpaceEvents.BeforeEntitiesCreated, args: { params, services, loops } });\n entitiesCreationPromise = createEntities(params.entities, services, container, CreateEntitiesStrategy.Params).then((): void => {\n events$.next({ name: SpaceEvents.AfterEntitiesCreated, args: { params, services, loops } });\n // TODO 14-0-0: Find a better place for this\n services.intersectionsWatcherService.getRegistry().added$.subscribe(({ value }: TRegistryPack<TAnyIntersectionsWatcher>): void => {\n if (value.isAutoStart && !value.isStarted) value.enabled$.next(true);\n });\n });\n }\n\n const parts: TSpaceParts = {\n services,\n loops,\n built$: built$.pipe(filter(isDefined)),\n start$\n };\n\n function getCanvasElement(): TSpaceCanvas | never {\n const result: HTMLElement | TSpaceCanvas | null = findDomElement(ambientContext, canvasSelector);\n if (isNotDefined(result)) throw new Error(`Space: Can't find canvas element: ${result}`);\n if (!isCanvasElement(result)) throw new Error(`Space: Element (${result}) is found, but it isn't a canvas`);\n return result;\n }\n\n function drop(): void {\n space.destroy$.next();\n canvas.remove();\n }\n\n const space: TSpace = mergeAll(\n AbstractEntity(parts, EntityType.Space, {\n version,\n name,\n tags\n }),\n {\n getCanvasElement,\n container,\n drop,\n version,\n getCanvasSelector: (): string => canvasSelector,\n serializationInProgress$: serializationInProgress$.asObservable(),\n serialize: (): TSpaceConfig => {\n serializationInProgress$.next(true);\n const config: TSpaceConfig = spaceEntityToConfig(space, space.services);\n serializationInProgress$.next(false);\n return config;\n }\n },\n { events$ }\n );\n\n start$.pipe(skip(1), distinctUntilChanged()).subscribe((value: boolean): void => {\n if (value) return Object.values(space.loops).forEach((loop: TLoop): void => loop.start());\n\n //stop\n if (isNotDefined(space)) throw new Error('Engine is not started yet (space is not defined)');\n Object.values(space.loops).forEach((loop: TLoop): void => loop.stop());\n\n stopWatchers(space.services);\n\n return undefined;\n });\n\n const destroySub$: Subscription = space.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n container.destroy$.next();\n\n built$.complete();\n start$.complete();\n serializationInProgress$.complete();\n Object.values(services).forEach((service: TAbstractService): void => void (isDestroyable(service) && service.destroy$.next()));\n Object.values(loops).forEach((loop: TLoop): void => void (isDestroyable(loop) && loop.destroy$.next()));\n\n registry.remove(space.id);\n });\n\n // eslint-disable-next-line functional/immutable-data\n const result = Object.assign(space, parts);\n\n entitiesCreationPromise.then(() => built$.next(result));\n\n return result;\n}\n\nfunction initSpaceServices(\n canvas: TSpaceCanvas,\n container: TContainerDecorator,\n params: TSpaceParams,\n settings: TSpaceSettings = {},\n events$: Subject<TSpaceAnyEvent>\n): {\n services: TSpaceServices;\n loops: TSpaceLoops;\n} {\n events$.next({ name: SpaceEvents.BeforeBaseServicesBuilt, args: { canvas, params } });\n const baseServices: TSpaceBaseServices = buildBaseServices();\n container.canvas$.next(canvas);\n\n baseServices.scenesService.createFromList(params.scenes);\n const sceneW: TSceneWrapper = baseServices.scenesService.getActive();\n\n events$.next({ name: SpaceEvents.BeforeLoopsCreated, args: { params } });\n const loops: TSpaceLoops = createLoops(baseServices.loopService, settings);\n\n events$.next({ name: SpaceEvents.BeforeEntitiesServicesBuilt, args: { canvas, params } });\n const services: TSpaceServices = buildEntitiesServices(sceneW, canvas, container, loops, baseServices, settings);\n\n services.textService.injectStyle();\n\n return { services, loops };\n}\n\nfunction stopWatchers({ intersectionsWatcherService, mouseService }: TSpaceServices): void {\n mouseService.getMouseClickWatcherRegistry().forEach((watcher: TMouseClickWatcher): void => watcher.enabled$.next(false));\n mouseService.getMousePositionWatcherRegistry().forEach((watcher: TMousePositionWatcher): void => watcher.enabled$.next(true));\n intersectionsWatcherService.getRegistry().forEach((watcher: TAnyIntersectionsWatcher): void => void (watcher.isStarted && watcher.enabled$.next(false)));\n}\n"],"names":["Space","params","registry","settings","canvasSelector","version","name","tags","built$","BehaviorSubject","start$","events$","Subject","serializationInProgress$","canvas","getOrCreateCanvasFromSelector","ambientContext","container","getCanvasContainer","services","loops","next","SpaceEvents","BeforeBaseServicesBuilt","args","baseServices","buildBaseServices","canvas$","scenesService","createFromList","scenes","sceneW","getActive","BeforeLoopsCreated","createLoops","loopService","BeforeEntitiesServicesBuilt","buildEntitiesServices","textService","injectStyle","initSpaceServices","AfterAllServicesInitialized","entitiesCreationPromise","Promise","resolve","isDefined","entities","Object","values","length","BeforeEntitiesCreated","createEntities","CreateEntitiesStrategy","Params","then","AfterEntitiesCreated","intersectionsWatcherService","getRegistry","added$","subscribe","value","isAutoStart","isStarted","enabled$","parts","pipe","filter","space","mergeAll","AbstractEntity","EntityType","getCanvasElement","result","findDomElement","isNotDefined","Error","isCanvasElement","drop","destroy$","remove","getCanvasSelector","asObservable","serialize","config","spaceEntityToConfig","skip","distinctUntilChanged","forEach","loop","start","stop","mouseService","getMouseClickWatcherRegistry","watcher","getMousePositionWatcherRegistry","stopWatchers","destroySub$","unsubscribe","complete","service","isDestroyable","id","assign"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpaceFromConfig.js","sources":["../../../src/Space/Entities/SpaceFromConfig.ts"],"sourcesContent":["import { CreateEntitiesStrategy, SpaceEvents } from '@Anarchy/Engine/Space/Constants';\nimport type { TSpace, TSpaceConfig, TSpaceParams, TSpaceRegistry, TSpaceSettings } from '@Anarchy/Engine/Space/Models';\nimport { createEntities, loadResourcesFromConfig } from '@Anarchy/Engine/Space/Utils';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport type { Observable, Subscription } from 'rxjs';\nimport { BehaviorSubject, exhaustMap, filter, takeUntil } from 'rxjs';\n\nimport { Space } from './Space';\n\nexport function SpaceFromConfig(params: TSpaceParams, config: TSpaceConfig, registry: TSpaceRegistry, settings?: TSpaceSettings): TSpace {\n const builtFromConfig$: BehaviorSubject<TSpace | undefined> = new BehaviorSubject<TSpace | undefined>(undefined);\n\n const space: TSpace = Space(params, registry, settings);\n let oldBuilt$: Observable<TSpace> = space.built$;\n // eslint-disable-next-line functional/immutable-data\n (space as TWriteable<TSpace>).built$ = builtFromConfig$.pipe(filter(isDefined));\n\n oldBuilt$\n .pipe(\n exhaustMap(async (): Promise<unknown> => {\n space.events$.next({ name: SpaceEvents.BeforeResourcesLoaded, args: { config, services: space.services, loops: space.loops } });\n await loadResourcesFromConfig(config.resources, space.services);\n\n space.events$.next({ name: SpaceEvents.BeforeEntitiesCreated, args: { config, services: space.services, loops: space.loops } });\n await createEntities(config.entities, space.services, space.container, CreateEntitiesStrategy.Config);\n space.events$.next({ name: SpaceEvents.AfterEntitiesCreated, args: { config, services: space.services, loops: space.loops } });\n\n return;\n }),\n takeUntil(space.destroy$)\n )\n .subscribe((): void => {\n builtFromConfig$.next(space);\n oldBuilt$ = null as any;\n // space.built$ = builtFromConfig$.pipe(filter(isDefined))\n });\n\n const destroySub$: Subscription = space.destroy$.subscribe((): void => {\n oldBuilt$ = null as any;\n\n destroySub$.unsubscribe();\n\n builtFromConfig$.complete();\n });\n\n // return Object.assign(space, { built$: builtFromConfig$ });\n return space;\n}\n"],"names":["SpaceFromConfig","params","config","registry","settings","builtFromConfig$","BehaviorSubject","space","Space","oldBuilt$","built$","pipe","filter","isDefined","exhaustMap","async","events$","next","name","SpaceEvents","BeforeResourcesLoaded","args","services","loops","loadResourcesFromConfig","resources","BeforeEntitiesCreated","createEntities","entities","container","CreateEntitiesStrategy","Config","AfterEntitiesCreated","takeUntil","destroy$","subscribe","destroySub$","unsubscribe","complete"],"mappings":"6sBAUO,SAASA,gBAAgBC,OAAsBC,OAAsBC,SAA0BC,UACpG,MAAMC,iBAAwD,IAAIC,wBAE5DC,MAAgBC,MAAMP,OAAQE,SAAUC,UAC9C,IAAIK,UAAgCF,MAAMG,OAEzCH,MAA6BG,OAASL,iBAAiBM,KAAKC,OAAOC,YAEpEJ,UACGE,KACCG,WAAWC,UACTR,MAAMS,QAAQC,KAAK,CAAEC,KAAMC,YAAYC,sBAAuBC,KAAM,CAAEnB,cAAQoB,SAAUf,MAAMe,SAAUC,MAAOhB,MAAMgB,eAC/GC,wBAAwBtB,OAAOuB,UAAWlB,MAAMe,UAEtDf,MAAMS,QAAQC,KAAK,CAAEC,KAAMC,YAAYO,sBAAuBL,KAAM,CAAEnB,cAAQoB,SAAUf,MAAMe,SAAUC,MAAOhB,MAAMgB,eAC/GI,eAAezB,OAAO0B,SAAUrB,MAAMe,SAAUf,MAAMsB,UAAWC,uBAAuBC,QAC9FxB,MAAMS,QAAQC,KAAK,CAAEC,KAAMC,YAAYa,qBAAsBX,KAAM,CAAEnB,cAAQoB,SAAUf,MAAMe,SAAUC,MAAOhB,MAAMgB,WAItHU,UAAU1B,MAAM2B,WAEjBC,UAAU,KACT9B,iBAAiBY,KAAKV,OACtBE,UAAY,OAIhB,MAAM2B,YAA4B7B,MAAM2B,SAASC,UAAU,KACzD1B,UAAY,KAEZ2B,YAAYC,cAEZhC,iBAAiBiC,aAInB,OAAO/B,KACT"}
1
+ {"version":3,"file":"SpaceFromConfig.js","sources":["../../../src/Space/Entities/SpaceFromConfig.ts"],"sourcesContent":["import { CreateEntitiesStrategy, SpaceEvents } from '@hellpig/anarchy-engine/Space/Constants';\nimport type { TSpace, TSpaceConfig, TSpaceParams, TSpaceRegistry, TSpaceSettings } from '@hellpig/anarchy-engine/Space/Models';\nimport { createEntities, loadResourcesFromConfig } from '@hellpig/anarchy-engine/Space/Utils';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Observable, Subscription } from 'rxjs';\nimport { BehaviorSubject, exhaustMap, filter, takeUntil } from 'rxjs';\n\nimport { Space } from './Space';\n\nexport function SpaceFromConfig(params: TSpaceParams, config: TSpaceConfig, registry: TSpaceRegistry, settings?: TSpaceSettings): TSpace {\n const builtFromConfig$: BehaviorSubject<TSpace | undefined> = new BehaviorSubject<TSpace | undefined>(undefined);\n\n const space: TSpace = Space(params, registry, settings);\n let oldBuilt$: Observable<TSpace> = space.built$;\n // eslint-disable-next-line functional/immutable-data\n (space as TWriteable<TSpace>).built$ = builtFromConfig$.pipe(filter(isDefined));\n\n oldBuilt$\n .pipe(\n exhaustMap(async (): Promise<unknown> => {\n space.events$.next({ name: SpaceEvents.BeforeResourcesLoaded, args: { config, services: space.services, loops: space.loops } });\n await loadResourcesFromConfig(config.resources, space.services);\n\n space.events$.next({ name: SpaceEvents.BeforeEntitiesCreated, args: { config, services: space.services, loops: space.loops } });\n await createEntities(config.entities, space.services, space.container, CreateEntitiesStrategy.Config);\n space.events$.next({ name: SpaceEvents.AfterEntitiesCreated, args: { config, services: space.services, loops: space.loops } });\n\n return;\n }),\n takeUntil(space.destroy$)\n )\n .subscribe((): void => {\n builtFromConfig$.next(space);\n oldBuilt$ = null as any;\n // space.built$ = builtFromConfig$.pipe(filter(isDefined))\n });\n\n const destroySub$: Subscription = space.destroy$.subscribe((): void => {\n oldBuilt$ = null as any;\n\n destroySub$.unsubscribe();\n\n builtFromConfig$.complete();\n });\n\n // return Object.assign(space, { built$: builtFromConfig$ });\n return space;\n}\n"],"names":["SpaceFromConfig","params","config","registry","settings","builtFromConfig$","BehaviorSubject","space","Space","oldBuilt$","built$","pipe","filter","isDefined","exhaustMap","async","events$","next","name","SpaceEvents","BeforeResourcesLoaded","args","services","loops","loadResourcesFromConfig","resources","BeforeEntitiesCreated","createEntities","entities","container","CreateEntitiesStrategy","Config","AfterEntitiesCreated","takeUntil","destroy$","subscribe","destroySub$","unsubscribe","complete"],"mappings":"6sBAUO,SAASA,gBAAgBC,OAAsBC,OAAsBC,SAA0BC,UACpG,MAAMC,iBAAwD,IAAIC,wBAE5DC,MAAgBC,MAAMP,OAAQE,SAAUC,UAC9C,IAAIK,UAAgCF,MAAMG,OAEzCH,MAA6BG,OAASL,iBAAiBM,KAAKC,OAAOC,YAEpEJ,UACGE,KACCG,WAAWC,UACTR,MAAMS,QAAQC,KAAK,CAAEC,KAAMC,YAAYC,sBAAuBC,KAAM,CAAEnB,cAAQoB,SAAUf,MAAMe,SAAUC,MAAOhB,MAAMgB,eAC/GC,wBAAwBtB,OAAOuB,UAAWlB,MAAMe,UAEtDf,MAAMS,QAAQC,KAAK,CAAEC,KAAMC,YAAYO,sBAAuBL,KAAM,CAAEnB,cAAQoB,SAAUf,MAAMe,SAAUC,MAAOhB,MAAMgB,eAC/GI,eAAezB,OAAO0B,SAAUrB,MAAMe,SAAUf,MAAMsB,UAAWC,uBAAuBC,QAC9FxB,MAAMS,QAAQC,KAAK,CAAEC,KAAMC,YAAYa,qBAAsBX,KAAM,CAAEnB,cAAQoB,SAAUf,MAAMe,SAAUC,MAAOhB,MAAMgB,WAItHU,UAAU1B,MAAM2B,WAEjBC,UAAU,KACT9B,iBAAiBY,KAAKV,OACtBE,UAAY,OAIhB,MAAM2B,YAA4B7B,MAAM2B,SAASC,UAAU,KACzD1B,UAAY,KAEZ2B,YAAYC,cAEZhC,iBAAiBiC,aAInB,OAAO/B,KACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpaceFactory.js","sources":["../../../src/Space/Factories/SpaceFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { spaceConfigToParams } from '@Anarchy/Engine/Space/Adapters';\nimport { Space, SpaceFromConfig } from '@Anarchy/Engine/Space/Entities';\nimport type { TSpace, TSpaceFactory, TSpaceFactoryDependencies, TSpaceParams, TSpaceSettings } from '@Anarchy/Engine/Space/Models';\nimport { isDefined } from '@Anarchy/Shared/Utils';\n\nfunction create(params: TSpaceParams, { config, registry }: TSpaceFactoryDependencies, settings?: TSpaceSettings): TSpace | never {\n if (isDefined(config) && Object.keys.length !== 0) return SpaceFromConfig(params, config, registry, settings);\n return Space(params, registry, settings);\n}\n\nexport function SpaceFactory(): TSpaceFactory {\n const factory: TReactiveFactory<TSpace, TSpaceParams, TSpaceFactoryDependencies, TSpaceSettings> = ReactiveFactory(FactoryType.Space, create);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: spaceConfigToParams });\n}\n"],"names":["create","params","config","registry","settings","isDefined","Object","keys","length","SpaceFromConfig","Space","SpaceFactory","factory","ReactiveFactory","FactoryType","assign","configToParams","spaceConfigToParams"],"mappings":"0XAOA,SAASA,OAAOC,QAAsBC,OAAEA,OAAAC,SAAQA,UAAuCC,UACrF,OAAIC,UAAUH,SAAkC,IAAvBI,OAAOC,KAAKC,OAAqBC,gBAAgBR,OAAQC,OAAQC,SAAUC,UAC7FM,MAAMT,OAAQE,SAAUC,SACjC,CAEO,SAASO,eACd,MAAMC,QAA6FC,gBAAgBC,YAAYJ,MAAOV,QAGtI,OAAOM,OAAOS,OAAOH,QAAS,CAAEI,eAAgBC,qBAClD"}
1
+ {"version":3,"file":"SpaceFactory.js","sources":["../../../src/Space/Factories/SpaceFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { spaceConfigToParams } from '@hellpig/anarchy-engine/Space/Adapters';\nimport { Space, SpaceFromConfig } from '@hellpig/anarchy-engine/Space/Entities';\nimport type { TSpace, TSpaceFactory, TSpaceFactoryDependencies, TSpaceParams, TSpaceSettings } from '@hellpig/anarchy-engine/Space/Models';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\n\nfunction create(params: TSpaceParams, { config, registry }: TSpaceFactoryDependencies, settings?: TSpaceSettings): TSpace | never {\n if (isDefined(config) && Object.keys.length !== 0) return SpaceFromConfig(params, config, registry, settings);\n return Space(params, registry, settings);\n}\n\nexport function SpaceFactory(): TSpaceFactory {\n const factory: TReactiveFactory<TSpace, TSpaceParams, TSpaceFactoryDependencies, TSpaceSettings> = ReactiveFactory(FactoryType.Space, create);\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: spaceConfigToParams });\n}\n"],"names":["create","params","config","registry","settings","isDefined","Object","keys","length","SpaceFromConfig","Space","SpaceFactory","factory","ReactiveFactory","FactoryType","assign","configToParams","spaceConfigToParams"],"mappings":"0XAOA,SAASA,OAAOC,QAAsBC,OAAEA,OAAAC,SAAQA,UAAuCC,UACrF,OAAIC,UAAUH,SAAkC,IAAvBI,OAAOC,KAAKC,OAAqBC,gBAAgBR,OAAQC,OAAQC,SAAUC,UAC7FM,MAAMT,OAAQE,SAAUC,SACjC,CAEO,SAASO,eACd,MAAMC,QAA6FC,gBAAgBC,YAAYJ,MAAOV,QAGtI,OAAOM,OAAOS,OAAOH,QAAS,CAAEI,eAAgBC,qBAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpaceRegistry.js","sources":["../../../src/Space/Registries/SpaceRegistry.ts"],"sourcesContent":["import { AbstractEntityRegistry, RegistryType } from '@Anarchy/Engine/Abstract';\nimport type { TSpace, TSpaceRegistry } from '@Anarchy/Engine/Space/Models';\n\nexport function SpaceRegistry(): TSpaceRegistry {\n return AbstractEntityRegistry<TSpace>(RegistryType.Space);\n}\n"],"names":["SpaceRegistry","AbstractEntityRegistry","RegistryType","Space"],"mappings":"2JAGO,SAASA,gBACd,OAAOC,uBAA+BC,aAAaC,MACrD"}
1
+ {"version":3,"file":"SpaceRegistry.js","sources":["../../../src/Space/Registries/SpaceRegistry.ts"],"sourcesContent":["import { AbstractEntityRegistry, RegistryType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TSpace, TSpaceRegistry } from '@hellpig/anarchy-engine/Space/Models';\n\nexport function SpaceRegistry(): TSpaceRegistry {\n return AbstractEntityRegistry<TSpace>(RegistryType.Space);\n}\n"],"names":["SpaceRegistry","AbstractEntityRegistry","RegistryType","Space"],"mappings":"2JAGO,SAASA,gBACd,OAAOC,uBAA+BC,aAAaC,MACrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpaceService.js","sources":["../../../src/Space/Services/SpaceService.ts"],"sourcesContent":["import type { TAbstractService } from '@Anarchy/Engine/Abstract';\nimport { AbstractService } from '@Anarchy/Engine/Abstract';\nimport type { TDisposable } from '@Anarchy/Engine/Mixins';\nimport { withCreateServiceMixin, withFactoryService, withRegistryService, withSerializableEntities } from '@Anarchy/Engine/Mixins';\nimport { SpaceFactory } from '@Anarchy/Engine/Space/Factories';\nimport type {\n TSpace,\n TSpaceConfig,\n TSpaceFactory,\n TSpaceRegistry,\n TSpaceService,\n TSpaceServiceWithCreate,\n TSpaceServiceWithFactory,\n TSpaceServiceWithRegistry,\n TSpaceSettings\n} from '@Anarchy/Engine/Space/Models';\nimport { SpaceRegistry } from '@Anarchy/Engine/Space/Registries';\nimport { validateConfig, validateSpacesDoNotUseSameCanvas } from '@Anarchy/Engine/Space/Validators';\nimport { mergeAll } from '@Anarchy/Engine/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function SpaceService(factory: TSpaceFactory, registry: TSpaceRegistry): TSpaceService {\n const factorySub$: Subscription = factory.entityCreated$.subscribe((space: TSpace): void => {\n if (!validateSpacesDoNotUseSameCanvas(registry, space)) throw new Error('SpaceService: Spaces must not use the same canvas');\n registry.add(space);\n });\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, factorySub$];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const createFromConfig = (spaces: ReadonlyArray<TSpaceConfig>, settings?: TSpaceSettings): ReadonlyArray<TSpace> => {\n return spaces.map((config: TSpaceConfig): TSpace => {\n validateConfig(config);\n return factory.create(factory.configToParams(config), { config, registry }, settings);\n });\n };\n\n const withCreateService: TSpaceServiceWithCreate = withCreateServiceMixin(factory, { registry });\n const withFactory: TSpaceServiceWithFactory = withFactoryService(factory);\n const withRegistry: TSpaceServiceWithRegistry = withRegistryService(registry);\n\n return mergeAll(abstractService, withCreateService, withFactory, withRegistry, withSerializableEntities<TSpace, TSpaceConfig, undefined>(registry), { createFromConfig });\n}\n\nexport const spaceService: TSpaceService = SpaceService(SpaceFactory(), SpaceRegistry());\n"],"names":["SpaceService","factory","registry","factorySub$","entityCreated$","subscribe","space","validateSpacesDoNotUseSameCanvas","Error","add","abstractService","AbstractService","withCreateService","withCreateServiceMixin","withFactory","withFactoryService","withRegistry","withRegistryService","mergeAll","withSerializableEntities","createFromConfig","spaces","settings","map","config","validateConfig","create","configToParams","spaceService","SpaceFactory","SpaceRegistry"],"mappings":"orBAqBO,SAASA,aAAaC,QAAwBC,UACnD,MAAMC,YAA4BF,QAAQG,eAAeC,UAAWC,QAClE,IAAKC,iCAAiCL,SAAUI,OAAQ,MAAM,IAAIE,MAAM,qDACxEN,SAASO,IAAIH,SAGTI,gBAAoCC,gBADK,CAACT,SAAUD,QAASE,cAU7DS,kBAA6CC,uBAAuBZ,QAAS,CAAEC,oBAC/EY,YAAwCC,mBAAmBd,SAC3De,aAA0CC,oBAAoBf,UAEpE,OAAOgB,SAASR,gBAAiBE,kBAAmBE,YAAaE,aAAcG,yBAA0DjB,UAAW,CAAEkB,iBAX7H,CAACC,OAAqCC,WACtDD,OAAOE,IAAKC,SACjBC,eAAeD,QACRvB,QAAQyB,OAAOzB,QAAQ0B,eAAeH,QAAS,CAAEA,cAAQtB,mBAAYoB,aASlF,CAEO,MAAMM,aAA8B5B,aAAa6B,eAAgBC"}
1
+ {"version":3,"file":"SpaceService.js","sources":["../../../src/Space/Services/SpaceService.ts"],"sourcesContent":["import type { TAbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport type { TDisposable } from '@hellpig/anarchy-engine/Mixins';\nimport { withCreateServiceMixin, withFactoryService, withRegistryService, withSerializableEntities } from '@hellpig/anarchy-engine/Mixins';\nimport { SpaceFactory } from '@hellpig/anarchy-engine/Space/Factories';\nimport type {\n TSpace,\n TSpaceConfig,\n TSpaceFactory,\n TSpaceRegistry,\n TSpaceService,\n TSpaceServiceWithCreate,\n TSpaceServiceWithFactory,\n TSpaceServiceWithRegistry,\n TSpaceSettings\n} from '@hellpig/anarchy-engine/Space/Models';\nimport { SpaceRegistry } from '@hellpig/anarchy-engine/Space/Registries';\nimport { validateConfig, validateSpacesDoNotUseSameCanvas } from '@hellpig/anarchy-engine/Space/Validators';\nimport { mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function SpaceService(factory: TSpaceFactory, registry: TSpaceRegistry): TSpaceService {\n const factorySub$: Subscription = factory.entityCreated$.subscribe((space: TSpace): void => {\n if (!validateSpacesDoNotUseSameCanvas(registry, space)) throw new Error('SpaceService: Spaces must not use the same canvas');\n registry.add(space);\n });\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, factorySub$];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const createFromConfig = (spaces: ReadonlyArray<TSpaceConfig>, settings?: TSpaceSettings): ReadonlyArray<TSpace> => {\n return spaces.map((config: TSpaceConfig): TSpace => {\n validateConfig(config);\n return factory.create(factory.configToParams(config), { config, registry }, settings);\n });\n };\n\n const withCreateService: TSpaceServiceWithCreate = withCreateServiceMixin(factory, { registry });\n const withFactory: TSpaceServiceWithFactory = withFactoryService(factory);\n const withRegistry: TSpaceServiceWithRegistry = withRegistryService(registry);\n\n return mergeAll(abstractService, withCreateService, withFactory, withRegistry, withSerializableEntities<TSpace, TSpaceConfig, undefined>(registry), { createFromConfig });\n}\n\nexport const spaceService: TSpaceService = SpaceService(SpaceFactory(), SpaceRegistry());\n"],"names":["SpaceService","factory","registry","factorySub$","entityCreated$","subscribe","space","validateSpacesDoNotUseSameCanvas","Error","add","abstractService","AbstractService","withCreateService","withCreateServiceMixin","withFactory","withFactoryService","withRegistry","withRegistryService","mergeAll","withSerializableEntities","createFromConfig","spaces","settings","map","config","validateConfig","create","configToParams","spaceService","SpaceFactory","SpaceRegistry"],"mappings":"orBAqBO,SAASA,aAAaC,QAAwBC,UACnD,MAAMC,YAA4BF,QAAQG,eAAeC,UAAWC,QAClE,IAAKC,iCAAiCL,SAAUI,OAAQ,MAAM,IAAIE,MAAM,qDACxEN,SAASO,IAAIH,SAGTI,gBAAoCC,gBADK,CAACT,SAAUD,QAASE,cAU7DS,kBAA6CC,uBAAuBZ,QAAS,CAAEC,oBAC/EY,YAAwCC,mBAAmBd,SAC3De,aAA0CC,oBAAoBf,UAEpE,OAAOgB,SAASR,gBAAiBE,kBAAmBE,YAAaE,aAAcG,yBAA0DjB,UAAW,CAAEkB,iBAX7H,CAACC,OAAqCC,WACtDD,OAAOE,IAAKC,SACjBC,eAAeD,QACRvB,QAAQyB,OAAOzB,QAAQ0B,eAAeH,QAAS,CAAEA,cAAQtB,mBAAYoB,aASlF,CAEO,MAAMM,aAA8B5B,aAAa6B,eAAgBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasUtils.js","sources":["../../../src/Space/Utils/CanvasUtils.ts"],"sourcesContent":["import type { TContainerDecorator } from '@Anarchy/Engine/Global';\nimport type { TMilliseconds } from '@Anarchy/Engine/Math';\nimport { isDefined } from '@Anarchy/Shared/Utils';\n\nexport function waitForCanvasGetSize(container: TContainerDecorator, timeoutMs: TMilliseconds = 10_000 as TMilliseconds): Promise<void> {\n return new Promise((resolve, reject): void => {\n const start: number = performance.now();\n\n const check = (): void => {\n const canvas: HTMLCanvasElement | undefined = container.canvas$.value;\n const elapsed: number = performance.now() - start;\n\n if (isDefined(canvas) && canvas.clientWidth > 0 && canvas.clientHeight > 0) {\n resolve();\n } else if (elapsed > timeoutMs) {\n reject(new Error(`[SPACE]: Canvas size remains 0 after ${timeoutMs}ms.`));\n } else {\n requestAnimationFrame(check);\n }\n };\n\n check();\n });\n}\n\nexport const nextAnimationFrame = (): Promise<unknown> => new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve)));\n"],"names":["waitForCanvasGetSize","container","timeoutMs","Promise","resolve","reject","start","performance","now","check","canvas","canvas$","value","elapsed","isDefined","clientWidth","clientHeight","Error","requestAnimationFrame","nextAnimationFrame"],"mappings":"6EAIO,SAASA,qBAAqBC,UAAgCC,UAA2B,KAC9F,OAAO,IAAIC,QAAQ,CAACC,QAASC,UAC3B,MAAMC,MAAgBC,YAAYC,MAE5BC,MAAQ,KACZ,MAAMC,OAAwCT,UAAUU,QAAQC,MAC1DC,QAAkBN,YAAYC,MAAQF,MAExCQ,UAAUJ,SAAWA,OAAOK,YAAc,GAAKL,OAAOM,aAAe,EACvEZ,UACSS,QAAUX,UACnBG,OAAO,IAAIY,MAAM,wCAAwCf,iBAEzDgB,sBAAsBT,QAI1BA,SAEJ,CAEO,MAAMU,mBAAqB,IAAwB,IAAIhB,QAASC,SAAYc,sBAAsB,IAAMA,sBAAsBd"}
1
+ {"version":3,"file":"CanvasUtils.js","sources":["../../../src/Space/Utils/CanvasUtils.ts"],"sourcesContent":["import type { TContainerDecorator } from '@hellpig/anarchy-engine/Global';\nimport type { TMilliseconds } from '@hellpig/anarchy-engine/Math';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function waitForCanvasGetSize(container: TContainerDecorator, timeoutMs: TMilliseconds = 10_000 as TMilliseconds): Promise<void> {\n return new Promise((resolve, reject): void => {\n const start: number = performance.now();\n\n const check = (): void => {\n const canvas: HTMLCanvasElement | undefined = container.canvas$.value;\n const elapsed: number = performance.now() - start;\n\n if (isDefined(canvas) && canvas.clientWidth > 0 && canvas.clientHeight > 0) {\n resolve();\n } else if (elapsed > timeoutMs) {\n reject(new Error(`[SPACE]: Canvas size remains 0 after ${timeoutMs}ms.`));\n } else {\n requestAnimationFrame(check);\n }\n };\n\n check();\n });\n}\n\nexport const nextAnimationFrame = (): Promise<unknown> => new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve)));\n"],"names":["waitForCanvasGetSize","container","timeoutMs","Promise","resolve","reject","start","performance","now","check","canvas","canvas$","value","elapsed","isDefined","clientWidth","clientHeight","Error","requestAnimationFrame","nextAnimationFrame"],"mappings":"6EAIO,SAASA,qBAAqBC,UAAgCC,UAA2B,KAC9F,OAAO,IAAIC,QAAQ,CAACC,QAASC,UAC3B,MAAMC,MAAgBC,YAAYC,MAE5BC,MAAQ,KACZ,MAAMC,OAAwCT,UAAUU,QAAQC,MAC1DC,QAAkBN,YAAYC,MAAQF,MAExCQ,UAAUJ,SAAWA,OAAOK,YAAc,GAAKL,OAAOM,aAAe,EACvEZ,UACSS,QAAUX,UACnBG,OAAO,IAAIY,MAAM,wCAAwCf,iBAEzDgB,sBAAsBT,QAI1BA,SAEJ,CAEO,MAAMU,mBAAqB,IAAwB,IAAIhB,QAASC,SAAYc,sBAAsB,IAAMA,sBAAsBd"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateEntitiesUtils.js","sources":["../../../src/Space/Utils/CreateEntitiesUtils.ts"],"sourcesContent":["import type { TContainerDecorator } from '@Anarchy/Engine/Global';\nimport { CreateEntitiesStrategy } from '@Anarchy/Engine/Space/Constants';\nimport type { TSpaceConfigEntities, TSpaceParamsEntities, TSpaceServices } from '@Anarchy/Engine/Space/Models';\nimport { isDefined } from '@Anarchy/Shared/Utils';\n\nimport { nextAnimationFrame, waitForCanvasGetSize } from './CanvasUtils';\n\nexport async function createEntities(\n entities: TSpaceConfigEntities | TSpaceParamsEntities,\n services: TSpaceServices,\n container: TContainerDecorator,\n strategy: CreateEntitiesStrategy\n): Promise<void | never> {\n switch (strategy) {\n case CreateEntitiesStrategy.Config:\n await createEntitiesFromConfigs(entities as TSpaceConfigEntities, services, container);\n break;\n case CreateEntitiesStrategy.Params:\n await createEntitiesFromParams(entities as TSpaceParamsEntities, services, container);\n break;\n default:\n throw new Error(`Space: Unknown entities creation strategy: ${strategy}`);\n }\n}\n\n// TODO a lot of code duplication here, but doesn't worth to refactor right now\nexport async function createEntitiesFromConfigs(entities: TSpaceConfigEntities, services: TSpaceServices, container: TContainerDecorator): Promise<void> {\n const { actors, audio, cameras, spatialGrids, controls, intersections, lights, materials, models3d, renderers, envMaps, fogs, fsm, texts, physics, particles } = entities;\n\n const {\n actorService,\n audioService,\n cameraService,\n controlsService,\n envMapService,\n fogService,\n fsmService,\n intersectionsWatcherService,\n lightService,\n loopService,\n materialService,\n models3dService,\n mouseService,\n particlesService,\n physicsBodyService,\n physicsWorldService,\n rendererService,\n spatialGridService,\n textService\n } = services;\n\n await waitForCanvasGetSize(container);\n await nextAnimationFrame();\n\n rendererService.createFromConfig(renderers);\n\n // better to create FSMs before any other entities\n fsmService.createSourceFromConfig(fsm);\n\n //spatial grids should be created before actors\n spatialGridService.createFromConfig(spatialGrids);\n fogService.createFromConfig(fogs);\n envMapService.createFromConfig(envMaps);\n\n materialService.createFromConfig(materials);\n\n models3dService.createFromConfig(models3d);\n audioService.createFromConfig(audio);\n\n if (isDefined(physics.world)) {\n physicsWorldService.createWorld(physics.world);\n if (isDefined(physics.bodies)) physicsBodyService.createFromConfig(physics.bodies);\n }\n\n cameraService.createFromConfig(cameras);\n actorService.createFromConfig(actors);\n\n textService.createText2dRenderer(container);\n textService.createText3dRenderer(container);\n textService.createFromConfig(texts);\n\n controlsService.createFromConfig(controls);\n lightService.createFromConfig(lights);\n particlesService.createFromConfig(particles);\n\n intersectionsWatcherService.createFromConfig(intersections, mouseService, cameraService, actorService, loopService);\n}\n\nexport async function createEntitiesFromParams(entities: TSpaceParamsEntities, services: TSpaceServices, container: TContainerDecorator): Promise<void> {\n const { actors, audio, cameras, spatialGrids, controls, intersections, lights, materials, models3d, renderers, envMaps, fogs, fsm, texts, physics, particles } = entities;\n\n const {\n actorService,\n audioService,\n cameraService,\n controlsService,\n envMapService,\n fogService,\n fsmService,\n intersectionsWatcherService,\n lightService,\n materialService,\n models3dService,\n particlesService,\n physicsBodyService,\n physicsWorldService,\n rendererService,\n spatialGridService,\n textService\n } = services;\n\n await waitForCanvasGetSize(container);\n await nextAnimationFrame();\n\n if (isDefined(renderers)) rendererService.createFromList(renderers);\n\n // better to create FSMs before any other entities\n if (isDefined(fsm)) fsmService.createSourceFromList(fsm);\n\n //spatial grids should be created before actors\n if (isDefined(spatialGrids)) spatialGridService.createFromList(spatialGrids);\n if (isDefined(fogs)) fogService.createFromList(fogs);\n if (isDefined(envMaps)) envMapService.createFromList(envMaps);\n if (isDefined(materials)) materialService.createFromList(materials);\n if (isDefined(models3d)) models3dService.createFromList(models3d);\n if (isDefined(audio)) audioService.createFromList(audio);\n\n if (isDefined(physics?.world)) {\n physicsWorldService.createWorld(physics.world);\n if (isDefined(physics.bodies)) physicsBodyService.createFromList(physics.bodies);\n }\n\n if (isDefined(cameras)) cameraService.createFromList(cameras);\n if (isDefined(actors)) actorService.createFromList(actors);\n\n textService.createText2dRenderer(container);\n textService.createText3dRenderer(container);\n if (isDefined(texts)) textService.createFromList(texts);\n\n if (isDefined(controls)) controlsService.createFromList(controls);\n if (isDefined(lights)) lightService.createFromList(lights);\n if (isDefined(particles)) particlesService.createFromList(particles);\n\n if (isDefined(intersections)) intersectionsWatcherService.createFromList(intersections);\n}\n"],"names":["async","createEntities","entities","services","container","strategy","CreateEntitiesStrategy","Config","createEntitiesFromConfigs","Params","createEntitiesFromParams","Error","actors","audio","cameras","spatialGrids","controls","intersections","lights","materials","models3d","renderers","envMaps","fogs","fsm","texts","physics","particles","actorService","audioService","cameraService","controlsService","envMapService","fogService","fsmService","intersectionsWatcherService","lightService","loopService","materialService","models3dService","mouseService","particlesService","physicsBodyService","physicsWorldService","rendererService","spatialGridService","textService","waitForCanvasGetSize","nextAnimationFrame","createFromConfig","createSourceFromConfig","isDefined","world","createWorld","bodies","createText2dRenderer","createText3dRenderer","createFromList","createSourceFromList"],"mappings":"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"}
1
+ {"version":3,"file":"CreateEntitiesUtils.js","sources":["../../../src/Space/Utils/CreateEntitiesUtils.ts"],"sourcesContent":["import type { TContainerDecorator } from '@hellpig/anarchy-engine/Global';\nimport { CreateEntitiesStrategy } from '@hellpig/anarchy-engine/Space/Constants';\nimport type { TSpaceConfigEntities, TSpaceParamsEntities, TSpaceServices } from '@hellpig/anarchy-engine/Space/Models';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\n\nimport { nextAnimationFrame, waitForCanvasGetSize } from './CanvasUtils';\n\nexport async function createEntities(\n entities: TSpaceConfigEntities | TSpaceParamsEntities,\n services: TSpaceServices,\n container: TContainerDecorator,\n strategy: CreateEntitiesStrategy\n): Promise<void | never> {\n switch (strategy) {\n case CreateEntitiesStrategy.Config:\n await createEntitiesFromConfigs(entities as TSpaceConfigEntities, services, container);\n break;\n case CreateEntitiesStrategy.Params:\n await createEntitiesFromParams(entities as TSpaceParamsEntities, services, container);\n break;\n default:\n throw new Error(`Space: Unknown entities creation strategy: ${strategy}`);\n }\n}\n\n// TODO a lot of code duplication here, but doesn't worth to refactor right now\nexport async function createEntitiesFromConfigs(entities: TSpaceConfigEntities, services: TSpaceServices, container: TContainerDecorator): Promise<void> {\n const { actors, audio, cameras, spatialGrids, controls, intersections, lights, materials, models3d, renderers, envMaps, fogs, fsm, texts, physics, particles } = entities;\n\n const {\n actorService,\n audioService,\n cameraService,\n controlsService,\n envMapService,\n fogService,\n fsmService,\n intersectionsWatcherService,\n lightService,\n loopService,\n materialService,\n models3dService,\n mouseService,\n particlesService,\n physicsBodyService,\n physicsWorldService,\n rendererService,\n spatialGridService,\n textService\n } = services;\n\n await waitForCanvasGetSize(container);\n await nextAnimationFrame();\n\n rendererService.createFromConfig(renderers);\n\n // better to create FSMs before any other entities\n fsmService.createSourceFromConfig(fsm);\n\n //spatial grids should be created before actors\n spatialGridService.createFromConfig(spatialGrids);\n fogService.createFromConfig(fogs);\n envMapService.createFromConfig(envMaps);\n\n materialService.createFromConfig(materials);\n\n models3dService.createFromConfig(models3d);\n audioService.createFromConfig(audio);\n\n if (isDefined(physics.world)) {\n physicsWorldService.createWorld(physics.world);\n if (isDefined(physics.bodies)) physicsBodyService.createFromConfig(physics.bodies);\n }\n\n cameraService.createFromConfig(cameras);\n actorService.createFromConfig(actors);\n\n textService.createText2dRenderer(container);\n textService.createText3dRenderer(container);\n textService.createFromConfig(texts);\n\n controlsService.createFromConfig(controls);\n lightService.createFromConfig(lights);\n particlesService.createFromConfig(particles);\n\n intersectionsWatcherService.createFromConfig(intersections, mouseService, cameraService, actorService, loopService);\n}\n\nexport async function createEntitiesFromParams(entities: TSpaceParamsEntities, services: TSpaceServices, container: TContainerDecorator): Promise<void> {\n const { actors, audio, cameras, spatialGrids, controls, intersections, lights, materials, models3d, renderers, envMaps, fogs, fsm, texts, physics, particles } = entities;\n\n const {\n actorService,\n audioService,\n cameraService,\n controlsService,\n envMapService,\n fogService,\n fsmService,\n intersectionsWatcherService,\n lightService,\n materialService,\n models3dService,\n particlesService,\n physicsBodyService,\n physicsWorldService,\n rendererService,\n spatialGridService,\n textService\n } = services;\n\n await waitForCanvasGetSize(container);\n await nextAnimationFrame();\n\n if (isDefined(renderers)) rendererService.createFromList(renderers);\n\n // better to create FSMs before any other entities\n if (isDefined(fsm)) fsmService.createSourceFromList(fsm);\n\n //spatial grids should be created before actors\n if (isDefined(spatialGrids)) spatialGridService.createFromList(spatialGrids);\n if (isDefined(fogs)) fogService.createFromList(fogs);\n if (isDefined(envMaps)) envMapService.createFromList(envMaps);\n if (isDefined(materials)) materialService.createFromList(materials);\n if (isDefined(models3d)) models3dService.createFromList(models3d);\n if (isDefined(audio)) audioService.createFromList(audio);\n\n if (isDefined(physics?.world)) {\n physicsWorldService.createWorld(physics.world);\n if (isDefined(physics.bodies)) physicsBodyService.createFromList(physics.bodies);\n }\n\n if (isDefined(cameras)) cameraService.createFromList(cameras);\n if (isDefined(actors)) actorService.createFromList(actors);\n\n textService.createText2dRenderer(container);\n textService.createText3dRenderer(container);\n if (isDefined(texts)) textService.createFromList(texts);\n\n if (isDefined(controls)) controlsService.createFromList(controls);\n if (isDefined(lights)) lightService.createFromList(lights);\n if (isDefined(particles)) particlesService.createFromList(particles);\n\n if (isDefined(intersections)) intersectionsWatcherService.createFromList(intersections);\n}\n"],"names":["async","createEntities","entities","services","container","strategy","CreateEntitiesStrategy","Config","createEntitiesFromConfigs","Params","createEntitiesFromParams","Error","actors","audio","cameras","spatialGrids","controls","intersections","lights","materials","models3d","renderers","envMaps","fogs","fsm","texts","physics","particles","actorService","audioService","cameraService","controlsService","envMapService","fogService","fsmService","intersectionsWatcherService","lightService","loopService","materialService","models3dService","mouseService","particlesService","physicsBodyService","physicsWorldService","rendererService","spatialGridService","textService","waitForCanvasGetSize","nextAnimationFrame","createFromConfig","createSourceFromConfig","isDefined","world","createWorld","bodies","createText2dRenderer","createText3dRenderer","createFromList","createSourceFromList"],"mappings":"8NAOAA,eAAsBC,eACpBC,SACAC,SACAC,UACAC,UAEA,OAAQA,UACN,KAAKC,uBAAuBC,aACpBC,0BAA0BN,SAAkCC,SAAUC,WAC5E,MACF,KAAKE,uBAAuBG,aACpBC,yBAAyBR,SAAkCC,SAAUC,WAC3E,MACF,QACE,MAAM,IAAIO,MAAM,8CAA8CN,YAEpE,CAGAL,eAAsBQ,0BAA0BN,SAAgCC,SAA0BC,WACxG,MAAMQ,OAAEA,OAAAC,MAAQA,MAAAC,QAAOA,QAAAC,aAASA,aAAAC,SAAcA,uBAAUC,cAAAC,OAAeA,OAAAC,UAAQA,UAAAC,SAAWA,SAAAC,UAAUA,kBAAWC,QAAAC,KAASA,KAAAC,IAAMA,UAAKC,MAAAC,QAAOA,QAAAC,UAASA,WAAczB,UAE3J0B,aACJA,aAAAC,aACAA,aAAAC,cACAA,cAAAC,gBACAA,gBAAAC,cACAA,cAAAC,WACAA,WAAAC,WACAA,WAAAC,4BACAA,4BAAAC,aACAA,aAAAC,YACAA,YAAAC,gBACAA,gBAAAC,gBACAA,gBAAAC,aACAA,aAAAC,iBACAA,iBAAAC,mBACAA,mBAAAC,oBACAA,oBAAAC,gBACAA,gBAAAC,mBACAA,mBAAAC,YACAA,aACE3C,eAEE4C,qBAAqB3C,iBACrB4C,qBAENJ,gBAAgBK,iBAAiB5B,WAGjCa,WAAWgB,uBAAuB1B,KAGlCqB,mBAAmBI,iBAAiBlC,cACpCkB,WAAWgB,iBAAiB1B,MAC5BS,cAAciB,iBAAiB3B,SAE/BgB,gBAAgBW,iBAAiB9B,WAEjCoB,gBAAgBU,iBAAiB7B,UACjCS,aAAaoB,iBAAiBpC,OAE1BsC,UAAUzB,QAAQ0B,SACpBT,oBAAoBU,YAAY3B,QAAQ0B,OACpCD,UAAUzB,QAAQ4B,SAASZ,mBAAmBO,iBAAiBvB,QAAQ4B,SAG7ExB,cAAcmB,iBAAiBnC,SAC/Bc,aAAaqB,iBAAiBrC,QAE9BkC,YAAYS,qBAAqBnD,WACjC0C,YAAYU,qBAAqBpD,WACjC0C,YAAYG,iBAAiBxB,OAE7BM,gBAAgBkB,iBAAiBjC,UACjCoB,aAAaa,iBAAiB/B,QAC9BuB,iBAAiBQ,iBAAiBtB,WAElCQ,4BAA4Bc,iBAAiBhC,cAAeuB,aAAcV,cAAeF,aAAcS,YACzG,CAEArC,eAAsBU,yBAAyBR,SAAgCC,SAA0BC,WACvG,MAAMQ,OAAEA,OAAAC,MAAQA,MAAAC,QAAOA,QAAAC,aAASA,aAAAC,SAAcA,uBAAUC,cAAAC,OAAeA,OAAAC,UAAQA,UAAAC,SAAWA,SAAAC,UAAUA,kBAAWC,QAAAC,KAASA,KAAAC,IAAMA,UAAKC,MAAAC,QAAOA,QAAAC,UAASA,WAAczB,UAE3J0B,aACJA,aAAAC,aACAA,aAAAC,cACAA,cAAAC,gBACAA,gBAAAC,cACAA,cAAAC,WACAA,WAAAC,WACAA,WAAAC,4BACAA,4BAAAC,aACAA,aAAAE,gBACAA,gBAAAC,gBACAA,gBAAAE,iBACAA,iBAAAC,mBACAA,mBAAAC,oBACAA,oBAAAC,gBACAA,gBAAAC,mBACAA,mBAAAC,YACAA,aACE3C,eAEE4C,qBAAqB3C,iBACrB4C,qBAEFG,UAAU9B,YAAYuB,gBAAgBa,eAAepC,WAGrD8B,UAAU3B,MAAMU,WAAWwB,qBAAqBlC,KAGhD2B,UAAUpC,eAAe8B,mBAAmBY,eAAe1C,cAC3DoC,UAAU5B,OAAOU,WAAWwB,eAAelC,MAC3C4B,UAAU7B,UAAUU,cAAcyB,eAAenC,SACjD6B,UAAUhC,YAAYmB,gBAAgBmB,eAAetC,WACrDgC,UAAU/B,WAAWmB,gBAAgBkB,eAAerC,UACpD+B,UAAUtC,QAAQgB,aAAa4B,eAAe5C,OAE9CsC,UAAUzB,SAAS0B,SACrBT,oBAAoBU,YAAY3B,QAAQ0B,OACpCD,UAAUzB,QAAQ4B,SAASZ,mBAAmBe,eAAe/B,QAAQ4B,SAGvEH,UAAUrC,UAAUgB,cAAc2B,eAAe3C,SACjDqC,UAAUvC,SAASgB,aAAa6B,eAAe7C,QAEnDkC,YAAYS,qBAAqBnD,WACjC0C,YAAYU,qBAAqBpD,WAC7B+C,UAAU1B,QAAQqB,YAAYW,eAAehC,OAE7C0B,UAAUnC,WAAWe,gBAAgB0B,eAAezC,UACpDmC,UAAUjC,SAASkB,aAAaqB,eAAevC,QAC/CiC,UAAUxB,YAAYc,iBAAiBgB,eAAe9B,WAEtDwB,UAAUlC,gBAAgBkB,4BAA4BsB,eAAexC,cAC3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateLoopsUtils.js","sources":["../../../src/Space/Utils/CreateLoopsUtils.ts"],"sourcesContent":["import type { TAudioLoop } from '@Anarchy/Engine/Audio';\nimport type { TCollisionsLoop } from '@Anarchy/Engine/Collisions';\nimport type { TControlsLoop } from '@Anarchy/Engine/Controls';\nimport type { TIntersectionsLoop } from '@Anarchy/Engine/Intersections';\nimport type { TKinematicLoop } from '@Anarchy/Engine/Kinematic';\nimport type { TLoopService, TLoopsSettings } from '@Anarchy/Engine/Loop';\nimport { getMainLoopNameByType, LOOPS_DEFAULT_SETTINGS, LoopType, LoopUpdatePriority } from '@Anarchy/Engine/Loop';\nimport { milliseconds } from '@Anarchy/Engine/Measurements';\nimport type { TMouseLoop } from '@Anarchy/Engine/Mouse';\nimport type { TPhysicsLoop } from '@Anarchy/Engine/Physics';\nimport type { TRenderLoop, TSpaceLoops, TSpaceSettings } from '@Anarchy/Engine/Space/Models';\nimport type { TSpatialLoop } from '@Anarchy/Engine/Spatial';\nimport type { TTextLoop } from '@Anarchy/Engine/Text';\nimport type { TTransformLoop } from '@Anarchy/Engine/TransformDrive';\n\nexport function createLoops({ create }: TLoopService, spaceSettings: TSpaceSettings = {}): TSpaceLoops {\n const { Audio, Render, Intersections, Spatial, Mouse, Text, Kinematic, Collisions, Controls, Transform, Physics } = LoopType;\n\n const settings: TLoopsSettings = { ...LOOPS_DEFAULT_SETTINGS, ...spaceSettings.loopsSettings };\n\n const {\n audioLoopStep,\n physicsLoopStep,\n collisionsLoopStep,\n kinematicLoopStep,\n spatialLoopStep,\n transformLoopStep,\n textLoopStep,\n mouseLoopStep,\n intersectionsLoopStep,\n controlsLoopStep,\n isAudioParallel,\n isPhysicsParallel,\n isCollisionsParallel,\n isKinematicParallel,\n isSpatialParallel,\n isTransformParallel,\n isTextParallel,\n isMouseParallel,\n isIntersectionsParallel,\n isControlsParallel\n } = settings;\n\n // You could use testTickRate() to test the tick rate of the loop in the main stream and in \"parallel mode\" (in the worker),\n // cause usually loops in workers fires a way faster due to the fact that the worker is not blocked by the main thread (rendering and etc)\n // TL;DR: If you use parallel mode, set the \"trigger\" time higher.\n return {\n renderLoop: create({ name: getMainLoopNameByType(Render), type: Render, trigger: requestAnimationFrame }) as TRenderLoop,\n\n audioLoop: create({\n name: getMainLoopNameByType(Audio),\n type: Audio,\n trigger: milliseconds(audioLoopStep),\n isParallelMode: isAudioParallel,\n maxPriority: LoopUpdatePriority.ASAP\n }) as TAudioLoop,\n\n physicsLoop: create({\n name: getMainLoopNameByType(Physics),\n type: Physics,\n trigger: milliseconds(physicsLoopStep),\n isParallelMode: isPhysicsParallel\n }) as TPhysicsLoop,\n\n collisionsLoop: create({\n name: getMainLoopNameByType(Collisions),\n type: Collisions,\n trigger: milliseconds(collisionsLoopStep),\n isParallelMode: isCollisionsParallel,\n maxPriority: LoopUpdatePriority.ASAP\n }) as TCollisionsLoop,\n\n kinematicLoop: create({\n name: getMainLoopNameByType(Kinematic),\n type: Kinematic,\n trigger: milliseconds(kinematicLoopStep),\n isParallelMode: isKinematicParallel\n }) as TKinematicLoop,\n\n spatialLoop: create({\n name: getMainLoopNameByType(Spatial),\n type: Spatial,\n trigger: milliseconds(spatialLoopStep),\n isParallelMode: isSpatialParallel,\n maxPriority: LoopUpdatePriority.ASAP\n }) as TSpatialLoop,\n\n transformLoop: create({\n name: getMainLoopNameByType(Transform),\n type: Transform,\n trigger: milliseconds(transformLoopStep),\n isParallelMode: isTransformParallel\n }) as TTransformLoop,\n\n textLoop: create({\n name: getMainLoopNameByType(Text),\n type: Text,\n trigger: milliseconds(textLoopStep),\n isParallelMode: isTextParallel\n }) as TTextLoop,\n\n mouseLoop: create({\n name: getMainLoopNameByType(Mouse),\n type: Mouse,\n trigger: milliseconds(mouseLoopStep),\n isParallelMode: isMouseParallel\n }) as TMouseLoop,\n\n intersectionsLoop: create({\n name: getMainLoopNameByType(Intersections),\n type: Intersections,\n trigger: milliseconds(intersectionsLoopStep),\n isParallelMode: isIntersectionsParallel\n }) as TIntersectionsLoop,\n\n controlsLoop: create({\n name: getMainLoopNameByType(Controls),\n type: Controls,\n trigger: milliseconds(controlsLoopStep),\n isParallelMode: isControlsParallel\n }) as TControlsLoop\n };\n}\n"],"names":["createLoops","create","spaceSettings","Audio","Render","Intersections","Spatial","Mouse","Text","Kinematic","Collisions","Controls","Transform","Physics","LoopType","settings","LOOPS_DEFAULT_SETTINGS","loopsSettings","audioLoopStep","physicsLoopStep","collisionsLoopStep","kinematicLoopStep","spatialLoopStep","transformLoopStep","textLoopStep","mouseLoopStep","intersectionsLoopStep","controlsLoopStep","isAudioParallel","isPhysicsParallel","isCollisionsParallel","isKinematicParallel","isSpatialParallel","isTransformParallel","isTextParallel","isMouseParallel","isIntersectionsParallel","isControlsParallel","renderLoop","name","getMainLoopNameByType","type","trigger","requestAnimationFrame","audioLoop","milliseconds","isParallelMode","maxPriority","LoopUpdatePriority","ASAP","physicsLoop","collisionsLoop","kinematicLoop","spatialLoop","transformLoop","textLoop","mouseLoop","intersectionsLoop","controlsLoop"],"mappings":"4VAeO,SAASA,aAAYC,OAAEA,QAAwBC,cAAgC,CAAA,GACpF,MAAMC,MAAEA,MAAAC,OAAOA,OAAAC,cAAQA,cAAAC,QAAeA,QAAAC,MAASA,MAAAC,KAAOA,KAAAC,UAAMA,UAAAC,WAAWA,WAAAC,SAAYA,SAAAC,UAAUA,UAAAC,QAAWA,SAAYC,SAE9GC,SAA2B,IAAKC,0BAA2Bd,cAAce,gBAEzEC,cACJA,cAAAC,gBACAA,gBAAAC,mBACAA,mBAAAC,kBACAA,kBAAAC,gBACAA,gBAAAC,kBACAA,kBAAAC,aACAA,aAAAC,cACAA,cAAAC,sBACAA,sBAAAC,iBACAA,iBAAAC,gBACAA,gBAAAC,kBACAA,kBAAAC,qBACAA,qBAAAC,oBACAA,oBAAAC,kBACAA,kBAAAC,oBACAA,oBAAAC,eACAA,eAAAC,gBACAA,gBAAAC,wBACAA,wBAAAC,mBACAA,oBACEtB,SAKJ,MAAO,CACLuB,WAAYrC,OAAO,CAAEsC,KAAMC,sBAAsBpC,QAASqC,KAAMrC,OAAQsC,QAASC,wBAEjFC,UAAW3C,OAAO,CAChBsC,KAAMC,sBAAsBrC,OAC5BsC,KAAMtC,MACNuC,QAASG,aAAa3B,eACtB4B,eAAgBlB,gBAChBmB,YAAaC,mBAAmBC,OAGlCC,YAAajD,OAAO,CAClBsC,KAAMC,sBAAsB3B,SAC5B4B,KAAM5B,QACN6B,QAASG,aAAa1B,iBACtB2B,eAAgBjB,oBAGlBsB,eAAgBlD,OAAO,CACrBsC,KAAMC,sBAAsB9B,YAC5B+B,KAAM/B,WACNgC,QAASG,aAAazB,oBACtB0B,eAAgBhB,qBAChBiB,YAAaC,mBAAmBC,OAGlCG,cAAenD,OAAO,CACpBsC,KAAMC,sBAAsB/B,WAC5BgC,KAAMhC,UACNiC,QAASG,aAAaxB,mBACtByB,eAAgBf,sBAGlBsB,YAAapD,OAAO,CAClBsC,KAAMC,sBAAsBlC,SAC5BmC,KAAMnC,QACNoC,QAASG,aAAavB,iBACtBwB,eAAgBd,kBAChBe,YAAaC,mBAAmBC,OAGlCK,cAAerD,OAAO,CACpBsC,KAAMC,sBAAsB5B,WAC5B6B,KAAM7B,UACN8B,QAASG,aAAatB,mBACtBuB,eAAgBb,sBAGlBsB,SAAUtD,OAAO,CACfsC,KAAMC,sBAAsBhC,MAC5BiC,KAAMjC,KACNkC,QAASG,aAAarB,cACtBsB,eAAgBZ,iBAGlBsB,UAAWvD,OAAO,CAChBsC,KAAMC,sBAAsBjC,OAC5BkC,KAAMlC,MACNmC,QAASG,aAAapB,eACtBqB,eAAgBX,kBAGlBsB,kBAAmBxD,OAAO,CACxBsC,KAAMC,sBAAsBnC,eAC5BoC,KAAMpC,cACNqC,QAASG,aAAanB,uBACtBoB,eAAgBV,0BAGlBsB,aAAczD,OAAO,CACnBsC,KAAMC,sBAAsB7B,UAC5B8B,KAAM9B,SACN+B,QAASG,aAAalB,kBACtBmB,eAAgBT,qBAGtB"}
1
+ {"version":3,"file":"CreateLoopsUtils.js","sources":["../../../src/Space/Utils/CreateLoopsUtils.ts"],"sourcesContent":["import type { TAudioLoop } from '@hellpig/anarchy-engine/Audio';\nimport type { TCollisionsLoop } from '@hellpig/anarchy-engine/Collisions';\nimport type { TControlsLoop } from '@hellpig/anarchy-engine/Controls';\nimport type { TIntersectionsLoop } from '@hellpig/anarchy-engine/Intersections';\nimport type { TKinematicLoop } from '@hellpig/anarchy-engine/Kinematic';\nimport type { TLoopService, TLoopsSettings } from '@hellpig/anarchy-engine/Loop';\nimport { getMainLoopNameByType, LOOPS_DEFAULT_SETTINGS, LoopType, LoopUpdatePriority } from '@hellpig/anarchy-engine/Loop';\nimport { milliseconds } from '@hellpig/anarchy-engine/Measurements';\nimport type { TMouseLoop } from '@hellpig/anarchy-engine/Mouse';\nimport type { TPhysicsLoop } from '@hellpig/anarchy-engine/Physics';\nimport type { TRenderLoop, TSpaceLoops, TSpaceSettings } from '@hellpig/anarchy-engine/Space/Models';\nimport type { TSpatialLoop } from '@hellpig/anarchy-engine/Spatial';\nimport type { TTextLoop } from '@hellpig/anarchy-engine/Text';\nimport type { TTransformLoop } from '@hellpig/anarchy-engine/TransformDrive';\n\nexport function createLoops({ create }: TLoopService, spaceSettings: TSpaceSettings = {}): TSpaceLoops {\n const { Audio, Render, Intersections, Spatial, Mouse, Text, Kinematic, Collisions, Controls, Transform, Physics } = LoopType;\n\n const settings: TLoopsSettings = { ...LOOPS_DEFAULT_SETTINGS, ...spaceSettings.loopsSettings };\n\n const {\n audioLoopStep,\n physicsLoopStep,\n collisionsLoopStep,\n kinematicLoopStep,\n spatialLoopStep,\n transformLoopStep,\n textLoopStep,\n mouseLoopStep,\n intersectionsLoopStep,\n controlsLoopStep,\n isAudioParallel,\n isPhysicsParallel,\n isCollisionsParallel,\n isKinematicParallel,\n isSpatialParallel,\n isTransformParallel,\n isTextParallel,\n isMouseParallel,\n isIntersectionsParallel,\n isControlsParallel\n } = settings;\n\n // You could use testTickRate() to test the tick rate of the loop in the main stream and in \"parallel mode\" (in the worker),\n // cause usually loops in workers fires a way faster due to the fact that the worker is not blocked by the main thread (rendering and etc)\n // TL;DR: If you use parallel mode, set the \"trigger\" time higher.\n return {\n renderLoop: create({ name: getMainLoopNameByType(Render), type: Render, trigger: requestAnimationFrame }) as TRenderLoop,\n\n audioLoop: create({\n name: getMainLoopNameByType(Audio),\n type: Audio,\n trigger: milliseconds(audioLoopStep),\n isParallelMode: isAudioParallel,\n maxPriority: LoopUpdatePriority.ASAP\n }) as TAudioLoop,\n\n physicsLoop: create({\n name: getMainLoopNameByType(Physics),\n type: Physics,\n trigger: milliseconds(physicsLoopStep),\n isParallelMode: isPhysicsParallel\n }) as TPhysicsLoop,\n\n collisionsLoop: create({\n name: getMainLoopNameByType(Collisions),\n type: Collisions,\n trigger: milliseconds(collisionsLoopStep),\n isParallelMode: isCollisionsParallel,\n maxPriority: LoopUpdatePriority.ASAP\n }) as TCollisionsLoop,\n\n kinematicLoop: create({\n name: getMainLoopNameByType(Kinematic),\n type: Kinematic,\n trigger: milliseconds(kinematicLoopStep),\n isParallelMode: isKinematicParallel\n }) as TKinematicLoop,\n\n spatialLoop: create({\n name: getMainLoopNameByType(Spatial),\n type: Spatial,\n trigger: milliseconds(spatialLoopStep),\n isParallelMode: isSpatialParallel,\n maxPriority: LoopUpdatePriority.ASAP\n }) as TSpatialLoop,\n\n transformLoop: create({\n name: getMainLoopNameByType(Transform),\n type: Transform,\n trigger: milliseconds(transformLoopStep),\n isParallelMode: isTransformParallel\n }) as TTransformLoop,\n\n textLoop: create({\n name: getMainLoopNameByType(Text),\n type: Text,\n trigger: milliseconds(textLoopStep),\n isParallelMode: isTextParallel\n }) as TTextLoop,\n\n mouseLoop: create({\n name: getMainLoopNameByType(Mouse),\n type: Mouse,\n trigger: milliseconds(mouseLoopStep),\n isParallelMode: isMouseParallel\n }) as TMouseLoop,\n\n intersectionsLoop: create({\n name: getMainLoopNameByType(Intersections),\n type: Intersections,\n trigger: milliseconds(intersectionsLoopStep),\n isParallelMode: isIntersectionsParallel\n }) as TIntersectionsLoop,\n\n controlsLoop: create({\n name: getMainLoopNameByType(Controls),\n type: Controls,\n trigger: milliseconds(controlsLoopStep),\n isParallelMode: isControlsParallel\n }) as TControlsLoop\n };\n}\n"],"names":["createLoops","create","spaceSettings","Audio","Render","Intersections","Spatial","Mouse","Text","Kinematic","Collisions","Controls","Transform","Physics","LoopType","settings","LOOPS_DEFAULT_SETTINGS","loopsSettings","audioLoopStep","physicsLoopStep","collisionsLoopStep","kinematicLoopStep","spatialLoopStep","transformLoopStep","textLoopStep","mouseLoopStep","intersectionsLoopStep","controlsLoopStep","isAudioParallel","isPhysicsParallel","isCollisionsParallel","isKinematicParallel","isSpatialParallel","isTransformParallel","isTextParallel","isMouseParallel","isIntersectionsParallel","isControlsParallel","renderLoop","name","getMainLoopNameByType","type","trigger","requestAnimationFrame","audioLoop","milliseconds","isParallelMode","maxPriority","LoopUpdatePriority","ASAP","physicsLoop","collisionsLoop","kinematicLoop","spatialLoop","transformLoop","textLoop","mouseLoop","intersectionsLoop","controlsLoop"],"mappings":"4VAeO,SAASA,aAAYC,OAAEA,QAAwBC,cAAgC,CAAA,GACpF,MAAMC,MAAEA,MAAAC,OAAOA,OAAAC,cAAQA,cAAAC,QAAeA,QAAAC,MAASA,MAAAC,KAAOA,KAAAC,UAAMA,UAAAC,WAAWA,WAAAC,SAAYA,SAAAC,UAAUA,UAAAC,QAAWA,SAAYC,SAE9GC,SAA2B,IAAKC,0BAA2Bd,cAAce,gBAEzEC,cACJA,cAAAC,gBACAA,gBAAAC,mBACAA,mBAAAC,kBACAA,kBAAAC,gBACAA,gBAAAC,kBACAA,kBAAAC,aACAA,aAAAC,cACAA,cAAAC,sBACAA,sBAAAC,iBACAA,iBAAAC,gBACAA,gBAAAC,kBACAA,kBAAAC,qBACAA,qBAAAC,oBACAA,oBAAAC,kBACAA,kBAAAC,oBACAA,oBAAAC,eACAA,eAAAC,gBACAA,gBAAAC,wBACAA,wBAAAC,mBACAA,oBACEtB,SAKJ,MAAO,CACLuB,WAAYrC,OAAO,CAAEsC,KAAMC,sBAAsBpC,QAASqC,KAAMrC,OAAQsC,QAASC,wBAEjFC,UAAW3C,OAAO,CAChBsC,KAAMC,sBAAsBrC,OAC5BsC,KAAMtC,MACNuC,QAASG,aAAa3B,eACtB4B,eAAgBlB,gBAChBmB,YAAaC,mBAAmBC,OAGlCC,YAAajD,OAAO,CAClBsC,KAAMC,sBAAsB3B,SAC5B4B,KAAM5B,QACN6B,QAASG,aAAa1B,iBACtB2B,eAAgBjB,oBAGlBsB,eAAgBlD,OAAO,CACrBsC,KAAMC,sBAAsB9B,YAC5B+B,KAAM/B,WACNgC,QAASG,aAAazB,oBACtB0B,eAAgBhB,qBAChBiB,YAAaC,mBAAmBC,OAGlCG,cAAenD,OAAO,CACpBsC,KAAMC,sBAAsB/B,WAC5BgC,KAAMhC,UACNiC,QAASG,aAAaxB,mBACtByB,eAAgBf,sBAGlBsB,YAAapD,OAAO,CAClBsC,KAAMC,sBAAsBlC,SAC5BmC,KAAMnC,QACNoC,QAASG,aAAavB,iBACtBwB,eAAgBd,kBAChBe,YAAaC,mBAAmBC,OAGlCK,cAAerD,OAAO,CACpBsC,KAAMC,sBAAsB5B,WAC5B6B,KAAM7B,UACN8B,QAASG,aAAatB,mBACtBuB,eAAgBb,sBAGlBsB,SAAUtD,OAAO,CACfsC,KAAMC,sBAAsBhC,MAC5BiC,KAAMjC,KACNkC,QAASG,aAAarB,cACtBsB,eAAgBZ,iBAGlBsB,UAAWvD,OAAO,CAChBsC,KAAMC,sBAAsBjC,OAC5BkC,KAAMlC,MACNmC,QAASG,aAAapB,eACtBqB,eAAgBX,kBAGlBsB,kBAAmBxD,OAAO,CACxBsC,KAAMC,sBAAsBnC,eAC5BoC,KAAMpC,cACNqC,QAASG,aAAanB,uBACtBoB,eAAgBV,0BAGlBsB,aAAczD,OAAO,CACnBsC,KAAMC,sBAAsB7B,UAC5B8B,KAAM9B,SACN+B,QAASG,aAAalB,kBACtBmB,eAAgBT,qBAGtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"LoadResourcesUtils.js","sources":["../../../src/Space/Utils/LoadResourcesUtils.ts"],"sourcesContent":["import type { TEnvMapTexture } from '@Anarchy/Engine/EnvMap/Models';\nimport type { TSpaceConfigResources, TSpaceServices } from '@Anarchy/Engine/Space/Models';\n\nexport async function loadResourcesFromConfig(resources: TSpaceConfigResources, { animationsService, audioService, models3dService, envMapService, textureService }: TSpaceServices): Promise<unknown> {\n const { animations, audio, models3d, envMaps, textures } = resources;\n\n // EnvMaps could be loaded async, no need to wait\n const envMapTexturePromise: Promise<ReadonlyArray<TEnvMapTexture>> = envMapService.loadFromConfigAsync(envMaps);\n\n // Textures should be loaded before materials and models\n await textureService.loadFromConfigAsync(textures);\n\n await animationsService.loadFromConfigAsync(animations);\n\n return await Promise.all([\n // A \"Models3d\" has two parts: \"entities\" and \"resources\". Here we only load model resources. And create \"entities\" them lately (in the other place).\n models3dService.loadFromConfigAsync(models3d),\n audioService.loadFromConfigAsync(audio),\n envMapTexturePromise\n ]);\n}\n"],"names":["async","loadResourcesFromConfig","resources","animationsService","audioService","models3dService","envMapService","textureService","animations","audio","models3d","envMaps","textures","envMapTexturePromise","loadFromConfigAsync","Promise","all"],"mappings":"AAGAA,eAAsBC,wBAAwBC,WAAkCC,kBAAEA,kBAAAC,aAAmBA,6BAAcC,gBAAAC,cAAiBA,cAAAC,eAAeA,iBACjJ,MAAMC,WAAEA,WAAAC,MAAYA,MAAAC,SAAOA,SAAAC,QAAUA,QAAAC,SAASA,UAAaV,UAGrDW,qBAA+DP,cAAcQ,oBAAoBH,SAOvG,aAJMJ,eAAeO,oBAAoBF,gBAEnCT,kBAAkBW,oBAAoBN,kBAE/BO,QAAQC,IAAI,CAEvBX,gBAAgBS,oBAAoBJ,UACpCN,aAAaU,oBAAoBL,OACjCI,sBAEJ"}
1
+ {"version":3,"file":"LoadResourcesUtils.js","sources":["../../../src/Space/Utils/LoadResourcesUtils.ts"],"sourcesContent":["import type { TEnvMapTexture } from '@hellpig/anarchy-engine/EnvMap/Models';\nimport type { TSpaceConfigResources, TSpaceServices } from '@hellpig/anarchy-engine/Space/Models';\n\nexport async function loadResourcesFromConfig(resources: TSpaceConfigResources, { animationsService, audioService, models3dService, envMapService, textureService }: TSpaceServices): Promise<unknown> {\n const { animations, audio, models3d, envMaps, textures } = resources;\n\n // EnvMaps could be loaded async, no need to wait\n const envMapTexturePromise: Promise<ReadonlyArray<TEnvMapTexture>> = envMapService.loadFromConfigAsync(envMaps);\n\n // Textures should be loaded before materials and models\n await textureService.loadFromConfigAsync(textures);\n\n await animationsService.loadFromConfigAsync(animations);\n\n return await Promise.all([\n // A \"Models3d\" has two parts: \"entities\" and \"resources\". Here we only load model resources. And create \"entities\" them lately (in the other place).\n models3dService.loadFromConfigAsync(models3d),\n audioService.loadFromConfigAsync(audio),\n envMapTexturePromise\n ]);\n}\n"],"names":["async","loadResourcesFromConfig","resources","animationsService","audioService","models3dService","envMapService","textureService","animations","audio","models3d","envMaps","textures","envMapTexturePromise","loadFromConfigAsync","Promise","all"],"mappings":"AAGAA,eAAsBC,wBAAwBC,WAAkCC,kBAAEA,kBAAAC,aAAmBA,6BAAcC,gBAAAC,cAAiBA,cAAAC,eAAeA,iBACjJ,MAAMC,WAAEA,WAAAC,MAAYA,MAAAC,SAAOA,SAAAC,QAAUA,QAAAC,SAASA,UAAaV,UAGrDW,qBAA+DP,cAAcQ,oBAAoBH,SAOvG,aAJMJ,eAAeO,oBAAoBF,gBAEnCT,kBAAkBW,oBAAoBN,kBAE/BO,QAAQC,IAAI,CAEvBX,gBAAgBS,oBAAoBJ,UACpCN,aAAaU,oBAAoBL,OACjCI,sBAEJ"}