@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":"Accessors.js","sources":["../../../src/Camera/Wrappers/Accessors.ts"],"sourcesContent":["import type { TCommonCameraAccessors, TOrthographicCamera, TOrthographicCameraAccessors, TPerspectiveCamera, TPerspectiveCameraAccessors } from '@Anarchy/Engine/Camera/Models';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport type { AudioListener, Vector3 } from 'three';\n\nexport function getCommonCameraAccessors(entity: TWriteable<TOrthographicCamera | TPerspectiveCamera>): TCommonCameraAccessors {\n const lookAt = (vector3: Vector3): void => entity.lookAt(vector3);\n const setControls = (x: number, y: number, z: number): Vector3 => entity.position.set(x, y, z);\n\n function setNear(near: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.near = near;\n entity.updateProjectionMatrix();\n }\n\n function setFar(far: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.far = far;\n entity.updateProjectionMatrix();\n }\n\n function setZoom(zoom: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.zoom = zoom;\n entity.updateProjectionMatrix();\n }\n\n function setUp(x: number, y: number, z: number): void {\n entity.up.set(x, y, z);\n entity.updateProjectionMatrix();\n }\n\n function addListener(listener: AudioListener): void {\n entity.add(listener);\n }\n\n return { lookAt, setControls, setNear, setFar, setZoom, setUp, addListener };\n}\n\nexport function getPerspectiveCameraAccessors(entity: TWriteable<TPerspectiveCamera>): TPerspectiveCameraAccessors {\n function setFov(fov: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.fov = fov;\n entity.updateProjectionMatrix();\n }\n\n function setAspect(aspect: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.aspect = aspect;\n entity.updateProjectionMatrix();\n }\n\n function setFocus(focus: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.focus = focus;\n entity.updateProjectionMatrix();\n }\n\n function setFilmGauge(filmGauge: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.filmGauge = filmGauge;\n entity.updateProjectionMatrix();\n }\n\n function setFilmOffset(filmOffset: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.filmOffset = filmOffset;\n entity.updateProjectionMatrix();\n }\n\n return { setFov, setAspect, setFocus, setFilmGauge, setFilmOffset };\n}\n\nexport function getOrthographicCameraAccessors(entity: TWriteable<TOrthographicCamera>): TOrthographicCameraAccessors {\n function setLeft(left: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.left = left;\n entity.updateProjectionMatrix();\n }\n\n function setRight(right: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.right = right;\n entity.updateProjectionMatrix();\n }\n\n function setTop(top: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.top = top;\n entity.updateProjectionMatrix();\n }\n\n function setBottom(bottom: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.bottom = bottom;\n entity.updateProjectionMatrix();\n }\n\n function setAspect(height: number, aspect: number): void {\n const width: number = height * aspect;\n\n // eslint-disable-next-line functional/immutable-data\n entity.left = -width / 2;\n // eslint-disable-next-line functional/immutable-data\n entity.right = width / 2;\n // eslint-disable-next-line functional/immutable-data\n entity.top = height / 2;\n // eslint-disable-next-line functional/immutable-data\n entity.bottom = -height / 2;\n\n entity.updateProjectionMatrix();\n }\n\n return { setAspect, setLeft, setRight, setTop, setBottom };\n}\n"],"names":["getCommonCameraAccessors","entity","lookAt","vector3","setControls","x","y","z","position","set","setNear","near","updateProjectionMatrix","setFar","far","setZoom","zoom","setUp","up","addListener","listener","add","getPerspectiveCameraAccessors","setFov","fov","setAspect","aspect","setFocus","focus","setFilmGauge","filmGauge","setFilmOffset","filmOffset","getOrthographicCameraAccessors","height","width","left","right","top","bottom","setLeft","setRight","setTop","setBottom"],"mappings":"AAIO,SAASA,yBAAyBC,QA+BvC,MAAO,CAAEC,OA9BOC,SAA2BF,OAAOC,OAAOC,SA8BxCC,YA7BG,CAACC,EAAWC,EAAWC,IAAuBN,OAAOO,SAASC,IAAIJ,EAAGC,EAAGC,GA6B9DG,QA3B9B,SAAiBC,MAEfV,OAAOU,KAAOA,KACdV,OAAOW,wBACT,EAuBuCC,OArBvC,SAAgBC,KAEdb,OAAOa,IAAMA,IACbb,OAAOW,wBACT,EAiB+CG,QAf/C,SAAiBC,MAEff,OAAOe,KAAOA,KACdf,OAAOW,wBACT,EAWwDK,MATxD,SAAeZ,EAAWC,EAAWC,GACnCN,OAAOiB,GAAGT,IAAIJ,EAAGC,EAAGC,GACpBN,OAAOW,wBACT,EAM+DO,YAJ/D,SAAqBC,UACnBnB,OAAOoB,IAAID,SACb,EAGF,CAEO,SAASE,8BAA8BrB,QA+B5C,MAAO,CAAEsB,OA9BT,SAAgBC,KAEdvB,OAAOuB,IAAMA,IACbvB,OAAOW,wBACT,EA0BiBa,UAxBjB,SAAmBC,QAEjBzB,OAAOyB,OAASA,OAChBzB,OAAOW,wBACT,EAoB4Be,SAlB5B,SAAkBC,OAEhB3B,OAAO2B,MAAQA,MACf3B,OAAOW,wBACT,EAcsCiB,aAZtC,SAAsBC,WAEpB7B,OAAO6B,UAAYA,UACnB7B,OAAOW,wBACT,EAQoDmB,cANpD,SAAuBC,YAErB/B,OAAO+B,WAAaA,WACpB/B,OAAOW,wBACT,EAGF,CAEO,SAASqB,+BAA+BhC,QAwC7C,MAAO,CAAEwB,UAfT,SAAmBS,OAAgBR,QACjC,MAAMS,MAAgBD,OAASR,OAG/BzB,OAAOmC,MAAQD,MAAQ,EAEvBlC,OAAOoC,MAAQF,MAAQ,EAEvBlC,OAAOqC,IAAMJ,OAAS,EAEtBjC,OAAOsC,QAAUL,OAAS,EAE1BjC,OAAOW,wBACT,EAEoB4B,QAvCpB,SAAiBJ,MAEfnC,OAAOmC,KAAOA,KACdnC,OAAOW,wBACT,EAmC6B6B,SAjC7B,SAAkBJ,OAEhBpC,OAAOoC,MAAQA,MACfpC,OAAOW,wBACT,EA6BuC8B,OA3BvC,SAAgBJ,KAEdrC,OAAOqC,IAAMA,IACbrC,OAAOW,wBACT,EAuB+C+B,UArB/C,SAAmBJ,QAEjBtC,OAAOsC,OAASA,OAChBtC,OAAOW,wBACT,EAkBF"}
1
+ {"version":3,"file":"Accessors.js","sources":["../../../src/Camera/Wrappers/Accessors.ts"],"sourcesContent":["import type { TCommonCameraAccessors, TOrthographicCamera, TOrthographicCameraAccessors, TPerspectiveCamera, TPerspectiveCameraAccessors } from '@hellpig/anarchy-engine/Camera/Models';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport type { AudioListener, Vector3 } from 'three';\n\nexport function getCommonCameraAccessors(entity: TWriteable<TOrthographicCamera | TPerspectiveCamera>): TCommonCameraAccessors {\n const lookAt = (vector3: Vector3): void => entity.lookAt(vector3);\n const setControls = (x: number, y: number, z: number): Vector3 => entity.position.set(x, y, z);\n\n function setNear(near: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.near = near;\n entity.updateProjectionMatrix();\n }\n\n function setFar(far: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.far = far;\n entity.updateProjectionMatrix();\n }\n\n function setZoom(zoom: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.zoom = zoom;\n entity.updateProjectionMatrix();\n }\n\n function setUp(x: number, y: number, z: number): void {\n entity.up.set(x, y, z);\n entity.updateProjectionMatrix();\n }\n\n function addListener(listener: AudioListener): void {\n entity.add(listener);\n }\n\n return { lookAt, setControls, setNear, setFar, setZoom, setUp, addListener };\n}\n\nexport function getPerspectiveCameraAccessors(entity: TWriteable<TPerspectiveCamera>): TPerspectiveCameraAccessors {\n function setFov(fov: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.fov = fov;\n entity.updateProjectionMatrix();\n }\n\n function setAspect(aspect: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.aspect = aspect;\n entity.updateProjectionMatrix();\n }\n\n function setFocus(focus: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.focus = focus;\n entity.updateProjectionMatrix();\n }\n\n function setFilmGauge(filmGauge: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.filmGauge = filmGauge;\n entity.updateProjectionMatrix();\n }\n\n function setFilmOffset(filmOffset: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.filmOffset = filmOffset;\n entity.updateProjectionMatrix();\n }\n\n return { setFov, setAspect, setFocus, setFilmGauge, setFilmOffset };\n}\n\nexport function getOrthographicCameraAccessors(entity: TWriteable<TOrthographicCamera>): TOrthographicCameraAccessors {\n function setLeft(left: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.left = left;\n entity.updateProjectionMatrix();\n }\n\n function setRight(right: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.right = right;\n entity.updateProjectionMatrix();\n }\n\n function setTop(top: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.top = top;\n entity.updateProjectionMatrix();\n }\n\n function setBottom(bottom: number): void {\n // eslint-disable-next-line functional/immutable-data\n entity.bottom = bottom;\n entity.updateProjectionMatrix();\n }\n\n function setAspect(height: number, aspect: number): void {\n const width: number = height * aspect;\n\n // eslint-disable-next-line functional/immutable-data\n entity.left = -width / 2;\n // eslint-disable-next-line functional/immutable-data\n entity.right = width / 2;\n // eslint-disable-next-line functional/immutable-data\n entity.top = height / 2;\n // eslint-disable-next-line functional/immutable-data\n entity.bottom = -height / 2;\n\n entity.updateProjectionMatrix();\n }\n\n return { setAspect, setLeft, setRight, setTop, setBottom };\n}\n"],"names":["getCommonCameraAccessors","entity","lookAt","vector3","setControls","x","y","z","position","set","setNear","near","updateProjectionMatrix","setFar","far","setZoom","zoom","setUp","up","addListener","listener","add","getPerspectiveCameraAccessors","setFov","fov","setAspect","aspect","setFocus","focus","setFilmGauge","filmGauge","setFilmOffset","filmOffset","getOrthographicCameraAccessors","height","width","left","right","top","bottom","setLeft","setRight","setTop","setBottom"],"mappings":"AAIO,SAASA,yBAAyBC,QA+BvC,MAAO,CAAEC,OA9BOC,SAA2BF,OAAOC,OAAOC,SA8BxCC,YA7BG,CAACC,EAAWC,EAAWC,IAAuBN,OAAOO,SAASC,IAAIJ,EAAGC,EAAGC,GA6B9DG,QA3B9B,SAAiBC,MAEfV,OAAOU,KAAOA,KACdV,OAAOW,wBACT,EAuBuCC,OArBvC,SAAgBC,KAEdb,OAAOa,IAAMA,IACbb,OAAOW,wBACT,EAiB+CG,QAf/C,SAAiBC,MAEff,OAAOe,KAAOA,KACdf,OAAOW,wBACT,EAWwDK,MATxD,SAAeZ,EAAWC,EAAWC,GACnCN,OAAOiB,GAAGT,IAAIJ,EAAGC,EAAGC,GACpBN,OAAOW,wBACT,EAM+DO,YAJ/D,SAAqBC,UACnBnB,OAAOoB,IAAID,SACb,EAGF,CAEO,SAASE,8BAA8BrB,QA+B5C,MAAO,CAAEsB,OA9BT,SAAgBC,KAEdvB,OAAOuB,IAAMA,IACbvB,OAAOW,wBACT,EA0BiBa,UAxBjB,SAAmBC,QAEjBzB,OAAOyB,OAASA,OAChBzB,OAAOW,wBACT,EAoB4Be,SAlB5B,SAAkBC,OAEhB3B,OAAO2B,MAAQA,MACf3B,OAAOW,wBACT,EAcsCiB,aAZtC,SAAsBC,WAEpB7B,OAAO6B,UAAYA,UACnB7B,OAAOW,wBACT,EAQoDmB,cANpD,SAAuBC,YAErB/B,OAAO+B,WAAaA,WACpB/B,OAAOW,wBACT,EAGF,CAEO,SAASqB,+BAA+BhC,QAwC7C,MAAO,CAAEwB,UAfT,SAAmBS,OAAgBR,QACjC,MAAMS,MAAgBD,OAASR,OAG/BzB,OAAOmC,MAAQD,MAAQ,EAEvBlC,OAAOoC,MAAQF,MAAQ,EAEvBlC,OAAOqC,IAAMJ,OAAS,EAEtBjC,OAAOsC,QAAUL,OAAS,EAE1BjC,OAAOW,wBACT,EAEoB4B,QAvCpB,SAAiBJ,MAEfnC,OAAOmC,KAAOA,KACdnC,OAAOW,wBACT,EAmC6B6B,SAjC7B,SAAkBJ,OAEhBpC,OAAOoC,MAAQA,MACfpC,OAAOW,wBACT,EA6BuC8B,OA3BvC,SAAgBJ,KAEdrC,OAAOqC,IAAMA,IACbrC,OAAOW,wBACT,EAuB+C+B,UArB/C,SAAmBJ,QAEjBtC,OAAOsC,OAASA,OAChBtC,OAAOW,wBACT,EAkBF"}
@@ -1 +1 @@
1
- {"version":3,"file":"OrthographicCameraWrapper.js","sources":["../../../src/Camera/Wrappers/OrthographicCameraWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@Anarchy/Engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@Anarchy/Engine/Abstract';\nimport { cameraEntityToConfig } from '@Anarchy/Engine/Camera/Adapters';\nimport type { CameraType } from '@Anarchy/Engine/Camera/Constants';\nimport type {\n TAnyCamera,\n TCameraTransformDrive,\n TCameraWrapperDependencies,\n TCommonCameraAccessors,\n TOrthographicCamera,\n TOrthographicCameraAccessors,\n TOrthographicCameraParams,\n TOrthographicCameraWrapper\n} from '@Anarchy/Engine/Camera/Models';\nimport type { TOrthographicCameraConfig } from '@Anarchy/Engine/Camera/Models/TOrthographicCameraConfig';\nimport { CameraTransformDrive } from '@Anarchy/Engine/Camera/TransformDrive';\nimport { applyOrthographicCameraParams } from '@Anarchy/Engine/Camera/Utils';\nimport { withActiveMixin, withObject3d } from '@Anarchy/Engine/Mixins';\nimport type { TDriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { DriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { applyObject3dParams, mergeAll } from '@Anarchy/Engine/Utils';\nimport type { TOptional, TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { OrthographicCamera, Vector3 } from 'three';\n\nimport { getCommonCameraAccessors, getOrthographicCameraAccessors } from './Accessors';\n\nexport function OrthographicCameraWrapper(params: TOrthographicCameraParams, { container, transformDriveService, audioService }: TCameraWrapperDependencies): TOrthographicCameraWrapper {\n const { left, right, top, bottom, near, far = 10000, lookAt, audioListener }: TOrthographicCameraParams = params;\n const { width, height }: TOptional<DOMRect> = container.viewportRect$.value ?? { width: 0, height: 0 };\n\n const entity: TWriteable<TOrthographicCamera> = new OrthographicCamera(left, right, top, bottom, near, far);\n\n const accessors: TCommonCameraAccessors & TOrthographicCameraAccessors = Object.assign(getCommonCameraAccessors(entity), getOrthographicCameraAccessors(entity));\n accessors.setAspect(width, height);\n\n const wrapper: TAbstractWrapper<TAnyCamera> = AbstractWrapper(entity, WrapperType.Camera, params);\n const drive: TCameraTransformDrive = CameraTransformDrive(params, { transformDriveService }, wrapper.id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, entity);\n\n const result = mergeAll(wrapper, accessors, {\n drive,\n driveToTargetConnector,\n entity,\n getType: (): CameraType => entity.type as CameraType,\n ...withObject3d(entity),\n ...withActiveMixin(),\n serialize: (): TOrthographicCameraConfig => cameraEntityToConfig(result, { audioService })\n });\n\n applyObject3dParams(result, params);\n result._setActive(params.isActive, true);\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n if (isDefined(audioListener)) result.entity.remove(audioListener);\n destroySub$.unsubscribe();\n });\n\n if (isDefined(lookAt)) accessors.lookAt(new Vector3(lookAt.x, lookAt.y, lookAt.z));\n if (isDefined(params.up)) entity.up.set(params.up.x, params.up.y, params.up.z);\n if (isDefined(audioListener)) accessors.addListener(audioListener);\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(params.zoom)) entity.zoom = params.zoom;\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(params.near)) entity.near = params.near;\n\n applyOrthographicCameraParams(entity, params);\n return result;\n}\n"],"names":["OrthographicCameraWrapper","params","container","transformDriveService","audioService","left","right","top","bottom","near","far","lookAt","audioListener","width","height","viewportRect$","value","entity","OrthographicCamera","accessors","Object","assign","getCommonCameraAccessors","getOrthographicCameraAccessors","setAspect","wrapper","AbstractWrapper","WrapperType","Camera","drive","CameraTransformDrive","id","driveToTargetConnector","DriveToTargetConnector","result","mergeAll","getType","type","withObject3d","withActiveMixin","serialize","cameraEntityToConfig","applyObject3dParams","_setActive","isActive","destroySub$","destroy$","subscribe","isDefined","remove","unsubscribe","Vector3","x","y","z","up","set","addListener","zoom","applyOrthographicCameraParams"],"mappings":"84BA4BO,SAASA,0BAA0BC,QAAmCC,UAAEA,UAAAC,sBAAWA,sBAAAC,aAAuBA,eAC/G,MAAMC,KAAEA,KAAAC,MAAMA,MAAAC,IAAOA,IAAAC,OAAKA,OAAAC,KAAQA,SAAMC,IAAM,IAAAC,OAAOA,OAAAC,cAAQA,eAA6CX,QACpGY,MAAEA,MAAAC,OAAOA,QAA+BZ,UAAUa,cAAcC,OAAS,CAAEH,MAAO,EAAGC,OAAQ,GAE7FG,OAA0C,IAAIC,mBAAmBb,KAAMC,MAAOC,IAAKC,OAAQC,KAAMC,KAEjGS,UAAmEC,OAAOC,OAAOC,yBAAyBL,QAASM,+BAA+BN,SACxJE,UAAUK,UAAUX,MAAOC,QAE3B,MAAMW,QAAwCC,gBAAgBT,OAAQU,YAAYC,OAAQ3B,QACpF4B,MAA+BC,qBAAqB7B,OAAQ,CAAEE,6CAAyBsB,QAAQM,IAC/FC,uBAAkDC,uBAAuBJ,MAAOZ,QAEhFiB,OAASC,SAASV,QAASN,UAAW,CAC1CU,YACAG,8CACAf,cACAmB,QAAS,IAAkBnB,OAAOoB,QAC/BC,aAAarB,WACbsB,kBACHC,UAAW,IAAiCC,qBAAqBP,OAAQ,CAAE9B,8BAG7EsC,oBAAoBR,OAAQjC,QAC5BiC,OAAOS,WAAW1C,OAAO2C,UAAU,GAEnC,MAAMC,YAA4BX,OAAOY,SAASC,UAAU,KACtDC,UAAUpC,gBAAgBsB,OAAOjB,OAAOgC,OAAOrC,eACnDiC,YAAYK,gBAYd,OATIF,UAAUrC,SAASQ,UAAUR,OAAO,IAAIwC,QAAQxC,OAAOyC,EAAGzC,OAAO0C,EAAG1C,OAAO2C,IAC3EN,UAAU/C,OAAOsD,YAAYA,GAAGC,IAAIvD,OAAOsD,GAAGH,EAAGnD,OAAOsD,GAAGF,EAAGpD,OAAOsD,GAAGD,GACxEN,UAAUpC,gBAAgBO,UAAUsC,YAAY7C,eAEhDoC,UAAU/C,OAAOyD,QAAOzC,OAAOyC,KAAOzD,OAAOyD,MAE7CV,UAAU/C,OAAOQ,QAAOQ,OAAOR,KAAOR,OAAOQ,MAEjDkD,8BAA8B1C,OAAQhB,QAC/BiC,MACT"}
1
+ {"version":3,"file":"OrthographicCameraWrapper.js","sources":["../../../src/Camera/Wrappers/OrthographicCameraWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@hellpig/anarchy-engine/Abstract';\nimport { cameraEntityToConfig } from '@hellpig/anarchy-engine/Camera/Adapters';\nimport type { CameraType } from '@hellpig/anarchy-engine/Camera/Constants';\nimport type {\n TAnyCamera,\n TCameraTransformDrive,\n TCameraWrapperDependencies,\n TCommonCameraAccessors,\n TOrthographicCamera,\n TOrthographicCameraAccessors,\n TOrthographicCameraParams,\n TOrthographicCameraWrapper\n} from '@hellpig/anarchy-engine/Camera/Models';\nimport type { TOrthographicCameraConfig } from '@hellpig/anarchy-engine/Camera/Models/TOrthographicCameraConfig';\nimport { CameraTransformDrive } from '@hellpig/anarchy-engine/Camera/TransformDrive';\nimport { applyOrthographicCameraParams } from '@hellpig/anarchy-engine/Camera/Utils';\nimport { withActiveMixin, withObject3d } from '@hellpig/anarchy-engine/Mixins';\nimport type { TDriveToTargetConnector } from '@hellpig/anarchy-engine/TransformDrive';\nimport { DriveToTargetConnector } from '@hellpig/anarchy-engine/TransformDrive';\nimport { applyObject3dParams, mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { TOptional, TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { OrthographicCamera, Vector3 } from 'three';\n\nimport { getCommonCameraAccessors, getOrthographicCameraAccessors } from './Accessors';\n\nexport function OrthographicCameraWrapper(params: TOrthographicCameraParams, { container, transformDriveService, audioService }: TCameraWrapperDependencies): TOrthographicCameraWrapper {\n const { left, right, top, bottom, near, far = 10000, lookAt, audioListener }: TOrthographicCameraParams = params;\n const { width, height }: TOptional<DOMRect> = container.viewportRect$.value ?? { width: 0, height: 0 };\n\n const entity: TWriteable<TOrthographicCamera> = new OrthographicCamera(left, right, top, bottom, near, far);\n\n const accessors: TCommonCameraAccessors & TOrthographicCameraAccessors = Object.assign(getCommonCameraAccessors(entity), getOrthographicCameraAccessors(entity));\n accessors.setAspect(width, height);\n\n const wrapper: TAbstractWrapper<TAnyCamera> = AbstractWrapper(entity, WrapperType.Camera, params);\n const drive: TCameraTransformDrive = CameraTransformDrive(params, { transformDriveService }, wrapper.id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, entity);\n\n const result = mergeAll(wrapper, accessors, {\n drive,\n driveToTargetConnector,\n entity,\n getType: (): CameraType => entity.type as CameraType,\n ...withObject3d(entity),\n ...withActiveMixin(),\n serialize: (): TOrthographicCameraConfig => cameraEntityToConfig(result, { audioService })\n });\n\n applyObject3dParams(result, params);\n result._setActive(params.isActive, true);\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n if (isDefined(audioListener)) result.entity.remove(audioListener);\n destroySub$.unsubscribe();\n });\n\n if (isDefined(lookAt)) accessors.lookAt(new Vector3(lookAt.x, lookAt.y, lookAt.z));\n if (isDefined(params.up)) entity.up.set(params.up.x, params.up.y, params.up.z);\n if (isDefined(audioListener)) accessors.addListener(audioListener);\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(params.zoom)) entity.zoom = params.zoom;\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(params.near)) entity.near = params.near;\n\n applyOrthographicCameraParams(entity, params);\n return result;\n}\n"],"names":["OrthographicCameraWrapper","params","container","transformDriveService","audioService","left","right","top","bottom","near","far","lookAt","audioListener","width","height","viewportRect$","value","entity","OrthographicCamera","accessors","Object","assign","getCommonCameraAccessors","getOrthographicCameraAccessors","setAspect","wrapper","AbstractWrapper","WrapperType","Camera","drive","CameraTransformDrive","id","driveToTargetConnector","DriveToTargetConnector","result","mergeAll","getType","type","withObject3d","withActiveMixin","serialize","cameraEntityToConfig","applyObject3dParams","_setActive","isActive","destroySub$","destroy$","subscribe","isDefined","remove","unsubscribe","Vector3","x","y","z","up","set","addListener","zoom","applyOrthographicCameraParams"],"mappings":"84BA4BO,SAASA,0BAA0BC,QAAmCC,UAAEA,UAAAC,sBAAWA,sBAAAC,aAAuBA,eAC/G,MAAMC,KAAEA,KAAAC,MAAMA,MAAAC,IAAOA,IAAAC,OAAKA,OAAAC,KAAQA,SAAMC,IAAM,IAAAC,OAAOA,OAAAC,cAAQA,eAA6CX,QACpGY,MAAEA,MAAAC,OAAOA,QAA+BZ,UAAUa,cAAcC,OAAS,CAAEH,MAAO,EAAGC,OAAQ,GAE7FG,OAA0C,IAAIC,mBAAmBb,KAAMC,MAAOC,IAAKC,OAAQC,KAAMC,KAEjGS,UAAmEC,OAAOC,OAAOC,yBAAyBL,QAASM,+BAA+BN,SACxJE,UAAUK,UAAUX,MAAOC,QAE3B,MAAMW,QAAwCC,gBAAgBT,OAAQU,YAAYC,OAAQ3B,QACpF4B,MAA+BC,qBAAqB7B,OAAQ,CAAEE,6CAAyBsB,QAAQM,IAC/FC,uBAAkDC,uBAAuBJ,MAAOZ,QAEhFiB,OAASC,SAASV,QAASN,UAAW,CAC1CU,YACAG,8CACAf,cACAmB,QAAS,IAAkBnB,OAAOoB,QAC/BC,aAAarB,WACbsB,kBACHC,UAAW,IAAiCC,qBAAqBP,OAAQ,CAAE9B,8BAG7EsC,oBAAoBR,OAAQjC,QAC5BiC,OAAOS,WAAW1C,OAAO2C,UAAU,GAEnC,MAAMC,YAA4BX,OAAOY,SAASC,UAAU,KACtDC,UAAUpC,gBAAgBsB,OAAOjB,OAAOgC,OAAOrC,eACnDiC,YAAYK,gBAYd,OATIF,UAAUrC,SAASQ,UAAUR,OAAO,IAAIwC,QAAQxC,OAAOyC,EAAGzC,OAAO0C,EAAG1C,OAAO2C,IAC3EN,UAAU/C,OAAOsD,YAAYA,GAAGC,IAAIvD,OAAOsD,GAAGH,EAAGnD,OAAOsD,GAAGF,EAAGpD,OAAOsD,GAAGD,GACxEN,UAAUpC,gBAAgBO,UAAUsC,YAAY7C,eAEhDoC,UAAU/C,OAAOyD,QAAOzC,OAAOyC,KAAOzD,OAAOyD,MAE7CV,UAAU/C,OAAOQ,QAAOQ,OAAOR,KAAOR,OAAOQ,MAEjDkD,8BAA8B1C,OAAQhB,QAC/BiC,MACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"PerspectiveCameraWrapper.js","sources":["../../../src/Camera/Wrappers/PerspectiveCameraWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@Anarchy/Engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@Anarchy/Engine/Abstract';\nimport { cameraEntityToConfig } from '@Anarchy/Engine/Camera/Adapters';\nimport type { CameraType } from '@Anarchy/Engine/Camera/Constants';\nimport type {\n TAnyCamera,\n TCameraTransformDrive,\n TCameraWrapperDependencies,\n TCommonCameraAccessors,\n TPerspectiveCamera,\n TPerspectiveCameraAccessors,\n TPerspectiveCameraConfig,\n TPerspectiveCameraParams,\n TPerspectiveCameraWrapper\n} from '@Anarchy/Engine/Camera/Models';\nimport { CameraTransformDrive } from '@Anarchy/Engine/Camera/TransformDrive';\nimport { applyPerspectiveCameraParams } from '@Anarchy/Engine/Camera/Utils';\nimport { withActiveMixin, withObject3d } from '@Anarchy/Engine/Mixins';\nimport type { TDriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { DriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { applyObject3dParams, mergeAll } from '@Anarchy/Engine/Utils';\nimport type { TOptional, TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs';\nimport { PerspectiveCamera, Vector3 } from 'three';\n\nimport { getCommonCameraAccessors, getPerspectiveCameraAccessors } from './Accessors';\n\nexport function PerspectiveCameraWrapper(params: TPerspectiveCameraParams, { container, transformDriveService, audioService }: TCameraWrapperDependencies): TPerspectiveCameraWrapper {\n const { fov = 45, near = 1, far = 10000, lookAt, audioListener }: TPerspectiveCameraParams = params;\n const { width, height }: TOptional<DOMRect> = container.viewportRect$.value ?? { width: 0, height: 0 };\n\n const entity: TWriteable<TPerspectiveCamera> = new PerspectiveCamera(fov, container.getRatio(), near, far);\n\n const accessors: TCommonCameraAccessors & TPerspectiveCameraAccessors = Object.assign(getCommonCameraAccessors(entity), getPerspectiveCameraAccessors(entity));\n accessors.setAspect(width / height);\n\n const wrapper: TAbstractWrapper<TAnyCamera> = AbstractWrapper(entity, WrapperType.Camera, params);\n const drive: TCameraTransformDrive = CameraTransformDrive(params, { transformDriveService }, wrapper.id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, entity);\n\n container.resize$.pipe(takeUntil(wrapper.destroy$)).subscribe(({ width, height }: DOMRect): void => {\n (accessors as unknown as TPerspectiveCameraAccessors).setAspect(width / height);\n });\n\n const result = mergeAll(wrapper, accessors, {\n drive,\n driveToTargetConnector,\n entity,\n getType: (): CameraType => entity.type as CameraType,\n ...withObject3d(entity),\n ...withActiveMixin(),\n serialize: (): TPerspectiveCameraConfig => cameraEntityToConfig(result, { audioService })\n });\n\n applyObject3dParams(result, params);\n result._setActive(params.isActive, true);\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n if (isDefined(audioListener)) result.entity.remove(audioListener);\n destroySub$.unsubscribe();\n });\n\n if (isDefined(lookAt)) accessors.lookAt(new Vector3(lookAt.x, lookAt.y, lookAt.z));\n if (isDefined(params.up)) entity.up.set(params.up.x, params.up.y, params.up.z);\n if (isDefined(audioListener)) accessors.addListener(audioListener);\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(params.zoom)) entity.zoom = params.zoom;\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(params.near)) entity.near = params.near;\n\n applyPerspectiveCameraParams(entity, params);\n\n return result;\n}\n"],"names":["PerspectiveCameraWrapper","params","container","transformDriveService","audioService","fov","near","far","lookAt","audioListener","width","height","viewportRect$","value","entity","PerspectiveCamera","getRatio","accessors","Object","assign","getCommonCameraAccessors","getPerspectiveCameraAccessors","setAspect","wrapper","AbstractWrapper","WrapperType","Camera","drive","CameraTransformDrive","id","driveToTargetConnector","DriveToTargetConnector","resize$","pipe","takeUntil","destroy$","subscribe","result","mergeAll","getType","type","withObject3d","withActiveMixin","serialize","cameraEntityToConfig","applyObject3dParams","_setActive","isActive","destroySub$","isDefined","remove","unsubscribe","Vector3","x","y","z","up","set","addListener","zoom","applyPerspectiveCameraParams"],"mappings":"o+BA6BO,SAASA,yBAAyBC,QAAkCC,UAAEA,UAAAC,sBAAWA,sBAAAC,aAAuBA,eAC7G,MAAMC,IAAEA,IAAM,GAAAC,KAAIA,KAAO,MAAGC,IAAM,IAAAC,OAAOA,OAAAC,cAAQA,eAA4CR,QACvFS,MAAEA,MAAAC,OAAOA,QAA+BT,UAAUU,cAAcC,OAAS,CAAEH,MAAO,EAAGC,OAAQ,GAE7FG,OAAyC,IAAIC,kBAAkBV,IAAKH,UAAUc,WAAYV,KAAMC,KAEhGU,UAAkEC,OAAOC,OAAOC,yBAAyBN,QAASO,8BAA8BP,SACtJG,UAAUK,UAAUZ,MAAQC,QAE5B,MAAMY,QAAwCC,gBAAgBV,OAAQW,YAAYC,OAAQzB,QACpF0B,MAA+BC,qBAAqB3B,OAAQ,CAAEE,6CAAyBoB,QAAQM,IAC/FC,uBAAkDC,uBAAuBJ,MAAOb,QAEtFZ,UAAU8B,QAAQC,KAAKC,UAAUX,QAAQY,WAAWC,UAAU,EAAG1B,MAAAA,OAAOC,OAAAA,YACrEM,UAAqDK,UAAUZ,OAAQC,WAG1E,MAAM0B,OAASC,SAASf,QAASN,UAAW,CAC1CU,YACAG,8CACAhB,cACAyB,QAAS,IAAkBzB,OAAO0B,QAC/BC,aAAa3B,WACb4B,kBACHC,UAAW,IAAgCC,qBAAqBP,OAAQ,CAAEjC,8BAG5EyC,oBAAoBR,OAAQpC,QAC5BoC,OAAOS,WAAW7C,OAAO8C,UAAU,GAEnC,MAAMC,YAA4BX,OAAOF,SAASC,UAAU,KACtDa,UAAUxC,gBAAgB4B,OAAOvB,OAAOoC,OAAOzC,eACnDuC,YAAYG,gBAad,OAVIF,UAAUzC,SAASS,UAAUT,OAAO,IAAI4C,QAAQ5C,OAAO6C,EAAG7C,OAAO8C,EAAG9C,OAAO+C,IAC3EN,UAAUhD,OAAOuD,YAAYA,GAAGC,IAAIxD,OAAOuD,GAAGH,EAAGpD,OAAOuD,GAAGF,EAAGrD,OAAOuD,GAAGD,GACxEN,UAAUxC,gBAAgBQ,UAAUyC,YAAYjD,eAEhDwC,UAAUhD,OAAO0D,QAAO7C,OAAO6C,KAAO1D,OAAO0D,MAE7CV,UAAUhD,OAAOK,QAAOQ,OAAOR,KAAOL,OAAOK,MAEjDsD,6BAA6B9C,OAAQb,QAE9BoC,MACT"}
1
+ {"version":3,"file":"PerspectiveCameraWrapper.js","sources":["../../../src/Camera/Wrappers/PerspectiveCameraWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractWrapper, WrapperType } from '@hellpig/anarchy-engine/Abstract';\nimport { cameraEntityToConfig } from '@hellpig/anarchy-engine/Camera/Adapters';\nimport type { CameraType } from '@hellpig/anarchy-engine/Camera/Constants';\nimport type {\n TAnyCamera,\n TCameraTransformDrive,\n TCameraWrapperDependencies,\n TCommonCameraAccessors,\n TPerspectiveCamera,\n TPerspectiveCameraAccessors,\n TPerspectiveCameraConfig,\n TPerspectiveCameraParams,\n TPerspectiveCameraWrapper\n} from '@hellpig/anarchy-engine/Camera/Models';\nimport { CameraTransformDrive } from '@hellpig/anarchy-engine/Camera/TransformDrive';\nimport { applyPerspectiveCameraParams } from '@hellpig/anarchy-engine/Camera/Utils';\nimport { withActiveMixin, withObject3d } from '@hellpig/anarchy-engine/Mixins';\nimport type { TDriveToTargetConnector } from '@hellpig/anarchy-engine/TransformDrive';\nimport { DriveToTargetConnector } from '@hellpig/anarchy-engine/TransformDrive';\nimport { applyObject3dParams, mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { TOptional, TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs';\nimport { PerspectiveCamera, Vector3 } from 'three';\n\nimport { getCommonCameraAccessors, getPerspectiveCameraAccessors } from './Accessors';\n\nexport function PerspectiveCameraWrapper(params: TPerspectiveCameraParams, { container, transformDriveService, audioService }: TCameraWrapperDependencies): TPerspectiveCameraWrapper {\n const { fov = 45, near = 1, far = 10000, lookAt, audioListener }: TPerspectiveCameraParams = params;\n const { width, height }: TOptional<DOMRect> = container.viewportRect$.value ?? { width: 0, height: 0 };\n\n const entity: TWriteable<TPerspectiveCamera> = new PerspectiveCamera(fov, container.getRatio(), near, far);\n\n const accessors: TCommonCameraAccessors & TPerspectiveCameraAccessors = Object.assign(getCommonCameraAccessors(entity), getPerspectiveCameraAccessors(entity));\n accessors.setAspect(width / height);\n\n const wrapper: TAbstractWrapper<TAnyCamera> = AbstractWrapper(entity, WrapperType.Camera, params);\n const drive: TCameraTransformDrive = CameraTransformDrive(params, { transformDriveService }, wrapper.id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, entity);\n\n container.resize$.pipe(takeUntil(wrapper.destroy$)).subscribe(({ width, height }: DOMRect): void => {\n (accessors as unknown as TPerspectiveCameraAccessors).setAspect(width / height);\n });\n\n const result = mergeAll(wrapper, accessors, {\n drive,\n driveToTargetConnector,\n entity,\n getType: (): CameraType => entity.type as CameraType,\n ...withObject3d(entity),\n ...withActiveMixin(),\n serialize: (): TPerspectiveCameraConfig => cameraEntityToConfig(result, { audioService })\n });\n\n applyObject3dParams(result, params);\n result._setActive(params.isActive, true);\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n if (isDefined(audioListener)) result.entity.remove(audioListener);\n destroySub$.unsubscribe();\n });\n\n if (isDefined(lookAt)) accessors.lookAt(new Vector3(lookAt.x, lookAt.y, lookAt.z));\n if (isDefined(params.up)) entity.up.set(params.up.x, params.up.y, params.up.z);\n if (isDefined(audioListener)) accessors.addListener(audioListener);\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(params.zoom)) entity.zoom = params.zoom;\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(params.near)) entity.near = params.near;\n\n applyPerspectiveCameraParams(entity, params);\n\n return result;\n}\n"],"names":["PerspectiveCameraWrapper","params","container","transformDriveService","audioService","fov","near","far","lookAt","audioListener","width","height","viewportRect$","value","entity","PerspectiveCamera","getRatio","accessors","Object","assign","getCommonCameraAccessors","getPerspectiveCameraAccessors","setAspect","wrapper","AbstractWrapper","WrapperType","Camera","drive","CameraTransformDrive","id","driveToTargetConnector","DriveToTargetConnector","resize$","pipe","takeUntil","destroy$","subscribe","result","mergeAll","getType","type","withObject3d","withActiveMixin","serialize","cameraEntityToConfig","applyObject3dParams","_setActive","isActive","destroySub$","isDefined","remove","unsubscribe","Vector3","x","y","z","up","set","addListener","zoom","applyPerspectiveCameraParams"],"mappings":"o+BA6BO,SAASA,yBAAyBC,QAAkCC,UAAEA,UAAAC,sBAAWA,sBAAAC,aAAuBA,eAC7G,MAAMC,IAAEA,IAAM,GAAAC,KAAIA,KAAO,MAAGC,IAAM,IAAAC,OAAOA,OAAAC,cAAQA,eAA4CR,QACvFS,MAAEA,MAAAC,OAAOA,QAA+BT,UAAUU,cAAcC,OAAS,CAAEH,MAAO,EAAGC,OAAQ,GAE7FG,OAAyC,IAAIC,kBAAkBV,IAAKH,UAAUc,WAAYV,KAAMC,KAEhGU,UAAkEC,OAAOC,OAAOC,yBAAyBN,QAASO,8BAA8BP,SACtJG,UAAUK,UAAUZ,MAAQC,QAE5B,MAAMY,QAAwCC,gBAAgBV,OAAQW,YAAYC,OAAQzB,QACpF0B,MAA+BC,qBAAqB3B,OAAQ,CAAEE,6CAAyBoB,QAAQM,IAC/FC,uBAAkDC,uBAAuBJ,MAAOb,QAEtFZ,UAAU8B,QAAQC,KAAKC,UAAUX,QAAQY,WAAWC,UAAU,EAAG1B,MAAAA,OAAOC,OAAAA,YACrEM,UAAqDK,UAAUZ,OAAQC,WAG1E,MAAM0B,OAASC,SAASf,QAASN,UAAW,CAC1CU,YACAG,8CACAhB,cACAyB,QAAS,IAAkBzB,OAAO0B,QAC/BC,aAAa3B,WACb4B,kBACHC,UAAW,IAAgCC,qBAAqBP,OAAQ,CAAEjC,8BAG5EyC,oBAAoBR,OAAQpC,QAC5BoC,OAAOS,WAAW7C,OAAO8C,UAAU,GAEnC,MAAMC,YAA4BX,OAAOF,SAASC,UAAU,KACtDa,UAAUxC,gBAAgB4B,OAAOvB,OAAOoC,OAAOzC,eACnDuC,YAAYG,gBAad,OAVIF,UAAUzC,SAASS,UAAUT,OAAO,IAAI4C,QAAQ5C,OAAO6C,EAAG7C,OAAO8C,EAAG9C,OAAO+C,IAC3EN,UAAUhD,OAAOuD,YAAYA,GAAGC,IAAIxD,OAAOuD,GAAGH,EAAGpD,OAAOuD,GAAGF,EAAGrD,OAAOuD,GAAGD,GACxEN,UAAUxC,gBAAgBQ,UAAUyC,YAAYjD,eAEhDwC,UAAUhD,OAAO0D,QAAO7C,OAAO6C,KAAO1D,OAAO0D,MAE7CV,UAAUhD,OAAOK,QAAOQ,OAAOR,KAAOL,OAAOK,MAEjDsD,6BAA6B9C,OAAQb,QAE9BoC,MACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"WithCollisions.js","sources":["../../../src/Collisions/Mixins/WithCollisions.ts"],"sourcesContent":["import type { TActor, TActorParams } from '@Anarchy/Engine/Actor';\nimport type { TCollisionCheckResult, TCollisionsData, TCollisionsLoop, TCollisionsService, TWithCollisions } from '@Anarchy/Engine/Collisions/Models';\nimport { LoopUpdatePriority } from '@Anarchy/Engine/Loop';\nimport type { TMilliseconds } from '@Anarchy/Engine/Math';\nimport type { TDestroyable } from '@Anarchy/Engine/Mixins';\nimport { destroyableMixin } from '@Anarchy/Engine/Mixins';\nimport type { TSpatialCellWrapper } from '@Anarchy/Engine/Spatial';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { isDefined, removeDuplicates } from '@Anarchy/Shared/Utils';\nimport type { Observable, Subscription } from 'rxjs';\nimport { BehaviorSubject, EMPTY, filter, Subject, switchMap } from 'rxjs';\n\nexport function withCollisions(params: TActorParams, collisionsService: TCollisionsService, collisionsLoop: TCollisionsLoop): TWithCollisions {\n const autoUpdate$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(params.collisions?.isAutoUpdate ?? false);\n const value$: Subject<TCollisionCheckResult> = new Subject<TCollisionCheckResult>();\n let collisionsLoopSub$: Subscription;\n let filterFn: ((o: TActor) => boolean) | undefined = undefined;\n\n const destroyable: TDestroyable = destroyableMixin();\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n autoUpdate$.complete();\n value$.complete();\n collisionsLoopSub$?.unsubscribe();\n });\n\n function getActorsToCheck(actor: TActor): ReadonlyArray<TActor> {\n const cells: ReadonlyArray<TSpatialCellWrapper> = actor.spatial.getSpatialCells();\n if (cells.length > 0) {\n const objects: ReadonlyArray<TActor> = actor.spatial.getSpatialCells().flatMap((cell: TSpatialCellWrapper): ReadonlyArray<TActor> => cell.getObjects());\n return removeDuplicates(isDefined(filterFn) ? objects.filter(filterFn) : objects);\n }\n return [];\n // TODO this code is probably an extra overcomplicated corner case\n // const grid: TSpatialGridWrapper = spatialGridService.getRegistry().getByName(gridName);\n // return grid.findCellsByActorBox(actor).flatMap((cell: TSpatialCellWrapper): ReadonlyArray<TActor> => cell.getObjects());\n }\n\n return {\n collisions: {\n data: {\n updatePriority: params.collisions?.updatePriority ?? LoopUpdatePriority.LOW\n },\n start(actor: TActor): void {\n const collisionsInterpolationLengthMultiplier: number = 4;\n collisionsLoopSub$ = autoUpdate$\n .pipe(\n switchMap((isAutoUpdate: boolean): Subject<TMilliseconds> | Observable<never> => (isAutoUpdate ? collisionsLoop.tick$ : EMPTY)),\n filter((): boolean => collisionsLoop.shouldUpdateWithPriority(this.getCollisionsUpdatePriority()))\n )\n .subscribe((delta: TMilliseconds): void => {\n // TODO should be possible to check collisions against another grid\n const collision: TCollisionCheckResult | undefined = collisionsService.checkCollisions(actor, getActorsToCheck(actor), collisionsInterpolationLengthMultiplier, delta);\n if (isDefined(collision)) value$.next(collision);\n });\n },\n setData({ updatePriority }: TCollisionsData): void {\n this.setCollisionsUpdatePriority(updatePriority);\n },\n getData(): TCollisionsData {\n return this.data;\n },\n setCollisionsUpdatePriority(value: LoopUpdatePriority): void {\n // eslint-disable-next-line functional/immutable-data\n (this.data as TWriteable<TCollisionsData>).updatePriority = value;\n },\n setCollisionsFilterFn(fn: (actor: TActor) => boolean): void {\n filterFn = fn;\n },\n getCollisionsUpdatePriority(): LoopUpdatePriority {\n return this.data.updatePriority;\n },\n ...destroyable,\n autoUpdate$,\n value$: value$.asObservable()\n }\n };\n}\n"],"names":["withCollisions","params","collisionsService","collisionsLoop","autoUpdate$","BehaviorSubject","collisions","isAutoUpdate","value$","Subject","collisionsLoopSub$","filterFn","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","unsubscribe","complete","data","updatePriority","LoopUpdatePriority","LOW","start","actor","pipe","switchMap","tick$","EMPTY","filter","shouldUpdateWithPriority","this","getCollisionsUpdatePriority","delta","collision","checkCollisions","spatial","getSpatialCells","length","objects","flatMap","cell","getObjects","removeDuplicates","isDefined","getActorsToCheck","next","setData","setCollisionsUpdatePriority","getData","value","setCollisionsFilterFn","fn","asObservable"],"mappings":"wtBAYO,SAASA,eAAeC,OAAsBC,kBAAuCC,gBAC1F,MAAMC,YAAwC,IAAIC,gBAAyBJ,OAAOK,YAAYC,eAAgB,GACxGC,OAAyC,IAAIC,QACnD,IAAIC,mBACAC,SAEJ,MAAMC,YAA4BC,mBAC5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC/DF,YAAYG,cAEZb,YAAYc,WACZV,OAAOU,WACPR,oBAAoBO,gBAetB,MAAO,CACLX,WAAY,CACVa,KAAM,CACJC,eAAgBnB,OAAOK,YAAYc,gBAAkBC,mBAAmBC,KAE1E,KAAAC,CAAMC,OAEJd,mBAAqBN,YAClBqB,KACCC,UAAWnB,cAAuEA,aAAeJ,eAAewB,MAAQC,OACxHC,OAAO,IAAe1B,eAAe2B,yBAAyBC,KAAKC,iCAEpEhB,UAAWiB,QAEV,MAAMC,UAA+ChC,kBAAkBiC,gBAAgBX,MA1BjG,SAA0BA,OAExB,GADkDA,MAAMY,QAAQC,kBACtDC,OAAS,EAAG,CACpB,MAAMC,QAAiCf,MAAMY,QAAQC,kBAAkBG,QAASC,MAAqDA,KAAKC,cAC1I,OAAOC,iBAAiBC,UAAUjC,UAAY4B,QAAQV,OAAOlB,UAAY4B,QAC3E,CACA,MAAO,EAIT,CAgBwGM,CAAiBrB,OAR3D,EAQ4GS,OAC5JW,UAAUV,YAAY1B,OAAOsC,KAAKZ,YAE5C,EACA,OAAAa,EAAQ3B,eAAEA,iBACRW,KAAKiB,4BAA4B5B,eACnC,EACA,OAAA6B,GACE,OAAOlB,KAAKZ,IACd,EACA,2BAAA6B,CAA4BE,OAEzBnB,KAAKZ,KAAqCC,eAAiB8B,KAC9D,EACA,qBAAAC,CAAsBC,IACpBzC,SAAWyC,EACb,EACA,2BAAApB,GACE,OAAOD,KAAKZ,KAAKC,cACnB,KACGR,YACHR,wBACAI,OAAQA,OAAO6C,gBAGrB"}
1
+ {"version":3,"file":"WithCollisions.js","sources":["../../../src/Collisions/Mixins/WithCollisions.ts"],"sourcesContent":["import type { TActor, TActorParams } from '@hellpig/anarchy-engine/Actor';\nimport type { TCollisionCheckResult, TCollisionsData, TCollisionsLoop, TCollisionsService, TWithCollisions } from '@hellpig/anarchy-engine/Collisions/Models';\nimport { LoopUpdatePriority } from '@hellpig/anarchy-engine/Loop';\nimport type { TMilliseconds } from '@hellpig/anarchy-engine/Math';\nimport type { TDestroyable } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin } from '@hellpig/anarchy-engine/Mixins';\nimport type { TSpatialCellWrapper } from '@hellpig/anarchy-engine/Spatial';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined, removeDuplicates } from '@hellpig/anarchy-shared/Utils';\nimport type { Observable, Subscription } from 'rxjs';\nimport { BehaviorSubject, EMPTY, filter, Subject, switchMap } from 'rxjs';\n\nexport function withCollisions(params: TActorParams, collisionsService: TCollisionsService, collisionsLoop: TCollisionsLoop): TWithCollisions {\n const autoUpdate$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(params.collisions?.isAutoUpdate ?? false);\n const value$: Subject<TCollisionCheckResult> = new Subject<TCollisionCheckResult>();\n let collisionsLoopSub$: Subscription;\n let filterFn: ((o: TActor) => boolean) | undefined = undefined;\n\n const destroyable: TDestroyable = destroyableMixin();\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n autoUpdate$.complete();\n value$.complete();\n collisionsLoopSub$?.unsubscribe();\n });\n\n function getActorsToCheck(actor: TActor): ReadonlyArray<TActor> {\n const cells: ReadonlyArray<TSpatialCellWrapper> = actor.spatial.getSpatialCells();\n if (cells.length > 0) {\n const objects: ReadonlyArray<TActor> = actor.spatial.getSpatialCells().flatMap((cell: TSpatialCellWrapper): ReadonlyArray<TActor> => cell.getObjects());\n return removeDuplicates(isDefined(filterFn) ? objects.filter(filterFn) : objects);\n }\n return [];\n // TODO this code is probably an extra overcomplicated corner case\n // const grid: TSpatialGridWrapper = spatialGridService.getRegistry().getByName(gridName);\n // return grid.findCellsByActorBox(actor).flatMap((cell: TSpatialCellWrapper): ReadonlyArray<TActor> => cell.getObjects());\n }\n\n return {\n collisions: {\n data: {\n updatePriority: params.collisions?.updatePriority ?? LoopUpdatePriority.LOW\n },\n start(actor: TActor): void {\n const collisionsInterpolationLengthMultiplier: number = 4;\n collisionsLoopSub$ = autoUpdate$\n .pipe(\n switchMap((isAutoUpdate: boolean): Subject<TMilliseconds> | Observable<never> => (isAutoUpdate ? collisionsLoop.tick$ : EMPTY)),\n filter((): boolean => collisionsLoop.shouldUpdateWithPriority(this.getCollisionsUpdatePriority()))\n )\n .subscribe((delta: TMilliseconds): void => {\n // TODO should be possible to check collisions against another grid\n const collision: TCollisionCheckResult | undefined = collisionsService.checkCollisions(actor, getActorsToCheck(actor), collisionsInterpolationLengthMultiplier, delta);\n if (isDefined(collision)) value$.next(collision);\n });\n },\n setData({ updatePriority }: TCollisionsData): void {\n this.setCollisionsUpdatePriority(updatePriority);\n },\n getData(): TCollisionsData {\n return this.data;\n },\n setCollisionsUpdatePriority(value: LoopUpdatePriority): void {\n // eslint-disable-next-line functional/immutable-data\n (this.data as TWriteable<TCollisionsData>).updatePriority = value;\n },\n setCollisionsFilterFn(fn: (actor: TActor) => boolean): void {\n filterFn = fn;\n },\n getCollisionsUpdatePriority(): LoopUpdatePriority {\n return this.data.updatePriority;\n },\n ...destroyable,\n autoUpdate$,\n value$: value$.asObservable()\n }\n };\n}\n"],"names":["withCollisions","params","collisionsService","collisionsLoop","autoUpdate$","BehaviorSubject","collisions","isAutoUpdate","value$","Subject","collisionsLoopSub$","filterFn","destroyable","destroyableMixin","destroySub$","destroy$","subscribe","unsubscribe","complete","data","updatePriority","LoopUpdatePriority","LOW","start","actor","pipe","switchMap","tick$","EMPTY","filter","shouldUpdateWithPriority","this","getCollisionsUpdatePriority","delta","collision","checkCollisions","spatial","getSpatialCells","length","objects","flatMap","cell","getObjects","removeDuplicates","isDefined","getActorsToCheck","next","setData","setCollisionsUpdatePriority","getData","value","setCollisionsFilterFn","fn","asObservable"],"mappings":"wtBAYO,SAASA,eAAeC,OAAsBC,kBAAuCC,gBAC1F,MAAMC,YAAwC,IAAIC,gBAAyBJ,OAAOK,YAAYC,eAAgB,GACxGC,OAAyC,IAAIC,QACnD,IAAIC,mBACAC,SAEJ,MAAMC,YAA4BC,mBAC5BC,YAA4BF,YAAYG,SAASC,UAAU,KAC/DF,YAAYG,cAEZb,YAAYc,WACZV,OAAOU,WACPR,oBAAoBO,gBAetB,MAAO,CACLX,WAAY,CACVa,KAAM,CACJC,eAAgBnB,OAAOK,YAAYc,gBAAkBC,mBAAmBC,KAE1E,KAAAC,CAAMC,OAEJd,mBAAqBN,YAClBqB,KACCC,UAAWnB,cAAuEA,aAAeJ,eAAewB,MAAQC,OACxHC,OAAO,IAAe1B,eAAe2B,yBAAyBC,KAAKC,iCAEpEhB,UAAWiB,QAEV,MAAMC,UAA+ChC,kBAAkBiC,gBAAgBX,MA1BjG,SAA0BA,OAExB,GADkDA,MAAMY,QAAQC,kBACtDC,OAAS,EAAG,CACpB,MAAMC,QAAiCf,MAAMY,QAAQC,kBAAkBG,QAASC,MAAqDA,KAAKC,cAC1I,OAAOC,iBAAiBC,UAAUjC,UAAY4B,QAAQV,OAAOlB,UAAY4B,QAC3E,CACA,MAAO,EAIT,CAgBwGM,CAAiBrB,OAR3D,EAQ4GS,OAC5JW,UAAUV,YAAY1B,OAAOsC,KAAKZ,YAE5C,EACA,OAAAa,EAAQ3B,eAAEA,iBACRW,KAAKiB,4BAA4B5B,eACnC,EACA,OAAA6B,GACE,OAAOlB,KAAKZ,IACd,EACA,2BAAA6B,CAA4BE,OAEzBnB,KAAKZ,KAAqCC,eAAiB8B,KAC9D,EACA,qBAAAC,CAAsBC,IACpBzC,SAAWyC,EACb,EACA,2BAAApB,GACE,OAAOD,KAAKZ,KAAKC,cACnB,KACGR,YACHR,wBACAI,OAAQA,OAAO6C,gBAGrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"BvhService.js","sources":["../../../src/Collisions/Services/BvhService.ts"],"sourcesContent":["import type { TAbstractService } from '@Anarchy/Engine/Abstract';\nimport { AbstractService } from '@Anarchy/Engine/Abstract';\nimport type { TActor } from '@Anarchy/Engine/Actor';\nimport type { TBvhOptions, TBvhService } from '@Anarchy/Engine/Collisions/Models';\nimport type { TRawModel3d } from '@Anarchy/Engine/Models3d';\nimport type { TSceneWrapper } from '@Anarchy/Engine/Scene';\nimport type { BufferGeometry, Group, Intersection, Mesh, Object3D, Raycaster } from 'three';\nimport type { MeshBVH } from 'three-mesh-bvh';\nimport { acceleratedRaycast, computeBoundsTree, disposeBoundsTree, MeshBVHHelper } from 'three-mesh-bvh';\n\nexport function BvhService(): TBvhService {\n const abstractService: TAbstractService = AbstractService();\n\n const computeBVHBoundsTree = (geometry: BufferGeometry, options?: TBvhOptions): MeshBVH => computeBoundsTree.call(geometry, options);\n const disposeBVHBoundsTree = (geometry: BufferGeometry): void => disposeBoundsTree.call(geometry);\n\n function raycastWithBvh(actor: TActor, raycaster: Raycaster, intersects: Array<Intersection>): void {\n processEntity(actor.model3d.getRawModel3d(), (mesh) => {\n acceleratedRaycast.call(mesh, raycaster, intersects);\n });\n }\n\n function createBvhForActor(actor: TActor, options?: TBvhOptions): void {\n processEntity(actor.model3d.getRawModel3d(), (mesh: Mesh) => computeBVHBoundsTree(mesh.geometry, options));\n }\n\n // this highlight is for debugging purposes only\n function _debugVisualizeBvhForActor(actor: TActor, sceneW: TSceneWrapper, depth: number = 10): void {\n processEntity(actor.model3d.getRawModel3d(), (mesh: Mesh) => {\n const bvhHelper: MeshBVHHelper = new MeshBVHHelper(mesh, depth);\n sceneW.entity.add(bvhHelper);\n });\n }\n\n // this highlight is for debugging purposes only\n function _debugVisualizeBvhForScene(sceneW: TSceneWrapper, depth: number = 10): void {\n sceneW.entity.traverse((object) => {\n if ((object as Mesh).isMesh) {\n const bvhHelper: MeshBVHHelper = new MeshBVHHelper(object as Mesh, depth);\n sceneW.entity.add(bvhHelper);\n }\n });\n }\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractService, {\n computeBVHBoundsTree,\n disposeBVHBoundsTree,\n raycastWithBvh,\n createBvhForActor,\n _debugVisualizeBvhForActor,\n _debugVisualizeBvhForScene\n });\n}\n\nfunction processEntity(entity: TRawModel3d, callback: (mesh: Mesh) => void): void {\n if ((entity as Mesh).isMesh) return callback(entity as Mesh);\n if ((entity as Group).isGroup || (entity as Object3D).isObject3D) {\n return entity.traverse((object: unknown) => {\n if ((object as Mesh).isMesh) {\n callback(object as Mesh);\n }\n });\n }\n return undefined;\n}\n"],"names":["BvhService","abstractService","AbstractService","computeBVHBoundsTree","geometry","options","computeBoundsTree","call","Object","assign","disposeBVHBoundsTree","disposeBoundsTree","raycastWithBvh","actor","raycaster","intersects","processEntity","model3d","getRawModel3d","mesh","acceleratedRaycast","createBvhForActor","_debugVisualizeBvhForActor","sceneW","depth","bvhHelper","MeshBVHHelper","entity","add","_debugVisualizeBvhForScene","traverse","object","isMesh","callback","isGroup","isObject3D"],"mappings":"wSAUO,SAASA,aACd,MAAMC,gBAAoCC,kBAEpCC,qBAAuB,CAACC,SAA0BC,UAAmCC,kBAAkBC,KAAKH,SAAUC,SAgC5H,OAAOG,OAAOC,OAAOR,gBAAiB,CACpCE,0CACAO,qBAjC4BN,UAAmCO,kBAAkBJ,KAAKH,UAkCtFQ,eAhCF,SAAwBC,MAAeC,UAAsBC,YAC3DC,cAAcH,MAAMI,QAAQC,gBAAkBC,OAC5CC,mBAAmBb,KAAKY,KAAML,UAAWC,aAE7C,EA6BEM,kBA3BF,SAA2BR,MAAeR,SACxCW,cAAcH,MAAMI,QAAQC,gBAAkBC,MAAehB,qBAAqBgB,KAAKf,SAAUC,SACnG,EA0BEiB,2BAvBF,SAAoCT,MAAeU,OAAuBC,MAAgB,IACxFR,cAAcH,MAAMI,QAAQC,gBAAkBC,OAC5C,MAAMM,UAA2B,IAAIC,cAAcP,KAAMK,OACzDD,OAAOI,OAAOC,IAAIH,YAEtB,EAmBEI,2BAhBF,SAAoCN,OAAuBC,MAAgB,IACzED,OAAOI,OAAOG,SAAUC,SACtB,GAAKA,OAAgBC,OAAQ,CAC3B,MAAMP,UAA2B,IAAIC,cAAcK,OAAgBP,OACnED,OAAOI,OAAOC,IAAIH,UACpB,GAEJ,GAWF,CAEA,SAAST,cAAcW,OAAqBM,UAC1C,OAAKN,OAAgBK,OAAeC,SAASN,QACxCA,OAAiBO,SAAYP,OAAoBQ,WAC7CR,OAAOG,SAAUC,SACjBA,OAAgBC,QACnBC,SAASF,eAHf,CAQF"}
1
+ {"version":3,"file":"BvhService.js","sources":["../../../src/Collisions/Services/BvhService.ts"],"sourcesContent":["import type { TAbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport type { TActor } from '@hellpig/anarchy-engine/Actor';\nimport type { TBvhOptions, TBvhService } from '@hellpig/anarchy-engine/Collisions/Models';\nimport type { TRawModel3d } from '@hellpig/anarchy-engine/Models3d';\nimport type { TSceneWrapper } from '@hellpig/anarchy-engine/Scene';\nimport type { BufferGeometry, Group, Intersection, Mesh, Object3D, Raycaster } from 'three';\nimport type { MeshBVH } from 'three-mesh-bvh';\nimport { acceleratedRaycast, computeBoundsTree, disposeBoundsTree, MeshBVHHelper } from 'three-mesh-bvh';\n\nexport function BvhService(): TBvhService {\n const abstractService: TAbstractService = AbstractService();\n\n const computeBVHBoundsTree = (geometry: BufferGeometry, options?: TBvhOptions): MeshBVH => computeBoundsTree.call(geometry, options);\n const disposeBVHBoundsTree = (geometry: BufferGeometry): void => disposeBoundsTree.call(geometry);\n\n function raycastWithBvh(actor: TActor, raycaster: Raycaster, intersects: Array<Intersection>): void {\n processEntity(actor.model3d.getRawModel3d(), (mesh) => {\n acceleratedRaycast.call(mesh, raycaster, intersects);\n });\n }\n\n function createBvhForActor(actor: TActor, options?: TBvhOptions): void {\n processEntity(actor.model3d.getRawModel3d(), (mesh: Mesh) => computeBVHBoundsTree(mesh.geometry, options));\n }\n\n // this highlight is for debugging purposes only\n function _debugVisualizeBvhForActor(actor: TActor, sceneW: TSceneWrapper, depth: number = 10): void {\n processEntity(actor.model3d.getRawModel3d(), (mesh: Mesh) => {\n const bvhHelper: MeshBVHHelper = new MeshBVHHelper(mesh, depth);\n sceneW.entity.add(bvhHelper);\n });\n }\n\n // this highlight is for debugging purposes only\n function _debugVisualizeBvhForScene(sceneW: TSceneWrapper, depth: number = 10): void {\n sceneW.entity.traverse((object) => {\n if ((object as Mesh).isMesh) {\n const bvhHelper: MeshBVHHelper = new MeshBVHHelper(object as Mesh, depth);\n sceneW.entity.add(bvhHelper);\n }\n });\n }\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractService, {\n computeBVHBoundsTree,\n disposeBVHBoundsTree,\n raycastWithBvh,\n createBvhForActor,\n _debugVisualizeBvhForActor,\n _debugVisualizeBvhForScene\n });\n}\n\nfunction processEntity(entity: TRawModel3d, callback: (mesh: Mesh) => void): void {\n if ((entity as Mesh).isMesh) return callback(entity as Mesh);\n if ((entity as Group).isGroup || (entity as Object3D).isObject3D) {\n return entity.traverse((object: unknown) => {\n if ((object as Mesh).isMesh) {\n callback(object as Mesh);\n }\n });\n }\n return undefined;\n}\n"],"names":["BvhService","abstractService","AbstractService","computeBVHBoundsTree","geometry","options","computeBoundsTree","call","Object","assign","disposeBVHBoundsTree","disposeBoundsTree","raycastWithBvh","actor","raycaster","intersects","processEntity","model3d","getRawModel3d","mesh","acceleratedRaycast","createBvhForActor","_debugVisualizeBvhForActor","sceneW","depth","bvhHelper","MeshBVHHelper","entity","add","_debugVisualizeBvhForScene","traverse","object","isMesh","callback","isGroup","isObject3D"],"mappings":"wSAUO,SAASA,aACd,MAAMC,gBAAoCC,kBAEpCC,qBAAuB,CAACC,SAA0BC,UAAmCC,kBAAkBC,KAAKH,SAAUC,SAgC5H,OAAOG,OAAOC,OAAOR,gBAAiB,CACpCE,0CACAO,qBAjC4BN,UAAmCO,kBAAkBJ,KAAKH,UAkCtFQ,eAhCF,SAAwBC,MAAeC,UAAsBC,YAC3DC,cAAcH,MAAMI,QAAQC,gBAAkBC,OAC5CC,mBAAmBb,KAAKY,KAAML,UAAWC,aAE7C,EA6BEM,kBA3BF,SAA2BR,MAAeR,SACxCW,cAAcH,MAAMI,QAAQC,gBAAkBC,MAAehB,qBAAqBgB,KAAKf,SAAUC,SACnG,EA0BEiB,2BAvBF,SAAoCT,MAAeU,OAAuBC,MAAgB,IACxFR,cAAcH,MAAMI,QAAQC,gBAAkBC,OAC5C,MAAMM,UAA2B,IAAIC,cAAcP,KAAMK,OACzDD,OAAOI,OAAOC,IAAIH,YAEtB,EAmBEI,2BAhBF,SAAoCN,OAAuBC,MAAgB,IACzED,OAAOI,OAAOG,SAAUC,SACtB,GAAKA,OAAgBC,OAAQ,CAC3B,MAAMP,UAA2B,IAAIC,cAAcK,OAAgBP,OACnED,OAAOI,OAAOC,IAAIH,UACpB,GAEJ,GAWF,CAEA,SAAST,cAAcW,OAAqBM,UAC1C,OAAKN,OAAgBK,OAAeC,SAASN,QACxCA,OAAiBO,SAAYP,OAAoBQ,WAC7CR,OAAOG,SAAUC,SACjBA,OAAgBC,QACnBC,SAASF,eAHf,CAQF"}
@@ -1 +1 @@
1
- {"version":3,"file":"CollisionsService.js","sources":["../../../src/Collisions/Services/CollisionsService.ts"],"sourcesContent":["import type { TAbstractService } from '@Anarchy/Engine/Abstract';\nimport { AbstractService } from '@Anarchy/Engine/Abstract';\nimport type { TActor } from '@Anarchy/Engine/Actor/Models';\nimport type { TBvhService, TCollisionCheckResult, TCollisionsService } from '@Anarchy/Engine/Collisions/Models';\nimport type { TReadonlyVector3 } from '@Anarchy/Engine/ThreeLib';\nimport type { Vector3 } from 'three';\nimport { Raycaster } from 'three';\n\nimport { BvhService } from './BvhService';\n\nexport function CollisionsService(): TCollisionsService {\n const bvhService: TBvhService = BvhService();\n const abstractService: TAbstractService = AbstractService([bvhService]);\n\n // The bigger \"interpolationLengthMultiplier\" then less chance the bullet won't fly through the target without a collision registration. But the too big value might lead to false positives registrations\n // i.g. bigger \"interpolationLengthMultiplier\" (2, 4, etc.) is safer (but better test it first)\n function checkCollisions(actor: TActor, actorsToCheck: ReadonlyArray<TActor>, interpolationLengthMultiplier: number, delta: number): TCollisionCheckResult | undefined {\n const currentPosition: TReadonlyVector3 = actor.drive.position$.value;\n const direction: Vector3 = actor.drive.kinematic.getLinearDirection().clone().normalize();\n const speed: number = actor.drive.kinematic.getLinearSpeed();\n\n const extendedDistance: number = speed * delta * interpolationLengthMultiplier;\n const previousPosition: Vector3 = currentPosition.clone().sub(direction.multiplyScalar(extendedDistance));\n\n // TODO we could reuse raycaster instead of creating a new one every time\n const raycaster = new Raycaster();\n raycaster.set(previousPosition, direction);\n // eslint-disable-next-line functional/immutable-data\n raycaster.far = extendedDistance;\n // eslint-disable-next-line functional/immutable-data\n raycaster.firstHitOnly = true;\n\n // eslint-disable-next-line functional/no-loop-statements\n for (const object of actorsToCheck) {\n if (object.id === actor.id) continue;\n\n const intersects = raycaster.intersectObject(object.model3d.getRawModel3d(), true);\n if (intersects.length > 0) {\n const intersection = intersects[0];\n if (intersection.distance <= extendedDistance) {\n return {\n object,\n distance: intersection.distance,\n collisionPoint: intersection.point,\n bulletPosition: currentPosition.clone()\n };\n }\n }\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractService, {\n checkCollisions,\n bvh: bvhService\n });\n}\n"],"names":["CollisionsService","bvhService","BvhService","abstractService","AbstractService","Object","assign","checkCollisions","actor","actorsToCheck","interpolationLengthMultiplier","delta","currentPosition","drive","position$","value","direction","kinematic","getLinearDirection","clone","normalize","extendedDistance","getLinearSpeed","previousPosition","sub","multiplyScalar","raycaster","Raycaster","set","far","firstHitOnly","object","id","intersects","intersectObject","model3d","getRawModel3d","length","intersection","distance","collisionPoint","point","bulletPosition","bvh"],"mappings":"6IAUO,SAASA,oBACd,MAAMC,WAA0BC,aAC1BC,gBAAoCC,gBAAgB,CAACH,aA0C3D,OAAOI,OAAOC,OAAOH,gBAAiB,CACpCI,gBAvCF,SAAyBC,MAAeC,cAAsCC,8BAAuCC,OACnH,MAAMC,gBAAoCJ,MAAMK,MAAMC,UAAUC,MAC1DC,UAAqBR,MAAMK,MAAMI,UAAUC,qBAAqBC,QAAQC,YAGxEC,iBAFgBb,MAAMK,MAAMI,UAAUK,iBAEHX,MAAQD,8BAC3Ca,iBAA4BX,gBAAgBO,QAAQK,IAAIR,UAAUS,eAAeJ,mBAGjFK,UAAY,IAAIC,UACtBD,UAAUE,IAAIL,iBAAkBP,WAEhCU,UAAUG,IAAMR,iBAEhBK,UAAUI,cAAe,EAGzB,IAAA,MAAWC,UAAUtB,cAAe,CAClC,GAAIsB,OAAOC,KAAOxB,MAAMwB,GAAI,SAE5B,MAAMC,WAAaP,UAAUQ,gBAAgBH,OAAOI,QAAQC,iBAAiB,GAC7E,GAAIH,WAAWI,OAAS,EAAG,CACzB,MAAMC,aAAeL,WAAW,GAChC,GAAIK,aAAaC,UAAYlB,iBAC3B,MAAO,CACLU,cACAQ,SAAUD,aAAaC,SACvBC,eAAgBF,aAAaG,MAC7BC,eAAgB9B,gBAAgBO,QAGtC,CACF,CAGF,EAKEwB,IAAK1C,YAET"}
1
+ {"version":3,"file":"CollisionsService.js","sources":["../../../src/Collisions/Services/CollisionsService.ts"],"sourcesContent":["import type { TAbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport type { TActor } from '@hellpig/anarchy-engine/Actor/Models';\nimport type { TBvhService, TCollisionCheckResult, TCollisionsService } from '@hellpig/anarchy-engine/Collisions/Models';\nimport type { TReadonlyVector3 } from '@hellpig/anarchy-engine/ThreeLib';\nimport type { Vector3 } from 'three';\nimport { Raycaster } from 'three';\n\nimport { BvhService } from './BvhService';\n\nexport function CollisionsService(): TCollisionsService {\n const bvhService: TBvhService = BvhService();\n const abstractService: TAbstractService = AbstractService([bvhService]);\n\n // The bigger \"interpolationLengthMultiplier\" then less chance the bullet won't fly through the target without a collision registration. But the too big value might lead to false positives registrations\n // i.g. bigger \"interpolationLengthMultiplier\" (2, 4, etc.) is safer (but better test it first)\n function checkCollisions(actor: TActor, actorsToCheck: ReadonlyArray<TActor>, interpolationLengthMultiplier: number, delta: number): TCollisionCheckResult | undefined {\n const currentPosition: TReadonlyVector3 = actor.drive.position$.value;\n const direction: Vector3 = actor.drive.kinematic.getLinearDirection().clone().normalize();\n const speed: number = actor.drive.kinematic.getLinearSpeed();\n\n const extendedDistance: number = speed * delta * interpolationLengthMultiplier;\n const previousPosition: Vector3 = currentPosition.clone().sub(direction.multiplyScalar(extendedDistance));\n\n // TODO we could reuse raycaster instead of creating a new one every time\n const raycaster = new Raycaster();\n raycaster.set(previousPosition, direction);\n // eslint-disable-next-line functional/immutable-data\n raycaster.far = extendedDistance;\n // eslint-disable-next-line functional/immutable-data\n raycaster.firstHitOnly = true;\n\n // eslint-disable-next-line functional/no-loop-statements\n for (const object of actorsToCheck) {\n if (object.id === actor.id) continue;\n\n const intersects = raycaster.intersectObject(object.model3d.getRawModel3d(), true);\n if (intersects.length > 0) {\n const intersection = intersects[0];\n if (intersection.distance <= extendedDistance) {\n return {\n object,\n distance: intersection.distance,\n collisionPoint: intersection.point,\n bulletPosition: currentPosition.clone()\n };\n }\n }\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractService, {\n checkCollisions,\n bvh: bvhService\n });\n}\n"],"names":["CollisionsService","bvhService","BvhService","abstractService","AbstractService","Object","assign","checkCollisions","actor","actorsToCheck","interpolationLengthMultiplier","delta","currentPosition","drive","position$","value","direction","kinematic","getLinearDirection","clone","normalize","extendedDistance","getLinearSpeed","previousPosition","sub","multiplyScalar","raycaster","Raycaster","set","far","firstHitOnly","object","id","intersects","intersectObject","model3d","getRawModel3d","length","intersection","distance","collisionPoint","point","bulletPosition","bvh"],"mappings":"6IAUO,SAASA,oBACd,MAAMC,WAA0BC,aAC1BC,gBAAoCC,gBAAgB,CAACH,aA0C3D,OAAOI,OAAOC,OAAOH,gBAAiB,CACpCI,gBAvCF,SAAyBC,MAAeC,cAAsCC,8BAAuCC,OACnH,MAAMC,gBAAoCJ,MAAMK,MAAMC,UAAUC,MAC1DC,UAAqBR,MAAMK,MAAMI,UAAUC,qBAAqBC,QAAQC,YAGxEC,iBAFgBb,MAAMK,MAAMI,UAAUK,iBAEHX,MAAQD,8BAC3Ca,iBAA4BX,gBAAgBO,QAAQK,IAAIR,UAAUS,eAAeJ,mBAGjFK,UAAY,IAAIC,UACtBD,UAAUE,IAAIL,iBAAkBP,WAEhCU,UAAUG,IAAMR,iBAEhBK,UAAUI,cAAe,EAGzB,IAAA,MAAWC,UAAUtB,cAAe,CAClC,GAAIsB,OAAOC,KAAOxB,MAAMwB,GAAI,SAE5B,MAAMC,WAAaP,UAAUQ,gBAAgBH,OAAOI,QAAQC,iBAAiB,GAC7E,GAAIH,WAAWI,OAAS,EAAG,CACzB,MAAMC,aAAeL,WAAW,GAChC,GAAIK,aAAaC,UAAYlB,iBAC3B,MAAO,CACLU,cACAQ,SAAUD,aAAaC,SACvBC,eAAgBF,aAAaG,MAC7BC,eAAgB9B,gBAAgBO,QAGtC,CACF,CAGF,EAKEwB,IAAK1C,YAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Color/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TColorWrapper } from '@Anarchy/Engine/Color/Models';\nimport { isNotDefined } from '@Anarchy/Shared/Utils';\nimport type { Color, ColorRepresentation } from 'three';\n\nexport function colorEntityToConfig(entity: TColorWrapper): ColorRepresentation {\n return serializeColor(entity.entity);\n}\n\nexport function serializeColor(color: Color): string {\n return `#${color.getHexString().toUpperCase()}`;\n}\n\nexport function serializeColorWhenPossible(color: Color | undefined): string | undefined {\n if (isNotDefined(color)) return undefined;\n return serializeColor(color);\n}\n"],"names":["colorEntityToConfig","entity","serializeColor","color","getHexString","toUpperCase","serializeColorWhenPossible","isNotDefined"],"mappings":"gFAIO,SAASA,oBAAoBC,QAClC,OAAOC,eAAeD,OAAOA,OAC/B,CAEO,SAASC,eAAeC,OAC7B,MAAO,IAAIA,MAAMC,eAAeC,eAClC,CAEO,SAASC,2BAA2BH,OACzC,IAAII,aAAaJ,OACjB,OAAOD,eAAeC,MACxB"}
1
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Color/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TColorWrapper } from '@hellpig/anarchy-engine/Color/Models';\nimport { isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Color, ColorRepresentation } from 'three';\n\nexport function colorEntityToConfig(entity: TColorWrapper): ColorRepresentation {\n return serializeColor(entity.entity);\n}\n\nexport function serializeColor(color: Color): string {\n return `#${color.getHexString().toUpperCase()}`;\n}\n\nexport function serializeColorWhenPossible(color: Color | undefined): string | undefined {\n if (isNotDefined(color)) return undefined;\n return serializeColor(color);\n}\n"],"names":["colorEntityToConfig","entity","serializeColor","color","getHexString","toUpperCase","serializeColorWhenPossible","isNotDefined"],"mappings":"gFAIO,SAASA,oBAAoBC,QAClC,OAAOC,eAAeD,OAAOA,OAC/B,CAEO,SAASC,eAAeC,OAC7B,MAAO,IAAIA,MAAMC,eAAeC,eAClC,CAEO,SAASC,2BAA2BH,OACzC,IAAII,aAAaJ,OACjB,OAAOD,eAAeC,MACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColorWrapper.js","sources":["../../../src/Color/Wrappers/ColorWrapper.ts"],"sourcesContent":["import { AbstractWrapper, WrapperType } from '@Anarchy/Engine/Abstract';\nimport { colorEntityToConfig } from '@Anarchy/Engine/Color/Adapters';\nimport type { TColor, TColorParams, TColorWrapper } from '@Anarchy/Engine/Color/Models';\nimport { isColorWrapper } from '@Anarchy/Engine/Utils';\nimport type { ColorRepresentation } from 'three';\nimport { Color } from 'three';\n\nexport function ColorWrapper(color: TColorParams): TColorWrapper {\n const entity: TColor = new Color(isColorWrapper(color) ? color.entity : color);\n const result = Object.assign(AbstractWrapper(entity, WrapperType.Color), { entity, serialize: (): ColorRepresentation => colorEntityToConfig(result) });\n return result;\n}\n"],"names":["ColorWrapper","color","entity","Color","isColorWrapper","result","Object","assign","AbstractWrapper","WrapperType","serialize","colorEntityToConfig"],"mappings":"uRAOO,SAASA,aAAaC,OAC3B,MAAMC,OAAiB,IAAIC,MAAMC,eAAeH,OAASA,MAAMC,OAASD,OAClEI,OAASC,OAAOC,OAAOC,gBAAgBN,OAAQO,YAAYN,OAAQ,CAAED,cAAQQ,UAAW,IAA2BC,oBAAoBN,UAC7I,OAAOA,MACT"}
1
+ {"version":3,"file":"ColorWrapper.js","sources":["../../../src/Color/Wrappers/ColorWrapper.ts"],"sourcesContent":["import { AbstractWrapper, WrapperType } from '@hellpig/anarchy-engine/Abstract';\nimport { colorEntityToConfig } from '@hellpig/anarchy-engine/Color/Adapters';\nimport type { TColor, TColorParams, TColorWrapper } from '@hellpig/anarchy-engine/Color/Models';\nimport { isColorWrapper } from '@hellpig/anarchy-engine/Utils';\nimport type { ColorRepresentation } from 'three';\nimport { Color } from 'three';\n\nexport function ColorWrapper(color: TColorParams): TColorWrapper {\n const entity: TColor = new Color(isColorWrapper(color) ? color.entity : color);\n const result = Object.assign(AbstractWrapper(entity, WrapperType.Color), { entity, serialize: (): ColorRepresentation => colorEntityToConfig(result) });\n return result;\n}\n"],"names":["ColorWrapper","color","entity","Color","isColorWrapper","result","Object","assign","AbstractWrapper","WrapperType","serialize","colorEntityToConfig"],"mappings":"uRAOO,SAASA,aAAaC,OAC3B,MAAMC,OAAiB,IAAIC,MAAMC,eAAeH,OAASA,MAAMC,OAASD,OAClEI,OAASC,OAAOC,OAAOC,gBAAgBN,OAAQO,YAAYN,OAAQ,CAAED,cAAQQ,UAAW,IAA2BC,oBAAoBN,UAC7I,OAAOA,MACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"AmbientContext.js","sources":["../../../src/Context/AmbientContext/AmbientContext.ts"],"sourcesContent":["import { ContainerDecorator } from '@Anarchy/Engine/Global';\n\nimport type { TAmbientContext } from './Models';\n\nexport const ambientContext: TAmbientContext = { globalContainer: ContainerDecorator(window) };\n"],"names":["ambientContext","globalContainer","ContainerDecorator","window"],"mappings":"8EAIO,MAAMA,eAAkC,CAAEC,gBAAiBC,mBAAmBC"}
1
+ {"version":3,"file":"AmbientContext.js","sources":["../../../src/Context/AmbientContext/AmbientContext.ts"],"sourcesContent":["import { ContainerDecorator } from '@hellpig/anarchy-engine/Global';\n\nimport type { TAmbientContext } from './Models';\n\nexport const ambientContext: TAmbientContext = { globalContainer: ContainerDecorator(window) };\n"],"names":["ambientContext","globalContainer","ContainerDecorator","window"],"mappings":"8EAIO,MAAMA,eAAkC,CAAEC,gBAAiBC,mBAAmBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Controls/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TGetParamsFn } from '@Anarchy/Engine/Abstract';\nimport { ControlsType } from '@Anarchy/Engine/Controls/Constants';\nimport type {\n TAdditionalControlsConfigParams,\n TControlsConfig,\n TControlsParams,\n TFpsControlsConfig,\n TFpsControlsParams,\n TOrbitControlsConfig,\n TOrbitControlsConfigOptions,\n TOrbitControlsParams,\n TOrbitControlsParamsOptions\n} from '@Anarchy/Engine/Controls/Models';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\nimport { Vector3 } from 'three';\n\nexport const controlsConfigToParams: TGetParamsFn<TControlsParams, TControlsConfig> = (config: TControlsConfig, additional: TAdditionalControlsConfigParams): TControlsParams | never => {\n if (config.type === ControlsType.OrbitControls) return getOrbitControlsParams(config as TOrbitControlsConfig, additional);\n if (config.type === ControlsType.FirstPersonControls) return getFpsControlsParams(config as TFpsControlsConfig, additional);\n throw new Error(`Cannot create controls of unknown type \"${config.type}\"`);\n};\n\nfunction getOrbitControlsParams(config: TOrbitControlsConfig, { camera, canvas }: TAdditionalControlsConfigParams): TOrbitControlsParams {\n if (config.type !== ControlsType.OrbitControls) throw new Error(`Cannot create controls of unknown type \"${config.type}\"`);\n const { options, ...rest } = config;\n const paramsOptions: TOrbitControlsParamsOptions = getOptionsFromConfig(options);\n\n return {\n ...rest,\n options: paramsOptions,\n camera,\n target: isDefined(config.target) ? new Vector3().copy(config.target) : new Vector3(),\n canvas\n };\n}\n\nfunction getOptionsFromConfig(options: TOrbitControlsConfigOptions | undefined): TOrbitControlsParamsOptions {\n if (isNotDefined(options)) return {};\n\n const { cursor, ...rest } = options;\n\n let result: TOrbitControlsParamsOptions = { ...rest };\n if (isDefined(cursor)) result = { ...result, cursor: new Vector3(cursor.x, cursor.y, cursor.z) };\n\n return result;\n}\n\nfunction getFpsControlsParams(config: TFpsControlsConfig, { camera, canvas }: TAdditionalControlsConfigParams): TFpsControlsParams {\n if (config.type !== ControlsType.FirstPersonControls) throw new Error(`Cannot create controls of unknown type \"${config.type}\"`);\n\n return { ...config, camera, canvas };\n}\n"],"names":["controlsConfigToParams","config","additional","type","ControlsType","OrbitControls","camera","canvas","Error","options","rest","paramsOptions","isNotDefined","cursor","result","isDefined","Vector3","x","y","z","getOptionsFromConfig","target","copy","getOrbitControlsParams","FirstPersonControls","getFpsControlsParams"],"mappings":"4KAgBO,MAAMA,uBAAyE,CAACC,OAAyBC,cAC9G,GAAID,OAAOE,OAASC,aAAaC,cAAe,OAKlD,SAAgCJ,QAA8BK,OAAEA,OAAAC,OAAQA,SACtE,GAAIN,OAAOE,OAASC,aAAaC,cAAe,MAAM,IAAIG,MAAM,2CAA2CP,OAAOE,SAClH,MAAMM,QAAEA,WAAYC,MAAST,OACvBU,cAWR,SAA8BF,SAC5B,GAAIG,aAAaH,SAAU,MAAO,CAAA,EAElC,MAAMI,OAAEA,UAAWH,MAASD,QAE5B,IAAIK,OAAsC,IAAKJ,MAG/C,OAFIK,UAAUF,UAASC,OAAS,IAAKA,OAAQD,OAAQ,IAAIG,QAAQH,OAAOI,EAAGJ,OAAOK,EAAGL,OAAOM,KAErFL,MACT,CApBqDM,CAAqBX,SAExE,MAAO,IACFC,KACHD,QAASE,cACTL,cACAe,OAAQN,UAAUd,OAAOoB,SAAU,IAAIL,SAAUM,KAAKrB,OAAOoB,QAAU,IAAIL,QAC3ET,cAEJ,CAjByDgB,CAAuBtB,OAAgCC,YAC9G,GAAID,OAAOE,OAASC,aAAaoB,oBAAqB,OA6BxD,SAA8BvB,QAA4BK,OAAEA,OAAAC,OAAQA,SAClE,GAAIN,OAAOE,OAASC,aAAaoB,oBAAqB,MAAM,IAAIhB,MAAM,2CAA2CP,OAAOE,SAExH,MAAO,IAAKF,OAAQK,cAAQC,cAC9B,CAjC+DkB,CAAqBxB,OAA8BC,YAChH,MAAM,IAAIM,MAAM,2CAA2CP,OAAOE"}
1
+ {"version":3,"file":"ConfigToParams.js","sources":["../../../src/Controls/Adapters/ConfigToParams.ts"],"sourcesContent":["import type { TGetParamsFn } from '@hellpig/anarchy-engine/Abstract';\nimport { ControlsType } from '@hellpig/anarchy-engine/Controls/Constants';\nimport type {\n TAdditionalControlsConfigParams,\n TControlsConfig,\n TControlsParams,\n TFpsControlsConfig,\n TFpsControlsParams,\n TOrbitControlsConfig,\n TOrbitControlsConfigOptions,\n TOrbitControlsParams,\n TOrbitControlsParamsOptions\n} from '@hellpig/anarchy-engine/Controls/Models';\nimport { isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport { Vector3 } from 'three';\n\nexport const controlsConfigToParams: TGetParamsFn<TControlsParams, TControlsConfig> = (config: TControlsConfig, additional: TAdditionalControlsConfigParams): TControlsParams | never => {\n if (config.type === ControlsType.OrbitControls) return getOrbitControlsParams(config as TOrbitControlsConfig, additional);\n if (config.type === ControlsType.FirstPersonControls) return getFpsControlsParams(config as TFpsControlsConfig, additional);\n throw new Error(`Cannot create controls of unknown type \"${config.type}\"`);\n};\n\nfunction getOrbitControlsParams(config: TOrbitControlsConfig, { camera, canvas }: TAdditionalControlsConfigParams): TOrbitControlsParams {\n if (config.type !== ControlsType.OrbitControls) throw new Error(`Cannot create controls of unknown type \"${config.type}\"`);\n const { options, ...rest } = config;\n const paramsOptions: TOrbitControlsParamsOptions = getOptionsFromConfig(options);\n\n return {\n ...rest,\n options: paramsOptions,\n camera,\n target: isDefined(config.target) ? new Vector3().copy(config.target) : new Vector3(),\n canvas\n };\n}\n\nfunction getOptionsFromConfig(options: TOrbitControlsConfigOptions | undefined): TOrbitControlsParamsOptions {\n if (isNotDefined(options)) return {};\n\n const { cursor, ...rest } = options;\n\n let result: TOrbitControlsParamsOptions = { ...rest };\n if (isDefined(cursor)) result = { ...result, cursor: new Vector3(cursor.x, cursor.y, cursor.z) };\n\n return result;\n}\n\nfunction getFpsControlsParams(config: TFpsControlsConfig, { camera, canvas }: TAdditionalControlsConfigParams): TFpsControlsParams {\n if (config.type !== ControlsType.FirstPersonControls) throw new Error(`Cannot create controls of unknown type \"${config.type}\"`);\n\n return { ...config, camera, canvas };\n}\n"],"names":["controlsConfigToParams","config","additional","type","ControlsType","OrbitControls","camera","canvas","Error","options","rest","paramsOptions","isNotDefined","cursor","result","isDefined","Vector3","x","y","z","getOptionsFromConfig","target","copy","getOrbitControlsParams","FirstPersonControls","getFpsControlsParams"],"mappings":"4KAgBO,MAAMA,uBAAyE,CAACC,OAAyBC,cAC9G,GAAID,OAAOE,OAASC,aAAaC,cAAe,OAKlD,SAAgCJ,QAA8BK,OAAEA,OAAAC,OAAQA,SACtE,GAAIN,OAAOE,OAASC,aAAaC,cAAe,MAAM,IAAIG,MAAM,2CAA2CP,OAAOE,SAClH,MAAMM,QAAEA,WAAYC,MAAST,OACvBU,cAWR,SAA8BF,SAC5B,GAAIG,aAAaH,SAAU,MAAO,CAAA,EAElC,MAAMI,OAAEA,UAAWH,MAASD,QAE5B,IAAIK,OAAsC,IAAKJ,MAG/C,OAFIK,UAAUF,UAASC,OAAS,IAAKA,OAAQD,OAAQ,IAAIG,QAAQH,OAAOI,EAAGJ,OAAOK,EAAGL,OAAOM,KAErFL,MACT,CApBqDM,CAAqBX,SAExE,MAAO,IACFC,KACHD,QAASE,cACTL,cACAe,OAAQN,UAAUd,OAAOoB,SAAU,IAAIL,SAAUM,KAAKrB,OAAOoB,QAAU,IAAIL,QAC3ET,cAEJ,CAjByDgB,CAAuBtB,OAAgCC,YAC9G,GAAID,OAAOE,OAASC,aAAaoB,oBAAqB,OA6BxD,SAA8BvB,QAA4BK,OAAEA,OAAAC,OAAQA,SAClE,GAAIN,OAAOE,OAASC,aAAaoB,oBAAqB,MAAM,IAAIhB,MAAM,2CAA2CP,OAAOE,SAExH,MAAO,IAAKF,OAAQK,cAAQC,cAC9B,CAjC+DkB,CAAqBxB,OAA8BC,YAChH,MAAM,IAAIM,MAAM,2CAA2CP,OAAOE"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Controls/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TAnyCamera, TAnyCameraWrapper } from '@Anarchy/Engine/Camera';\nimport type { TAnyControlsWrapper, TControlsConfig, TControlsServiceDependencies, TFpsControlsWrapper, TOrbitControlsConfigOptions, TOrbitControlsWrapper } from '@Anarchy/Engine/Controls/Models';\nimport type { TFpsControlsConfigOptions } from '@Anarchy/Engine/Controls/Models/TFpsControlsConfigOptions';\nimport { isFpsControls, isOrbitControls } from '@Anarchy/Engine/Controls/Utils';\nimport { extractSerializableRegistrableFields } from '@Anarchy/Engine/Mixins';\nimport { vector3ToXyz } from '@Anarchy/Engine/Utils';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport { filterOutEmptyFields, isNotDefined } from '@Anarchy/Shared/Utils';\n\nexport function controlsToConfig(entity: TAnyControlsWrapper, { cameraService }: TControlsServiceDependencies): TControlsConfig {\n const camera: TAnyCamera | undefined = entity.entity.object as TAnyCamera;\n if (isNotDefined(camera)) throw new Error(`[Serialization] Controls: camera not found for entity with name: \"${entity.name}\", (id: \"${entity.id}\")`);\n\n const cameraW: TAnyCameraWrapper = cameraService.getRegistry().get((cameraWrapper: TAnyCameraWrapper): boolean => cameraWrapper.entity === camera);\n\n const result: TWriteable<TControlsConfig> = filterOutEmptyFields({\n enabled: entity.isEnable(),\n type: entity.getType(),\n isActive: entity.isActive(),\n cameraName: cameraW.name,\n ...extractSerializableRegistrableFields(entity)\n });\n\n const options = {};\n\n // eslint-disable-next-line functional/immutable-data\n if (isOrbitControls(entity)) Object.assign(options, getOrbitControlsFields(entity as TOrbitControlsWrapper));\n\n // eslint-disable-next-line functional/immutable-data\n if (isFpsControls(entity)) Object.assign(options, getFpsControlsFields(entity as TFpsControlsWrapper));\n\n // eslint-disable-next-line functional/immutable-data\n result.options = filterOutEmptyFields(options);\n\n return filterOutEmptyFields(result);\n}\n\nfunction getOrbitControlsFields(entity: TOrbitControlsWrapper): TOrbitControlsConfigOptions {\n return filterOutEmptyFields({\n autoRotate: entity.getAutoRotate(),\n autoRotateSpeed: entity.getAutoRotateSpeed(),\n cursor: vector3ToXyz(entity.entity.cursor.clone()),\n dampingFactor: entity.getDampingFactor(),\n enableDamping: entity.getDamping(),\n enablePan: entity.getEnablePan(),\n enableRotate: entity.getEnableRotate(),\n enableZoom: entity.getEnableZoom(),\n keyPanSpeed: entity.getKeyPanSpeed(),\n maxAzimuthAngle: entity.getMaxAzimuthAngle(),\n maxDistance: entity.getMaxDistance(),\n maxPolarAngle: entity.getMaxPolarAngle(),\n maxTargetRadius: entity.getMaxTargetRadius(),\n maxZoom: entity.getMaxZoom(),\n minAzimuthAngle: entity.getMinAzimuthAngle(),\n minDistance: entity.getMinDistance(),\n minPolarAngle: entity.getMinPolarAngle(),\n minTargetRadius: entity.getMinTargetRadius(),\n minZoom: entity.getMinZoom(),\n panSpeed: entity.getPanSpeed(),\n rotateSpeed: entity.getRotateSpeed(),\n screenSpacePanning: entity.getScreenSpacePanning(),\n target: vector3ToXyz(entity.entity.target.clone()),\n zoomSpeed: entity.getZoomSpeed(),\n zoomToCursor: entity.getZoomToCursor()\n });\n}\n\nfunction getFpsControlsFields(entity: TFpsControlsWrapper): TFpsControlsConfigOptions {\n return filterOutEmptyFields({\n activeLook: entity.getActiveLook(),\n autoForward: entity.getAutoForward(),\n constrainVertical: entity.getConstrainVertical(),\n heightCoef: entity.getHeightCoef(),\n heightMax: entity.getHeightMax(),\n heightMin: entity.getHeightMin(),\n heightSpeed: entity.getHeightSpeed(),\n lookSpeed: entity.getLookSpeed(),\n lookVertical: entity.getLookVertical(),\n mouseDragOn: entity.getMouseDragOn(),\n movementSpeed: entity.getMovementSpeed(),\n verticalMax: entity.getVerticalMax(),\n verticalMin: entity.getVerticalMin()\n });\n}\n"],"names":["controlsToConfig","entity","cameraService","camera","object","isNotDefined","Error","name","id","cameraW","getRegistry","get","cameraWrapper","result","filterOutEmptyFields","enabled","isEnable","type","getType","isActive","cameraName","extractSerializableRegistrableFields","options","isOrbitControls","Object","assign","autoRotate","getAutoRotate","autoRotateSpeed","getAutoRotateSpeed","cursor","vector3ToXyz","clone","dampingFactor","getDampingFactor","enableDamping","getDamping","enablePan","getEnablePan","enableRotate","getEnableRotate","enableZoom","getEnableZoom","keyPanSpeed","getKeyPanSpeed","maxAzimuthAngle","getMaxAzimuthAngle","maxDistance","getMaxDistance","maxPolarAngle","getMaxPolarAngle","maxTargetRadius","getMaxTargetRadius","maxZoom","getMaxZoom","minAzimuthAngle","getMinAzimuthAngle","minDistance","getMinDistance","minPolarAngle","getMinPolarAngle","minTargetRadius","getMinTargetRadius","minZoom","getMinZoom","panSpeed","getPanSpeed","rotateSpeed","getRotateSpeed","screenSpacePanning","getScreenSpacePanning","target","zoomSpeed","getZoomSpeed","zoomToCursor","getZoomToCursor","getOrbitControlsFields","isFpsControls","activeLook","getActiveLook","autoForward","getAutoForward","constrainVertical","getConstrainVertical","heightCoef","getHeightCoef","heightMax","getHeightMax","heightMin","getHeightMin","heightSpeed","getHeightSpeed","lookSpeed","getLookSpeed","lookVertical","getLookVertical","mouseDragOn","getMouseDragOn","movementSpeed","getMovementSpeed","verticalMax","getVerticalMax","verticalMin","getVerticalMin","getFpsControlsFields"],"mappings":"sZASO,SAASA,iBAAiBC,QAA6BC,cAAEA,gBAC9D,MAAMC,OAAiCF,OAAOA,OAAOG,OACrD,GAAIC,aAAaF,QAAS,MAAM,IAAIG,MAAM,qEAAqEL,OAAOM,gBAAgBN,OAAOO,QAE7I,MAAMC,QAA6BP,cAAcQ,cAAcC,IAAKC,eAA8CA,cAAcX,SAAWE,QAErIU,OAAsCC,qBAAqB,CAC/DC,QAASd,OAAOe,WAChBC,KAAMhB,OAAOiB,UACbC,SAAUlB,OAAOkB,WACjBC,WAAYX,QAAQF,QACjBc,qCAAqCpB,UAGpCqB,QAAU,CAAA,EAWhB,OARIC,gBAAgBtB,SAASuB,OAAOC,OAAOH,QAW7C,SAAgCrB,QAC9B,OAAOa,qBAAqB,CAC1BY,WAAYzB,OAAO0B,gBACnBC,gBAAiB3B,OAAO4B,qBACxBC,OAAQC,aAAa9B,OAAOA,OAAO6B,OAAOE,SAC1CC,cAAehC,OAAOiC,mBACtBC,cAAelC,OAAOmC,aACtBC,UAAWpC,OAAOqC,eAClBC,aAActC,OAAOuC,kBACrBC,WAAYxC,OAAOyC,gBACnBC,YAAa1C,OAAO2C,iBACpBC,gBAAiB5C,OAAO6C,qBACxBC,YAAa9C,OAAO+C,iBACpBC,cAAehD,OAAOiD,mBACtBC,gBAAiBlD,OAAOmD,qBACxBC,QAASpD,OAAOqD,aAChBC,gBAAiBtD,OAAOuD,qBACxBC,YAAaxD,OAAOyD,iBACpBC,cAAe1D,OAAO2D,mBACtBC,gBAAiB5D,OAAO6D,qBACxBC,QAAS9D,OAAO+D,aAChBC,SAAUhE,OAAOiE,cACjBC,YAAalE,OAAOmE,iBACpBC,mBAAoBpE,OAAOqE,wBAC3BC,OAAQxC,aAAa9B,OAAOA,OAAOsE,OAAOvC,SAC1CwC,UAAWvE,OAAOwE,eAClBC,aAAczE,OAAO0E,mBAEzB,CAvCsDC,CAAuB3E,SAGvE4E,cAAc5E,SAASuB,OAAOC,OAAOH,QAsC3C,SAA8BrB,QAC5B,OAAOa,qBAAqB,CAC1BgE,WAAY7E,OAAO8E,gBACnBC,YAAa/E,OAAOgF,iBACpBC,kBAAmBjF,OAAOkF,uBAC1BC,WAAYnF,OAAOoF,gBACnBC,UAAWrF,OAAOsF,eAClBC,UAAWvF,OAAOwF,eAClBC,YAAazF,OAAO0F,iBACpBC,UAAW3F,OAAO4F,eAClBC,aAAc7F,OAAO8F,kBACrBC,YAAa/F,OAAOgG,iBACpBC,cAAejG,OAAOkG,mBACtBC,YAAanG,OAAOoG,iBACpBC,YAAarG,OAAOsG,kBAExB,CAtDoDC,CAAqBvG,SAGvEY,OAAOS,QAAUR,qBAAqBQ,SAE/BR,qBAAqBD,OAC9B"}
1
+ {"version":3,"file":"EntityToConfig.js","sources":["../../../src/Controls/Adapters/EntityToConfig.ts"],"sourcesContent":["import type { TAnyCamera, TAnyCameraWrapper } from '@hellpig/anarchy-engine/Camera';\nimport type {\n TAnyControlsWrapper,\n TControlsConfig,\n TControlsServiceDependencies,\n TFpsControlsWrapper,\n TOrbitControlsConfigOptions,\n TOrbitControlsWrapper\n} from '@hellpig/anarchy-engine/Controls/Models';\nimport type { TFpsControlsConfigOptions } from '@hellpig/anarchy-engine/Controls/Models/TFpsControlsConfigOptions';\nimport { isFpsControls, isOrbitControls } from '@hellpig/anarchy-engine/Controls/Utils';\nimport { extractSerializableRegistrableFields } from '@hellpig/anarchy-engine/Mixins';\nimport { vector3ToXyz } from '@hellpig/anarchy-engine/Utils';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { filterOutEmptyFields, isNotDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function controlsToConfig(entity: TAnyControlsWrapper, { cameraService }: TControlsServiceDependencies): TControlsConfig {\n const camera: TAnyCamera | undefined = entity.entity.object as TAnyCamera;\n if (isNotDefined(camera)) throw new Error(`[Serialization] Controls: camera not found for entity with name: \"${entity.name}\", (id: \"${entity.id}\")`);\n\n const cameraW: TAnyCameraWrapper = cameraService.getRegistry().get((cameraWrapper: TAnyCameraWrapper): boolean => cameraWrapper.entity === camera);\n\n const result: TWriteable<TControlsConfig> = filterOutEmptyFields({\n enabled: entity.isEnable(),\n type: entity.getType(),\n isActive: entity.isActive(),\n cameraName: cameraW.name,\n ...extractSerializableRegistrableFields(entity)\n });\n\n const options = {};\n\n // eslint-disable-next-line functional/immutable-data\n if (isOrbitControls(entity)) Object.assign(options, getOrbitControlsFields(entity as TOrbitControlsWrapper));\n\n // eslint-disable-next-line functional/immutable-data\n if (isFpsControls(entity)) Object.assign(options, getFpsControlsFields(entity as TFpsControlsWrapper));\n\n // eslint-disable-next-line functional/immutable-data\n result.options = filterOutEmptyFields(options);\n\n return filterOutEmptyFields(result);\n}\n\nfunction getOrbitControlsFields(entity: TOrbitControlsWrapper): TOrbitControlsConfigOptions {\n return filterOutEmptyFields({\n autoRotate: entity.getAutoRotate(),\n autoRotateSpeed: entity.getAutoRotateSpeed(),\n cursor: vector3ToXyz(entity.entity.cursor.clone()),\n dampingFactor: entity.getDampingFactor(),\n enableDamping: entity.getDamping(),\n enablePan: entity.getEnablePan(),\n enableRotate: entity.getEnableRotate(),\n enableZoom: entity.getEnableZoom(),\n keyPanSpeed: entity.getKeyPanSpeed(),\n maxAzimuthAngle: entity.getMaxAzimuthAngle(),\n maxDistance: entity.getMaxDistance(),\n maxPolarAngle: entity.getMaxPolarAngle(),\n maxTargetRadius: entity.getMaxTargetRadius(),\n maxZoom: entity.getMaxZoom(),\n minAzimuthAngle: entity.getMinAzimuthAngle(),\n minDistance: entity.getMinDistance(),\n minPolarAngle: entity.getMinPolarAngle(),\n minTargetRadius: entity.getMinTargetRadius(),\n minZoom: entity.getMinZoom(),\n panSpeed: entity.getPanSpeed(),\n rotateSpeed: entity.getRotateSpeed(),\n screenSpacePanning: entity.getScreenSpacePanning(),\n target: vector3ToXyz(entity.entity.target.clone()),\n zoomSpeed: entity.getZoomSpeed(),\n zoomToCursor: entity.getZoomToCursor()\n });\n}\n\nfunction getFpsControlsFields(entity: TFpsControlsWrapper): TFpsControlsConfigOptions {\n return filterOutEmptyFields({\n activeLook: entity.getActiveLook(),\n autoForward: entity.getAutoForward(),\n constrainVertical: entity.getConstrainVertical(),\n heightCoef: entity.getHeightCoef(),\n heightMax: entity.getHeightMax(),\n heightMin: entity.getHeightMin(),\n heightSpeed: entity.getHeightSpeed(),\n lookSpeed: entity.getLookSpeed(),\n lookVertical: entity.getLookVertical(),\n mouseDragOn: entity.getMouseDragOn(),\n movementSpeed: entity.getMovementSpeed(),\n verticalMax: entity.getVerticalMax(),\n verticalMin: entity.getVerticalMin()\n });\n}\n"],"names":["controlsToConfig","entity","cameraService","camera","object","isNotDefined","Error","name","id","cameraW","getRegistry","get","cameraWrapper","result","filterOutEmptyFields","enabled","isEnable","type","getType","isActive","cameraName","extractSerializableRegistrableFields","options","isOrbitControls","Object","assign","autoRotate","getAutoRotate","autoRotateSpeed","getAutoRotateSpeed","cursor","vector3ToXyz","clone","dampingFactor","getDampingFactor","enableDamping","getDamping","enablePan","getEnablePan","enableRotate","getEnableRotate","enableZoom","getEnableZoom","keyPanSpeed","getKeyPanSpeed","maxAzimuthAngle","getMaxAzimuthAngle","maxDistance","getMaxDistance","maxPolarAngle","getMaxPolarAngle","maxTargetRadius","getMaxTargetRadius","maxZoom","getMaxZoom","minAzimuthAngle","getMinAzimuthAngle","minDistance","getMinDistance","minPolarAngle","getMinPolarAngle","minTargetRadius","getMinTargetRadius","minZoom","getMinZoom","panSpeed","getPanSpeed","rotateSpeed","getRotateSpeed","screenSpacePanning","getScreenSpacePanning","target","zoomSpeed","getZoomSpeed","zoomToCursor","getZoomToCursor","getOrbitControlsFields","isFpsControls","activeLook","getActiveLook","autoForward","getAutoForward","constrainVertical","getConstrainVertical","heightCoef","getHeightCoef","heightMax","getHeightMax","heightMin","getHeightMin","heightSpeed","getHeightSpeed","lookSpeed","getLookSpeed","lookVertical","getLookVertical","mouseDragOn","getMouseDragOn","movementSpeed","getMovementSpeed","verticalMax","getVerticalMax","verticalMin","getVerticalMin","getFpsControlsFields"],"mappings":"sZAgBO,SAASA,iBAAiBC,QAA6BC,cAAEA,gBAC9D,MAAMC,OAAiCF,OAAOA,OAAOG,OACrD,GAAIC,aAAaF,QAAS,MAAM,IAAIG,MAAM,qEAAqEL,OAAOM,gBAAgBN,OAAOO,QAE7I,MAAMC,QAA6BP,cAAcQ,cAAcC,IAAKC,eAA8CA,cAAcX,SAAWE,QAErIU,OAAsCC,qBAAqB,CAC/DC,QAASd,OAAOe,WAChBC,KAAMhB,OAAOiB,UACbC,SAAUlB,OAAOkB,WACjBC,WAAYX,QAAQF,QACjBc,qCAAqCpB,UAGpCqB,QAAU,CAAA,EAWhB,OARIC,gBAAgBtB,SAASuB,OAAOC,OAAOH,QAW7C,SAAgCrB,QAC9B,OAAOa,qBAAqB,CAC1BY,WAAYzB,OAAO0B,gBACnBC,gBAAiB3B,OAAO4B,qBACxBC,OAAQC,aAAa9B,OAAOA,OAAO6B,OAAOE,SAC1CC,cAAehC,OAAOiC,mBACtBC,cAAelC,OAAOmC,aACtBC,UAAWpC,OAAOqC,eAClBC,aAActC,OAAOuC,kBACrBC,WAAYxC,OAAOyC,gBACnBC,YAAa1C,OAAO2C,iBACpBC,gBAAiB5C,OAAO6C,qBACxBC,YAAa9C,OAAO+C,iBACpBC,cAAehD,OAAOiD,mBACtBC,gBAAiBlD,OAAOmD,qBACxBC,QAASpD,OAAOqD,aAChBC,gBAAiBtD,OAAOuD,qBACxBC,YAAaxD,OAAOyD,iBACpBC,cAAe1D,OAAO2D,mBACtBC,gBAAiB5D,OAAO6D,qBACxBC,QAAS9D,OAAO+D,aAChBC,SAAUhE,OAAOiE,cACjBC,YAAalE,OAAOmE,iBACpBC,mBAAoBpE,OAAOqE,wBAC3BC,OAAQxC,aAAa9B,OAAOA,OAAOsE,OAAOvC,SAC1CwC,UAAWvE,OAAOwE,eAClBC,aAAczE,OAAO0E,mBAEzB,CAvCsDC,CAAuB3E,SAGvE4E,cAAc5E,SAASuB,OAAOC,OAAOH,QAsC3C,SAA8BrB,QAC5B,OAAOa,qBAAqB,CAC1BgE,WAAY7E,OAAO8E,gBACnBC,YAAa/E,OAAOgF,iBACpBC,kBAAmBjF,OAAOkF,uBAC1BC,WAAYnF,OAAOoF,gBACnBC,UAAWrF,OAAOsF,eAClBC,UAAWvF,OAAOwF,eAClBC,YAAazF,OAAO0F,iBACpBC,UAAW3F,OAAO4F,eAClBC,aAAc7F,OAAO8F,kBACrBC,YAAa/F,OAAOgG,iBACpBC,cAAejG,OAAOkG,mBACtBC,YAAanG,OAAOoG,iBACpBC,YAAarG,OAAOsG,kBAExB,CAtDoDC,CAAqBvG,SAGvEY,OAAOS,QAAUR,qBAAqBQ,SAE/BR,qBAAqBD,OAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ControlsFactory.js","sources":["../../../src/Controls/Factories/ControlsFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@Anarchy/Engine/Abstract';\nimport { controlsConfigToParams } from '@Anarchy/Engine/Controls/Adapters';\nimport { ControlsType } from '@Anarchy/Engine/Controls/Constants';\nimport type { TAnyControlsWrapper, TControlsFactory, TControlsParams, TFpsControlsParams, TOrbitControlsParams } from '@Anarchy/Engine/Controls/Models';\nimport { FpsControlsWrapper, OrbitControlsWrapper } from '@Anarchy/Engine/Controls/Wrappers';\n\nfunction create(params: TControlsParams): TAnyControlsWrapper | never {\n switch (params.type) {\n case ControlsType.FirstPersonControls:\n return FpsControlsWrapper(params as TFpsControlsParams);\n case ControlsType.OrbitControls:\n return OrbitControlsWrapper(params as TOrbitControlsParams);\n default:\n throw new Error(`Unknown controls type: ${params.type}`);\n }\n}\n\nexport function ControlsFactory(): TControlsFactory {\n const factory: TReactiveFactory<TAnyControlsWrapper, TControlsParams> = ReactiveFactory(FactoryType.Controls, create);\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: controlsConfigToParams });\n}\n"],"names":["create","params","type","ControlsType","FirstPersonControls","FpsControlsWrapper","OrbitControls","OrbitControlsWrapper","Error","ControlsFactory","factory","ReactiveFactory","FactoryType","Controls","Object","assign","configToParams","controlsConfigToParams"],"mappings":"qaAOA,SAASA,OAAOC,QACd,OAAQA,OAAOC,MACb,KAAKC,aAAaC,oBAChB,OAAOC,mBAAmBJ,QAC5B,KAAKE,aAAaG,cAChB,OAAOC,qBAAqBN,QAC9B,QACE,MAAM,IAAIO,MAAM,0BAA0BP,OAAOC,QAEvD,CAEO,SAASO,kBACd,MAAMC,QAAkEC,gBAAgBC,YAAYC,SAAUb,QAE9G,OAAOc,OAAOC,OAAOL,QAAS,CAAEM,eAAgBC,wBAClD"}
1
+ {"version":3,"file":"ControlsFactory.js","sources":["../../../src/Controls/Factories/ControlsFactory.ts"],"sourcesContent":["import type { TReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { FactoryType, ReactiveFactory } from '@hellpig/anarchy-engine/Abstract';\nimport { controlsConfigToParams } from '@hellpig/anarchy-engine/Controls/Adapters';\nimport { ControlsType } from '@hellpig/anarchy-engine/Controls/Constants';\nimport type { TAnyControlsWrapper, TControlsFactory, TControlsParams, TFpsControlsParams, TOrbitControlsParams } from '@hellpig/anarchy-engine/Controls/Models';\nimport { FpsControlsWrapper, OrbitControlsWrapper } from '@hellpig/anarchy-engine/Controls/Wrappers';\n\nfunction create(params: TControlsParams): TAnyControlsWrapper | never {\n switch (params.type) {\n case ControlsType.FirstPersonControls:\n return FpsControlsWrapper(params as TFpsControlsParams);\n case ControlsType.OrbitControls:\n return OrbitControlsWrapper(params as TOrbitControlsParams);\n default:\n throw new Error(`Unknown controls type: ${params.type}`);\n }\n}\n\nexport function ControlsFactory(): TControlsFactory {\n const factory: TReactiveFactory<TAnyControlsWrapper, TControlsParams> = ReactiveFactory(FactoryType.Controls, create);\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(factory, { configToParams: controlsConfigToParams });\n}\n"],"names":["create","params","type","ControlsType","FirstPersonControls","FpsControlsWrapper","OrbitControls","OrbitControlsWrapper","Error","ControlsFactory","factory","ReactiveFactory","FactoryType","Controls","Object","assign","configToParams","controlsConfigToParams"],"mappings":"qaAOA,SAASA,OAAOC,QACd,OAAQA,OAAOC,MACb,KAAKC,aAAaC,oBAChB,OAAOC,mBAAmBJ,QAC5B,KAAKE,aAAaG,cAChB,OAAOC,qBAAqBN,QAC9B,QACE,MAAM,IAAIO,MAAM,0BAA0BP,OAAOC,QAEvD,CAEO,SAASO,kBACd,MAAMC,QAAkEC,gBAAgBC,YAAYC,SAAUb,QAE9G,OAAOc,OAAOC,OAAOL,QAAS,CAAEM,eAAgBC,wBAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ControlsLoopEffect.js","sources":["../../../src/Controls/Loop/ControlsLoopEffect.ts"],"sourcesContent":["import type { TAnyControlsWrapper, TControlsLoop, TControlsRegistry } from '@Anarchy/Engine/Controls/Models';\nimport type { Subscription } from 'rxjs';\n\nexport function controlsLoopEffect(loop: TControlsLoop, registry: TControlsRegistry): Subscription {\n return loop.tick$.subscribe((delta: number): void => {\n registry.forEach((controls: TAnyControlsWrapper): void => {\n if (controls.entity.enabled) controls.entity.update(delta);\n });\n });\n}\n"],"names":["controlsLoopEffect","loop","registry","tick$","subscribe","delta","forEach","controls","entity","enabled","update"],"mappings":"AAGO,SAASA,mBAAmBC,KAAqBC,UACtD,OAAOD,KAAKE,MAAMC,UAAWC,QAC3BH,SAASI,QAASC,WACZA,SAASC,OAAOC,SAASF,SAASC,OAAOE,OAAOL,UAG1D"}
1
+ {"version":3,"file":"ControlsLoopEffect.js","sources":["../../../src/Controls/Loop/ControlsLoopEffect.ts"],"sourcesContent":["import type { TAnyControlsWrapper, TControlsLoop, TControlsRegistry } from '@hellpig/anarchy-engine/Controls/Models';\nimport type { Subscription } from 'rxjs';\n\nexport function controlsLoopEffect(loop: TControlsLoop, registry: TControlsRegistry): Subscription {\n return loop.tick$.subscribe((delta: number): void => {\n registry.forEach((controls: TAnyControlsWrapper): void => {\n if (controls.entity.enabled) controls.entity.update(delta);\n });\n });\n}\n"],"names":["controlsLoopEffect","loop","registry","tick$","subscribe","delta","forEach","controls","entity","enabled","update"],"mappings":"AAGO,SAASA,mBAAmBC,KAAqBC,UACtD,OAAOD,KAAKE,MAAMC,UAAWC,QAC3BH,SAASI,QAASC,WACZA,SAASC,OAAOC,SAASF,SAASC,OAAOE,OAAOL,UAG1D"}
@@ -4,7 +4,7 @@ import { ControlsType } from '../Constants';
4
4
  import { TMilliseconds } from '../../Math';
5
5
  import { TWithActiveMixin } from '../../Mixins';
6
6
  import { Euler, EventDispatcher, Quaternion } from 'three';
7
- import { FirstPersonControls } from 'three/examples/jsm/controls/FirstPersonControls';
7
+ import { FirstPersonControls } from '../../../../../node_modules/@types/three/examples/jsm/controls/FirstPersonControls';
8
8
  import { TControlsServiceDependencies } from './TControlsServiceDependencies';
9
9
  import { TFpsControlsAccessors } from './TFpsControlsAccessors';
10
10
  import { TFpsControlsConfig } from './TFpsControlsConfig';
@@ -5,7 +5,7 @@ import { TMilliseconds } from '../../Math';
5
5
  import { TWithActiveMixin } from '../../Mixins';
6
6
  import { TReadonlyVector3 } from '../../ThreeLib';
7
7
  import { Euler, Quaternion, Vector3 } from 'three';
8
- import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
8
+ import { OrbitControls } from '../../../../../node_modules/@types/three/examples/jsm/controls/OrbitControls';
9
9
  import { TControlsServiceDependencies } from './TControlsServiceDependencies';
10
10
  import { TOrbitControlsAccessors } from './TOrbitControlsAccessors';
11
11
  import { TOrbitControlsConfig } from './TOrbitControlsConfig';
@@ -1 +1 @@
1
- {"version":3,"file":"ControlsRegistry.js","sources":["../../../src/Controls/Registries/ControlsRegistry.ts"],"sourcesContent":["import { RegistryType } from '@Anarchy/Engine/Abstract/Constants';\nimport { AbstractEntityRegistry } from '@Anarchy/Engine/Abstract/Registries';\nimport type { TAnyControlsWrapper, TControlsRegistry } from '@Anarchy/Engine/Controls/Models';\n\nexport function ControlsRegistry(): TControlsRegistry {\n return AbstractEntityRegistry<TAnyControlsWrapper>(RegistryType.Controls);\n}\n"],"names":["ControlsRegistry","AbstractEntityRegistry","RegistryType","Controls"],"mappings":"2JAIO,SAASA,mBACd,OAAOC,uBAA4CC,aAAaC,SAClE"}
1
+ {"version":3,"file":"ControlsRegistry.js","sources":["../../../src/Controls/Registries/ControlsRegistry.ts"],"sourcesContent":["import { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { AbstractEntityRegistry } from '@hellpig/anarchy-engine/Abstract/Registries';\nimport type { TAnyControlsWrapper, TControlsRegistry } from '@hellpig/anarchy-engine/Controls/Models';\n\nexport function ControlsRegistry(): TControlsRegistry {\n return AbstractEntityRegistry<TAnyControlsWrapper>(RegistryType.Controls);\n}\n"],"names":["ControlsRegistry","AbstractEntityRegistry","RegistryType","Controls"],"mappings":"2JAIO,SAASA,mBACd,OAAOC,uBAA4CC,aAAaC,SAClE"}
@@ -1 +1 @@
1
- {"version":3,"file":"ControlsService.js","sources":["../../../src/Controls/Services/ControlsService.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@Anarchy/Engine/Abstract';\nimport { AbstractService } from '@Anarchy/Engine/Abstract';\nimport type { TAbstractCameraRegistry, TAnyCameraWrapper } from '@Anarchy/Engine/Camera';\nimport { controlsLoopEffect } from '@Anarchy/Engine/Controls/Loop';\nimport type {\n TAnyControlsWrapper,\n TControlsConfig,\n TControlsFactory,\n TControlsParams,\n TControlsRegistry,\n TControlsService,\n TControlsServiceDependencies,\n TControlsServiceWithFactory,\n TControlsServiceWithRegistry\n} from '@Anarchy/Engine/Controls/Models';\nimport type { TDisposable, TWithActiveMixinResult } from '@Anarchy/Engine/Mixins';\nimport { withActiveEntityServiceMixin, withFactoryService, withRegistryService, withSerializableEntities } from '@Anarchy/Engine/Mixins';\nimport type { TSpaceCanvas, TSpaceLoops } from '@Anarchy/Engine/Space';\nimport { mergeAll } from '@Anarchy/Engine/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function ControlService(\n factory: TControlsFactory,\n registry: TControlsRegistry,\n { controlsLoop }: TSpaceLoops,\n { cameraService }: TControlsServiceDependencies,\n canvas: TSpaceCanvas\n): TControlsService {\n const withActive: TWithActiveMixinResult<TAnyControlsWrapper> = withActiveEntityServiceMixin<TAnyControlsWrapper>(registry);\n const registrySub$: Subscription = registry.added$.subscribe(({ value }: TRegistryPack<TAnyControlsWrapper>): void => {\n if (value.isActive()) withActive.active$.next(value);\n });\n const factorySub$: Subscription = factory.entityCreated$.subscribe((wrapper: TAnyControlsWrapper): void => registry.add(wrapper));\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, registrySub$, factorySub$];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const cameraRegistry: TAbstractCameraRegistry = cameraService.getRegistry();\n\n const create = (params: TControlsParams): TAnyControlsWrapper => factory.create(params, undefined);\n const createFromList = (list: ReadonlyArray<TControlsParams>): ReadonlyArray<TAnyControlsWrapper> => list.map(create);\n const createFromConfig = (controls: ReadonlyArray<TControlsConfig>): void => {\n controls.forEach((control: TControlsConfig): TAnyControlsWrapper => {\n const camera: TAnyCameraWrapper = cameraRegistry.get((camera: TAnyCameraWrapper): boolean => camera.getName() === control.cameraName);\n return create(factory.configToParams(control, { camera, canvas }));\n });\n };\n\n const withFactory: TControlsServiceWithFactory = withFactoryService(factory);\n const withRegistry: TControlsServiceWithRegistry = withRegistryService(registry);\n\n const loopSub$: Subscription = controlsLoopEffect(controlsLoop, registry);\n\n const destroySub$: Subscription = abstractService.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n loopSub$.unsubscribe();\n\n withActive.active$.complete();\n });\n\n return mergeAll(abstractService, withFactory, withRegistry, withSerializableEntities<TAnyControlsWrapper, TControlsConfig, TControlsServiceDependencies>(registry, { cameraService }), {\n create,\n createFromList,\n createFromConfig,\n setActive: withActive.setActive,\n findActive: withActive.findActive,\n getActive: withActive.getActive,\n active$: withActive.active$\n });\n}\n"],"names":["ControlService","factory","registry","controlsLoop","cameraService","canvas","withActive","withActiveEntityServiceMixin","registrySub$","added$","subscribe","value","isActive","active$","next","factorySub$","entityCreated$","wrapper","add","abstractService","AbstractService","cameraRegistry","getRegistry","create","params","withFactory","withFactoryService","withRegistry","withRegistryService","loopSub$","controlsLoopEffect","destroySub$","destroy$","unsubscribe","complete","mergeAll","withSerializableEntities","createFromList","list","map","createFromConfig","controls","forEach","control","camera","get","getName","cameraName","configToParams","setActive","findActive","getActive"],"mappings":"ygBAqBO,SAASA,eACdC,QACAC,UACAC,aAAEA,eACFC,cAAEA,eACFC,QAEA,MAAMC,WAA0DC,6BAAkDL,UAC5GM,aAA6BN,SAASO,OAAOC,UAAU,EAAGC,gBAC1DA,MAAMC,YAAYN,WAAWO,QAAQC,KAAKH,SAE1CI,YAA4Bd,QAAQe,eAAeN,UAAWO,SAAuCf,SAASgB,IAAID,UAElHE,gBAAoCC,gBADK,CAAClB,SAAUD,QAASO,aAAcO,cAG3EM,eAA0CjB,cAAckB,cAExDC,OAAUC,QAAiDvB,QAAQsB,OAAOC,eAS1EC,YAA2CC,mBAAmBzB,SAC9D0B,aAA6CC,oBAAoB1B,UAEjE2B,SAAyBC,mBAAmB3B,aAAcD,UAE1D6B,YAA4BZ,gBAAgBa,SAAStB,UAAU,KACnEqB,YAAYE,cAEZJ,SAASI,cAET3B,WAAWO,QAAQqB,aAGrB,OAAOC,SAAShB,gBAAiBM,YAAaE,aAAcS,yBAA6FlC,SAAU,CAAEE,8BAAkB,CACrLmB,cACAc,eAvBsBC,MAA6EA,KAAKC,IAAIhB,QAwB5GiB,iBAvBwBC,WACxBA,SAASC,QAASC,UAChB,MAAMC,OAA4BvB,eAAewB,IAAKD,SAAuCA,QAAOE,YAAcH,QAAQI,YAC1H,OAAOxB,OAAOtB,QAAQ+C,eAAeL,QAAS,CAAEC,cAAQvC,oBAqB1D4C,UAAW3C,WAAW2C,UACtBC,WAAY5C,WAAW4C,WACvBC,UAAW7C,WAAW6C,UACtBtC,QAASP,WAAWO,SAExB"}
1
+ {"version":3,"file":"ControlsService.js","sources":["../../../src/Controls/Services/ControlsService.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport type { TAbstractCameraRegistry, TAnyCameraWrapper } from '@hellpig/anarchy-engine/Camera';\nimport { controlsLoopEffect } from '@hellpig/anarchy-engine/Controls/Loop';\nimport type {\n TAnyControlsWrapper,\n TControlsConfig,\n TControlsFactory,\n TControlsParams,\n TControlsRegistry,\n TControlsService,\n TControlsServiceDependencies,\n TControlsServiceWithFactory,\n TControlsServiceWithRegistry\n} from '@hellpig/anarchy-engine/Controls/Models';\nimport type { TDisposable, TWithActiveMixinResult } from '@hellpig/anarchy-engine/Mixins';\nimport { withActiveEntityServiceMixin, withFactoryService, withRegistryService, withSerializableEntities } from '@hellpig/anarchy-engine/Mixins';\nimport type { TSpaceCanvas, TSpaceLoops } from '@hellpig/anarchy-engine/Space';\nimport { mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { Subscription } from 'rxjs';\n\nexport function ControlService(\n factory: TControlsFactory,\n registry: TControlsRegistry,\n { controlsLoop }: TSpaceLoops,\n { cameraService }: TControlsServiceDependencies,\n canvas: TSpaceCanvas\n): TControlsService {\n const withActive: TWithActiveMixinResult<TAnyControlsWrapper> = withActiveEntityServiceMixin<TAnyControlsWrapper>(registry);\n const registrySub$: Subscription = registry.added$.subscribe(({ value }: TRegistryPack<TAnyControlsWrapper>): void => {\n if (value.isActive()) withActive.active$.next(value);\n });\n const factorySub$: Subscription = factory.entityCreated$.subscribe((wrapper: TAnyControlsWrapper): void => registry.add(wrapper));\n const disposable: ReadonlyArray<TDisposable> = [registry, factory, registrySub$, factorySub$];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const cameraRegistry: TAbstractCameraRegistry = cameraService.getRegistry();\n\n const create = (params: TControlsParams): TAnyControlsWrapper => factory.create(params, undefined);\n const createFromList = (list: ReadonlyArray<TControlsParams>): ReadonlyArray<TAnyControlsWrapper> => list.map(create);\n const createFromConfig = (controls: ReadonlyArray<TControlsConfig>): void => {\n controls.forEach((control: TControlsConfig): TAnyControlsWrapper => {\n const camera: TAnyCameraWrapper = cameraRegistry.get((camera: TAnyCameraWrapper): boolean => camera.getName() === control.cameraName);\n return create(factory.configToParams(control, { camera, canvas }));\n });\n };\n\n const withFactory: TControlsServiceWithFactory = withFactoryService(factory);\n const withRegistry: TControlsServiceWithRegistry = withRegistryService(registry);\n\n const loopSub$: Subscription = controlsLoopEffect(controlsLoop, registry);\n\n const destroySub$: Subscription = abstractService.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n loopSub$.unsubscribe();\n\n withActive.active$.complete();\n });\n\n return mergeAll(abstractService, withFactory, withRegistry, withSerializableEntities<TAnyControlsWrapper, TControlsConfig, TControlsServiceDependencies>(registry, { cameraService }), {\n create,\n createFromList,\n createFromConfig,\n setActive: withActive.setActive,\n findActive: withActive.findActive,\n getActive: withActive.getActive,\n active$: withActive.active$\n });\n}\n"],"names":["ControlService","factory","registry","controlsLoop","cameraService","canvas","withActive","withActiveEntityServiceMixin","registrySub$","added$","subscribe","value","isActive","active$","next","factorySub$","entityCreated$","wrapper","add","abstractService","AbstractService","cameraRegistry","getRegistry","create","params","withFactory","withFactoryService","withRegistry","withRegistryService","loopSub$","controlsLoopEffect","destroySub$","destroy$","unsubscribe","complete","mergeAll","withSerializableEntities","createFromList","list","map","createFromConfig","controls","forEach","control","camera","get","getName","cameraName","configToParams","setActive","findActive","getActive"],"mappings":"ygBAqBO,SAASA,eACdC,QACAC,UACAC,aAAEA,eACFC,cAAEA,eACFC,QAEA,MAAMC,WAA0DC,6BAAkDL,UAC5GM,aAA6BN,SAASO,OAAOC,UAAU,EAAGC,gBAC1DA,MAAMC,YAAYN,WAAWO,QAAQC,KAAKH,SAE1CI,YAA4Bd,QAAQe,eAAeN,UAAWO,SAAuCf,SAASgB,IAAID,UAElHE,gBAAoCC,gBADK,CAAClB,SAAUD,QAASO,aAAcO,cAG3EM,eAA0CjB,cAAckB,cAExDC,OAAUC,QAAiDvB,QAAQsB,OAAOC,eAS1EC,YAA2CC,mBAAmBzB,SAC9D0B,aAA6CC,oBAAoB1B,UAEjE2B,SAAyBC,mBAAmB3B,aAAcD,UAE1D6B,YAA4BZ,gBAAgBa,SAAStB,UAAU,KACnEqB,YAAYE,cAEZJ,SAASI,cAET3B,WAAWO,QAAQqB,aAGrB,OAAOC,SAAShB,gBAAiBM,YAAaE,aAAcS,yBAA6FlC,SAAU,CAAEE,8BAAkB,CACrLmB,cACAc,eAvBsBC,MAA6EA,KAAKC,IAAIhB,QAwB5GiB,iBAvBwBC,WACxBA,SAASC,QAASC,UAChB,MAAMC,OAA4BvB,eAAewB,IAAKD,SAAuCA,QAAOE,YAAcH,QAAQI,YAC1H,OAAOxB,OAAOtB,QAAQ+C,eAAeL,QAAS,CAAEC,cAAQvC,oBAqB1D4C,UAAW3C,WAAW2C,UACtBC,WAAY5C,WAAW4C,WACvBC,UAAW7C,WAAW6C,UACtBtC,QAASP,WAAWO,SAExB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ControlsUtils.js","sources":["../../../src/Controls/Utils/ControlsUtils.ts"],"sourcesContent":["import type { TAnyCameraWrapper } from '@Anarchy/Engine/Camera';\nimport { ControlsType } from '@Anarchy/Engine/Controls/Constants';\nimport type { TAnyControlsWrapper, TFpsControlsWrapper, TOrbitControlsWrapper } from '@Anarchy/Engine/Controls/Models';\nimport type { TMilliseconds } from '@Anarchy/Engine/Math';\nimport type { Subscription } from 'rxjs';\nimport type { Controls } from 'three';\nimport { EventDispatcher, Quaternion } from 'three';\n\nexport const isOrbitControls = (controls: TOrbitControlsWrapper | TAnyControlsWrapper): controls is TOrbitControlsWrapper => controls.getType() === ControlsType.OrbitControls;\nexport const isFpsControls = (controls: TFpsControlsWrapper | TAnyControlsWrapper): controls is TFpsControlsWrapper => controls.getType() === ControlsType.FirstPersonControls;\n\nexport function updateCameraTransformDriveOnChange(controls: TAnyControlsWrapper, camera: TAnyCameraWrapper): void {\n function updateCameraDrive(): void {\n const dumpingTime: TMilliseconds = ((controls as TOrbitControlsWrapper).entity.enableDamping ? 250 : 0) as TMilliseconds; // 250 is an average dumping time for OrbitControls\n setTimeout((): void => {\n camera.drive.position$.next(camera.entity.position);\n camera.drive.rotation$.next(new Quaternion().setFromEuler(camera.entity.rotation));\n }, dumpingTime);\n }\n\n // TransformDrive cannot handle direct changes, such as Controls on Camera, so we are updating it.\n (controls as TOrbitControlsWrapper).entity.addEventListener?.('end', updateCameraDrive);\n\n const destroySub$: Subscription = controls.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n (controls as TOrbitControlsWrapper).entity.removeEventListener?.('end', updateCameraDrive);\n });\n}\n\nexport function makeControlsEvented<T extends Controls<any>>(controls: T): T & EventDispatcher {\n // eslint-disable-next-line functional/immutable-data\n Object.assign(controls, new EventDispatcher());\n return controls as T & EventDispatcher;\n}\n"],"names":["isOrbitControls","controls","getType","ControlsType","OrbitControls","isFpsControls","FirstPersonControls","updateCameraTransformDriveOnChange","camera","updateCameraDrive","setTimeout","drive","position$","next","entity","position","rotation$","Quaternion","setFromEuler","rotation","enableDamping","addEventListener","destroySub$","destroy$","subscribe","unsubscribe","removeEventListener","makeControlsEvented","Object","assign","EventDispatcher"],"mappings":"qGAQO,MAAMA,gBAAmBC,UAA6FA,SAASC,YAAcC,aAAaC,cACpJC,cAAiBJ,UAAyFA,SAASC,YAAcC,aAAaG,oBAEpJ,SAASC,mCAAmCN,SAA+BO,QAChF,SAASC,oBAEPC,WAAW,KACTF,OAAOG,MAAMC,UAAUC,KAAKL,OAAOM,OAAOC,UAC1CP,OAAOG,MAAMK,UAAUH,MAAK,IAAII,YAAaC,aAAaV,OAAOM,OAAOK,YAHrClB,SAAmCa,OAAOM,cAAgB,IAAM,EAKvG,CAGCnB,SAAmCa,OAAOO,mBAAmB,MAAOZ,mBAErE,MAAMa,YAA4BrB,SAASsB,SAASC,UAAU,KAC5DF,YAAYG,cACXxB,SAAmCa,OAAOY,sBAAsB,MAAOjB,oBAE5E,CAEO,SAASkB,oBAA6C1B,UAG3D,OADA2B,OAAOC,OAAO5B,SAAU,IAAI6B,iBACrB7B,QACT"}
1
+ {"version":3,"file":"ControlsUtils.js","sources":["../../../src/Controls/Utils/ControlsUtils.ts"],"sourcesContent":["import type { TAnyCameraWrapper } from '@hellpig/anarchy-engine/Camera';\nimport { ControlsType } from '@hellpig/anarchy-engine/Controls/Constants';\nimport type { TAnyControlsWrapper, TFpsControlsWrapper, TOrbitControlsWrapper } from '@hellpig/anarchy-engine/Controls/Models';\nimport type { TMilliseconds } from '@hellpig/anarchy-engine/Math';\nimport type { Subscription } from 'rxjs';\nimport type { Controls } from 'three';\nimport { EventDispatcher, Quaternion } from 'three';\n\nexport const isOrbitControls = (controls: TOrbitControlsWrapper | TAnyControlsWrapper): controls is TOrbitControlsWrapper => controls.getType() === ControlsType.OrbitControls;\nexport const isFpsControls = (controls: TFpsControlsWrapper | TAnyControlsWrapper): controls is TFpsControlsWrapper => controls.getType() === ControlsType.FirstPersonControls;\n\nexport function updateCameraTransformDriveOnChange(controls: TAnyControlsWrapper, camera: TAnyCameraWrapper): void {\n function updateCameraDrive(): void {\n const dumpingTime: TMilliseconds = ((controls as TOrbitControlsWrapper).entity.enableDamping ? 250 : 0) as TMilliseconds; // 250 is an average dumping time for OrbitControls\n setTimeout((): void => {\n camera.drive.position$.next(camera.entity.position);\n camera.drive.rotation$.next(new Quaternion().setFromEuler(camera.entity.rotation));\n }, dumpingTime);\n }\n\n // TransformDrive cannot handle direct changes, such as Controls on Camera, so we are updating it.\n (controls as TOrbitControlsWrapper).entity.addEventListener?.('end', updateCameraDrive);\n\n const destroySub$: Subscription = controls.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n (controls as TOrbitControlsWrapper).entity.removeEventListener?.('end', updateCameraDrive);\n });\n}\n\nexport function makeControlsEvented<T extends Controls<any>>(controls: T): T & EventDispatcher {\n // eslint-disable-next-line functional/immutable-data\n Object.assign(controls, new EventDispatcher());\n return controls as T & EventDispatcher;\n}\n"],"names":["isOrbitControls","controls","getType","ControlsType","OrbitControls","isFpsControls","FirstPersonControls","updateCameraTransformDriveOnChange","camera","updateCameraDrive","setTimeout","drive","position$","next","entity","position","rotation$","Quaternion","setFromEuler","rotation","enableDamping","addEventListener","destroySub$","destroy$","subscribe","unsubscribe","removeEventListener","makeControlsEvented","Object","assign","EventDispatcher"],"mappings":"qGAQO,MAAMA,gBAAmBC,UAA6FA,SAASC,YAAcC,aAAaC,cACpJC,cAAiBJ,UAAyFA,SAASC,YAAcC,aAAaG,oBAEpJ,SAASC,mCAAmCN,SAA+BO,QAChF,SAASC,oBAEPC,WAAW,KACTF,OAAOG,MAAMC,UAAUC,KAAKL,OAAOM,OAAOC,UAC1CP,OAAOG,MAAMK,UAAUH,MAAK,IAAII,YAAaC,aAAaV,OAAOM,OAAOK,YAHrClB,SAAmCa,OAAOM,cAAgB,IAAM,EAKvG,CAGCnB,SAAmCa,OAAOO,mBAAmB,MAAOZ,mBAErE,MAAMa,YAA4BrB,SAASsB,SAASC,UAAU,KAC5DF,YAAYG,cACXxB,SAAmCa,OAAOY,sBAAsB,MAAOjB,oBAE5E,CAEO,SAASkB,oBAA6C1B,UAG3D,OADA2B,OAAOC,OAAO5B,SAAU,IAAI6B,iBACrB7B,QACT"}
@@ -1,4 +1,4 @@
1
1
  import { TFpsControlsAccessors } from '../../Models';
2
2
  import { TWriteable } from '../../../../../anarchy-shared/src/Utils';
3
- import { FirstPersonControls } from 'three/examples/jsm/controls/FirstPersonControls';
3
+ import { FirstPersonControls } from '../../../../../../node_modules/@types/three/examples/jsm/controls/FirstPersonControls';
4
4
  export declare function getFpsControlsAccessors(entity: TWriteable<FirstPersonControls>): TFpsControlsAccessors;
@@ -1 +1 @@
1
- {"version":3,"file":"FpsControlsAccessors.js","sources":["../../../../src/Controls/Wrappers/FpsControls/FpsControlsAccessors.ts"],"sourcesContent":["import type { TFpsControlsAccessors } from '@Anarchy/Engine/Controls/Models';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport type { FirstPersonControls } from 'three/examples/jsm/controls/FirstPersonControls';\n\nexport function getFpsControlsAccessors(entity: TWriteable<FirstPersonControls>): TFpsControlsAccessors {\n // eslint-disable-next-line functional/immutable-data\n const setMovementSpeed = (speed: number): void => void (entity.movementSpeed = speed);\n const getMovementSpeed = (): number => entity.movementSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setLookSpeed = (speed: number): void => void (entity.lookSpeed = speed);\n const getLookSpeed = (): number => entity.lookSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setLookVertical = (isEnabled: boolean): void => void (entity.lookVertical = isEnabled);\n const getLookVertical = (): boolean => entity.lookVertical;\n\n // eslint-disable-next-line functional/immutable-data\n const setAutoForward = (isEnabled: boolean): void => void (entity.autoForward = isEnabled);\n const getAutoForward = (): boolean => entity.autoForward;\n\n // eslint-disable-next-line functional/immutable-data\n const setActiveLook = (isEnabled: boolean): void => void (entity.activeLook = isEnabled);\n const getActiveLook = (): boolean => entity.activeLook;\n\n // eslint-disable-next-line functional/immutable-data\n const setHeightSpeed = (isEnabled: boolean): void => void (entity.heightSpeed = isEnabled);\n const getHeightSpeed = (): boolean => entity.heightSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setHeightCoef = (height: number): void => void (entity.heightCoef = height);\n const getHeightCoef = (): number => entity.heightCoef;\n\n // eslint-disable-next-line functional/immutable-data\n const setHeightMin = (height: number): void => void (entity.heightMin = height);\n const getHeightMin = (): number => entity.heightMin;\n\n // eslint-disable-next-line functional/immutable-data\n const setHeightMax = (height: number): void => void (entity.heightMax = height);\n const getHeightMax = (): number => entity.heightMax;\n\n // eslint-disable-next-line functional/immutable-data\n const setConstrainVertical = (isEnabled: boolean): void => void (entity.constrainVertical = isEnabled);\n const getConstrainVertical = (): boolean => entity.constrainVertical;\n\n // eslint-disable-next-line functional/immutable-data\n const setVerticalMin = (angle: number): void => void (entity.verticalMin = angle);\n const getVerticalMin = (): number => entity.verticalMin;\n\n // eslint-disable-next-line functional/immutable-data\n const setVerticalMax = (angle: number): void => void (entity.verticalMax = angle);\n const getVerticalMax = (): number => entity.verticalMax;\n\n // eslint-disable-next-line functional/immutable-data\n const setMouseDragOn = (isEnabled: boolean): void => void (entity.mouseDragOn = isEnabled);\n const getMouseDragOn = (): boolean => entity.mouseDragOn;\n\n return {\n setMovementSpeed,\n getMovementSpeed,\n setLookSpeed,\n getLookSpeed,\n setLookVertical,\n getLookVertical,\n setAutoForward,\n getAutoForward,\n setActiveLook,\n getActiveLook,\n setHeightSpeed,\n getHeightSpeed,\n setHeightCoef,\n getHeightCoef,\n setHeightMin,\n getHeightMin,\n setHeightMax,\n getHeightMax,\n setConstrainVertical,\n getConstrainVertical,\n setVerticalMin,\n getVerticalMin,\n setVerticalMax,\n getVerticalMax,\n setMouseDragOn,\n getMouseDragOn\n };\n}\n"],"names":["getFpsControlsAccessors","entity","setMovementSpeed","speed","movementSpeed","getMovementSpeed","setLookSpeed","lookSpeed","getLookSpeed","setLookVertical","isEnabled","lookVertical","getLookVertical","setAutoForward","autoForward","getAutoForward","setActiveLook","activeLook","getActiveLook","setHeightSpeed","heightSpeed","getHeightSpeed","setHeightCoef","height","heightCoef","getHeightCoef","setHeightMin","heightMin","getHeightMin","setHeightMax","heightMax","getHeightMax","setConstrainVertical","constrainVertical","getConstrainVertical","setVerticalMin","angle","verticalMin","getVerticalMin","setVerticalMax","verticalMax","getVerticalMax","setMouseDragOn","mouseDragOn","getMouseDragOn"],"mappings":"AAIO,SAASA,wBAAwBC,QAqDtC,MAAO,CACLC,iBApDwBC,QAA8BF,OAAOG,cAAgBD,OAqD7EE,iBApDuB,IAAcJ,OAAOG,cAqD5CE,aAlDoBH,QAA8BF,OAAOM,UAAYJ,OAmDrEK,aAlDmB,IAAcP,OAAOM,UAmDxCE,gBAhDuBC,YAAmCT,OAAOU,aAAeD,WAiDhFE,gBAhDsB,IAAeX,OAAOU,aAiD5CE,eA9CsBH,YAAmCT,OAAOa,YAAcJ,WA+C9EK,eA9CqB,IAAed,OAAOa,YA+C3CE,cA5CqBN,YAAmCT,OAAOgB,WAAaP,WA6C5EQ,cA5CoB,IAAejB,OAAOgB,WA6C1CE,eA1CsBT,YAAmCT,OAAOmB,YAAcV,WA2C9EW,eA1CqB,IAAepB,OAAOmB,YA2C3CE,cAxCqBC,SAA+BtB,OAAOuB,WAAaD,QAyCxEE,cAxCoB,IAAcxB,OAAOuB,WAyCzCE,aAtCoBH,SAA+BtB,OAAO0B,UAAYJ,QAuCtEK,aAtCmB,IAAc3B,OAAO0B,UAuCxCE,aApCoBN,SAA+BtB,OAAO6B,UAAYP,QAqCtEQ,aApCmB,IAAc9B,OAAO6B,UAqCxCE,qBAlC4BtB,YAAmCT,OAAOgC,kBAAoBvB,WAmC1FwB,qBAlC2B,IAAejC,OAAOgC,kBAmCjDE,eAhCsBC,QAA8BnC,OAAOoC,YAAcD,OAiCzEE,eAhCqB,IAAcrC,OAAOoC,YAiC1CE,eA9BsBH,QAA8BnC,OAAOuC,YAAcJ,OA+BzEK,eA9BqB,IAAcxC,OAAOuC,YA+B1CE,eA5BsBhC,YAAmCT,OAAO0C,YAAcjC,WA6B9EkC,eA5BqB,IAAe3C,OAAO0C,YA8B/C"}
1
+ {"version":3,"file":"FpsControlsAccessors.js","sources":["../../../../src/Controls/Wrappers/FpsControls/FpsControlsAccessors.ts"],"sourcesContent":["import type { TFpsControlsAccessors } from '@hellpig/anarchy-engine/Controls/Models';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport type { FirstPersonControls } from 'three/examples/jsm/controls/FirstPersonControls';\n\nexport function getFpsControlsAccessors(entity: TWriteable<FirstPersonControls>): TFpsControlsAccessors {\n // eslint-disable-next-line functional/immutable-data\n const setMovementSpeed = (speed: number): void => void (entity.movementSpeed = speed);\n const getMovementSpeed = (): number => entity.movementSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setLookSpeed = (speed: number): void => void (entity.lookSpeed = speed);\n const getLookSpeed = (): number => entity.lookSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setLookVertical = (isEnabled: boolean): void => void (entity.lookVertical = isEnabled);\n const getLookVertical = (): boolean => entity.lookVertical;\n\n // eslint-disable-next-line functional/immutable-data\n const setAutoForward = (isEnabled: boolean): void => void (entity.autoForward = isEnabled);\n const getAutoForward = (): boolean => entity.autoForward;\n\n // eslint-disable-next-line functional/immutable-data\n const setActiveLook = (isEnabled: boolean): void => void (entity.activeLook = isEnabled);\n const getActiveLook = (): boolean => entity.activeLook;\n\n // eslint-disable-next-line functional/immutable-data\n const setHeightSpeed = (isEnabled: boolean): void => void (entity.heightSpeed = isEnabled);\n const getHeightSpeed = (): boolean => entity.heightSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setHeightCoef = (height: number): void => void (entity.heightCoef = height);\n const getHeightCoef = (): number => entity.heightCoef;\n\n // eslint-disable-next-line functional/immutable-data\n const setHeightMin = (height: number): void => void (entity.heightMin = height);\n const getHeightMin = (): number => entity.heightMin;\n\n // eslint-disable-next-line functional/immutable-data\n const setHeightMax = (height: number): void => void (entity.heightMax = height);\n const getHeightMax = (): number => entity.heightMax;\n\n // eslint-disable-next-line functional/immutable-data\n const setConstrainVertical = (isEnabled: boolean): void => void (entity.constrainVertical = isEnabled);\n const getConstrainVertical = (): boolean => entity.constrainVertical;\n\n // eslint-disable-next-line functional/immutable-data\n const setVerticalMin = (angle: number): void => void (entity.verticalMin = angle);\n const getVerticalMin = (): number => entity.verticalMin;\n\n // eslint-disable-next-line functional/immutable-data\n const setVerticalMax = (angle: number): void => void (entity.verticalMax = angle);\n const getVerticalMax = (): number => entity.verticalMax;\n\n // eslint-disable-next-line functional/immutable-data\n const setMouseDragOn = (isEnabled: boolean): void => void (entity.mouseDragOn = isEnabled);\n const getMouseDragOn = (): boolean => entity.mouseDragOn;\n\n return {\n setMovementSpeed,\n getMovementSpeed,\n setLookSpeed,\n getLookSpeed,\n setLookVertical,\n getLookVertical,\n setAutoForward,\n getAutoForward,\n setActiveLook,\n getActiveLook,\n setHeightSpeed,\n getHeightSpeed,\n setHeightCoef,\n getHeightCoef,\n setHeightMin,\n getHeightMin,\n setHeightMax,\n getHeightMax,\n setConstrainVertical,\n getConstrainVertical,\n setVerticalMin,\n getVerticalMin,\n setVerticalMax,\n getVerticalMax,\n setMouseDragOn,\n getMouseDragOn\n };\n}\n"],"names":["getFpsControlsAccessors","entity","setMovementSpeed","speed","movementSpeed","getMovementSpeed","setLookSpeed","lookSpeed","getLookSpeed","setLookVertical","isEnabled","lookVertical","getLookVertical","setAutoForward","autoForward","getAutoForward","setActiveLook","activeLook","getActiveLook","setHeightSpeed","heightSpeed","getHeightSpeed","setHeightCoef","height","heightCoef","getHeightCoef","setHeightMin","heightMin","getHeightMin","setHeightMax","heightMax","getHeightMax","setConstrainVertical","constrainVertical","getConstrainVertical","setVerticalMin","angle","verticalMin","getVerticalMin","setVerticalMax","verticalMax","getVerticalMax","setMouseDragOn","mouseDragOn","getMouseDragOn"],"mappings":"AAIO,SAASA,wBAAwBC,QAqDtC,MAAO,CACLC,iBApDwBC,QAA8BF,OAAOG,cAAgBD,OAqD7EE,iBApDuB,IAAcJ,OAAOG,cAqD5CE,aAlDoBH,QAA8BF,OAAOM,UAAYJ,OAmDrEK,aAlDmB,IAAcP,OAAOM,UAmDxCE,gBAhDuBC,YAAmCT,OAAOU,aAAeD,WAiDhFE,gBAhDsB,IAAeX,OAAOU,aAiD5CE,eA9CsBH,YAAmCT,OAAOa,YAAcJ,WA+C9EK,eA9CqB,IAAed,OAAOa,YA+C3CE,cA5CqBN,YAAmCT,OAAOgB,WAAaP,WA6C5EQ,cA5CoB,IAAejB,OAAOgB,WA6C1CE,eA1CsBT,YAAmCT,OAAOmB,YAAcV,WA2C9EW,eA1CqB,IAAepB,OAAOmB,YA2C3CE,cAxCqBC,SAA+BtB,OAAOuB,WAAaD,QAyCxEE,cAxCoB,IAAcxB,OAAOuB,WAyCzCE,aAtCoBH,SAA+BtB,OAAO0B,UAAYJ,QAuCtEK,aAtCmB,IAAc3B,OAAO0B,UAuCxCE,aApCoBN,SAA+BtB,OAAO6B,UAAYP,QAqCtEQ,aApCmB,IAAc9B,OAAO6B,UAqCxCE,qBAlC4BtB,YAAmCT,OAAOgC,kBAAoBvB,WAmC1FwB,qBAlC2B,IAAejC,OAAOgC,kBAmCjDE,eAhCsBC,QAA8BnC,OAAOoC,YAAcD,OAiCzEE,eAhCqB,IAAcrC,OAAOoC,YAiC1CE,eA9BsBH,QAA8BnC,OAAOuC,YAAcJ,OA+BzEK,eA9BqB,IAAcxC,OAAOuC,YA+B1CE,eA5BsBhC,YAAmCT,OAAO0C,YAAcjC,WA6B9EkC,eA5BqB,IAAe3C,OAAO0C,YA8B/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"FpsControlsWrapper.js","sources":["../../../../src/Controls/Wrappers/FpsControls/FpsControlsWrapper.ts"],"sourcesContent":["import { AbstractWrapper, WrapperType } from '@Anarchy/Engine/Abstract';\nimport type { TAnyCameraWrapper } from '@Anarchy/Engine/Camera';\nimport { controlsToConfig } from '@Anarchy/Engine/Controls/Adapters';\nimport type { ControlsType } from '@Anarchy/Engine/Controls/Constants';\nimport type { TControlsServiceDependencies, TFpsControlsConfig, TFpsControlsParams, TFpsControlsWrapper } from '@Anarchy/Engine/Controls/Models';\nimport { makeControlsEvented, updateCameraTransformDriveOnChange } from '@Anarchy/Engine/Controls/Utils';\nimport { getFpsControlsAccessors } from '@Anarchy/Engine/Controls/Wrappers/FpsControls/FpsControlsAccessors';\nimport { applyFpsControlsParams } from '@Anarchy/Engine/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper';\nimport type { TMilliseconds } from '@Anarchy/Engine/Math';\nimport { withActiveMixin } from '@Anarchy/Engine/Mixins';\nimport { isEulerLike } from '@Anarchy/Engine/Utils';\nimport type { Euler } from 'three';\nimport { MathUtils, Quaternion, Spherical, Vector3 } from 'three';\nimport { FirstPersonControls } from 'three/examples/jsm/controls/FirstPersonControls';\n\nexport function FpsControlsWrapper(params: TFpsControlsParams): TFpsControlsWrapper {\n const entity: FirstPersonControls = new FirstPersonControls(params.camera.entity, params.canvas);\n\n makeControlsEvented(entity);\n\n const update = (delta: TMilliseconds): void => entity.update(delta);\n const getType = (): ControlsType => params.type;\n\n // TODO - add pointer lock\n // params.canvas.addEventListener('click', () => {\n // params.canvas.requestPointerLock();\n // });\n\n function enable(): void {\n // eslint-disable-next-line functional/immutable-data\n entity.enabled = true;\n update(0);\n }\n\n function disable(): void {\n // eslint-disable-next-line functional/immutable-data\n entity.enabled = false;\n update(0);\n }\n\n const isEnable = (): boolean => entity.enabled;\n\n function rotateCameraBy(rotation: Quaternion | Euler): void {\n const currentQuaternion: Quaternion = params.camera.entity.quaternion.clone();\n\n const deltaQuaternion: Quaternion = rotation instanceof Quaternion ? rotation : new Quaternion().setFromEuler(rotation);\n\n currentQuaternion.multiply(deltaQuaternion); // order: current * delta\n\n params.camera.entity.quaternion.copy(currentQuaternion);\n\n (entity as unknown as any)._setOrientation();\n\n entity.update(0);\n entity.dispatchEvent({ type: 'end' } as never);\n }\n\n function rotateCameraTo(rotation: Quaternion | Euler): void {\n const quaternion: Quaternion = isEulerLike(rotation) ? new Quaternion().setFromEuler(rotation) : rotation;\n\n params.camera.entity.quaternion.copy(quaternion);\n\n const direction: Vector3 = new Vector3(0, 0, -1).applyQuaternion(quaternion);\n const spherical: Spherical = new Spherical().setFromVector3(direction);\n\n const latitude: number = 90 - MathUtils.radToDeg(spherical.phi);\n const longitude: number = MathUtils.radToDeg(spherical.theta);\n\n // eslint-disable-next-line functional/immutable-data\n (entity as unknown as any)._lat = latitude;\n // eslint-disable-next-line functional/immutable-data,spellcheck/spell-checker\n (entity as unknown as any)._lon = longitude;\n\n entity.update(0);\n entity.dispatchEvent({ type: 'end' } as never);\n }\n\n const result = Object.assign(AbstractWrapper(entity, WrapperType.Controls, params), {\n update,\n enable,\n disable,\n isEnable,\n getType,\n rotateCameraBy,\n rotateCameraTo,\n getCamera: (): TAnyCameraWrapper => params.camera,\n ...getFpsControlsAccessors(entity),\n ...withActiveMixin(),\n entity,\n serialize: (dependencies: TControlsServiceDependencies): TFpsControlsConfig => controlsToConfig(result, dependencies) as TFpsControlsConfig\n });\n\n applyFpsControlsParams(result, params.options);\n result.enable();\n result.update(0);\n result._setActive(params.isActive, true);\n updateCameraTransformDriveOnChange(result, params.camera);\n\n return result;\n}\n"],"names":["FpsControlsWrapper","params","entity","FirstPersonControls","camera","canvas","makeControlsEvented","update","delta","result","Object","assign","AbstractWrapper","WrapperType","Controls","enable","enabled","disable","isEnable","getType","type","rotateCameraBy","rotation","currentQuaternion","quaternion","clone","deltaQuaternion","Quaternion","setFromEuler","multiply","copy","_setOrientation","dispatchEvent","rotateCameraTo","isEulerLike","direction","Vector3","applyQuaternion","spherical","Spherical","setFromVector3","latitude","MathUtils","radToDeg","phi","longitude","theta","_lat","_lon","getCamera","getFpsControlsAccessors","withActiveMixin","serialize","dependencies","controlsToConfig","applyFpsControlsParams","options","_setActive","isActive","updateCameraTransformDriveOnChange"],"mappings":"0rBAeO,SAASA,mBAAmBC,QACjC,MAAMC,OAA8B,IAAIC,oBAAoBF,OAAOG,OAAOF,OAAQD,OAAOI,QAEzFC,oBAAoBJ,QAEpB,MAAMK,OAAUC,OAA+BN,OAAOK,OAAOC,OAyDvDC,OAASC,OAAOC,OAAOC,gBAAgBV,OAAQW,YAAYC,SAAUb,QAAS,CAClFM,cACAQ,OAnDF,WAEEb,OAAOc,SAAU,EACjBT,OAAO,EACT,EAgDEU,QA9CF,WAEEf,OAAOc,SAAU,EACjBT,OAAO,EACT,EA2CEW,SAzCe,IAAehB,OAAOc,QA0CrCG,QA7Dc,IAAoBlB,OAAOmB,KA8DzCC,eAzCF,SAAwBC,UACtB,MAAMC,kBAAgCtB,OAAOG,OAAOF,OAAOsB,WAAWC,QAEhEC,gBAA8BJ,oBAAoBK,WAAaL,UAAW,IAAIK,YAAaC,aAAaN,UAE9GC,kBAAkBM,SAASH,iBAE3BzB,OAAOG,OAAOF,OAAOsB,WAAWM,KAAKP,mBAEpCrB,OAA0B6B,kBAE3B7B,OAAOK,OAAO,GACdL,OAAO8B,cAAc,CAAEZ,KAAM,OAC/B,EA6BEa,eA3BF,SAAwBX,UACtB,MAAME,WAAyBU,YAAYZ,WAAY,IAAIK,YAAaC,aAAaN,UAAYA,SAEjGrB,OAAOG,OAAOF,OAAOsB,WAAWM,KAAKN,YAErC,MAAMW,UAAqB,IAAIC,QAAQ,EAAG,MAAOC,gBAAgBb,YAC3Dc,WAAuB,IAAIC,WAAYC,eAAeL,WAEtDM,SAAmB,GAAKC,UAAUC,SAASL,UAAUM,KACrDC,UAAoBH,UAAUC,SAASL,UAAUQ,OAGtD5C,OAA0B6C,KAAON,SAEjCvC,OAA0B8C,KAAOH,UAElC3C,OAAOK,OAAO,GACdL,OAAO8B,cAAc,CAAEZ,KAAM,OAC/B,EAUE6B,UAAW,IAAyBhD,OAAOG,UACxC8C,wBAAwBhD,WACxBiD,kBACHjD,cACAkD,UAAYC,cAAmEC,iBAAiB7C,OAAQ4C,gBAS1G,OANAE,uBAAuB9C,OAAQR,OAAOuD,SACtC/C,OAAOM,SACPN,OAAOF,OAAO,GACdE,OAAOgD,WAAWxD,OAAOyD,UAAU,GACnCC,mCAAmClD,OAAQR,OAAOG,QAE3CK,MACT"}
1
+ {"version":3,"file":"FpsControlsWrapper.js","sources":["../../../../src/Controls/Wrappers/FpsControls/FpsControlsWrapper.ts"],"sourcesContent":["import { AbstractWrapper, WrapperType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TAnyCameraWrapper } from '@hellpig/anarchy-engine/Camera';\nimport { controlsToConfig } from '@hellpig/anarchy-engine/Controls/Adapters';\nimport type { ControlsType } from '@hellpig/anarchy-engine/Controls/Constants';\nimport type { TControlsServiceDependencies, TFpsControlsConfig, TFpsControlsParams, TFpsControlsWrapper } from '@hellpig/anarchy-engine/Controls/Models';\nimport { makeControlsEvented, updateCameraTransformDriveOnChange } from '@hellpig/anarchy-engine/Controls/Utils';\nimport { getFpsControlsAccessors } from '@hellpig/anarchy-engine/Controls/Wrappers/FpsControls/FpsControlsAccessors';\nimport { applyFpsControlsParams } from '@hellpig/anarchy-engine/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper';\nimport type { TMilliseconds } from '@hellpig/anarchy-engine/Math';\nimport { withActiveMixin } from '@hellpig/anarchy-engine/Mixins';\nimport { isEulerLike } from '@hellpig/anarchy-engine/Utils';\nimport type { Euler } from 'three';\nimport { MathUtils, Quaternion, Spherical, Vector3 } from 'three';\nimport { FirstPersonControls } from 'three/examples/jsm/controls/FirstPersonControls';\n\nexport function FpsControlsWrapper(params: TFpsControlsParams): TFpsControlsWrapper {\n const entity: FirstPersonControls = new FirstPersonControls(params.camera.entity, params.canvas);\n\n makeControlsEvented(entity);\n\n const update = (delta: TMilliseconds): void => entity.update(delta);\n const getType = (): ControlsType => params.type;\n\n // TODO - add pointer lock\n // params.canvas.addEventListener('click', () => {\n // params.canvas.requestPointerLock();\n // });\n\n function enable(): void {\n // eslint-disable-next-line functional/immutable-data\n entity.enabled = true;\n update(0);\n }\n\n function disable(): void {\n // eslint-disable-next-line functional/immutable-data\n entity.enabled = false;\n update(0);\n }\n\n const isEnable = (): boolean => entity.enabled;\n\n function rotateCameraBy(rotation: Quaternion | Euler): void {\n const currentQuaternion: Quaternion = params.camera.entity.quaternion.clone();\n\n const deltaQuaternion: Quaternion = rotation instanceof Quaternion ? rotation : new Quaternion().setFromEuler(rotation);\n\n currentQuaternion.multiply(deltaQuaternion); // order: current * delta\n\n params.camera.entity.quaternion.copy(currentQuaternion);\n\n (entity as unknown as any)._setOrientation();\n\n entity.update(0);\n entity.dispatchEvent({ type: 'end' } as never);\n }\n\n function rotateCameraTo(rotation: Quaternion | Euler): void {\n const quaternion: Quaternion = isEulerLike(rotation) ? new Quaternion().setFromEuler(rotation) : rotation;\n\n params.camera.entity.quaternion.copy(quaternion);\n\n const direction: Vector3 = new Vector3(0, 0, -1).applyQuaternion(quaternion);\n const spherical: Spherical = new Spherical().setFromVector3(direction);\n\n const latitude: number = 90 - MathUtils.radToDeg(spherical.phi);\n const longitude: number = MathUtils.radToDeg(spherical.theta);\n\n // eslint-disable-next-line functional/immutable-data\n (entity as unknown as any)._lat = latitude;\n // eslint-disable-next-line functional/immutable-data,spellcheck/spell-checker\n (entity as unknown as any)._lon = longitude;\n\n entity.update(0);\n entity.dispatchEvent({ type: 'end' } as never);\n }\n\n const result = Object.assign(AbstractWrapper(entity, WrapperType.Controls, params), {\n update,\n enable,\n disable,\n isEnable,\n getType,\n rotateCameraBy,\n rotateCameraTo,\n getCamera: (): TAnyCameraWrapper => params.camera,\n ...getFpsControlsAccessors(entity),\n ...withActiveMixin(),\n entity,\n serialize: (dependencies: TControlsServiceDependencies): TFpsControlsConfig => controlsToConfig(result, dependencies) as TFpsControlsConfig\n });\n\n applyFpsControlsParams(result, params.options);\n result.enable();\n result.update(0);\n result._setActive(params.isActive, true);\n updateCameraTransformDriveOnChange(result, params.camera);\n\n return result;\n}\n"],"names":["FpsControlsWrapper","params","entity","FirstPersonControls","camera","canvas","makeControlsEvented","update","delta","result","Object","assign","AbstractWrapper","WrapperType","Controls","enable","enabled","disable","isEnable","getType","type","rotateCameraBy","rotation","currentQuaternion","quaternion","clone","deltaQuaternion","Quaternion","setFromEuler","multiply","copy","_setOrientation","dispatchEvent","rotateCameraTo","isEulerLike","direction","Vector3","applyQuaternion","spherical","Spherical","setFromVector3","latitude","MathUtils","radToDeg","phi","longitude","theta","_lat","_lon","getCamera","getFpsControlsAccessors","withActiveMixin","serialize","dependencies","controlsToConfig","applyFpsControlsParams","options","_setActive","isActive","updateCameraTransformDriveOnChange"],"mappings":"0rBAeO,SAASA,mBAAmBC,QACjC,MAAMC,OAA8B,IAAIC,oBAAoBF,OAAOG,OAAOF,OAAQD,OAAOI,QAEzFC,oBAAoBJ,QAEpB,MAAMK,OAAUC,OAA+BN,OAAOK,OAAOC,OAyDvDC,OAASC,OAAOC,OAAOC,gBAAgBV,OAAQW,YAAYC,SAAUb,QAAS,CAClFM,cACAQ,OAnDF,WAEEb,OAAOc,SAAU,EACjBT,OAAO,EACT,EAgDEU,QA9CF,WAEEf,OAAOc,SAAU,EACjBT,OAAO,EACT,EA2CEW,SAzCe,IAAehB,OAAOc,QA0CrCG,QA7Dc,IAAoBlB,OAAOmB,KA8DzCC,eAzCF,SAAwBC,UACtB,MAAMC,kBAAgCtB,OAAOG,OAAOF,OAAOsB,WAAWC,QAEhEC,gBAA8BJ,oBAAoBK,WAAaL,UAAW,IAAIK,YAAaC,aAAaN,UAE9GC,kBAAkBM,SAASH,iBAE3BzB,OAAOG,OAAOF,OAAOsB,WAAWM,KAAKP,mBAEpCrB,OAA0B6B,kBAE3B7B,OAAOK,OAAO,GACdL,OAAO8B,cAAc,CAAEZ,KAAM,OAC/B,EA6BEa,eA3BF,SAAwBX,UACtB,MAAME,WAAyBU,YAAYZ,WAAY,IAAIK,YAAaC,aAAaN,UAAYA,SAEjGrB,OAAOG,OAAOF,OAAOsB,WAAWM,KAAKN,YAErC,MAAMW,UAAqB,IAAIC,QAAQ,EAAG,MAAOC,gBAAgBb,YAC3Dc,WAAuB,IAAIC,WAAYC,eAAeL,WAEtDM,SAAmB,GAAKC,UAAUC,SAASL,UAAUM,KACrDC,UAAoBH,UAAUC,SAASL,UAAUQ,OAGtD5C,OAA0B6C,KAAON,SAEjCvC,OAA0B8C,KAAOH,UAElC3C,OAAOK,OAAO,GACdL,OAAO8B,cAAc,CAAEZ,KAAM,OAC/B,EAUE6B,UAAW,IAAyBhD,OAAOG,UACxC8C,wBAAwBhD,WACxBiD,kBACHjD,cACAkD,UAAYC,cAAmEC,iBAAiB7C,OAAQ4C,gBAS1G,OANAE,uBAAuB9C,OAAQR,OAAOuD,SACtC/C,OAAOM,SACPN,OAAOF,OAAO,GACdE,OAAOgD,WAAWxD,OAAOyD,UAAU,GACnCC,mCAAmClD,OAAQR,OAAOG,QAE3CK,MACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"FpsControlsWrapperHelper.js","sources":["../../../../src/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper.ts"],"sourcesContent":["import type { TFpsControlsParamsOptions, TFpsControlsWrapper } from '@Anarchy/Engine/Controls/Models';\nimport { isDefined, isNotDefined } from '@Anarchy/Shared/Utils';\n\nexport function applyFpsControlsParams(wrapper: TFpsControlsWrapper, params: TFpsControlsParamsOptions | undefined): void {\n if (isNotDefined(params)) return;\n\n if (isDefined(params.movementSpeed)) wrapper.setMovementSpeed(params.movementSpeed);\n if (isDefined(params.lookSpeed)) wrapper.setLookSpeed(params.lookSpeed);\n if (isDefined(params.lookVertical)) wrapper.setLookVertical(params.lookVertical);\n if (isDefined(params.autoForward)) wrapper.setAutoForward(params.autoForward);\n if (isDefined(params.activeLook)) wrapper.setActiveLook(params.activeLook);\n if (isDefined(params.heightSpeed)) wrapper.setHeightSpeed(params.heightSpeed);\n if (isDefined(params.heightCoef)) wrapper.setHeightCoef(params.heightCoef);\n if (isDefined(params.heightMin)) wrapper.setHeightMin(params.heightMin);\n if (isDefined(params.heightMax)) wrapper.setHeightMax(params.heightMax);\n if (isDefined(params.constrainVertical)) wrapper.setConstrainVertical(params.constrainVertical);\n if (isDefined(params.verticalMin)) wrapper.setVerticalMin(params.verticalMin);\n if (isDefined(params.verticalMax)) wrapper.setVerticalMax(params.verticalMax);\n if (isDefined(params.mouseDragOn)) wrapper.setMouseDragOn(params.mouseDragOn);\n}\n"],"names":["applyFpsControlsParams","wrapper","params","isNotDefined","isDefined","movementSpeed","setMovementSpeed","lookSpeed","setLookSpeed","lookVertical","setLookVertical","autoForward","setAutoForward","activeLook","setActiveLook","heightSpeed","setHeightSpeed","heightCoef","setHeightCoef","heightMin","setHeightMin","heightMax","setHeightMax","constrainVertical","setConstrainVertical","verticalMin","setVerticalMin","verticalMax","setVerticalMax","mouseDragOn","setMouseDragOn"],"mappings":"6FAGO,SAASA,uBAAuBC,QAA8BC,QAC/DC,aAAaD,UAEbE,UAAUF,OAAOG,gBAAgBJ,QAAQK,iBAAiBJ,OAAOG,eACjED,UAAUF,OAAOK,YAAYN,QAAQO,aAAaN,OAAOK,WACzDH,UAAUF,OAAOO,eAAeR,QAAQS,gBAAgBR,OAAOO,cAC/DL,UAAUF,OAAOS,cAAcV,QAAQW,eAAeV,OAAOS,aAC7DP,UAAUF,OAAOW,aAAaZ,QAAQa,cAAcZ,OAAOW,YAC3DT,UAAUF,OAAOa,cAAcd,QAAQe,eAAed,OAAOa,aAC7DX,UAAUF,OAAOe,aAAahB,QAAQiB,cAAchB,OAAOe,YAC3Db,UAAUF,OAAOiB,YAAYlB,QAAQmB,aAAalB,OAAOiB,WACzDf,UAAUF,OAAOmB,YAAYpB,QAAQqB,aAAapB,OAAOmB,WACzDjB,UAAUF,OAAOqB,oBAAoBtB,QAAQuB,qBAAqBtB,OAAOqB,mBACzEnB,UAAUF,OAAOuB,cAAcxB,QAAQyB,eAAexB,OAAOuB,aAC7DrB,UAAUF,OAAOyB,cAAc1B,QAAQ2B,eAAe1B,OAAOyB,aAC7DvB,UAAUF,OAAO2B,cAAc5B,QAAQ6B,eAAe5B,OAAO2B,aACnE"}
1
+ {"version":3,"file":"FpsControlsWrapperHelper.js","sources":["../../../../src/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper.ts"],"sourcesContent":["import type { TFpsControlsParamsOptions, TFpsControlsWrapper } from '@hellpig/anarchy-engine/Controls/Models';\nimport { isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\n\nexport function applyFpsControlsParams(wrapper: TFpsControlsWrapper, params: TFpsControlsParamsOptions | undefined): void {\n if (isNotDefined(params)) return;\n\n if (isDefined(params.movementSpeed)) wrapper.setMovementSpeed(params.movementSpeed);\n if (isDefined(params.lookSpeed)) wrapper.setLookSpeed(params.lookSpeed);\n if (isDefined(params.lookVertical)) wrapper.setLookVertical(params.lookVertical);\n if (isDefined(params.autoForward)) wrapper.setAutoForward(params.autoForward);\n if (isDefined(params.activeLook)) wrapper.setActiveLook(params.activeLook);\n if (isDefined(params.heightSpeed)) wrapper.setHeightSpeed(params.heightSpeed);\n if (isDefined(params.heightCoef)) wrapper.setHeightCoef(params.heightCoef);\n if (isDefined(params.heightMin)) wrapper.setHeightMin(params.heightMin);\n if (isDefined(params.heightMax)) wrapper.setHeightMax(params.heightMax);\n if (isDefined(params.constrainVertical)) wrapper.setConstrainVertical(params.constrainVertical);\n if (isDefined(params.verticalMin)) wrapper.setVerticalMin(params.verticalMin);\n if (isDefined(params.verticalMax)) wrapper.setVerticalMax(params.verticalMax);\n if (isDefined(params.mouseDragOn)) wrapper.setMouseDragOn(params.mouseDragOn);\n}\n"],"names":["applyFpsControlsParams","wrapper","params","isNotDefined","isDefined","movementSpeed","setMovementSpeed","lookSpeed","setLookSpeed","lookVertical","setLookVertical","autoForward","setAutoForward","activeLook","setActiveLook","heightSpeed","setHeightSpeed","heightCoef","setHeightCoef","heightMin","setHeightMin","heightMax","setHeightMax","constrainVertical","setConstrainVertical","verticalMin","setVerticalMin","verticalMax","setVerticalMax","mouseDragOn","setMouseDragOn"],"mappings":"6FAGO,SAASA,uBAAuBC,QAA8BC,QAC/DC,aAAaD,UAEbE,UAAUF,OAAOG,gBAAgBJ,QAAQK,iBAAiBJ,OAAOG,eACjED,UAAUF,OAAOK,YAAYN,QAAQO,aAAaN,OAAOK,WACzDH,UAAUF,OAAOO,eAAeR,QAAQS,gBAAgBR,OAAOO,cAC/DL,UAAUF,OAAOS,cAAcV,QAAQW,eAAeV,OAAOS,aAC7DP,UAAUF,OAAOW,aAAaZ,QAAQa,cAAcZ,OAAOW,YAC3DT,UAAUF,OAAOa,cAAcd,QAAQe,eAAed,OAAOa,aAC7DX,UAAUF,OAAOe,aAAahB,QAAQiB,cAAchB,OAAOe,YAC3Db,UAAUF,OAAOiB,YAAYlB,QAAQmB,aAAalB,OAAOiB,WACzDf,UAAUF,OAAOmB,YAAYpB,QAAQqB,aAAapB,OAAOmB,WACzDjB,UAAUF,OAAOqB,oBAAoBtB,QAAQuB,qBAAqBtB,OAAOqB,mBACzEnB,UAAUF,OAAOuB,cAAcxB,QAAQyB,eAAexB,OAAOuB,aAC7DrB,UAAUF,OAAOyB,cAAc1B,QAAQ2B,eAAe1B,OAAOyB,aAC7DvB,UAAUF,OAAO2B,cAAc5B,QAAQ6B,eAAe5B,OAAO2B,aACnE"}
@@ -1,4 +1,4 @@
1
1
  import { TOrbitControlsAccessors } from '../../Models';
2
2
  import { TWriteable } from '../../../../../anarchy-shared/src/Utils';
3
- import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
3
+ import { OrbitControls } from '../../../../../../node_modules/@types/three/examples/jsm/controls/OrbitControls';
4
4
  export declare function getOrbitControlsAccessors(entity: TWriteable<OrbitControls>): TOrbitControlsAccessors;
@@ -1 +1 @@
1
- {"version":3,"file":"OrbitControlsAccessors.js","sources":["../../../../src/Controls/Wrappers/OrbitControls/OrbitControlsAccessors.ts"],"sourcesContent":["import type { TOrbitControlsAccessors } from '@Anarchy/Engine/Controls/Models';\nimport type { TReadonlyVector3 } from '@Anarchy/Engine/ThreeLib';\nimport type { TWriteable } from '@Anarchy/Shared/Utils';\nimport type { Vector3 } from 'three';\nimport type { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';\n\nexport function getOrbitControlsAccessors(entity: TWriteable<OrbitControls>): TOrbitControlsAccessors {\n // eslint-disable-next-line functional/immutable-data\n const setDamping = (isEnabled: boolean): void => void (entity.enableDamping = isEnabled);\n const getDamping = (): boolean => entity.enableDamping;\n\n function setTarget({ x, y, z }: TReadonlyVector3 | Vector3): void {\n entity.target.set(x, y, z);\n entity.update();\n }\n\n // eslint-disable-next-line functional/immutable-data\n const setAutoRotate = (isEnabled: boolean): void => void (entity.autoRotate = isEnabled);\n const getAutoRotate = (): boolean => entity.autoRotate;\n\n // eslint-disable-next-line functional/immutable-data\n const setMinDistance = (minDistance: number): void => void (entity.minDistance = minDistance);\n const getMinDistance = (): number => entity.minDistance;\n\n // eslint-disable-next-line functional/immutable-data\n const setMaxDistance = (maxDistance: number): void => void (entity.maxDistance = maxDistance);\n const getMaxDistance = (): number => entity.maxDistance;\n\n // eslint-disable-next-line functional/immutable-data\n const setMinZoom = (minZoom: number): void => void (entity.minZoom = minZoom);\n const getMinZoom = (): number => entity.minZoom;\n\n // eslint-disable-next-line functional/immutable-data\n const setMaxZoom = (maxZoom: number): void => void (entity.maxZoom = maxZoom);\n const getMaxZoom = (): number => entity.maxZoom;\n\n // eslint-disable-next-line functional/immutable-data\n const setMinTargetRadius = (minTargetRadius: number): void => void (entity.minPolarAngle = minTargetRadius);\n const getMinTargetRadius = (): number => entity.minPolarAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setMaxTargetRadius = (maxTargetRadius: number): void => void (entity.maxPolarAngle = maxTargetRadius);\n const getMaxTargetRadius = (): number => entity.maxPolarAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setMinPolarAngle = (minPolarAngle: number): void => void (entity.minPolarAngle = minPolarAngle);\n const getMinPolarAngle = (): number => entity.minPolarAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setMaxPolarAngle = (maxPolarAngle: number): void => void (entity.maxPolarAngle = maxPolarAngle);\n const getMaxPolarAngle = (): number => entity.maxPolarAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setMinAzimuthAngle = (minAzimuthAngle: number): void => void (entity.minAzimuthAngle = minAzimuthAngle);\n const getMinAzimuthAngle = (): number => entity.minAzimuthAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setMaxAzimuthAngle = (maxAzimuthAngle: number): void => void (entity.maxAzimuthAngle = maxAzimuthAngle);\n const getMaxAzimuthAngle = (): number => entity.maxAzimuthAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setDampingFactor = (dampingFactor: number): void => void (entity.dampingFactor = dampingFactor);\n const getDampingFactor = (): number => entity.dampingFactor;\n\n // eslint-disable-next-line functional/immutable-data\n const setEnableZoom = (isEnabled: boolean): void => void (entity.enableZoom = isEnabled);\n const getEnableZoom = (): boolean => entity.enableZoom;\n\n // eslint-disable-next-line functional/immutable-data\n const setZoomSpeed = (zoomSpeed: number): void => void (entity.zoomSpeed = zoomSpeed);\n const getZoomSpeed = (): number => entity.zoomSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setZoomToCursor = (isEnabled: boolean): void => void (entity.zoomToCursor = isEnabled);\n const getZoomToCursor = (): boolean => entity.zoomToCursor;\n\n // eslint-disable-next-line functional/immutable-data\n const setEnableRotate = (isEnabled: boolean): void => void (entity.enableRotate = isEnabled);\n const getEnableRotate = (): boolean => entity.enableRotate;\n\n // eslint-disable-next-line functional/immutable-data\n const setRotateSpeed = (rotateSpeed: number): void => void (entity.rotateSpeed = rotateSpeed);\n const getRotateSpeed = (): number => entity.rotateSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setEnablePan = (isEnabled: boolean): void => void (entity.enablePan = isEnabled);\n const getEnablePan = (): boolean => entity.enablePan;\n\n // eslint-disable-next-line functional/immutable-data\n const setPanSpeed = (panSpeed: number): void => void (entity.panSpeed = panSpeed);\n const getPanSpeed = (): number => entity.panSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setScreenSpacePanning = (isEnabled: boolean): void => void (entity.screenSpacePanning = isEnabled);\n const getScreenSpacePanning = (): boolean => entity.screenSpacePanning;\n\n // eslint-disable-next-line functional/immutable-data\n const setKeyPanSpeed = (keyPanSpeed: number): void => void (entity.keyPanSpeed = keyPanSpeed);\n const getKeyPanSpeed = (): number => entity.keyPanSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setAutoRotateSpeed = (autoRotateSpeed: number): void => void (entity.autoRotateSpeed = autoRotateSpeed);\n const getAutoRotateSpeed = (): number => entity.autoRotateSpeed;\n\n return {\n setDamping,\n getDamping,\n setTarget,\n setAutoRotate,\n getAutoRotate,\n setMinDistance,\n getMinDistance,\n setMaxDistance,\n getMaxDistance,\n setMinZoom,\n getMinZoom,\n setMaxZoom,\n getMaxZoom,\n setMinTargetRadius,\n getMinTargetRadius,\n setMaxTargetRadius,\n getMaxTargetRadius,\n setMinPolarAngle,\n getMinPolarAngle,\n setMaxPolarAngle,\n getMaxPolarAngle,\n setMinAzimuthAngle,\n getMinAzimuthAngle,\n setMaxAzimuthAngle,\n getMaxAzimuthAngle,\n setDampingFactor,\n getDampingFactor,\n setEnableZoom,\n getEnableZoom,\n setZoomSpeed,\n getZoomSpeed,\n setZoomToCursor,\n getZoomToCursor,\n setEnableRotate,\n getEnableRotate,\n setRotateSpeed,\n getRotateSpeed,\n setEnablePan,\n getEnablePan,\n setPanSpeed,\n getPanSpeed,\n setScreenSpacePanning,\n getScreenSpacePanning,\n setKeyPanSpeed,\n getKeyPanSpeed,\n setAutoRotateSpeed,\n getAutoRotateSpeed\n };\n}\n"],"names":["getOrbitControlsAccessors","entity","setDamping","isEnabled","enableDamping","getDamping","setTarget","x","y","z","target","set","update","setAutoRotate","autoRotate","getAutoRotate","setMinDistance","minDistance","getMinDistance","setMaxDistance","maxDistance","getMaxDistance","setMinZoom","minZoom","getMinZoom","setMaxZoom","maxZoom","getMaxZoom","setMinTargetRadius","minTargetRadius","minPolarAngle","getMinTargetRadius","setMaxTargetRadius","maxTargetRadius","maxPolarAngle","getMaxTargetRadius","setMinPolarAngle","getMinPolarAngle","setMaxPolarAngle","getMaxPolarAngle","setMinAzimuthAngle","minAzimuthAngle","getMinAzimuthAngle","setMaxAzimuthAngle","maxAzimuthAngle","getMaxAzimuthAngle","setDampingFactor","dampingFactor","getDampingFactor","setEnableZoom","enableZoom","getEnableZoom","setZoomSpeed","zoomSpeed","getZoomSpeed","setZoomToCursor","zoomToCursor","getZoomToCursor","setEnableRotate","enableRotate","getEnableRotate","setRotateSpeed","rotateSpeed","getRotateSpeed","setEnablePan","enablePan","getEnablePan","setPanSpeed","panSpeed","getPanSpeed","setScreenSpacePanning","screenSpacePanning","getScreenSpacePanning","setKeyPanSpeed","keyPanSpeed","getKeyPanSpeed","setAutoRotateSpeed","autoRotateSpeed","getAutoRotateSpeed"],"mappings":"AAMO,SAASA,0BAA0BC,QAkGxC,MAAO,CACLC,WAjGkBC,YAAmCF,OAAOG,cAAgBD,WAkG5EE,WAjGiB,IAAeJ,OAAOG,cAkGvCE,UAhGF,UAAmBC,EAAEA,EAAAC,EAAGA,EAAAC,EAAGA,IACzBR,OAAOS,OAAOC,IAAIJ,EAAGC,EAAGC,GACxBR,OAAOW,QACT,EA8FEC,cA3FqBV,YAAmCF,OAAOa,WAAaX,WA4F5EY,cA3FoB,IAAed,OAAOa,WA4F1CE,eAzFsBC,cAAoChB,OAAOgB,YAAcA,aA0F/EC,eAzFqB,IAAcjB,OAAOgB,YA0F1CE,eAvFsBC,cAAoCnB,OAAOmB,YAAcA,aAwF/EC,eAvFqB,IAAcpB,OAAOmB,YAwF1CE,WArFkBC,UAAgCtB,OAAOsB,QAAUA,SAsFnEC,WArFiB,IAAcvB,OAAOsB,QAsFtCE,WAnFkBC,UAAgCzB,OAAOyB,QAAUA,SAoFnEC,WAnFiB,IAAc1B,OAAOyB,QAoFtCE,mBAjF0BC,kBAAwC5B,OAAO6B,cAAgBD,iBAkFzFE,mBAjFyB,IAAc9B,OAAO6B,cAkF9CE,mBA/E0BC,kBAAwChC,OAAOiC,cAAgBD,iBAgFzFE,mBA/EyB,IAAclC,OAAOiC,cAgF9CE,iBA7EwBN,gBAAsC7B,OAAO6B,cAAgBA,eA8ErFO,iBA7EuB,IAAcpC,OAAO6B,cA8E5CQ,iBA3EwBJ,gBAAsCjC,OAAOiC,cAAgBA,eA4ErFK,iBA3EuB,IAActC,OAAOiC,cA4E5CM,mBAzE0BC,kBAAwCxC,OAAOwC,gBAAkBA,iBA0E3FC,mBAzEyB,IAAczC,OAAOwC,gBA0E9CE,mBAvE0BC,kBAAwC3C,OAAO2C,gBAAkBA,iBAwE3FC,mBAvEyB,IAAc5C,OAAO2C,gBAwE9CE,iBArEwBC,gBAAsC9C,OAAO8C,cAAgBA,eAsErFC,iBArEuB,IAAc/C,OAAO8C,cAsE5CE,cAnEqB9C,YAAmCF,OAAOiD,WAAa/C,WAoE5EgD,cAnEoB,IAAelD,OAAOiD,WAoE1CE,aAjEoBC,YAAkCpD,OAAOoD,UAAYA,WAkEzEC,aAjEmB,IAAcrD,OAAOoD,UAkExCE,gBA/DuBpD,YAAmCF,OAAOuD,aAAerD,WAgEhFsD,gBA/DsB,IAAexD,OAAOuD,aAgE5CE,gBA7DuBvD,YAAmCF,OAAO0D,aAAexD,WA8DhFyD,gBA7DsB,IAAe3D,OAAO0D,aA8D5CE,eA3DsBC,cAAoC7D,OAAO6D,YAAcA,aA4D/EC,eA3DqB,IAAc9D,OAAO6D,YA4D1CE,aAzDoB7D,YAAmCF,OAAOgE,UAAY9D,WA0D1E+D,aAzDmB,IAAejE,OAAOgE,UA0DzCE,YAvDmBC,WAAiCnE,OAAOmE,SAAWA,UAwDtEC,YAvDkB,IAAcpE,OAAOmE,SAwDvCE,sBArD6BnE,YAAmCF,OAAOsE,mBAAqBpE,WAsD5FqE,sBArD4B,IAAevE,OAAOsE,mBAsDlDE,eAnDsBC,cAAoCzE,OAAOyE,YAAcA,aAoD/EC,eAnDqB,IAAc1E,OAAOyE,YAoD1CE,mBAjD0BC,kBAAwC5E,OAAO4E,gBAAkBA,iBAkD3FC,mBAjDyB,IAAc7E,OAAO4E,gBAmDlD"}
1
+ {"version":3,"file":"OrbitControlsAccessors.js","sources":["../../../../src/Controls/Wrappers/OrbitControls/OrbitControlsAccessors.ts"],"sourcesContent":["import type { TOrbitControlsAccessors } from '@hellpig/anarchy-engine/Controls/Models';\nimport type { TReadonlyVector3 } from '@hellpig/anarchy-engine/ThreeLib';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport type { Vector3 } from 'three';\nimport type { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';\n\nexport function getOrbitControlsAccessors(entity: TWriteable<OrbitControls>): TOrbitControlsAccessors {\n // eslint-disable-next-line functional/immutable-data\n const setDamping = (isEnabled: boolean): void => void (entity.enableDamping = isEnabled);\n const getDamping = (): boolean => entity.enableDamping;\n\n function setTarget({ x, y, z }: TReadonlyVector3 | Vector3): void {\n entity.target.set(x, y, z);\n entity.update();\n }\n\n // eslint-disable-next-line functional/immutable-data\n const setAutoRotate = (isEnabled: boolean): void => void (entity.autoRotate = isEnabled);\n const getAutoRotate = (): boolean => entity.autoRotate;\n\n // eslint-disable-next-line functional/immutable-data\n const setMinDistance = (minDistance: number): void => void (entity.minDistance = minDistance);\n const getMinDistance = (): number => entity.minDistance;\n\n // eslint-disable-next-line functional/immutable-data\n const setMaxDistance = (maxDistance: number): void => void (entity.maxDistance = maxDistance);\n const getMaxDistance = (): number => entity.maxDistance;\n\n // eslint-disable-next-line functional/immutable-data\n const setMinZoom = (minZoom: number): void => void (entity.minZoom = minZoom);\n const getMinZoom = (): number => entity.minZoom;\n\n // eslint-disable-next-line functional/immutable-data\n const setMaxZoom = (maxZoom: number): void => void (entity.maxZoom = maxZoom);\n const getMaxZoom = (): number => entity.maxZoom;\n\n // eslint-disable-next-line functional/immutable-data\n const setMinTargetRadius = (minTargetRadius: number): void => void (entity.minPolarAngle = minTargetRadius);\n const getMinTargetRadius = (): number => entity.minPolarAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setMaxTargetRadius = (maxTargetRadius: number): void => void (entity.maxPolarAngle = maxTargetRadius);\n const getMaxTargetRadius = (): number => entity.maxPolarAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setMinPolarAngle = (minPolarAngle: number): void => void (entity.minPolarAngle = minPolarAngle);\n const getMinPolarAngle = (): number => entity.minPolarAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setMaxPolarAngle = (maxPolarAngle: number): void => void (entity.maxPolarAngle = maxPolarAngle);\n const getMaxPolarAngle = (): number => entity.maxPolarAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setMinAzimuthAngle = (minAzimuthAngle: number): void => void (entity.minAzimuthAngle = minAzimuthAngle);\n const getMinAzimuthAngle = (): number => entity.minAzimuthAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setMaxAzimuthAngle = (maxAzimuthAngle: number): void => void (entity.maxAzimuthAngle = maxAzimuthAngle);\n const getMaxAzimuthAngle = (): number => entity.maxAzimuthAngle;\n\n // eslint-disable-next-line functional/immutable-data\n const setDampingFactor = (dampingFactor: number): void => void (entity.dampingFactor = dampingFactor);\n const getDampingFactor = (): number => entity.dampingFactor;\n\n // eslint-disable-next-line functional/immutable-data\n const setEnableZoom = (isEnabled: boolean): void => void (entity.enableZoom = isEnabled);\n const getEnableZoom = (): boolean => entity.enableZoom;\n\n // eslint-disable-next-line functional/immutable-data\n const setZoomSpeed = (zoomSpeed: number): void => void (entity.zoomSpeed = zoomSpeed);\n const getZoomSpeed = (): number => entity.zoomSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setZoomToCursor = (isEnabled: boolean): void => void (entity.zoomToCursor = isEnabled);\n const getZoomToCursor = (): boolean => entity.zoomToCursor;\n\n // eslint-disable-next-line functional/immutable-data\n const setEnableRotate = (isEnabled: boolean): void => void (entity.enableRotate = isEnabled);\n const getEnableRotate = (): boolean => entity.enableRotate;\n\n // eslint-disable-next-line functional/immutable-data\n const setRotateSpeed = (rotateSpeed: number): void => void (entity.rotateSpeed = rotateSpeed);\n const getRotateSpeed = (): number => entity.rotateSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setEnablePan = (isEnabled: boolean): void => void (entity.enablePan = isEnabled);\n const getEnablePan = (): boolean => entity.enablePan;\n\n // eslint-disable-next-line functional/immutable-data\n const setPanSpeed = (panSpeed: number): void => void (entity.panSpeed = panSpeed);\n const getPanSpeed = (): number => entity.panSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setScreenSpacePanning = (isEnabled: boolean): void => void (entity.screenSpacePanning = isEnabled);\n const getScreenSpacePanning = (): boolean => entity.screenSpacePanning;\n\n // eslint-disable-next-line functional/immutable-data\n const setKeyPanSpeed = (keyPanSpeed: number): void => void (entity.keyPanSpeed = keyPanSpeed);\n const getKeyPanSpeed = (): number => entity.keyPanSpeed;\n\n // eslint-disable-next-line functional/immutable-data\n const setAutoRotateSpeed = (autoRotateSpeed: number): void => void (entity.autoRotateSpeed = autoRotateSpeed);\n const getAutoRotateSpeed = (): number => entity.autoRotateSpeed;\n\n return {\n setDamping,\n getDamping,\n setTarget,\n setAutoRotate,\n getAutoRotate,\n setMinDistance,\n getMinDistance,\n setMaxDistance,\n getMaxDistance,\n setMinZoom,\n getMinZoom,\n setMaxZoom,\n getMaxZoom,\n setMinTargetRadius,\n getMinTargetRadius,\n setMaxTargetRadius,\n getMaxTargetRadius,\n setMinPolarAngle,\n getMinPolarAngle,\n setMaxPolarAngle,\n getMaxPolarAngle,\n setMinAzimuthAngle,\n getMinAzimuthAngle,\n setMaxAzimuthAngle,\n getMaxAzimuthAngle,\n setDampingFactor,\n getDampingFactor,\n setEnableZoom,\n getEnableZoom,\n setZoomSpeed,\n getZoomSpeed,\n setZoomToCursor,\n getZoomToCursor,\n setEnableRotate,\n getEnableRotate,\n setRotateSpeed,\n getRotateSpeed,\n setEnablePan,\n getEnablePan,\n setPanSpeed,\n getPanSpeed,\n setScreenSpacePanning,\n getScreenSpacePanning,\n setKeyPanSpeed,\n getKeyPanSpeed,\n setAutoRotateSpeed,\n getAutoRotateSpeed\n };\n}\n"],"names":["getOrbitControlsAccessors","entity","setDamping","isEnabled","enableDamping","getDamping","setTarget","x","y","z","target","set","update","setAutoRotate","autoRotate","getAutoRotate","setMinDistance","minDistance","getMinDistance","setMaxDistance","maxDistance","getMaxDistance","setMinZoom","minZoom","getMinZoom","setMaxZoom","maxZoom","getMaxZoom","setMinTargetRadius","minTargetRadius","minPolarAngle","getMinTargetRadius","setMaxTargetRadius","maxTargetRadius","maxPolarAngle","getMaxTargetRadius","setMinPolarAngle","getMinPolarAngle","setMaxPolarAngle","getMaxPolarAngle","setMinAzimuthAngle","minAzimuthAngle","getMinAzimuthAngle","setMaxAzimuthAngle","maxAzimuthAngle","getMaxAzimuthAngle","setDampingFactor","dampingFactor","getDampingFactor","setEnableZoom","enableZoom","getEnableZoom","setZoomSpeed","zoomSpeed","getZoomSpeed","setZoomToCursor","zoomToCursor","getZoomToCursor","setEnableRotate","enableRotate","getEnableRotate","setRotateSpeed","rotateSpeed","getRotateSpeed","setEnablePan","enablePan","getEnablePan","setPanSpeed","panSpeed","getPanSpeed","setScreenSpacePanning","screenSpacePanning","getScreenSpacePanning","setKeyPanSpeed","keyPanSpeed","getKeyPanSpeed","setAutoRotateSpeed","autoRotateSpeed","getAutoRotateSpeed"],"mappings":"AAMO,SAASA,0BAA0BC,QAkGxC,MAAO,CACLC,WAjGkBC,YAAmCF,OAAOG,cAAgBD,WAkG5EE,WAjGiB,IAAeJ,OAAOG,cAkGvCE,UAhGF,UAAmBC,EAAEA,EAAAC,EAAGA,EAAAC,EAAGA,IACzBR,OAAOS,OAAOC,IAAIJ,EAAGC,EAAGC,GACxBR,OAAOW,QACT,EA8FEC,cA3FqBV,YAAmCF,OAAOa,WAAaX,WA4F5EY,cA3FoB,IAAed,OAAOa,WA4F1CE,eAzFsBC,cAAoChB,OAAOgB,YAAcA,aA0F/EC,eAzFqB,IAAcjB,OAAOgB,YA0F1CE,eAvFsBC,cAAoCnB,OAAOmB,YAAcA,aAwF/EC,eAvFqB,IAAcpB,OAAOmB,YAwF1CE,WArFkBC,UAAgCtB,OAAOsB,QAAUA,SAsFnEC,WArFiB,IAAcvB,OAAOsB,QAsFtCE,WAnFkBC,UAAgCzB,OAAOyB,QAAUA,SAoFnEC,WAnFiB,IAAc1B,OAAOyB,QAoFtCE,mBAjF0BC,kBAAwC5B,OAAO6B,cAAgBD,iBAkFzFE,mBAjFyB,IAAc9B,OAAO6B,cAkF9CE,mBA/E0BC,kBAAwChC,OAAOiC,cAAgBD,iBAgFzFE,mBA/EyB,IAAclC,OAAOiC,cAgF9CE,iBA7EwBN,gBAAsC7B,OAAO6B,cAAgBA,eA8ErFO,iBA7EuB,IAAcpC,OAAO6B,cA8E5CQ,iBA3EwBJ,gBAAsCjC,OAAOiC,cAAgBA,eA4ErFK,iBA3EuB,IAActC,OAAOiC,cA4E5CM,mBAzE0BC,kBAAwCxC,OAAOwC,gBAAkBA,iBA0E3FC,mBAzEyB,IAAczC,OAAOwC,gBA0E9CE,mBAvE0BC,kBAAwC3C,OAAO2C,gBAAkBA,iBAwE3FC,mBAvEyB,IAAc5C,OAAO2C,gBAwE9CE,iBArEwBC,gBAAsC9C,OAAO8C,cAAgBA,eAsErFC,iBArEuB,IAAc/C,OAAO8C,cAsE5CE,cAnEqB9C,YAAmCF,OAAOiD,WAAa/C,WAoE5EgD,cAnEoB,IAAelD,OAAOiD,WAoE1CE,aAjEoBC,YAAkCpD,OAAOoD,UAAYA,WAkEzEC,aAjEmB,IAAcrD,OAAOoD,UAkExCE,gBA/DuBpD,YAAmCF,OAAOuD,aAAerD,WAgEhFsD,gBA/DsB,IAAexD,OAAOuD,aAgE5CE,gBA7DuBvD,YAAmCF,OAAO0D,aAAexD,WA8DhFyD,gBA7DsB,IAAe3D,OAAO0D,aA8D5CE,eA3DsBC,cAAoC7D,OAAO6D,YAAcA,aA4D/EC,eA3DqB,IAAc9D,OAAO6D,YA4D1CE,aAzDoB7D,YAAmCF,OAAOgE,UAAY9D,WA0D1E+D,aAzDmB,IAAejE,OAAOgE,UA0DzCE,YAvDmBC,WAAiCnE,OAAOmE,SAAWA,UAwDtEC,YAvDkB,IAAcpE,OAAOmE,SAwDvCE,sBArD6BnE,YAAmCF,OAAOsE,mBAAqBpE,WAsD5FqE,sBArD4B,IAAevE,OAAOsE,mBAsDlDE,eAnDsBC,cAAoCzE,OAAOyE,YAAcA,aAoD/EC,eAnDqB,IAAc1E,OAAOyE,YAoD1CE,mBAjD0BC,kBAAwC5E,OAAO4E,gBAAkBA,iBAkD3FC,mBAjDyB,IAAc7E,OAAO4E,gBAmDlD"}