@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.
- package/dist/Abstract/Entities/AbstractEntity.js.map +1 -1
- package/dist/Abstract/Factories/AbstractFactory.js.map +1 -1
- package/dist/Abstract/Factories/ReactiveFactory.js.map +1 -1
- package/dist/Abstract/Loaders/AbstractLoader.js.map +1 -1
- package/dist/Abstract/Mixins/WithWrapperIdMixin.js.map +1 -1
- package/dist/Abstract/Models/THtmlElementStyleDeclaration.d.ts +4 -4
- package/dist/Abstract/Registries/AbstractEntityAsyncRegistry.js.map +1 -1
- package/dist/Abstract/Registries/AbstractEntityRegistry.js.map +1 -1
- package/dist/Abstract/Registries/AbstractResourceAsyncRegistry.js.map +1 -1
- package/dist/Abstract/Registries/AbstractSimpleRegistry.js.map +1 -1
- package/dist/Abstract/Registries/AbstractWatcherRegistry.js.map +1 -1
- package/dist/Abstract/Registries/Mixin/Registry/WithBaseAccessorsRegistry.js.map +1 -1
- package/dist/Abstract/Registries/Mixin/Registry/WithReactiveRegistry.js.map +1 -1
- package/dist/Abstract/Services/AbstractService.js.map +1 -1
- package/dist/Abstract/Watchers/AbstractWatcher.js.map +1 -1
- package/dist/Abstract/Watchers/AbstractWatcherWithState.js.map +1 -1
- package/dist/Abstract/Wrappers/AbstractWrapper.js.map +1 -1
- package/dist/Actor/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Actor/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Actor/Adapters/Helpers/ActorStatesConfigToParams.js.map +1 -1
- package/dist/Actor/Adapters/Helpers/Model3dSettingsConfigToParams.js.map +1 -1
- package/dist/Actor/Entities/Actor/Actor.js.map +1 -1
- package/dist/Actor/Factories/ActorFactory.js.map +1 -1
- package/dist/Actor/Mixins/WithActorStates.js.map +1 -1
- package/dist/Actor/Registries/ActorRegistry.js.map +1 -1
- package/dist/Actor/Registries/Model3dToActorConnectionRegistry.js.map +1 -1
- package/dist/Actor/Services/ActorService.js.map +1 -1
- package/dist/Actor/TransformDrive/ActorTransformDrive.js.map +1 -1
- package/dist/Actor/Utils/ActorUtils.js.map +1 -1
- package/dist/Animations/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Animations/Loader/AnimationsLoader.js.map +1 -1
- package/dist/Animations/Registries/AnimationsMetaInfoRegistry.js.map +1 -1
- package/dist/Animations/Registries/AnimationsResourceAsyncRegistry.js.map +1 -1
- package/dist/Animations/Services/AnimationsService.js.map +1 -1
- package/dist/Animations/Utils/SerializationUtils.js.map +1 -1
- package/dist/Audio/Adapters/AudioConfigToParams.js.map +1 -1
- package/dist/Audio/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Audio/Factories/AudioFactory.js.map +1 -1
- package/dist/Audio/Loader/AudioLoader.js.map +1 -1
- package/dist/Audio/Registries/AudioListenersRegistry.js.map +1 -1
- package/dist/Audio/Registries/AudioMetaInfoRegistry.js.map +1 -1
- package/dist/Audio/Registries/AudioRegistry.js.map +1 -1
- package/dist/Audio/Registries/AudioResourceAsyncRegistry.js.map +1 -1
- package/dist/Audio/Services/AudioService.js.map +1 -1
- package/dist/Audio/TransformDrive/Audio3dTransformDrive.js.map +1 -1
- package/dist/Audio/Utils/AudioUtils.js.map +1 -1
- package/dist/Audio/Utils/DebugAudioRenderer.js.map +1 -1
- package/dist/Audio/Wrappers/AbstractAudioWrapper.js.map +1 -1
- package/dist/Audio/Wrappers/Audio3dWrapper.js.map +1 -1
- package/dist/Audio/Wrappers/AudioWrapper.js.map +1 -1
- package/dist/Camera/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Camera/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Camera/Factories/CameraFactory.js.map +1 -1
- package/dist/Camera/Registries/AbstractCameraRegistry.js.map +1 -1
- package/dist/Camera/Services/CameraService.js.map +1 -1
- package/dist/Camera/TransformDrive/CameraTransformDrive.js.map +1 -1
- package/dist/Camera/Utils/CameraUtils.js.map +1 -1
- package/dist/Camera/Wrappers/Accessors.js.map +1 -1
- package/dist/Camera/Wrappers/OrthographicCameraWrapper.js.map +1 -1
- package/dist/Camera/Wrappers/PerspectiveCameraWrapper.js.map +1 -1
- package/dist/Collisions/Mixins/WithCollisions.js.map +1 -1
- package/dist/Collisions/Services/BvhService.js.map +1 -1
- package/dist/Collisions/Services/CollisionsService.js.map +1 -1
- package/dist/Color/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Color/Wrappers/ColorWrapper.js.map +1 -1
- package/dist/Context/AmbientContext/AmbientContext.js.map +1 -1
- package/dist/Controls/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Controls/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Controls/Factories/ControlsFactory.js.map +1 -1
- package/dist/Controls/Loop/ControlsLoopEffect.js.map +1 -1
- package/dist/Controls/Models/TFpsControlsWrapper.d.ts +1 -1
- package/dist/Controls/Models/TOrbitControlsWrapper.d.ts +1 -1
- package/dist/Controls/Registries/ControlsRegistry.js.map +1 -1
- package/dist/Controls/Services/ControlsService.js.map +1 -1
- package/dist/Controls/Utils/ControlsUtils.js.map +1 -1
- package/dist/Controls/Wrappers/FpsControls/FpsControlsAccessors.d.ts +1 -1
- package/dist/Controls/Wrappers/FpsControls/FpsControlsAccessors.js.map +1 -1
- package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapper.js.map +1 -1
- package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper.js.map +1 -1
- package/dist/Controls/Wrappers/OrbitControls/OrbitControlsAccessors.d.ts +1 -1
- package/dist/Controls/Wrappers/OrbitControls/OrbitControlsAccessors.js.map +1 -1
- package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapper.js.map +1 -1
- package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapperHelper.js.map +1 -1
- package/dist/Distance/Utils/DistanceUtils.js.map +1 -1
- package/dist/EnvMap/Adapters/ConfigToParams.js.map +1 -1
- package/dist/EnvMap/Adapters/EntityToConfig.js.map +1 -1
- package/dist/EnvMap/Factories/EnvMapFactory.js.map +1 -1
- package/dist/EnvMap/Loader/EnvMapLoader.js.map +1 -1
- package/dist/EnvMap/Registries/EnvMapMetaInfoRegistry.js.map +1 -1
- package/dist/EnvMap/Registries/EnvMapRegistry.js.map +1 -1
- package/dist/EnvMap/Registries/EnvMapTextureAsyncRegistry.js.map +1 -1
- package/dist/EnvMap/Services/EnvMapService.js.map +1 -1
- package/dist/EnvMap/Wrappers/EnvMapWrapper.js.map +1 -1
- package/dist/Fog/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Fog/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Fog/Factories/FogFactory.js.map +1 -1
- package/dist/Fog/Registries/FogRegistry.js.map +1 -1
- package/dist/Fog/Services/FogService.js.map +1 -1
- package/dist/Fog/Wrappers/FogWrapper.js.map +1 -1
- package/dist/Fsm/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Fsm/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Fsm/Entities/FsmSource.js.map +1 -1
- package/dist/Fsm/Factories/FsmInstanceFactory.js.map +1 -1
- package/dist/Fsm/Factories/FsmSourceFactory.js.map +1 -1
- package/dist/Fsm/Registries/FsmInstanceRegistry.js.map +1 -1
- package/dist/Fsm/Registries/FsmSourceRegistry.js.map +1 -1
- package/dist/Fsm/Services/FsmInstanceService.js.map +1 -1
- package/dist/Fsm/Services/FsmService.js.map +1 -1
- package/dist/Fsm/Services/FsmSourceService.js.map +1 -1
- package/dist/Fsm/Wrappers/FsmWrapper.js.map +1 -1
- package/dist/Global/Decorators/ContainerDecorator.js.map +1 -1
- package/dist/Global/Utils/ContainerUtils.js.map +1 -1
- package/dist/Intersections/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Intersections/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Intersections/Factories/IntersectionsWatcherFactory.js.map +1 -1
- package/dist/Intersections/Models/TIntersectionsDirectionWatcher.d.ts +1 -1
- package/dist/Intersections/Registries/IntersectionsWatcherRegistry.js.map +1 -1
- package/dist/Intersections/Services/IntersectionsWatcherService.js.map +1 -1
- package/dist/Intersections/Utils/IntersectionsWatcherUtils.js.map +1 -1
- package/dist/Intersections/Watchers/AbstractIntersectionsWatcher.js.map +1 -1
- package/dist/Intersections/Watchers/IntersectionsCameraWatcher.js.map +1 -1
- package/dist/Intersections/Watchers/IntersectionsDirectionWatcher.js.map +1 -1
- package/dist/Keyboard/Factories/KeyWatcherFactory.js.map +1 -1
- package/dist/Keyboard/Registries/KeyWatcherRegistry.js.map +1 -1
- package/dist/Keyboard/Services/KeyboardService.js.map +1 -1
- package/dist/Keyboard/Utils/KeysRxJsUtils.js.map +1 -1
- package/dist/Keyboard/Utils/KeysUtils.js.map +1 -1
- package/dist/Keyboard/Watchers/KeyComboWatcher.js.map +1 -1
- package/dist/Keyboard/Watchers/KeyPressWatcher.js.map +1 -1
- package/dist/Keyboard/Watchers/KeyReleaseWatcher.js.map +1 -1
- package/dist/Kinematic/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Kinematic/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Kinematic/Constants/KinematicConstants.js.map +1 -1
- package/dist/Kinematic/Utils/KinematicUtils.js.map +1 -1
- package/dist/Light/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Light/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Light/Factories/LightFactory.js.map +1 -1
- package/dist/Light/Registries/LightRegistry.js.map +1 -1
- package/dist/Light/Services/LightService.js.map +1 -1
- package/dist/Light/TransformDrive/LightTransformDrive.js.map +1 -1
- package/dist/Light/Utils/Utils.js.map +1 -1
- package/dist/Light/Wrappers/AbstractLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/AmbientLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/DirectionalLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/HemisphereLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/LightWrapperHelper.js.map +1 -1
- package/dist/Light/Wrappers/PointLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/RectAreaLightWrapper.js.map +1 -1
- package/dist/Light/Wrappers/SpotLightWrapper.js.map +1 -1
- package/dist/LoadingManager/Factories/LoadingManagerFactory.js.map +1 -1
- package/dist/LoadingManager/Registries/LoadingManagerRegistry.js.map +1 -1
- package/dist/LoadingManager/Services/LoadingManagerService.js.map +1 -1
- package/dist/LoadingManager/Wrappers/LoadingManagerWrapper.js.map +1 -1
- package/dist/Loop/Constants/LoopsDefaultSettings.js.map +1 -1
- package/dist/Loop/Entities/DeltaCalculator.js.map +1 -1
- package/dist/Loop/Entities/Loop.js.map +1 -1
- package/dist/Loop/Factories/LoopFactory.js.map +1 -1
- package/dist/Loop/Registries/LoopRegistry.js.map +1 -1
- package/dist/Loop/Services/LoopService.js.map +1 -1
- package/dist/Loop/Utils/LoopDebugUtils.js.map +1 -1
- package/dist/Loop/Utils/LoopUtils.js.map +1 -1
- package/dist/Material/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Material/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Material/Constants/Material/MaterialMap.js.map +1 -1
- package/dist/Material/Factories/MaterialFactory.js.map +1 -1
- package/dist/Material/Mixins/WithMaterial.d.ts +1 -1
- package/dist/Material/Mixins/WithMaterial.js.map +1 -1
- package/dist/Material/Models/TMaterialParamsOptions.d.ts +1 -4
- package/dist/Material/Registries/MaterialRegistry.js.map +1 -1
- package/dist/Material/Services/MaterialService.js.map +1 -1
- package/dist/Material/Utils/MaterialUtils.js.map +1 -1
- package/dist/Material/Wrappers/MaterialWrapper.js.map +1 -1
- package/dist/Math/Utils/AnglesUtils.js +1 -1
- package/dist/Math/Utils/AnglesUtils.js.map +1 -1
- package/dist/Math/Utils/DistanceUtils.js.map +1 -1
- package/dist/Measurements/Constants/Distance.js.map +1 -1
- package/dist/Measurements/Constants/Time.js.map +1 -1
- package/dist/Measurements/Utils/MeasurementsUtils.d.ts +1 -1
- package/dist/Measurements/Utils/MeasurementsUtils.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy2dMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy3dMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveBy4dMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByWMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByXMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByYMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Movable/WithMoveByZMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Position/WithPosition2dMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Position/WithPosition3dMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Position/WithPosition4dMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Position/WithPositionMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByWMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByXMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByXyzMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByYMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationByZMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/Scalable/WithScaleMixin.js.map +1 -1
- package/dist/Mixins/GameObjects/Mixins/WithObject3D.js.map +1 -1
- package/dist/Mixins/Generics/DestroyableMixin.js.map +1 -1
- package/dist/Mixins/Generics/ExtractSerializableRegistrableFields.js.map +1 -1
- package/dist/Mixins/Generics/WithActiveEntityServiceMixin.js.map +1 -1
- package/dist/Mixins/Generics/WithActiveMixin.js.map +1 -1
- package/dist/Mixins/Generics/WithNameAndNameAccessorsMixin.js.map +1 -1
- package/dist/Mixins/Services/WithCreateFromConfigService.js.map +1 -1
- package/dist/Mixins/Services/WithCreateService.js.map +1 -1
- package/dist/Mixins/Services/WithFactoryService.js.map +1 -1
- package/dist/Mixins/Services/WithRegistryService.js.map +1 -1
- package/dist/Mixins/Services/WithSceneGetterService.js.map +1 -1
- package/dist/Mixins/Services/WithSerializableEntities.js.map +1 -1
- package/dist/Mixins/Services/WithSerializeAllResources.js.map +1 -1
- package/dist/Models3d/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Models3d/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Models3d/Entities/Model3d.js.map +1 -1
- package/dist/Models3d/Factories/Models3dFactory.js.map +1 -1
- package/dist/Models3d/Loaders/Loader3dCore.js.map +1 -1
- package/dist/Models3d/Loaders/Models3dLoader.js.map +1 -1
- package/dist/Models3d/Mixins/WithModel3dEntities.js.map +1 -1
- package/dist/Models3d/Models/TModel3dParams.d.ts +1 -1
- package/dist/Models3d/Models/TModels3dLoader.d.ts +1 -1
- package/dist/Models3d/Models/TModels3dResourceAsyncRegistry.d.ts +1 -1
- package/dist/Models3d/Models/TModels3dService.d.ts +1 -1
- package/dist/Models3d/Registries/Model3dRawToModel3dConnectionRegistry.js.map +1 -1
- package/dist/Models3d/Registries/Models3dMetaInfoRegistry.js.map +1 -1
- package/dist/Models3d/Registries/Models3dRegistry.js.map +1 -1
- package/dist/Models3d/Registries/Models3dResourceAsyncRegistry.js.map +1 -1
- package/dist/Models3d/Services/Models3dService.js.map +1 -1
- package/dist/Models3d/Utils/SerializationUtils.js.map +1 -1
- package/dist/Models3d/Utils/UtilsModel3d.d.ts +1 -1
- package/dist/Models3d/Utils/UtilsModel3d.js.map +1 -1
- package/dist/Models3d/Utils/UtilsModels3dService.js.map +1 -1
- package/dist/Models3d/Utils/UtilsPrimitiveModels3d.d.ts +1 -1
- package/dist/Models3d/Utils/UtilsPrimitiveModels3d.js.map +1 -1
- package/dist/Mouse/Factories/MouseClickWatcherFactory.js.map +1 -1
- package/dist/Mouse/Factories/MousePositionWatcherFactory.js.map +1 -1
- package/dist/Mouse/Registries/MouseClickWatcherRegistry.js.map +1 -1
- package/dist/Mouse/Registries/MousePositionWatcherRegistry.js.map +1 -1
- package/dist/Mouse/Services/MouseService.js.map +1 -1
- package/dist/Mouse/Utils/MouseUtils.js.map +1 -1
- package/dist/Mouse/Watchers/MouseClickWatcher.js.map +1 -1
- package/dist/Mouse/Watchers/MousePositionWatcher.js.map +1 -1
- package/dist/Particles/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Particles/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Particles/Factories/ParticlesFactory.js.map +1 -1
- package/dist/Particles/Registries/ParticlesRegistry.js.map +1 -1
- package/dist/Particles/Services/ParticlesService.js.map +1 -1
- package/dist/Particles/TransformDrive/ParticlesTransformDrive.js.map +1 -1
- package/dist/Particles/Wrappers/ParticlesWrapper.js.map +1 -1
- package/dist/Physics/Adapters/EntityToConfig.d.ts +1 -1
- package/dist/Physics/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js +1 -1
- package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js.map +1 -1
- package/dist/Physics/Adapters/PhysicsWorldConfigToParams.js.map +1 -1
- package/dist/Physics/Constants/RigidBodyTypesMap.d.ts +1 -1
- package/dist/Physics/Constants/RigidBodyTypesMap.js +1 -1
- package/dist/Physics/Constants/RigidBodyTypesMap.js.map +1 -1
- package/dist/Physics/Entities/PhysicsBody.js.map +1 -1
- package/dist/Physics/Entities/PhysicsBodyUtils.d.ts +1 -1
- package/dist/Physics/Entities/PhysicsBodyUtils.js +1 -1
- package/dist/Physics/Entities/PhysicsBodyUtils.js.map +1 -1
- package/dist/Physics/Factories/PhysicsBodyFactory.js.map +1 -1
- package/dist/Physics/Mixins/WithPhysicsBodyEntities.js.map +1 -1
- package/dist/Physics/Models/TPhysicsWorldService.d.ts +1 -1
- package/dist/Physics/Registries/PhysicsBodyRegistry.js.map +1 -1
- package/dist/Physics/Renderers/PhysicsDebugRenderer.d.ts +1 -1
- package/dist/Physics/Renderers/PhysicsDebugRenderer.js.map +1 -1
- package/dist/Physics/Services/PhysicsBodyService.js.map +1 -1
- package/dist/Physics/Services/PhysicsWorldService.js +1 -1
- package/dist/Physics/Services/PhysicsWorldService.js.map +1 -1
- package/dist/Physics/Utils/ParamsUtils.js.map +1 -1
- package/dist/Physics/Utils/PhysicsMovementUtils.d.ts +2 -2
- package/dist/Physics/Utils/PhysicsMovementUtils.js +1 -1
- package/dist/Physics/Utils/PhysicsMovementUtils.js.map +1 -1
- package/dist/Renderer/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Renderer/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Renderer/Factories/RendererFactory.js.map +1 -1
- package/dist/Renderer/Loop/RendererLoopEffect.js.map +1 -1
- package/dist/Renderer/Mixins/WithThreeJsRendererParamsAccessors.js.map +1 -1
- package/dist/Renderer/Mixins/WithThreeJsRendererPropsAccessors.js.map +1 -1
- package/dist/Renderer/Registries/RendererRegistry.js.map +1 -1
- package/dist/Renderer/Services/RendererService.js.map +1 -1
- package/dist/Renderer/Wrappers/Accessors.js.map +1 -1
- package/dist/Renderer/Wrappers/RendererWrapper.js.map +1 -1
- package/dist/Scene/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Scene/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Scene/Factories/SceneFactory.js.map +1 -1
- package/dist/Scene/Registries/SceneRegistry.js.map +1 -1
- package/dist/Scene/Services/ScenesService.js.map +1 -1
- package/dist/Scene/Wrappers/SceneWrapper.js.map +1 -1
- package/dist/Space/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Space/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Space/Entities/Space.js.map +1 -1
- package/dist/Space/Entities/SpaceFromConfig.js.map +1 -1
- package/dist/Space/Factories/SpaceFactory.js.map +1 -1
- package/dist/Space/Registries/SpaceRegistry.js.map +1 -1
- package/dist/Space/Services/SpaceService.js.map +1 -1
- package/dist/Space/Utils/CanvasUtils.js.map +1 -1
- package/dist/Space/Utils/CreateEntitiesUtils.js.map +1 -1
- package/dist/Space/Utils/CreateLoopsUtils.js.map +1 -1
- package/dist/Space/Utils/LoadResourcesUtils.js.map +1 -1
- package/dist/Space/Utils/PrepareServicesUtils.js.map +1 -1
- package/dist/Space/Utils/SchemaValidationUtils.js.map +1 -1
- package/dist/Space/Validators/SchemasValidator.js.map +1 -1
- package/dist/Space/Validators/ValidateConfig.js.map +1 -1
- package/dist/Space/Validators/ValidateSpace.js.map +1 -1
- package/dist/Spatial/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Spatial/Adapters/ConfigToParamsSpatialData.js.map +1 -1
- package/dist/Spatial/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Spatial/Factories/SpatialGridFactory.js.map +1 -1
- package/dist/Spatial/Mixins/WithReactivePosition.js.map +1 -1
- package/dist/Spatial/Mixins/WithReactiveRotation.js.map +1 -1
- package/dist/Spatial/Mixins/WithSpatial.js.map +1 -1
- package/dist/Spatial/Mixins/WithUpdateSpatialCell.js.map +1 -1
- package/dist/Spatial/Registries/SpatialGridRegistry.js.map +1 -1
- package/dist/Spatial/Services/SpatialGridService.js.map +1 -1
- package/dist/Spatial/Services/SpatialHelper.d.ts +1 -1
- package/dist/Spatial/Services/SpatialHelper.js.map +1 -1
- package/dist/Spatial/Wrappers/SpatialCellWrapper.js.map +1 -1
- package/dist/Spatial/Wrappers/SpatialGridWrapper.js.map +1 -1
- package/dist/Text/Adapters/ConfigToParams.js.map +1 -1
- package/dist/Text/Adapters/EntityToConfig.js.map +1 -1
- package/dist/Text/Factories/TextFactory.js.map +1 -1
- package/dist/Text/Loop/TextLoopEffect.js.map +1 -1
- package/dist/Text/Models/TText2dRenderer.d.ts +1 -1
- package/dist/Text/Models/TText2dWrapper.d.ts +1 -1
- package/dist/Text/Models/TText3dRenderer.d.ts +1 -1
- package/dist/Text/Models/TText3dWrapper.d.ts +1 -1
- package/dist/Text/Models/TTextRenderer.d.ts +2 -2
- package/dist/Text/Models/TTextWrapper.d.ts +2 -2
- package/dist/Text/Registries/Text2dRegistry.js.map +1 -1
- package/dist/Text/Registries/Text2dRendererRegistry.js.map +1 -1
- package/dist/Text/Registries/Text3dRegistry.js.map +1 -1
- package/dist/Text/Registries/Text3dRendererRegistry.js.map +1 -1
- package/dist/Text/Registries/Text3dTextureRegistry.js.map +1 -1
- package/dist/Text/Renderers/Text2dRenderer.js.map +1 -1
- package/dist/Text/Renderers/Text3dRenderer.js.map +1 -1
- package/dist/Text/Renderers/TextRendererBuilder.d.ts +2 -2
- package/dist/Text/Renderers/TextRendererBuilder.js.map +1 -1
- package/dist/Text/Services/TextService.js.map +1 -1
- package/dist/Text/TransformDrive/TextTransformDrive.js.map +1 -1
- package/dist/Text/Utils/TextUtils.js.map +1 -1
- package/dist/Text/Wrappers/Accessors.js.map +1 -1
- package/dist/Text/Wrappers/Text2dWrapper.js.map +1 -1
- package/dist/Text/Wrappers/Text3dTextureWrapper.js.map +1 -1
- package/dist/Text/Wrappers/Text3dWrapper.js.map +1 -1
- package/dist/Text/Wrappers/TextTextureWrapper.js.map +1 -1
- package/dist/Text/Wrappers/TextWrapper.d.ts +2 -2
- package/dist/Text/Wrappers/TextWrapper.js.map +1 -1
- package/dist/Text/Wrappers/TextWrapperBuilder.js.map +1 -1
- package/dist/Text/Wrappers/TextWrapperHelper.js.map +1 -1
- package/dist/Texture/Loaders/TexturesLoader.js.map +1 -1
- package/dist/Texture/Registries/TextureMetaInfoRegistry.js.map +1 -1
- package/dist/Texture/Registries/TextureResourceAsyncRegistry.js.map +1 -1
- package/dist/Texture/Services/TextureService.js.map +1 -1
- package/dist/Texture/Utils/TextureServiceHelper.js.map +1 -1
- package/dist/ThreeLib/Utils/Object3dUtils.js.map +1 -1
- package/dist/TransformDrive/Adapters/EntityToConfig.js.map +1 -1
- package/dist/TransformDrive/Entities/Agents/AbstractTransformAgent.js.map +1 -1
- package/dist/TransformDrive/Entities/Agents/ConnectedTransformAgent.js.map +1 -1
- package/dist/TransformDrive/Entities/Agents/DefaultTransformAgent.js.map +1 -1
- package/dist/TransformDrive/Entities/Agents/KinematicTransformAgent.js.map +1 -1
- package/dist/TransformDrive/Entities/Agents/PhysicsTransformAgent.js.map +1 -1
- package/dist/TransformDrive/Entities/Connectors/DriveToTargetConnector.js.map +1 -1
- package/dist/TransformDrive/Entities/Drive/TransformDrive.js.map +1 -1
- package/dist/TransformDrive/Factories/TransformDriveFactory.js.map +1 -1
- package/dist/TransformDrive/Mixins/WithMutablePositionConnector.js.map +1 -1
- package/dist/TransformDrive/Mixins/WithMutableRotationConnector.js.map +1 -1
- package/dist/TransformDrive/Mixins/WithMutableScaleConnector.js.map +1 -1
- package/dist/TransformDrive/Mixins/WithProxyTransform.js.map +1 -1
- package/dist/TransformDrive/Registries/TransformDriveRegistry.js.map +1 -1
- package/dist/TransformDrive/Services/TransformDriveService.js.map +1 -1
- package/dist/TransformDrive/Utils/ActorDriveUtils.js.map +1 -1
- package/dist/TransformDrive/Utils/AgentUtils.js.map +1 -1
- package/dist/TransformDrive/Utils/KinematicAgentUtils.js.map +1 -1
- package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.d.ts +1 -1
- package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.js.map +1 -1
- package/dist/TransformDrive/Utils/TransformDriveUtils.js.map +1 -1
- package/dist/Utils/CheckUtils.js.map +1 -1
- package/dist/Utils/CoordsUtils.js.map +1 -1
- package/dist/Utils/DateTimeUtils.d.ts +1 -1
- package/dist/Utils/DestroyUtils.js.map +1 -1
- package/dist/Utils/DomUtils.js.map +1 -1
- package/dist/Utils/EntityUtils.js.map +1 -1
- package/dist/Utils/RegistryAsyncUtils.js.map +1 -1
- package/dist/Utils/RegistryUtils.js.map +1 -1
- package/dist/Utils/RxJsUtils.js.map +1 -1
- package/dist/Utils/ScreenUtils.js.map +1 -1
- package/dist/Utils/TagsUtils.js.map +1 -1
- package/dist/Utils/TransformUtils.js.map +1 -1
- package/dist/Utils/WrapperHelpers.d.ts +1 -1
- package/dist/Utils/WrapperHelpers.js.map +1 -1
- package/dist/assets/Loop.worker-D1bMWlsN.js.map +1 -1
- package/dist/packages/anarchy-shared/src/Utils/AsyncUtils.js.map +1 -1
- package/dist/packages/anarchy-shared/src/Utils/CssUtils.js.map +1 -1
- package/dist/packages/anarchy-shared/src/Utils/ObjectUtils.js.map +1 -1
- package/legal/NOTICE.md +1 -1
- package/legal/THIRD_PARTY_LICENSES.md +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
|
|
1
|
+
import { CSS2DObject } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS2DRenderer';
|
|
2
2
|
import { TTextWrapper } from './TTextWrapper';
|
|
3
3
|
export type TText2dWrapper = TTextWrapper<CSS2DObject>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { CSS3DRenderer } from 'three/examples/jsm/renderers/CSS3DRenderer';
|
|
1
|
+
import { CSS3DRenderer } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS3DRenderer';
|
|
2
2
|
import { TTextRenderer } from './TTextRenderer';
|
|
3
3
|
export type TText3dRenderer = TTextRenderer<CSS3DRenderer>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';
|
|
1
|
+
import { CSS3DObject } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS3DRenderer';
|
|
2
2
|
import { TTextWrapper } from './TTextWrapper';
|
|
3
3
|
export type TText3dWrapper = TTextWrapper<CSS3DObject>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TDestroyable, TWithId } from '../../Mixins';
|
|
2
2
|
import { TextRendererType } from '../Constants';
|
|
3
|
-
import { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer';
|
|
4
|
-
import { CSS3DRenderer } from 'three/examples/jsm/renderers/CSS3DRenderer';
|
|
3
|
+
import { CSS2DRenderer } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS2DRenderer';
|
|
4
|
+
import { CSS3DRenderer } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS3DRenderer';
|
|
5
5
|
export type TTextRenderer<T extends CSS2DRenderer | CSS3DRenderer> = Readonly<{
|
|
6
6
|
type: TextRendererType;
|
|
7
7
|
renderer: T;
|
|
@@ -2,8 +2,8 @@ import { TWrapper } from '../../Abstract';
|
|
|
2
2
|
import { TextType } from '../Constants';
|
|
3
3
|
import { TElementWithCssAccessors } from '.';
|
|
4
4
|
import { TAbstractTextWrapper } from './TAbstractTextWrapper';
|
|
5
|
-
import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
|
|
6
|
-
import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';
|
|
5
|
+
import { CSS2DObject } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS2DRenderer';
|
|
6
|
+
import { CSS3DObject } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS3DRenderer';
|
|
7
7
|
export type TTextWrapper<T extends CSS2DObject | CSS3DObject> = TWrapper<T> & Readonly<{
|
|
8
8
|
type: TextType;
|
|
9
9
|
}> & TElementWithCssAccessors & TAbstractTextWrapper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text2dRegistry.js","sources":["../../../src/Text/Registries/Text2dRegistry.ts"],"sourcesContent":["import { RegistryType } from '@
|
|
1
|
+
{"version":3,"file":"Text2dRegistry.js","sources":["../../../src/Text/Registries/Text2dRegistry.ts"],"sourcesContent":["import { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { AbstractEntityRegistry } from '@hellpig/anarchy-engine/Abstract/Registries';\nimport type { TText2dRegistry, TText2dWrapper } from '@hellpig/anarchy-engine/Text/Models';\n\nexport function Text2dRegistry(): TText2dRegistry {\n return AbstractEntityRegistry<TText2dWrapper>(RegistryType.Text2d);\n}\n"],"names":["Text2dRegistry","AbstractEntityRegistry","RegistryType","Text2d"],"mappings":"2JAIO,SAASA,iBACd,OAAOC,uBAAuCC,aAAaC,OAC7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text2dRendererRegistry.js","sources":["../../../src/Text/Registries/Text2dRendererRegistry.ts"],"sourcesContent":["import { RegistryType } from '@
|
|
1
|
+
{"version":3,"file":"Text2dRendererRegistry.js","sources":["../../../src/Text/Registries/Text2dRendererRegistry.ts"],"sourcesContent":["import { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { AbstractSimpleRegistry } from '@hellpig/anarchy-engine/Abstract/Registries';\nimport type { TText2dRenderer, TText2dRendererRegistry } from '@hellpig/anarchy-engine/Text/Models';\n\nexport function Text2dRendererRegistry(): TText2dRendererRegistry {\n return AbstractSimpleRegistry<TText2dRenderer>(RegistryType.TextRenderer);\n}\n"],"names":["Text2dRendererRegistry","AbstractSimpleRegistry","RegistryType","TextRenderer"],"mappings":"2JAIO,SAASA,yBACd,OAAOC,uBAAwCC,aAAaC,aAC9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text3dRegistry.js","sources":["../../../src/Text/Registries/Text3dRegistry.ts"],"sourcesContent":["import { RegistryType } from '@
|
|
1
|
+
{"version":3,"file":"Text3dRegistry.js","sources":["../../../src/Text/Registries/Text3dRegistry.ts"],"sourcesContent":["import { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { AbstractEntityRegistry } from '@hellpig/anarchy-engine/Abstract/Registries';\nimport type { TText3dRegistry, TText3dWrapper } from '@hellpig/anarchy-engine/Text/Models';\n\nexport function Text3dRegistry(): TText3dRegistry {\n return AbstractEntityRegistry<TText3dWrapper>(RegistryType.Text3d);\n}\n"],"names":["Text3dRegistry","AbstractEntityRegistry","RegistryType","Text3d"],"mappings":"2JAIO,SAASA,iBACd,OAAOC,uBAAuCC,aAAaC,OAC7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text3dRendererRegistry.js","sources":["../../../src/Text/Registries/Text3dRendererRegistry.ts"],"sourcesContent":["import { RegistryType } from '@
|
|
1
|
+
{"version":3,"file":"Text3dRendererRegistry.js","sources":["../../../src/Text/Registries/Text3dRendererRegistry.ts"],"sourcesContent":["import { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { AbstractSimpleRegistry } from '@hellpig/anarchy-engine/Abstract/Registries';\nimport type { TText3dRenderer, TText3dRendererRegistry } from '@hellpig/anarchy-engine/Text/Models';\n\nexport function Text3dRendererRegistry(): TText3dRendererRegistry {\n return AbstractSimpleRegistry<TText3dRenderer>(RegistryType.TextRenderer);\n}\n"],"names":["Text3dRendererRegistry","AbstractSimpleRegistry","RegistryType","TextRenderer"],"mappings":"2JAIO,SAASA,yBACd,OAAOC,uBAAwCC,aAAaC,aAC9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text3dTextureRegistry.js","sources":["../../../src/Text/Registries/Text3dTextureRegistry.ts"],"sourcesContent":["import { RegistryType } from '@
|
|
1
|
+
{"version":3,"file":"Text3dTextureRegistry.js","sources":["../../../src/Text/Registries/Text3dTextureRegistry.ts"],"sourcesContent":["import { RegistryType } from '@hellpig/anarchy-engine/Abstract/Constants';\nimport { AbstractEntityRegistry } from '@hellpig/anarchy-engine/Abstract/Registries';\nimport type { TText3dTextureRegistry, TText3dTextureWrapper } from '@hellpig/anarchy-engine/Text/Models';\n\nexport function Text3dTextureRegistry(): TText3dTextureRegistry {\n return AbstractEntityRegistry<TText3dTextureWrapper>(RegistryType.Text3dTexture);\n}\n"],"names":["Text3dTextureRegistry","AbstractEntityRegistry","RegistryType","Text3dTexture"],"mappings":"2JAIO,SAASA,wBACd,OAAOC,uBAA8CC,aAAaC,cACpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text2dRenderer.js","sources":["../../../src/Text/Renderers/Text2dRenderer.ts"],"sourcesContent":["import type { TContainerDecorator } from '@
|
|
1
|
+
{"version":3,"file":"Text2dRenderer.js","sources":["../../../src/Text/Renderers/Text2dRenderer.ts"],"sourcesContent":["import type { TContainerDecorator } from '@hellpig/anarchy-engine/Global';\nimport { TextCssClass, TextRendererType } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TText2dRenderer } from '@hellpig/anarchy-engine/Text/Models';\nimport { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer';\n\nimport { getTextRenderer } from './TextRendererBuilder';\n\nexport function initText2dRenderer(container: TContainerDecorator): TText2dRenderer {\n return getTextRenderer<CSS2DRenderer>(new CSS2DRenderer(), TextCssClass.RendererText2d, TextRendererType.Text2dRenderer, container);\n}\n"],"names":["initText2dRenderer","container","getTextRenderer","CSS2DRenderer","TextCssClass","RendererText2d","TextRendererType","Text2dRenderer"],"mappings":"kPAOO,SAASA,mBAAmBC,WACjC,OAAOC,gBAA+B,IAAIC,cAAiBC,aAAaC,eAAgBC,iBAAiBC,eAAgBN,UAC3H"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text3dRenderer.js","sources":["../../../src/Text/Renderers/Text3dRenderer.ts"],"sourcesContent":["import type { TContainerDecorator } from '@
|
|
1
|
+
{"version":3,"file":"Text3dRenderer.js","sources":["../../../src/Text/Renderers/Text3dRenderer.ts"],"sourcesContent":["import type { TContainerDecorator } from '@hellpig/anarchy-engine/Global';\nimport { TextCssClass, TextRendererType } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TText3dRenderer } from '@hellpig/anarchy-engine/Text/Models';\nimport { getTextRenderer } from '@hellpig/anarchy-engine/Text/Renderers/TextRendererBuilder';\nimport { CSS3DRenderer } from 'three/examples/jsm/renderers/CSS3DRenderer';\n\nexport function initText3dRenderer(container: TContainerDecorator): TText3dRenderer {\n return getTextRenderer(new CSS3DRenderer(), TextCssClass.RendererText3d, TextRendererType.Text3dRenderer, container);\n}\n"],"names":["initText3dRenderer","container","getTextRenderer","CSS3DRenderer","TextCssClass","RendererText3d","TextRendererType","Text3dRenderer"],"mappings":"kPAMO,SAASA,mBAAmBC,WACjC,OAAOC,gBAAgB,IAAIC,cAAiBC,aAAaC,eAAgBC,iBAAiBC,eAAgBN,UAC5G"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TContainerDecorator } from '../../Global';
|
|
2
2
|
import { TextCssClass, TextRendererType } from '../Constants';
|
|
3
3
|
import { TTextRenderer } from '../Models';
|
|
4
|
-
import { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer';
|
|
5
|
-
import { CSS3DRenderer } from 'three/examples/jsm/renderers/CSS3DRenderer';
|
|
4
|
+
import { CSS2DRenderer } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS2DRenderer';
|
|
5
|
+
import { CSS3DRenderer } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS3DRenderer';
|
|
6
6
|
export declare function getTextRenderer<T extends CSS2DRenderer | CSS3DRenderer>(renderer: T, cssClass: TextCssClass, type: TextRendererType, container: TContainerDecorator): TTextRenderer<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextRendererBuilder.js","sources":["../../../src/Text/Renderers/TextRendererBuilder.ts"],"sourcesContent":["import type { TContainerDecorator } from '@
|
|
1
|
+
{"version":3,"file":"TextRendererBuilder.js","sources":["../../../src/Text/Renderers/TextRendererBuilder.ts"],"sourcesContent":["import type { TContainerDecorator } from '@hellpig/anarchy-engine/Global';\nimport type { TDestroyable } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin } from '@hellpig/anarchy-engine/Mixins';\nimport type { TextCssClass, TextRendererType } from '@hellpig/anarchy-engine/Text/Constants';\nimport { RelatedEntityAttribute } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TTextRenderer } from '@hellpig/anarchy-engine/Text/Models';\nimport { isAppGlobalContainer } from '@hellpig/anarchy-engine/Utils';\nimport { nanoid } from 'nanoid';\nimport type { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs';\nimport type { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer';\nimport type { CSS3DRenderer } from 'three/examples/jsm/renderers/CSS3DRenderer';\n\nexport function getTextRenderer<T extends CSS2DRenderer | CSS3DRenderer>(renderer: T, cssClass: TextCssClass, type: TextRendererType, container: TContainerDecorator): TTextRenderer<T> {\n const id: string = 'text_renderer_' + nanoid();\n\n if (isAppGlobalContainer(container)) {\n renderer.setSize(container.innerWidth, container.innerHeight);\n } else {\n renderer.setSize(container.getWidth(), container.getHeight());\n }\n\n // eslint-disable-next-line functional/immutable-data\n renderer.domElement.style.position = 'absolute';\n // eslint-disable-next-line functional/immutable-data\n renderer.domElement.style.top = '0';\n // eslint-disable-next-line functional/immutable-data\n renderer.domElement.style.pointerEvents = 'none';\n // eslint-disable-next-line functional/immutable-data\n renderer.domElement.className = cssClass;\n renderer.domElement.setAttribute(RelatedEntityAttribute, id);\n if (isAppGlobalContainer(container)) {\n container.document.body.appendChild(renderer.domElement);\n } else {\n (container.getElement() as HTMLElement)?.appendChild(renderer.domElement);\n }\n\n const updateSize = ({ width, height }: DOMRect): void => renderer.setSize(width, height);\n\n //init with the values which came before the start of the subscription\n // updateSize( container.resize$);\n\n const screenSize$: Subscription = container.resize$\n .pipe(distinctUntilChanged((prev: DOMRect, curr: DOMRect): boolean => prev.width === curr.width && prev.height === curr.height))\n .subscribe(updateSize);\n\n const destroyable: TDestroyable = destroyableMixin();\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n\n screenSize$.unsubscribe();\n\n if (isAppGlobalContainer(container)) {\n container.document.body.removeChild(renderer.domElement);\n } else {\n (container.getElement() as HTMLElement)?.removeChild(renderer.domElement);\n }\n\n renderer.domElement.remove();\n // eslint-disable-next-line functional/immutable-data\n renderer.domElement = null as any;\n });\n\n return { id, type, renderer, updateSize, ...destroyable };\n}\n"],"names":["getTextRenderer","renderer","cssClass","type","container","id","nanoid","isAppGlobalContainer","setSize","innerWidth","innerHeight","getWidth","getHeight","domElement","style","position","top","pointerEvents","className","setAttribute","RelatedEntityAttribute","document","body","appendChild","getElement","updateSize","width","height","screenSize$","resize$","pipe","distinctUntilChanged","prev","curr","subscribe","destroyable","destroyableMixin","destroySub$","destroy$","unsubscribe","removeChild","remove"],"mappings":"mZAaO,SAASA,gBAAyDC,SAAaC,SAAwBC,KAAwBC,WACpI,MAAMC,GAAa,iBAAmBC,SAElCC,qBAAqBH,WACvBH,SAASO,QAAQJ,UAAUK,WAAYL,UAAUM,aAEjDT,SAASO,QAAQJ,UAAUO,WAAYP,UAAUQ,aAInDX,SAASY,WAAWC,MAAMC,SAAW,WAErCd,SAASY,WAAWC,MAAME,IAAM,IAEhCf,SAASY,WAAWC,MAAMG,cAAgB,OAE1ChB,SAASY,WAAWK,UAAYhB,SAChCD,SAASY,WAAWM,aAAaC,uBAAwBf,IACrDE,qBAAqBH,WACvBA,UAAUiB,SAASC,KAAKC,YAAYtB,SAASY,YAE5CT,UAAUoB,cAA8BD,YAAYtB,SAASY,YAGhE,MAAMY,WAAa,EAAGC,YAAOC,iBAA4B1B,SAASO,QAAQkB,MAAOC,QAK3EC,YAA4BxB,UAAUyB,QACzCC,KAAKC,qBAAqB,CAACC,KAAeC,OAA2BD,KAAKN,QAAUO,KAAKP,OAASM,KAAKL,SAAWM,KAAKN,SACvHO,UAAUT,YAEPU,YAA4BC,mBAC5BC,YAA4BF,YAAYG,SAASJ,UAAU,KAC/DG,YAAYE,cAEZX,YAAYW,cAERhC,qBAAqBH,WACvBA,UAAUiB,SAASC,KAAKkB,YAAYvC,SAASY,YAE5CT,UAAUoB,cAA8BgB,YAAYvC,SAASY,YAGhEZ,SAASY,WAAW4B,SAEpBxC,SAASY,WAAa,OAGxB,MAAO,CAAER,MAAIF,UAAMF,kBAAUwB,yBAAeU,YAC9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextService.js","sources":["../../../src/Text/Services/TextService.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@
|
|
1
|
+
{"version":3,"file":"TextService.js","sources":["../../../src/Text/Services/TextService.ts"],"sourcesContent":["import type { TAbstractService, TRegistryPack } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport { ambientContext } from '@hellpig/anarchy-engine/Context';\nimport type { TContainerDecorator } from '@hellpig/anarchy-engine/Global';\nimport type { TDisposable } from '@hellpig/anarchy-engine/Mixins';\nimport { withCreateFromConfigServiceMixin, withCreateServiceMixin, withFactoryService, withSceneGetterService } from '@hellpig/anarchy-engine/Mixins';\nimport type { TSceneWrapper } from '@hellpig/anarchy-engine/Scene';\nimport type { TSpaceLoops } from '@hellpig/anarchy-engine/Space';\nimport { textLoopEffect } from '@hellpig/anarchy-engine/Text/Loop';\nimport type {\n TText2dRegistry,\n TText2dRenderer,\n TText2dRendererRegistry,\n TText2dWrapper,\n TText3dRegistry,\n TText3dRenderer,\n TText3dRendererRegistry,\n TText3dTextureRegistry,\n TText3dTextureWrapper,\n TText3dWrapper,\n TTextAnyWrapper,\n TTextConfig,\n TTextFactory,\n TTextService,\n TTextServiceDependencies,\n TTextServiceWithCreate,\n TTextServiceWithCreateFromConfig,\n TTextServiceWithFactory,\n TTextTranslationService\n} from '@hellpig/anarchy-engine/Text/Models';\nimport { initText2dRenderer, initText3dRenderer } from '@hellpig/anarchy-engine/Text/Renderers';\nimport styles from '@hellpig/anarchy-engine/Text/Styles/font-elements.css?inline';\nimport { isText2dWrapper, isText3dTextureWrapper, isText3dWrapper } from '@hellpig/anarchy-engine/Text/Utils';\nimport { injectStyle, mergeAll } from '@hellpig/anarchy-engine/Utils';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject, merge } from 'rxjs';\n\nexport function TextService(\n factory: TTextFactory,\n text2dRegistry: TText2dRegistry,\n text3dRegistry: TText3dRegistry,\n text3dTextureRegistry: TText3dTextureRegistry,\n text2dRendererRegistry: TText2dRendererRegistry,\n text3dRendererRegistry: TText3dRendererRegistry,\n { textLoop }: TSpaceLoops,\n dependencies: TTextServiceDependencies,\n scene: TSceneWrapper\n): TTextService {\n merge(text2dRegistry.added$, text3dRegistry.added$, text3dTextureRegistry.added$).subscribe(({ value }: TRegistryPack<TTextAnyWrapper>): void => scene.addText(value));\n const factorySub$: Subscription = factory.entityCreated$.subscribe((text: TTextAnyWrapper): void => {\n if (isText2dWrapper(text)) text2dRegistry.add(text);\n else if (isText3dWrapper(text)) text3dRegistry.add(text);\n else if (isText3dTextureWrapper(text)) text3dTextureRegistry.add(text);\n else throw new Error(`TextService. EntityCreated: Unknown text type \"${(text as any).type ? (text as any).type : ''}\"`);\n });\n\n const disposable: ReadonlyArray<TDisposable> = [text2dRegistry, text3dRegistry, text3dTextureRegistry, text2dRendererRegistry, text3dRendererRegistry, factory, factorySub$];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n const withCreateService: TTextServiceWithCreate = withCreateServiceMixin(factory, dependencies);\n const withCreateFromConfigService: TTextServiceWithCreateFromConfig = withCreateFromConfigServiceMixin(withCreateService.create, factory.configToParams, dependencies);\n const withFactory: TTextServiceWithFactory = withFactoryService(factory);\n\n const activeText2dRenderer: BehaviorSubject<TText2dRenderer | undefined> = new BehaviorSubject<TText2dRenderer | undefined>(undefined);\n\n function createText2dRenderer(container: TContainerDecorator): TText2dRenderer {\n const renderer: TText2dRenderer = initText2dRenderer(container);\n text2dRendererRegistry.add(renderer.id, renderer);\n if (text2dRendererRegistry.getLength() === 1) activeText2dRenderer.next(renderer);\n return renderer;\n }\n\n const activeText3dRenderer: BehaviorSubject<TText3dRenderer | undefined> = new BehaviorSubject<TText3dRenderer | undefined>(undefined);\n\n function createText3dRenderer(container: TContainerDecorator): TText3dRenderer {\n const renderer: TText3dRenderer = initText3dRenderer(container);\n text3dRendererRegistry.add(renderer.id, renderer);\n if (text3dRendererRegistry.getLength() === 1) activeText3dRenderer.next(renderer);\n return renderer;\n }\n\n function setTextTranslationService(textTranslationService: TTextTranslationService): void {\n text2dRegistry.forEach((wrapper: TText2dWrapper): void => wrapper.setTranslationService(textTranslationService));\n text3dRegistry.forEach((wrapper: TText3dWrapper): void => wrapper.setTranslationService(textTranslationService));\n text3dTextureRegistry.forEach((wrapper: TText3dTextureWrapper): void => wrapper.setTranslationService(textTranslationService));\n }\n\n const loopSub$: Subscription = textLoopEffect(textLoop, text2dRegistry, text3dRegistry, activeText2dRenderer, activeText3dRenderer, scene, dependencies.cameraService);\n\n const destroySub$: Subscription = abstractService.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n loopSub$.unsubscribe();\n });\n\n return mergeAll(abstractService, withCreateService, withCreateFromConfigService, withFactory, withSceneGetterService(scene), {\n injectStyle: (): void => injectStyle(ambientContext, styles, 'anarchy-engine-text-styles'),\n createText2dRenderer,\n createText3dRenderer,\n setTextTranslationService,\n getRegistries: () => ({ text2dRegistry, text3dRegistry, text3dTextureRegistry }),\n getRendererRegistries: () => ({ text2dRendererRegistry, text3dRendererRegistry }),\n activeText2dRenderer: activeText2dRenderer.asObservable(),\n activeText3dRenderer: activeText3dRenderer.asObservable(),\n getActiveText2dRenderer: (): TText2dRenderer | undefined => activeText2dRenderer.value,\n getActiveText3dRenderer: (): TText3dRenderer | undefined => activeText3dRenderer.value,\n serializeAllEntities: (): ReadonlyArray<TTextConfig> => {\n return [\n ...(text2dRegistry.serialize() as ReadonlyArray<TTextConfig>),\n ...(text3dRegistry.serialize() as ReadonlyArray<TTextConfig>),\n ...(text3dTextureRegistry.serialize() as ReadonlyArray<TTextConfig>)\n ];\n },\n serializeEntity: (entity: TTextAnyWrapper): TTextConfig => entity.serialize()\n });\n}\n"],"names":["TextService","factory","text2dRegistry","text3dRegistry","text3dTextureRegistry","text2dRendererRegistry","text3dRendererRegistry","textLoop","dependencies","scene","merge","added$","subscribe","value","addText","factorySub$","entityCreated$","text","isText2dWrapper","add","isText3dWrapper","isText3dTextureWrapper","Error","type","abstractService","AbstractService","withCreateService","withCreateServiceMixin","withCreateFromConfigService","withCreateFromConfigServiceMixin","create","configToParams","withFactory","withFactoryService","activeText2dRenderer","BehaviorSubject","activeText3dRenderer","loopSub$","textLoopEffect","cameraService","destroySub$","destroy$","unsubscribe","mergeAll","withSceneGetterService","injectStyle","ambientContext","styles","createText2dRenderer","container","renderer","initText2dRenderer","id","getLength","next","createText3dRenderer","initText3dRenderer","setTextTranslationService","textTranslationService","forEach","wrapper","setTranslationService","getRegistries","getRendererRegistries","asObservable","getActiveText2dRenderer","getActiveText3dRenderer","serializeAllEntities","serialize","serializeEntity","entity"],"mappings":"qjCAqCO,SAASA,YACdC,QACAC,eACAC,eACAC,sBACAC,uBACAC,wBACAC,SAAEA,UACFC,aACAC,OAEAC,MAAMR,eAAeS,OAAQR,eAAeQ,OAAQP,sBAAsBO,QAAQC,UAAU,EAAGC,eAAkDJ,MAAMK,QAAQD,QAC/J,MAAME,YAA4Bd,QAAQe,eAAeJ,UAAWK,OAClE,GAAIC,gBAAgBD,MAAOf,eAAeiB,IAAIF,WAAI,GACzCG,gBAAgBH,MAAOd,eAAegB,IAAIF,UAAI,KAC9CI,uBAAuBJ,MAC3B,MAAM,IAAIK,MAAM,kDAAmDL,KAAaM,KAAQN,KAAaM,KAAO,OAD1EnB,sBAAsBe,IAAIF,KACqD,IAIlHO,gBAAoCC,gBADK,CAACvB,eAAgBC,eAAgBC,sBAAuBC,uBAAwBC,uBAAwBL,QAASc,cAG1JW,kBAA4CC,uBAAuB1B,QAASO,cAC5EoB,4BAAgEC,iCAAiCH,kBAAkBI,OAAQ7B,QAAQ8B,eAAgBvB,cACnJwB,YAAuCC,mBAAmBhC,SAE1DiC,qBAAqE,IAAIC,wBASzEC,qBAAqE,IAAID,wBAezEE,SAAyBC,eAAe/B,SAAUL,eAAgBC,eAAgB+B,qBAAsBE,qBAAsB3B,MAAOD,aAAa+B,eAElJC,YAA4BhB,gBAAgBiB,SAAS7B,UAAU,KACnE4B,YAAYE,cACZL,SAASK,gBAGX,OAAOC,SAASnB,gBAAiBE,kBAAmBE,4BAA6BI,YAAaY,uBAAuBnC,OAAQ,CAC3HoC,YAAa,IAAYA,YAAYC,eAAgBC,OAAQ,8BAC7DC,qBA/BF,SAA8BC,WAC5B,MAAMC,SAA4BC,mBAAmBF,WAGrD,OAFA5C,uBAAuBc,IAAI+B,SAASE,GAAIF,UACG,IAAvC7C,uBAAuBgD,aAAmBnB,qBAAqBoB,KAAKJ,UACjEA,QACT,EA2BEK,qBAvBF,SAA8BN,WAC5B,MAAMC,SAA4BM,mBAAmBP,WAGrD,OAFA3C,uBAAuBa,IAAI+B,SAASE,GAAIF,UACG,IAAvC5C,uBAAuB+C,aAAmBjB,qBAAqBkB,KAAKJ,UACjEA,QACT,EAmBEO,0BAjBF,SAAmCC,wBACjCxD,eAAeyD,QAASC,SAAkCA,QAAQC,sBAAsBH,yBACxFvD,eAAewD,QAASC,SAAkCA,QAAQC,sBAAsBH,yBACxFtD,sBAAsBuD,QAASC,SAAyCA,QAAQC,sBAAsBH,wBACxG,EAcEI,cAAe,KAAA,CAAS5D,8BAAgBC,8BAAgBC,8CACxD2D,sBAAuB,KAAA,CAAS1D,8CAAwBC,gDACxD4B,qBAAsBA,qBAAqB8B,eAC3C5B,qBAAsBA,qBAAqB4B,eAC3CC,wBAAyB,IAAmC/B,qBAAqBrB,MACjFqD,wBAAyB,IAAmC9B,qBAAqBvB,MACjFsD,qBAAsB,IACb,IACDjE,eAAekE,eACfjE,eAAeiE,eACfhE,sBAAsBgE,aAG9BC,gBAAkBC,QAAyCA,OAAOF,aAEtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextTransformDrive.js","sources":["../../../src/Text/TransformDrive/TextTransformDrive.ts"],"sourcesContent":["import type { TTextParams, TTextServiceDependencies, TTextTransformAgents, TTextTransformDrive } from '@
|
|
1
|
+
{"version":3,"file":"TextTransformDrive.js","sources":["../../../src/Text/TransformDrive/TextTransformDrive.ts"],"sourcesContent":["import type { TTextParams, TTextServiceDependencies, TTextTransformAgents, TTextTransformDrive } from '@hellpig/anarchy-engine/Text/Models';\nimport type { TTransformDriveParams } from '@hellpig/anarchy-engine/TransformDrive';\n\nexport function TextTransformDrive(params: TTextParams, { transformDriveService }: Pick<TTextServiceDependencies, 'transformDriveService'>, relatedEntityId: string): TTextTransformDrive {\n const transformAgents: TTextTransformAgents = transformDriveService.getTransformAgents(params, {\n hasKinematic: true,\n hasPhysics: true,\n hasConnected: true\n }) as TTextTransformAgents;\n const driveParams: TTransformDriveParams = { activeAgent: params.agent, relatedEntityId };\n\n return transformDriveService.create(driveParams, transformAgents) as TTextTransformDrive;\n}\n"],"names":["TextTransformDrive","params","transformDriveService","relatedEntityId","transformAgents","getTransformAgents","hasKinematic","hasPhysics","hasConnected","create","activeAgent","agent"],"mappings":"AAGO,SAASA,mBAAmBC,QAAqBC,sBAAEA,uBAAkFC,iBAC1I,MAAMC,gBAAwCF,sBAAsBG,mBAAmBJ,OAAQ,CAC7FK,cAAc,EACdC,YAAY,EACZC,cAAc,IAIhB,OAAON,sBAAsBO,OAFc,CAAEC,YAAaT,OAAOU,MAAOR,iCAEvBC,gBACnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextUtils.js","sources":["../../../src/Text/Utils/TextUtils.ts"],"sourcesContent":["import { TextType } from '@
|
|
1
|
+
{"version":3,"file":"TextUtils.js","sources":["../../../src/Text/Utils/TextUtils.ts"],"sourcesContent":["import { TextType } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TText2dWrapper, TText3dTextureWrapper, TText3dWrapper, TTextAnyWrapper } from '@hellpig/anarchy-engine/Text/Models';\n\nexport const isText2dWrapper = (text: TTextAnyWrapper): text is TText2dWrapper => text.type === TextType.Text2d;\nexport const isText3dWrapper = (text: TTextAnyWrapper): text is TText3dWrapper => text.type === TextType.Text3d;\nexport const isText3dTextureWrapper = (text: TTextAnyWrapper): text is TText3dTextureWrapper => text.type === TextType.Text3dTexture;\n"],"names":["isText2dWrapper","text","type","TextType","Text2d","isText3dWrapper","Text3d","isText3dTextureWrapper","Text3dTexture"],"mappings":"+CAGO,MAAMA,gBAAmBC,MAAkDA,KAAKC,OAASC,SAASC,OAC5FC,gBAAmBJ,MAAkDA,KAAKC,OAASC,SAASG,OAC5FC,uBAA0BN,MAAyDA,KAAKC,OAASC,SAASK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accessors.js","sources":["../../../src/Text/Wrappers/Accessors.ts"],"sourcesContent":["import type { TElementWithCssAccessors } from '@
|
|
1
|
+
{"version":3,"file":"Accessors.js","sources":["../../../src/Text/Wrappers/Accessors.ts"],"sourcesContent":["import type { TElementWithCssAccessors } from '@hellpig/anarchy-engine/Text/Models';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { camelToKebab } from '@hellpig/anarchy-shared/Utils';\n\nexport function getCssAccessors(element: TWriteable<HTMLElement>): TElementWithCssAccessors {\n // eslint-disable-next-line functional/immutable-data\n const setText = (text: string): void => void (element.textContent = text);\n const getText = (): string => element.textContent ?? '';\n // eslint-disable-next-line functional/immutable-data\n const setClassName = (name: string): void => void (element.className = name);\n const setCssProperty = (name: string, value: string | null, priority?: string): void => element.style.setProperty(camelToKebab(name), value, priority);\n // eslint-disable-next-line functional/immutable-data\n const appendClassName = (name: string): void => void (element.className = (element.className + ' ' + name).trim());\n const getCssProperty = (name: string): string => element.style.getPropertyValue(name);\n\n return {\n setText,\n getText,\n setClassName,\n appendClassName,\n setCssProperty,\n getCssProperty\n };\n}\n"],"names":["getCssAccessors","element","setText","text","textContent","getText","setClassName","name","className","appendClassName","trim","setCssProperty","value","priority","style","setProperty","camelToKebab","getCssProperty","getPropertyValue"],"mappings":"iFAIO,SAASA,gBAAgBC,SAW9B,MAAO,CACLC,QAVeC,OAA6BF,QAAQG,YAAcD,MAWlEE,QAVc,IAAcJ,QAAQG,aAAe,GAWnDE,aAToBC,OAA6BN,QAAQO,UAAYD,MAUrEE,gBAPuBF,OAA6BN,QAAQO,WAAaP,QAAQO,UAAY,IAAMD,MAAMG,QAQzGC,eAVqB,CAACJ,KAAcK,MAAsBC,WAA4BZ,QAAQa,MAAMC,YAAYC,aAAaT,MAAOK,MAAOC,UAW3II,eARsBV,MAAyBN,QAAQa,MAAMI,iBAAiBX,MAUlF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text2dWrapper.js","sources":["../../../src/Text/Wrappers/Text2dWrapper.ts"],"sourcesContent":["import { TextType } from '@
|
|
1
|
+
{"version":3,"file":"Text2dWrapper.js","sources":["../../../src/Text/Wrappers/Text2dWrapper.ts"],"sourcesContent":["import { TextType } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TText2dWrapper, TTextParams, TTextServiceDependencies } from '@hellpig/anarchy-engine/Text/Models';\nimport { createTextWrapper } from '@hellpig/anarchy-engine/Text/Wrappers/TextWrapper';\n\nexport const Text2dWrapper = (params: TTextParams, dependencies: TTextServiceDependencies): TText2dWrapper => createTextWrapper(params, TextType.Text2d, dependencies);\n"],"names":["Text2dWrapper","params","dependencies","createTextWrapper","TextType","Text2d"],"mappings":"+FAIO,MAAMA,cAAgB,CAACC,OAAqBC,eAA2DC,kBAAkBF,OAAQG,SAASC,OAAQH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text3dTextureWrapper.js","sources":["../../../src/Text/Wrappers/Text3dTextureWrapper.ts"],"sourcesContent":["import { TextType } from '@
|
|
1
|
+
{"version":3,"file":"Text3dTextureWrapper.js","sources":["../../../src/Text/Wrappers/Text3dTextureWrapper.ts"],"sourcesContent":["import { TextType } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TText3dTextureWrapper, TTextParams, TTextServiceDependencies } from '@hellpig/anarchy-engine/Text/Models';\nimport { createTextTextureWrapper } from '@hellpig/anarchy-engine/Text/Wrappers/TextTextureWrapper';\n\nexport const Text3dTextureWrapper = (params: TTextParams, dependencies: TTextServiceDependencies): TText3dTextureWrapper => createTextTextureWrapper(params, TextType.Text3dTexture, dependencies);\n"],"names":["Text3dTextureWrapper","params","dependencies","createTextTextureWrapper","TextType","Text3dTexture"],"mappings":"6GAIO,MAAMA,qBAAuB,CAACC,OAAqBC,eAAkEC,yBAAyBF,OAAQG,SAASC,cAAeH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text3dWrapper.js","sources":["../../../src/Text/Wrappers/Text3dWrapper.ts"],"sourcesContent":["import { TextType } from '@
|
|
1
|
+
{"version":3,"file":"Text3dWrapper.js","sources":["../../../src/Text/Wrappers/Text3dWrapper.ts"],"sourcesContent":["import { TextType } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TText3dWrapper, TTextParams, TTextServiceDependencies } from '@hellpig/anarchy-engine/Text/Models';\nimport { createTextWrapper } from '@hellpig/anarchy-engine/Text/Wrappers/TextWrapper';\n\nexport const Text3dWrapper = (params: TTextParams, dependencies: TTextServiceDependencies): TText3dWrapper => createTextWrapper(params, TextType.Text3d, dependencies);\n"],"names":["Text3dWrapper","params","dependencies","createTextWrapper","TextType","Text3d"],"mappings":"+FAIO,MAAMA,cAAgB,CAACC,OAAqBC,eAA2DC,kBAAkBF,OAAQG,SAASC,OAAQH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextTextureWrapper.js","sources":["../../../src/Text/Wrappers/TextTextureWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@Anarchy/Engine/Abstract';\nimport { AbstractWrapper } from '@Anarchy/Engine/Abstract';\nimport { withObject3d } from '@Anarchy/Engine/Mixins';\nimport { textEntityToConfig } from '@Anarchy/Engine/Text/Adapters';\nimport type { TextType } from '@Anarchy/Engine/Text/Constants';\nimport type { TTextConfig, TTextCssProps, TTextParams, TTextServiceDependencies, TTextTextureWrapper, TTextTransformDrive, TTextTranslationService } from '@Anarchy/Engine/Text/Models';\nimport { TextTransformDrive } from '@Anarchy/Engine/Text/TransformDrive';\nimport { getWrapperTypeByTextType } from '@Anarchy/Engine/Text/Wrappers/TextWrapperHelper';\nimport type { TDriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { DriveToTargetConnector } from '@Anarchy/Engine/TransformDrive';\nimport { applyObject3dParams } from '@Anarchy/Engine/Utils';\nimport { FallBackFonts } from '@Anarchy/Shared/Constants';\nimport { filterOutEmptyFields, isDefined, isNotDefined, stripUnits, toPx, toRem } from '@Anarchy/Shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs';\nimport { CanvasTexture, LinearFilter, Mesh, MeshBasicMaterial, PlaneGeometry, SRGBColorSpace } from 'three';\n\nexport function createTextTextureWrapper(params: TTextParams, type: TextType, dependencies: TTextServiceDependencies): TTextTextureWrapper<Mesh> {\n let canvas: HTMLCanvasElement = document.createElement('canvas');\n let context: CanvasRenderingContext2D = canvas.getContext('2d')!;\n let text: string = params.text ?? '';\n let textKey: string | undefined = params.textKey;\n let textTranslationService: TTextTranslationService | undefined;\n\n const texture: CanvasTexture = new CanvasTexture(canvas);\n // eslint-disable-next-line functional/immutable-data\n texture.minFilter = LinearFilter;\n // eslint-disable-next-line functional/immutable-data\n texture.magFilter = LinearFilter;\n // eslint-disable-next-line functional/immutable-data\n texture.generateMipmaps = false; // важно для NPOT\n // eslint-disable-next-line functional/immutable-data\n texture.colorSpace = SRGBColorSpace; // если твой UI в sRGB\n // eslint-disable-next-line functional/immutable-data\n texture.needsUpdate = true;\n\n const material: MeshBasicMaterial = new MeshBasicMaterial({\n map: texture,\n transparent: true\n });\n\n const geometry: PlaneGeometry = new PlaneGeometry();\n const entity: Mesh = new Mesh(geometry, material);\n\n let keyChangeSub$: Subscription | undefined;\n\n function subscribeKeyChange(textKey: string): Subscription {\n if (isNotDefined(textTranslationService)) throw new Error(`[TextWrapper]: Translation service is not defined. Wrapper Id: ${wrapper.id}, name: \"${wrapper.name}\".`);\n return textTranslationService.translate$(textKey).pipe(distinctUntilChanged()).subscribe(setTextInternal);\n }\n\n function setTranslationService(translationService: TTextTranslationService): void {\n textTranslationService = translationService;\n if (isNotDefined(textKey) || textKey === '') return;\n keyChangeSub$ = subscribeKeyChange(textKey);\n }\n\n async function setTextInternal(newText: string): Promise<void> {\n text = newText;\n const fontSize: string = toPx(params.cssProps?.fontSize);\n\n const fontSizeNoUnits: number = stripUnits(fontSize);\n const fontFamily: string | undefined = params.cssProps?.fontFamily || textTranslationService?.getCurrentLocale()?.font;\n const bg: string | undefined = params.cssProps?.backgroundColor;\n const fg: string = params.cssProps?.color ?? '#000000';\n\n const fontStr: string = `${fontSize} ${fontFamily ?? FallBackFonts}`;\n\n await document.fonts.ready;\n await document.fonts.load(fontStr, text);\n\n // eslint-disable-next-line functional/immutable-data\n context.font = fontStr;\n\n const textMetrics: TextMetrics = context.measureText(text);\n const ascent: number = Math.ceil(textMetrics.actualBoundingBoxAscent ?? fontSizeNoUnits * 0.8);\n const descent: number = Math.ceil(textMetrics.actualBoundingBoxDescent ?? fontSizeNoUnits * 0.25);\n const padding: number = Math.ceil(fontSizeNoUnits * 0.2);\n const textWidth: number = Math.ceil(textMetrics.width + padding * 2);\n const textHeight: number = Math.ceil(ascent + descent + padding * 2);\n\n // eslint-disable-next-line functional/immutable-data\n context.font = fontStr;\n\n const prevW: number = canvas.width;\n const prevH: number = canvas.height;\n\n // eslint-disable-next-line functional/immutable-data\n canvas.width = Math.max(1, textWidth);\n // eslint-disable-next-line functional/immutable-data\n canvas.height = Math.max(1, textHeight);\n\n // eslint-disable-next-line functional/immutable-data\n context.font = fontStr;\n\n // eslint-disable-next-line functional/immutable-data\n context.textAlign = 'center';\n // eslint-disable-next-line functional/immutable-data\n context.textBaseline = 'middle';\n\n if (bg && bg !== 'rgba(0, 0, 0, 0)' && bg !== 'transparent') {\n // eslint-disable-next-line functional/immutable-data\n context.fillStyle = bg;\n context.fillRect(0, 0, canvas.width, canvas.height);\n } else {\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n\n // eslint-disable-next-line functional/immutable-data\n context.fillStyle = fg;\n context.fillText(text, canvas.width / 2, canvas.height / 2);\n // eslint-disable-next-line functional/immutable-data\n texture.needsUpdate = true;\n\n if (canvas.width !== prevW || canvas.height !== prevH) {\n const oldMap = material.map as CanvasTexture | null;\n const newMap = new CanvasTexture(canvas);\n // eslint-disable-next-line functional/immutable-data\n newMap.minFilter = LinearFilter;\n // eslint-disable-next-line functional/immutable-data\n newMap.magFilter = LinearFilter;\n // eslint-disable-next-line functional/immutable-data\n newMap.generateMipmaps = false;\n // eslint-disable-next-line functional/immutable-data\n newMap.colorSpace = SRGBColorSpace;\n // eslint-disable-next-line functional/immutable-data\n newMap.needsUpdate = true;\n\n // eslint-disable-next-line functional/immutable-data\n material.map = newMap;\n // eslint-disable-next-line functional/immutable-data\n material.needsUpdate = true;\n oldMap?.dispose();\n\n const newGeometryWidth: number = canvas.width / 256;\n const newGeometryHeight: number = canvas.height / 256;\n\n entity.geometry.dispose();\n // eslint-disable-next-line functional/immutable-data\n entity.geometry = new PlaneGeometry(newGeometryWidth, newGeometryHeight);\n } else {\n // eslint-disable-next-line functional/immutable-data\n texture.needsUpdate = true;\n }\n\n if (canvas.width !== prevW || canvas.height !== prevH) {\n const newGeometryWidth: number = canvas.width / 256;\n const newGeometryHeight: number = canvas.height / 256;\n\n entity.geometry.dispose();\n // eslint-disable-next-line functional/immutable-data\n entity.geometry = new PlaneGeometry(newGeometryWidth, newGeometryHeight);\n }\n }\n\n async function setText(newText: string): Promise<void> {\n if (isDefined(keyChangeSub$)) keyChangeSub$?.unsubscribe();\n if (isDefined(textKey)) {\n textKey = undefined;\n console.warn(`[TextWrapper]: Text updated, translation disabled. Wrapper Id: ${wrapper.id}, name: \"${wrapper.name}\".`);\n }\n\n return setTextInternal(newText);\n }\n\n function setTextKey(newTextKey: string): void {\n if (isDefined(keyChangeSub$)) keyChangeSub$?.unsubscribe();\n textKey = newTextKey;\n keyChangeSub$ = subscribeKeyChange(textKey);\n }\n\n function getPropsAsCss(): Pick<TTextCssProps, 'fontSize' | 'fontFamily' | 'backgroundColor' | 'color'> {\n const font: string = context.font;\n const match = font.match(/(\\d+(?:\\.\\d+)?)(px|pt|em|rem|%)\\s+(.+)/) ?? [];\n let fontSize: string = match?.[1] + match?.[2];\n fontSize = toRem(fontSize);\n const fontFamily: string = match?.[3];\n\n let color: string | undefined = context.fillStyle.toString();\n if (color === '#000000') color = undefined;\n\n const [r, g, b, a] = context.getImageData(0, 0, 1, 1).data;\n let backgroundColor: string | undefined = `rgba(${r}, ${g}, ${b}, ${(a / 255).toFixed(3)})`;\n if (r === 0 && g === 0 && b === 0 && a === 0) backgroundColor = undefined;\n\n return filterOutEmptyFields({\n fontSize,\n fontFamily,\n color,\n backgroundColor\n });\n }\n\n const wrapper: TAbstractWrapper<Mesh> = AbstractWrapper(entity, getWrapperTypeByTextType(type), params);\n const drive: TTextTransformDrive = TextTransformDrive(params, dependencies, wrapper.id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, entity);\n\n // eslint-disable-next-line functional/immutable-data\n const result: TTextTextureWrapper<Mesh> = Object.assign(wrapper, {\n type,\n drive,\n driveToTargetConnector,\n setTranslationService,\n ...withObject3d(entity),\n getElement: () => canvas,\n setText,\n getText: (): string => text,\n setTextKey,\n getTextKey: (): string | undefined => textKey,\n getPropsAsCss,\n serialize: (): TTextConfig => textEntityToConfig(result)\n });\n\n if (params.text && isNotDefined(params.textKey)) setText(params.text);\n applyObject3dParams(result, params);\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n keyChangeSub$?.unsubscribe();\n\n texture.dispose();\n context?.clearRect(0, 0, canvas.width, canvas.height);\n if (canvas?.parentNode) canvas.parentNode?.removeChild(canvas);\n canvas = null as any;\n context = null as any;\n });\n\n return result;\n}\n"],"names":["createTextTextureWrapper","params","type","dependencies","textTranslationService","canvas","document","createElement","context","getContext","text","textKey","texture","CanvasTexture","minFilter","LinearFilter","magFilter","generateMipmaps","colorSpace","SRGBColorSpace","needsUpdate","material","MeshBasicMaterial","map","transparent","geometry","PlaneGeometry","entity","Mesh","keyChangeSub$","subscribeKeyChange","isNotDefined","Error","wrapper","id","name","translate$","pipe","distinctUntilChanged","subscribe","setTextInternal","async","newText","fontSize","toPx","cssProps","fontSizeNoUnits","stripUnits","fontFamily","getCurrentLocale","font","bg","backgroundColor","fg","color","fontStr","FallBackFonts","fonts","ready","load","textMetrics","measureText","ascent","Math","ceil","actualBoundingBoxAscent","descent","actualBoundingBoxDescent","padding","textWidth","width","textHeight","prevW","prevH","height","max","textAlign","textBaseline","fillStyle","fillRect","clearRect","fillText","oldMap","newMap","dispose","newGeometryWidth","newGeometryHeight","setText","isDefined","unsubscribe","console","warn","AbstractWrapper","getWrapperTypeByTextType","drive","TextTransformDrive","driveToTargetConnector","DriveToTargetConnector","result","Object","assign","setTranslationService","translationService","withObject3d","getElement","getText","setTextKey","newTextKey","getTextKey","getPropsAsCss","match","toRem","toString","r","g","b","a","getImageData","data","toFixed","filterOutEmptyFields","serialize","textEntityToConfig","applyObject3dParams","destroySub$","destroy$","parentNode","removeChild"],"mappings":"8iCAiBO,SAASA,yBAAyBC,OAAqBC,KAAgBC,cAC5E,IAIIC,uBAJAC,OAA4BC,SAASC,cAAc,UACnDC,QAAoCH,OAAOI,WAAW,MACtDC,KAAeT,OAAOS,MAAQ,GAC9BC,QAA8BV,OAAOU,QAGzC,MAAMC,QAAyB,IAAIC,cAAcR,QAEjDO,QAAQE,UAAYC,aAEpBH,QAAQI,UAAYD,aAEpBH,QAAQK,iBAAkB,EAE1BL,QAAQM,WAAaC,eAErBP,QAAQQ,aAAc,EAEtB,MAAMC,SAA8B,IAAIC,kBAAkB,CACxDC,IAAKX,QACLY,aAAa,IAGTC,SAA0B,IAAIC,cAC9BC,OAAe,IAAIC,KAAKH,SAAUJ,UAExC,IAAIQ,cAEJ,SAASC,mBAAmBnB,UAC1B,GAAIoB,aAAa3B,wBAAyB,MAAM,IAAI4B,MAAM,kEAAkEC,QAAQC,cAAcD,QAAQE,UAC1J,OAAO/B,uBAAuBgC,WAAWzB,UAAS0B,KAAKC,wBAAwBC,UAAUC,gBAC3F,CAQAC,eAAeD,gBAAgBE,SAC7BhC,KAAOgC,QACP,MAAMC,SAAmBC,KAAK3C,OAAO4C,UAAUF,UAEzCG,gBAA0BC,WAAWJ,UACrCK,WAAiC/C,OAAO4C,UAAUG,YAAc5C,wBAAwB6C,oBAAoBC,KAC5GC,GAAyBlD,OAAO4C,UAAUO,gBAC1CC,GAAapD,OAAO4C,UAAUS,OAAS,UAEvCC,QAAkB,GAAGZ,YAAYK,YAAcQ,sBAE/ClD,SAASmD,MAAMC,YACfpD,SAASmD,MAAME,KAAKJ,QAAS7C,MAGnCF,QAAQ0C,KAAOK,QAEf,MAAMK,YAA2BpD,QAAQqD,YAAYnD,MAC/CoD,OAAiBC,KAAKC,KAAKJ,YAAYK,yBAA6C,GAAlBnB,iBAClEoB,QAAkBH,KAAKC,KAAKJ,YAAYO,0BAA8C,IAAlBrB,iBACpEsB,QAAkBL,KAAKC,KAAuB,GAAlBlB,iBAC5BuB,UAAoBN,KAAKC,KAAKJ,YAAYU,MAAkB,EAAVF,SAClDG,WAAqBR,KAAKC,KAAKF,OAASI,QAAoB,EAAVE,SAGxD5D,QAAQ0C,KAAOK,QAEf,MAAMiB,MAAgBnE,OAAOiE,MACvBG,MAAgBpE,OAAOqE,OA6B7B,GA1BArE,OAAOiE,MAAQP,KAAKY,IAAI,EAAGN,WAE3BhE,OAAOqE,OAASX,KAAKY,IAAI,EAAGJ,YAG5B/D,QAAQ0C,KAAOK,QAGf/C,QAAQoE,UAAY,SAEpBpE,QAAQqE,aAAe,SAEnB1B,IAAa,qBAAPA,IAAoC,gBAAPA,IAErC3C,QAAQsE,UAAY3B,GACpB3C,QAAQuE,SAAS,EAAG,EAAG1E,OAAOiE,MAAOjE,OAAOqE,SAE5ClE,QAAQwE,UAAU,EAAG,EAAG3E,OAAOiE,MAAOjE,OAAOqE,QAI/ClE,QAAQsE,UAAYzB,GACpB7C,QAAQyE,SAASvE,KAAML,OAAOiE,MAAQ,EAAGjE,OAAOqE,OAAS,GAEzD9D,QAAQQ,aAAc,EAElBf,OAAOiE,QAAUE,OAASnE,OAAOqE,SAAWD,MAAO,CACrD,MAAMS,OAAS7D,SAASE,IAClB4D,OAAS,IAAItE,cAAcR,QAEjC8E,OAAOrE,UAAYC,aAEnBoE,OAAOnE,UAAYD,aAEnBoE,OAAOlE,iBAAkB,EAEzBkE,OAAOjE,WAAaC,eAEpBgE,OAAO/D,aAAc,EAGrBC,SAASE,IAAM4D,OAEf9D,SAASD,aAAc,EACvB8D,QAAQE,UAER,MAAMC,iBAA2BhF,OAAOiE,MAAQ,IAC1CgB,kBAA4BjF,OAAOqE,OAAS,IAElD/C,OAAOF,SAAS2D,UAEhBzD,OAAOF,SAAW,IAAIC,cAAc2D,iBAAkBC,kBACxD,MAEE1E,QAAQQ,aAAc,EAGxB,GAAIf,OAAOiE,QAAUE,OAASnE,OAAOqE,SAAWD,MAAO,CACrD,MAAMY,iBAA2BhF,OAAOiE,MAAQ,IAC1CgB,kBAA4BjF,OAAOqE,OAAS,IAElD/C,OAAOF,SAAS2D,UAEhBzD,OAAOF,SAAW,IAAIC,cAAc2D,iBAAkBC,kBACxD,CACF,CAEA7C,eAAe8C,QAAQ7C,SAOrB,OANI8C,UAAU3D,gBAAgBA,eAAe4D,cACzCD,UAAU7E,WACZA,aAAU,EACV+E,QAAQC,KAAK,kEAAkE1D,QAAQC,cAAcD,QAAQE,WAGxGK,gBAAgBE,QACzB,CA8BA,MAAMT,QAAkC2D,gBAAgBjE,OAAQkE,yBAAyB3F,MAAOD,QAC1F6F,MAA6BC,mBAAmB9F,OAAQE,aAAc8B,QAAQC,IAC9E8D,uBAAkDC,uBAAuBH,MAAOnE,QAGhFuE,OAAoCC,OAAOC,OAAOnE,QAAS,CAC/D/B,UACA4F,YACAE,8CACAK,sBAvJF,SAA+BC,oBAC7BlG,uBAAyBkG,mBACrBvE,aAAapB,UAAwB,KAAZA,UAC7BkB,cAAgBC,mBAAmBnB,SACrC,KAoJK4F,aAAa5E,QAChB6E,WAAY,IAAMnG,OAClBkF,gBACAkB,QAAS,IAAc/F,KACvBgG,WA1CF,SAAoBC,YACdnB,UAAU3D,gBAAgBA,eAAe4D,cAC7C9E,QAAUgG,WACV9E,cAAgBC,mBAAmBnB,QACrC,EAuCEiG,WAAY,IAA0BjG,QACtCkG,cAtCF,WACE,MACMC,MADetG,QAAQ0C,KACV4D,MAAM,2CAA6C,GACtE,IAAInE,SAAmBmE,QAAQ,GAAKA,QAAQ,GAC5CnE,SAAWoE,MAAMpE,UACjB,MAAMK,WAAqB8D,QAAQ,GAEnC,IAAIxD,MAA4B9C,QAAQsE,UAAUkC,WACpC,YAAV1D,QAAqBA,WAAQ,GAEjC,MAAO2D,EAAGC,EAAGC,EAAGC,GAAK5G,QAAQ6G,aAAa,EAAG,EAAG,EAAG,GAAGC,KACtD,IAAIlE,gBAAsC,QAAQ6D,MAAMC,MAAMC,OAAOC,EAAI,KAAKG,QAAQ,MAGtF,OAFU,IAANN,GAAiB,IAANC,GAAiB,IAANC,GAAiB,IAANC,IAAShE,qBAAkB,GAEzDoE,qBAAqB,CAC1B7E,kBACAK,sBACAM,YACAF,iCAEJ,EAmBEqE,UAAW,IAAmBC,mBAAmBxB,UAG/CjG,OAAOS,MAAQqB,aAAa9B,OAAOU,UAAU4E,QAAQtF,OAAOS,MAChEiH,oBAAoBzB,OAAQjG,QAE5B,MAAM2H,YAA4B1B,OAAO2B,SAAStF,UAAU,KAC1DqF,YAAYnC,cACZ5D,eAAe4D,cAEf7E,QAAQwE,UACR5E,SAASwE,UAAU,EAAG,EAAG3E,OAAOiE,MAAOjE,OAAOqE,QAC1CrE,QAAQyH,YAAYzH,OAAOyH,YAAYC,YAAY1H,QACvDA,OAAS,KACTG,QAAU,OAGZ,OAAO0F,MACT"}
|
|
1
|
+
{"version":3,"file":"TextTextureWrapper.js","sources":["../../../src/Text/Wrappers/TextTextureWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractWrapper } from '@hellpig/anarchy-engine/Abstract';\nimport { withObject3d } from '@hellpig/anarchy-engine/Mixins';\nimport { textEntityToConfig } from '@hellpig/anarchy-engine/Text/Adapters';\nimport type { TextType } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TTextConfig, TTextCssProps, TTextParams, TTextServiceDependencies, TTextTextureWrapper, TTextTransformDrive, TTextTranslationService } from '@hellpig/anarchy-engine/Text/Models';\nimport { TextTransformDrive } from '@hellpig/anarchy-engine/Text/TransformDrive';\nimport { getWrapperTypeByTextType } from '@hellpig/anarchy-engine/Text/Wrappers/TextWrapperHelper';\nimport type { TDriveToTargetConnector } from '@hellpig/anarchy-engine/TransformDrive';\nimport { DriveToTargetConnector } from '@hellpig/anarchy-engine/TransformDrive';\nimport { applyObject3dParams } from '@hellpig/anarchy-engine/Utils';\nimport { FallBackFonts } from '@hellpig/anarchy-shared/Constants';\nimport { filterOutEmptyFields, isDefined, isNotDefined, stripUnits, toPx, toRem } from '@hellpig/anarchy-shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs';\nimport { CanvasTexture, LinearFilter, Mesh, MeshBasicMaterial, PlaneGeometry, SRGBColorSpace } from 'three';\n\nexport function createTextTextureWrapper(params: TTextParams, type: TextType, dependencies: TTextServiceDependencies): TTextTextureWrapper<Mesh> {\n let canvas: HTMLCanvasElement = document.createElement('canvas');\n let context: CanvasRenderingContext2D = canvas.getContext('2d')!;\n let text: string = params.text ?? '';\n let textKey: string | undefined = params.textKey;\n let textTranslationService: TTextTranslationService | undefined;\n\n const texture: CanvasTexture = new CanvasTexture(canvas);\n // eslint-disable-next-line functional/immutable-data\n texture.minFilter = LinearFilter;\n // eslint-disable-next-line functional/immutable-data\n texture.magFilter = LinearFilter;\n // eslint-disable-next-line functional/immutable-data\n texture.generateMipmaps = false; // важно для NPOT\n // eslint-disable-next-line functional/immutable-data\n texture.colorSpace = SRGBColorSpace; // если твой UI в sRGB\n // eslint-disable-next-line functional/immutable-data\n texture.needsUpdate = true;\n\n const material: MeshBasicMaterial = new MeshBasicMaterial({\n map: texture,\n transparent: true\n });\n\n const geometry: PlaneGeometry = new PlaneGeometry();\n const entity: Mesh = new Mesh(geometry, material);\n\n let keyChangeSub$: Subscription | undefined;\n\n function subscribeKeyChange(textKey: string): Subscription {\n if (isNotDefined(textTranslationService)) throw new Error(`[TextWrapper]: Translation service is not defined. Wrapper Id: ${wrapper.id}, name: \"${wrapper.name}\".`);\n return textTranslationService.translate$(textKey).pipe(distinctUntilChanged()).subscribe(setTextInternal);\n }\n\n function setTranslationService(translationService: TTextTranslationService): void {\n textTranslationService = translationService;\n if (isNotDefined(textKey) || textKey === '') return;\n keyChangeSub$ = subscribeKeyChange(textKey);\n }\n\n async function setTextInternal(newText: string): Promise<void> {\n text = newText;\n const fontSize: string = toPx(params.cssProps?.fontSize);\n\n const fontSizeNoUnits: number = stripUnits(fontSize);\n const fontFamily: string | undefined = params.cssProps?.fontFamily || textTranslationService?.getCurrentLocale()?.font;\n const bg: string | undefined = params.cssProps?.backgroundColor;\n const fg: string = params.cssProps?.color ?? '#000000';\n\n const fontStr: string = `${fontSize} ${fontFamily ?? FallBackFonts}`;\n\n await document.fonts.ready;\n await document.fonts.load(fontStr, text);\n\n // eslint-disable-next-line functional/immutable-data\n context.font = fontStr;\n\n const textMetrics: TextMetrics = context.measureText(text);\n const ascent: number = Math.ceil(textMetrics.actualBoundingBoxAscent ?? fontSizeNoUnits * 0.8);\n const descent: number = Math.ceil(textMetrics.actualBoundingBoxDescent ?? fontSizeNoUnits * 0.25);\n const padding: number = Math.ceil(fontSizeNoUnits * 0.2);\n const textWidth: number = Math.ceil(textMetrics.width + padding * 2);\n const textHeight: number = Math.ceil(ascent + descent + padding * 2);\n\n // eslint-disable-next-line functional/immutable-data\n context.font = fontStr;\n\n const prevW: number = canvas.width;\n const prevH: number = canvas.height;\n\n // eslint-disable-next-line functional/immutable-data\n canvas.width = Math.max(1, textWidth);\n // eslint-disable-next-line functional/immutable-data\n canvas.height = Math.max(1, textHeight);\n\n // eslint-disable-next-line functional/immutable-data\n context.font = fontStr;\n\n // eslint-disable-next-line functional/immutable-data\n context.textAlign = 'center';\n // eslint-disable-next-line functional/immutable-data\n context.textBaseline = 'middle';\n\n if (bg && bg !== 'rgba(0, 0, 0, 0)' && bg !== 'transparent') {\n // eslint-disable-next-line functional/immutable-data\n context.fillStyle = bg;\n context.fillRect(0, 0, canvas.width, canvas.height);\n } else {\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n\n // eslint-disable-next-line functional/immutable-data\n context.fillStyle = fg;\n context.fillText(text, canvas.width / 2, canvas.height / 2);\n // eslint-disable-next-line functional/immutable-data\n texture.needsUpdate = true;\n\n if (canvas.width !== prevW || canvas.height !== prevH) {\n const oldMap = material.map as CanvasTexture | null;\n const newMap = new CanvasTexture(canvas);\n // eslint-disable-next-line functional/immutable-data\n newMap.minFilter = LinearFilter;\n // eslint-disable-next-line functional/immutable-data\n newMap.magFilter = LinearFilter;\n // eslint-disable-next-line functional/immutable-data\n newMap.generateMipmaps = false;\n // eslint-disable-next-line functional/immutable-data\n newMap.colorSpace = SRGBColorSpace;\n // eslint-disable-next-line functional/immutable-data\n newMap.needsUpdate = true;\n\n // eslint-disable-next-line functional/immutable-data\n material.map = newMap;\n // eslint-disable-next-line functional/immutable-data\n material.needsUpdate = true;\n oldMap?.dispose();\n\n const newGeometryWidth: number = canvas.width / 256;\n const newGeometryHeight: number = canvas.height / 256;\n\n entity.geometry.dispose();\n // eslint-disable-next-line functional/immutable-data\n entity.geometry = new PlaneGeometry(newGeometryWidth, newGeometryHeight);\n } else {\n // eslint-disable-next-line functional/immutable-data\n texture.needsUpdate = true;\n }\n\n if (canvas.width !== prevW || canvas.height !== prevH) {\n const newGeometryWidth: number = canvas.width / 256;\n const newGeometryHeight: number = canvas.height / 256;\n\n entity.geometry.dispose();\n // eslint-disable-next-line functional/immutable-data\n entity.geometry = new PlaneGeometry(newGeometryWidth, newGeometryHeight);\n }\n }\n\n async function setText(newText: string): Promise<void> {\n if (isDefined(keyChangeSub$)) keyChangeSub$?.unsubscribe();\n if (isDefined(textKey)) {\n textKey = undefined;\n console.warn(`[TextWrapper]: Text updated, translation disabled. Wrapper Id: ${wrapper.id}, name: \"${wrapper.name}\".`);\n }\n\n return setTextInternal(newText);\n }\n\n function setTextKey(newTextKey: string): void {\n if (isDefined(keyChangeSub$)) keyChangeSub$?.unsubscribe();\n textKey = newTextKey;\n keyChangeSub$ = subscribeKeyChange(textKey);\n }\n\n function getPropsAsCss(): Pick<TTextCssProps, 'fontSize' | 'fontFamily' | 'backgroundColor' | 'color'> {\n const font: string = context.font;\n const match = font.match(/(\\d+(?:\\.\\d+)?)(px|pt|em|rem|%)\\s+(.+)/) ?? [];\n let fontSize: string = match?.[1] + match?.[2];\n fontSize = toRem(fontSize);\n const fontFamily: string = match?.[3];\n\n let color: string | undefined = context.fillStyle.toString();\n if (color === '#000000') color = undefined;\n\n const [r, g, b, a] = context.getImageData(0, 0, 1, 1).data;\n let backgroundColor: string | undefined = `rgba(${r}, ${g}, ${b}, ${(a / 255).toFixed(3)})`;\n if (r === 0 && g === 0 && b === 0 && a === 0) backgroundColor = undefined;\n\n return filterOutEmptyFields({\n fontSize,\n fontFamily,\n color,\n backgroundColor\n });\n }\n\n const wrapper: TAbstractWrapper<Mesh> = AbstractWrapper(entity, getWrapperTypeByTextType(type), params);\n const drive: TTextTransformDrive = TextTransformDrive(params, dependencies, wrapper.id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, entity);\n\n // eslint-disable-next-line functional/immutable-data\n const result: TTextTextureWrapper<Mesh> = Object.assign(wrapper, {\n type,\n drive,\n driveToTargetConnector,\n setTranslationService,\n ...withObject3d(entity),\n getElement: () => canvas,\n setText,\n getText: (): string => text,\n setTextKey,\n getTextKey: (): string | undefined => textKey,\n getPropsAsCss,\n serialize: (): TTextConfig => textEntityToConfig(result)\n });\n\n if (params.text && isNotDefined(params.textKey)) setText(params.text);\n applyObject3dParams(result, params);\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n keyChangeSub$?.unsubscribe();\n\n texture.dispose();\n context?.clearRect(0, 0, canvas.width, canvas.height);\n if (canvas?.parentNode) canvas.parentNode?.removeChild(canvas);\n canvas = null as any;\n context = null as any;\n });\n\n return result;\n}\n"],"names":["createTextTextureWrapper","params","type","dependencies","textTranslationService","canvas","document","createElement","context","getContext","text","textKey","texture","CanvasTexture","minFilter","LinearFilter","magFilter","generateMipmaps","colorSpace","SRGBColorSpace","needsUpdate","material","MeshBasicMaterial","map","transparent","geometry","PlaneGeometry","entity","Mesh","keyChangeSub$","subscribeKeyChange","isNotDefined","Error","wrapper","id","name","translate$","pipe","distinctUntilChanged","subscribe","setTextInternal","async","newText","fontSize","toPx","cssProps","fontSizeNoUnits","stripUnits","fontFamily","getCurrentLocale","font","bg","backgroundColor","fg","color","fontStr","FallBackFonts","fonts","ready","load","textMetrics","measureText","ascent","Math","ceil","actualBoundingBoxAscent","descent","actualBoundingBoxDescent","padding","textWidth","width","textHeight","prevW","prevH","height","max","textAlign","textBaseline","fillStyle","fillRect","clearRect","fillText","oldMap","newMap","dispose","newGeometryWidth","newGeometryHeight","setText","isDefined","unsubscribe","console","warn","AbstractWrapper","getWrapperTypeByTextType","drive","TextTransformDrive","driveToTargetConnector","DriveToTargetConnector","result","Object","assign","setTranslationService","translationService","withObject3d","getElement","getText","setTextKey","newTextKey","getTextKey","getPropsAsCss","match","toRem","toString","r","g","b","a","getImageData","data","toFixed","filterOutEmptyFields","serialize","textEntityToConfig","applyObject3dParams","destroySub$","destroy$","parentNode","removeChild"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TextType } from '../Constants';
|
|
2
2
|
import { TTextParams, TTextServiceDependencies, TTextWrapper } from '../Models';
|
|
3
|
-
import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
|
|
4
|
-
import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';
|
|
3
|
+
import { CSS2DObject } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS2DRenderer';
|
|
4
|
+
import { CSS3DObject } from '../../../../../node_modules/@types/three/examples/jsm/renderers/CSS3DRenderer';
|
|
5
5
|
export declare function createTextWrapper<T extends CSS2DObject | CSS3DObject>(params: TTextParams, type: TextType, dependencies: TTextServiceDependencies): TTextWrapper<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextWrapper.js","sources":["../../../src/Text/Wrappers/TextWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@
|
|
1
|
+
{"version":3,"file":"TextWrapper.js","sources":["../../../src/Text/Wrappers/TextWrapper.ts"],"sourcesContent":["import type { TAbstractWrapper } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractWrapper } from '@hellpig/anarchy-engine/Abstract';\nimport { withObject3d } from '@hellpig/anarchy-engine/Mixins';\nimport { textEntityToConfig } from '@hellpig/anarchy-engine/Text/Adapters';\nimport { RelatedEntityAttribute, TextCssClass, TextType } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TTextConfig, TTextParams, TTextServiceDependencies, TTextTransformDrive, TTextTranslationService, TTextWrapper } from '@hellpig/anarchy-engine/Text/Models';\nimport { TextTransformDrive } from '@hellpig/anarchy-engine/Text/TransformDrive';\nimport { getCssAccessors } from '@hellpig/anarchy-engine/Text/Wrappers/Accessors';\nimport { applyHtmlElementParams, getWrapperTypeByTextType } from '@hellpig/anarchy-engine/Text/Wrappers/TextWrapperHelper';\nimport type { TDriveToTargetConnector } from '@hellpig/anarchy-engine/TransformDrive';\nimport { DriveToTargetConnector } from '@hellpig/anarchy-engine/TransformDrive';\nimport { applyCenter, applyObject3dParams } from '@hellpig/anarchy-engine/Utils';\nimport { isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs';\nimport { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';\nimport { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';\n\nexport function createTextWrapper<T extends CSS2DObject | CSS3DObject>(params: TTextParams, type: TextType, dependencies: TTextServiceDependencies): TTextWrapper<T> {\n let element: HTMLElement = document.createElement(params.elementType || 'div');\n // eslint-disable-next-line functional/immutable-data\n element.textContent = params.text ?? '';\n let textKey: string | undefined = params.textKey;\n const entity: T = createText(type, element) as T;\n let textTranslationService: TTextTranslationService | undefined;\n\n const wrapper: TAbstractWrapper<T> = AbstractWrapper(entity, getWrapperTypeByTextType(type), params);\n const drive: TTextTransformDrive = TextTransformDrive(params, dependencies, wrapper.id);\n const driveToTargetConnector: TDriveToTargetConnector = DriveToTargetConnector(drive, entity);\n\n let keyChangeSub$: Subscription | undefined;\n\n function subscribeKeyChange(textKey: string): Subscription {\n if (isNotDefined(textTranslationService)) throw new Error(`[TextWrapper]: Translation service is not defined. Wrapper Id: ${wrapper.id}, name: \"${wrapper.name}\".`);\n return (\n textTranslationService\n .translate$(textKey)\n .pipe(distinctUntilChanged())\n // eslint-disable-next-line functional/immutable-data\n .subscribe((value: string): void => void (element.textContent = value))\n );\n }\n\n function setTranslationService(translationService: TTextTranslationService): void {\n textTranslationService = translationService;\n if (isNotDefined(textKey) || textKey === '') return;\n keyChangeSub$ = subscribeKeyChange(textKey);\n }\n\n function setText(text: string): void {\n if (isDefined(keyChangeSub$)) keyChangeSub$?.unsubscribe();\n if (isDefined(textKey)) {\n textKey = undefined;\n console.warn(`[TextWrapper]: Text updated, translation disabled. Wrapper Id: ${wrapper.id}, name: \"${wrapper.name}\".`);\n }\n\n // eslint-disable-next-line functional/immutable-data\n element.textContent = text;\n }\n\n function setTextKey(newTextKey: string): void {\n if (isDefined(keyChangeSub$)) keyChangeSub$?.unsubscribe();\n textKey = newTextKey;\n keyChangeSub$ = subscribeKeyChange(textKey);\n }\n\n // eslint-disable-next-line functional/immutable-data\n const result: TTextWrapper<T> = Object.assign(wrapper, {\n type,\n drive,\n driveToTargetConnector,\n ...getCssAccessors(element),\n setText,\n setTextKey,\n getTextKey: (): string | undefined => textKey,\n ...withObject3d(entity),\n getElement: (): HTMLElement => element,\n setTranslationService,\n serialize: (): TTextConfig => textEntityToConfig(result)\n });\n\n element.setAttribute(RelatedEntityAttribute, result.id.toString());\n\n const destroySub$: Subscription = result.destroy$.subscribe((): void => {\n destroySub$.unsubscribe();\n keyChangeSub$?.unsubscribe();\n\n // eslint-disable-next-line functional/immutable-data\n element.className = '';\n element.removeAttribute('style');\n if (element?.parentElement) element?.parentElement.removeChild(element);\n element?.remove();\n element = null as any;\n\n if (entity.element?.parentNode) entity.element.remove();\n // eslint-disable-next-line functional/immutable-data\n entity.element = null as any;\n });\n\n document.body.appendChild(element);\n\n if (params.text && isNotDefined(params.textKey)) result.setText(params.text);\n if (isDefined(params.cssProps)) applyHtmlElementParams(result, params.cssProps, type === TextType.Text2d ? TextCssClass.Text2d : TextCssClass.Text3d);\n applyObject3dParams(result, params);\n if (type === TextType.Text2d) applyCenter(entity as CSS2DObject, params.center);\n\n return result;\n}\n\nfunction createText(type: TextType, element: HTMLElement): CSS2DObject | CSS3DObject | never {\n switch (type) {\n case TextType.Text2d:\n return new CSS2DObject(element);\n case TextType.Text3d:\n return new CSS3DObject(element);\n default:\n throw new Error(`TextWrapper. createText: Unknown text type \"${type}\"`);\n }\n}\n"],"names":["createTextWrapper","params","type","dependencies","element","document","createElement","elementType","textContent","text","textKey","entity","TextType","Text2d","CSS2DObject","Text3d","CSS3DObject","Error","createText","textTranslationService","wrapper","AbstractWrapper","getWrapperTypeByTextType","drive","TextTransformDrive","id","driveToTargetConnector","DriveToTargetConnector","keyChangeSub$","subscribeKeyChange","isNotDefined","name","translate$","pipe","distinctUntilChanged","subscribe","value","result","Object","assign","getCssAccessors","setText","isDefined","unsubscribe","console","warn","setTextKey","newTextKey","getTextKey","withObject3d","getElement","setTranslationService","translationService","serialize","textEntityToConfig","setAttribute","RelatedEntityAttribute","toString","destroySub$","destroy$","className","removeAttribute","parentElement","removeChild","remove","parentNode","body","appendChild","cssProps","TextCssClass","applyObject3dParams","applyCenter","center"],"mappings":"4kCAkBO,SAASA,kBAAuDC,OAAqBC,KAAgBC,cAC1G,IAAIC,QAAuBC,SAASC,cAAcL,OAAOM,aAAe,OAExEH,QAAQI,YAAcP,OAAOQ,MAAQ,GACrC,IAAIC,QAA8BT,OAAOS,QACzC,MAAMC,OAsFR,SAAoBT,KAAgBE,SAClC,OAAQF,MACN,KAAKU,SAASC,OACZ,OAAO,IAAIC,YAAYV,SACzB,KAAKQ,SAASG,OACZ,OAAO,IAAIC,YAAYZ,SACzB,QACE,MAAM,IAAIa,MAAM,+CAA+Cf,SAErE,CA/FoBgB,CAAWhB,KAAME,SACnC,IAAIe,uBAEJ,MAAMC,QAA+BC,gBAAgBV,OAAQW,yBAAyBpB,MAAOD,QACvFsB,MAA6BC,mBAAmBvB,OAAQE,aAAciB,QAAQK,IAC9EC,uBAAkDC,uBAAuBJ,MAAOZ,QAEtF,IAAIiB,cAEJ,SAASC,mBAAmBnB,UAC1B,GAAIoB,aAAaX,wBAAyB,MAAM,IAAIF,MAAM,kEAAkEG,QAAQK,cAAcL,QAAQW,UAC1J,OACEZ,uBACGa,WAAWtB,UACXuB,KAAKC,wBAELC,UAAWC,QAA8BhC,QAAQI,YAAc4B,OAEtE,CA0BA,MAAMC,OAA0BC,OAAOC,OAAOnB,QAAS,CACrDlB,UACAqB,YACAG,iDACGc,gBAAgBpC,SACnBqC,QAvBF,SAAiBhC,MACXiC,UAAUd,gBAAgBA,eAAee,cACzCD,UAAUhC,WACZA,aAAU,EACVkC,QAAQC,KAAK,kEAAkEzB,QAAQK,cAAcL,QAAQW,WAI/G3B,QAAQI,YAAcC,IACxB,EAeEqC,WAbF,SAAoBC,YACdL,UAAUd,gBAAgBA,eAAee,cAC7CjC,QAAUqC,WACVnB,cAAgBC,mBAAmBnB,QACrC,EAUEsC,WAAY,IAA0BtC,WACnCuC,aAAatC,QAChBuC,WAAY,IAAmB9C,QAC/B+C,sBAlCF,SAA+BC,oBAC7BjC,uBAAyBiC,mBACrBtB,aAAapB,UAAwB,KAAZA,UAC7BkB,cAAgBC,mBAAmBnB,SACrC,EA+BE2C,UAAW,IAAmBC,mBAAmBjB,UAGnDjC,QAAQmD,aAAaC,uBAAwBnB,OAAOZ,GAAGgC,YAEvD,MAAMC,YAA4BrB,OAAOsB,SAASxB,UAAU,KAC1DuB,YAAYf,cACZf,eAAee,cAGfvC,QAAQwD,UAAY,GACpBxD,QAAQyD,gBAAgB,SACpBzD,SAAS0D,eAAe1D,SAAS0D,cAAcC,YAAY3D,SAC/DA,SAAS4D,SACT5D,QAAU,KAENO,OAAOP,SAAS6D,YAAYtD,OAAOP,QAAQ4D,SAE/CrD,OAAOP,QAAU,OAUnB,OAPAC,SAAS6D,KAAKC,YAAY/D,SAEtBH,OAAOQ,MAAQqB,aAAa7B,OAAOS,UAAU2B,OAAOI,QAAQxC,OAAOQ,MACnEiC,UAAUzC,OAAOmE,kCAAkC/B,OAAQpC,OAAOmE,SAAUlE,OAASU,SAASC,OAASwD,aAAaxD,OAASwD,aAAatD,QAC9IuD,oBAAoBjC,OAAQpC,QACxBC,OAASU,SAASC,QAAQ0D,YAAY5D,OAAuBV,OAAOuE,QAEjEnC,MACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextWrapperBuilder.js","sources":["../../../src/Text/Wrappers/TextWrapperBuilder.ts"],"sourcesContent":["import { TextType } from '@
|
|
1
|
+
{"version":3,"file":"TextWrapperBuilder.js","sources":["../../../src/Text/Wrappers/TextWrapperBuilder.ts"],"sourcesContent":["import { TextType } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TTextAnyWrapper, TTextParams, TTextServiceDependencies } from '@hellpig/anarchy-engine/Text/Models';\n\nimport { Text2dWrapper } from './Text2dWrapper';\nimport { Text3dTextureWrapper } from './Text3dTextureWrapper';\nimport { Text3dWrapper } from './Text3dWrapper';\n\nexport function buildTextWrapper(params: TTextParams, dependencies: TTextServiceDependencies): TTextAnyWrapper | never {\n if (params.type === TextType.Text3d) return Text3dWrapper(params, dependencies);\n if (params.type === TextType.Text3dTexture) return Text3dTextureWrapper(params, dependencies);\n if (params.type === TextType.Text2d) return Text2dWrapper(params, dependencies);\n throw new Error('Unsupported text type');\n}\n"],"names":["buildTextWrapper","params","dependencies","type","TextType","Text3d","Text3dWrapper","Text3dTexture","Text3dTextureWrapper","Text2d","Text2dWrapper","Error"],"mappings":"uMAOO,SAASA,iBAAiBC,OAAqBC,cACpD,GAAID,OAAOE,OAASC,SAASC,OAAQ,OAAOC,cAAcL,OAAQC,cAClE,GAAID,OAAOE,OAASC,SAASG,cAAe,OAAOC,qBAAqBP,OAAQC,cAChF,GAAID,OAAOE,OAASC,SAASK,OAAQ,OAAOC,cAAcT,OAAQC,cAClE,MAAM,IAAIS,MAAM,wBAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextWrapperHelper.js","sources":["../../../src/Text/Wrappers/TextWrapperHelper.ts"],"sourcesContent":["import { WrapperType } from '@
|
|
1
|
+
{"version":3,"file":"TextWrapperHelper.js","sources":["../../../src/Text/Wrappers/TextWrapperHelper.ts"],"sourcesContent":["import { WrapperType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TextCssClass } from '@hellpig/anarchy-engine/Text/Constants';\nimport { TextType } from '@hellpig/anarchy-engine/Text/Constants';\nimport type { TElementWithCssAccessors, TTextCssProps } from '@hellpig/anarchy-engine/Text/Models';\nimport type { TValueOf } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined, isString } from '@hellpig/anarchy-shared/Utils';\n\nexport function applyHtmlElementParams(wrapper: TElementWithCssAccessors, cssProps: TTextCssProps, className: TextCssClass): void {\n Object.keys(cssProps).forEach((paramName: string): void => {\n const value: TValueOf<TTextCssProps> = cssProps[paramName as keyof TTextCssProps];\n if (isDefined(value) && isString(value)) wrapper.setCssProperty(paramName, value);\n });\n wrapper.appendClassName(className);\n}\n\nexport function getWrapperTypeByTextType(type: TextType): WrapperType {\n if (type === TextType.Text2d) return WrapperType.Text2d;\n if (type === TextType.Text3d) return WrapperType.Text3d;\n if (type === TextType.Text3dTexture) return WrapperType.Text3dTexture;\n throw new Error(`Cannot get wrapper type: Unknown text type \"${String(type)}\"`);\n}\n"],"names":["applyHtmlElementParams","wrapper","cssProps","className","Object","keys","forEach","paramName","value","isDefined","isString","setCssProperty","appendClassName","getWrapperTypeByTextType","type","TextType","Text2d","WrapperType","Text3d","Text3dTexture","Error","String"],"mappings":"sMAOO,SAASA,uBAAuBC,QAAmCC,SAAyBC,WACjGC,OAAOC,KAAKH,UAAUI,QAASC,YAC7B,MAAMC,MAAiCN,SAASK,WAC5CE,UAAUD,QAAUE,SAASF,QAAQP,QAAQU,eAAeJ,UAAWC,SAE7EP,QAAQW,gBAAgBT,UAC1B,CAEO,SAASU,yBAAyBC,MACvC,GAAIA,OAASC,SAASC,OAAQ,OAAOC,YAAYD,OACjD,GAAIF,OAASC,SAASG,OAAQ,OAAOD,YAAYC,OACjD,GAAIJ,OAASC,SAASI,cAAe,OAAOF,YAAYE,cACxD,MAAM,IAAIC,MAAM,+CAA+CC,OAAOP,SACxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TexturesLoader.js","sources":["../../../src/Texture/Loaders/TexturesLoader.ts"],"sourcesContent":["import { AbstractLoader, LoaderType } from '@
|
|
1
|
+
{"version":3,"file":"TexturesLoader.js","sources":["../../../src/Texture/Loaders/TexturesLoader.ts"],"sourcesContent":["import { AbstractLoader, LoaderType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TLoadingManagerWrapper } from '@hellpig/anarchy-engine/LoadingManager';\nimport type { TTexture, TTextureAsyncRegistry, TTextureMetaInfoRegistry, TTextureResourceConfig, TTexturesLoader } from '@hellpig/anarchy-engine/Texture/Models';\nimport { applyColorSpace, applyFilters, applyTextureParams } from '@hellpig/anarchy-engine/Texture/Utils';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport { TextureLoader } from 'three';\n\nexport function TexturesLoader(registry: TTextureAsyncRegistry, metaInfoRegistry: TTextureMetaInfoRegistry, loadingManagerWrapper: TLoadingManagerWrapper): TTexturesLoader {\n const textureLoader: TextureLoader = new TextureLoader(loadingManagerWrapper.entity);\n const loader: TTexturesLoader = AbstractLoader(textureLoader, registry, metaInfoRegistry, LoaderType.Texture);\n\n function applyParamsOnLoaded(loaded: TWriteable<TTexture>, options?: TTextureResourceConfig['options']): TTexture {\n if (isNotDefined(options)) return loaded;\n applyTextureParams(loaded, options);\n if (isDefined(options.colorSpace)) applyColorSpace(loaded, options);\n applyFilters(loaded, options);\n return loaded;\n }\n\n loader.setOnLoadedFn(applyParamsOnLoaded);\n\n return loader;\n}\n"],"names":["TexturesLoader","registry","metaInfoRegistry","loadingManagerWrapper","textureLoader","TextureLoader","entity","loader","AbstractLoader","LoaderType","Texture","setOnLoadedFn","loaded","options","isNotDefined","applyTextureParams","isDefined","colorSpace","applyColorSpace","applyFilters"],"mappings":"6VAQO,SAASA,eAAeC,SAAiCC,iBAA4CC,uBAC1G,MAAMC,cAA+B,IAAIC,cAAcF,sBAAsBG,QACvEC,OAA0BC,eAAeJ,cAAeH,SAAUC,iBAAkBO,WAAWC,SAYrG,OAFAH,OAAOI,cARP,SAA6BC,OAA8BC,SACzD,OAAIC,aAAaD,WACjBE,mBAAmBH,OAAQC,SACvBG,UAAUH,QAAQI,aAAaC,gBAAgBN,OAAQC,SAC3DM,aAAaP,OAAQC,UAHaD,MAKpC,GAIOL,MACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextureMetaInfoRegistry.js","sources":["../../../src/Texture/Registries/TextureMetaInfoRegistry.ts"],"sourcesContent":["import { AbstractSimpleRegistry, RegistryType } from '@
|
|
1
|
+
{"version":3,"file":"TextureMetaInfoRegistry.js","sources":["../../../src/Texture/Registries/TextureMetaInfoRegistry.ts"],"sourcesContent":["import { AbstractSimpleRegistry, RegistryType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TTextureMetaInfoRegistry, TTextureResourceConfig } from '@hellpig/anarchy-engine/Texture/Models';\n\nexport function TextureMetaInfoRegistry(): TTextureMetaInfoRegistry {\n return AbstractSimpleRegistry<TTextureResourceConfig>(RegistryType.TextureMetaInfo);\n}\n"],"names":["TextureMetaInfoRegistry","AbstractSimpleRegistry","RegistryType","TextureMetaInfo"],"mappings":"2JAGO,SAASA,0BACd,OAAOC,uBAA+CC,aAAaC,gBACrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextureResourceAsyncRegistry.js","sources":["../../../src/Texture/Registries/TextureResourceAsyncRegistry.ts"],"sourcesContent":["import { AbstractResourceAsyncRegistry, RegistryType } from '@
|
|
1
|
+
{"version":3,"file":"TextureResourceAsyncRegistry.js","sources":["../../../src/Texture/Registries/TextureResourceAsyncRegistry.ts"],"sourcesContent":["import { AbstractResourceAsyncRegistry, RegistryType } from '@hellpig/anarchy-engine/Abstract';\nimport type { TTexture, TTextureAsyncRegistry } from '@hellpig/anarchy-engine/Texture/Models';\n\nexport function TextureResourceAsyncRegistry(): TTextureAsyncRegistry {\n return AbstractResourceAsyncRegistry<TTexture>(RegistryType.Texture);\n}\n"],"names":["TextureResourceAsyncRegistry","AbstractResourceAsyncRegistry","RegistryType","Texture"],"mappings":"yKAGO,SAASA,+BACd,OAAOC,8BAAwCC,aAAaC,QAC9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextureService.js","sources":["../../../src/Texture/Services/TextureService.ts"],"sourcesContent":["import type { TAbstractService } from '@
|
|
1
|
+
{"version":3,"file":"TextureService.js","sources":["../../../src/Texture/Services/TextureService.ts"],"sourcesContent":["import type { TAbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport { AbstractService } from '@hellpig/anarchy-engine/Abstract';\nimport type { TLoadingManagerWrapper } from '@hellpig/anarchy-engine/LoadingManager';\nimport type { TDisposable } from '@hellpig/anarchy-engine/Mixins';\nimport { withSerializeAllResources } from '@hellpig/anarchy-engine/Mixins';\nimport { TexturesLoader } from '@hellpig/anarchy-engine/Texture/Loaders';\nimport type {\n TTextureAsyncRegistry,\n TTextureMetaInfoRegistry,\n TTextureResourceConfig,\n TTextureSerializeResourcesDependencies,\n TTextureService,\n TTexturesLoader\n} from '@hellpig/anarchy-engine/Texture/Models';\nimport { mergeAll } from '@hellpig/anarchy-engine/Utils';\n\nexport function TextureService(resourcesRegistry: TTextureAsyncRegistry, metaInfoRegistry: TTextureMetaInfoRegistry, loadingManagerWrapper: TLoadingManagerWrapper): TTextureService {\n const texturesLoader: TTexturesLoader = TexturesLoader(resourcesRegistry, metaInfoRegistry, loadingManagerWrapper);\n const disposable: ReadonlyArray<TDisposable> = [resourcesRegistry, texturesLoader];\n const abstractService: TAbstractService = AbstractService(disposable);\n\n return mergeAll(abstractService, withSerializeAllResources<TTextureResourceConfig, TTextureSerializeResourcesDependencies>(resourcesRegistry, { metaInfoRegistry }), {\n loadAsync: texturesLoader.loadAsync,\n loadFromConfigAsync: texturesLoader.loadFromConfigAsync,\n getResourceRegistry: (): TTextureAsyncRegistry => resourcesRegistry,\n getMetaInfoRegistry: (): TTextureMetaInfoRegistry => metaInfoRegistry\n });\n}\n"],"names":["TextureService","resourcesRegistry","metaInfoRegistry","loadingManagerWrapper","texturesLoader","TexturesLoader","abstractService","AbstractService","mergeAll","withSerializeAllResources","loadAsync","loadFromConfigAsync","getResourceRegistry","getMetaInfoRegistry"],"mappings":"4QAgBO,SAASA,eAAeC,kBAA0CC,iBAA4CC,uBACnH,MAAMC,eAAkCC,eAAeJ,kBAAmBC,iBAAkBC,uBAEtFG,gBAAoCC,gBADK,CAACN,kBAAmBG,iBAGnE,OAAOI,SAASF,gBAAiBG,0BAA0FR,kBAAmB,CAAEC,oCAAqB,CACnKQ,UAAWN,eAAeM,UAC1BC,oBAAqBP,eAAeO,oBACpCC,oBAAqB,IAA6BX,kBAClDY,oBAAqB,IAAgCX,kBAEzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextureServiceHelper.js","sources":["../../../src/Texture/Utils/TextureServiceHelper.ts"],"sourcesContent":["import type { TTexture, TTextureOptions } from '@
|
|
1
|
+
{"version":3,"file":"TextureServiceHelper.js","sources":["../../../src/Texture/Utils/TextureServiceHelper.ts"],"sourcesContent":["import type { TTexture, TTextureOptions } from '@hellpig/anarchy-engine/Texture/Models';\nimport type { TWriteable } from '@hellpig/anarchy-shared/Utils';\nimport { isDefined, isNotDefined } from '@hellpig/anarchy-shared/Utils';\nimport type { MagnificationTextureFilter, MinificationTextureFilter } from 'three';\nimport { LinearFilter, NearestFilter } from 'three';\n\nexport const getMagFilter = (magFilter?: MagnificationTextureFilter): MagnificationTextureFilter => (isDefined(magFilter) ? magFilter : LinearFilter);\nexport const getMinFilter = (minFilter?: MinificationTextureFilter): MinificationTextureFilter => (isDefined(minFilter) ? minFilter : NearestFilter);\n\nexport const applyColorSpace = (texture: TWriteable<TTexture>, options?: TTextureOptions): void => {\n if (isNotDefined(options)) return;\n\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(options.colorSpace)) texture.colorSpace = options.colorSpace;\n};\n\nexport function applyFilters(texture: TWriteable<TTexture>, options?: TTextureOptions): void {\n if (isNotDefined(options)) return;\n\n // eslint-disable-next-line functional/immutable-data\n texture.magFilter = getMagFilter(options.magFilter);\n // eslint-disable-next-line functional/immutable-data\n texture.minFilter = getMinFilter(options.minFilter);\n\n // eslint-disable-next-line functional/immutable-data\n if (texture.minFilter === NearestFilter) texture.generateMipmaps = false;\n}\n\nexport function applyTextureParams(texture: TWriteable<TTexture>, options?: TTextureOptions): void {\n if (isNotDefined(options)) return;\n\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(options.mapping)) texture.mapping = options.mapping;\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(options.wrapS)) texture.wrapS = options.wrapS;\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(options.wrapT)) texture.wrapT = options.wrapT;\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(options.anisotropy)) texture.anisotropy = options.anisotropy;\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(options.format)) texture.format = options.format;\n // eslint-disable-next-line functional/immutable-data\n if (isDefined(options.type)) texture.type = options.type;\n}\n"],"names":["getMagFilter","magFilter","isDefined","LinearFilter","getMinFilter","minFilter","NearestFilter","applyColorSpace","texture","options","isNotDefined","colorSpace","applyFilters","generateMipmaps","applyTextureParams","mapping","wrapS","wrapT","anisotropy","format","type"],"mappings":"wIAMO,MAAMA,aAAgBC,WAAwEC,UAAUD,WAAaA,UAAYE,aAC3HC,aAAgBC,WAAsEH,UAAUG,WAAaA,UAAYC,cAEzHC,gBAAkB,CAACC,QAA+BC,WACzDC,aAAaD,UAGbP,UAAUO,QAAQE,cAAaH,QAAQG,WAAaF,QAAQE,aAG3D,SAASC,aAAaJ,QAA+BC,SACtDC,aAAaD,WAGjBD,QAAQP,UAAYD,aAAaS,QAAQR,WAEzCO,QAAQH,UAAYD,aAAaK,QAAQJ,WAGrCG,QAAQH,YAAcC,gBAAeE,QAAQK,iBAAkB,GACrE,CAEO,SAASC,mBAAmBN,QAA+BC,SAC5DC,aAAaD,WAGbP,UAAUO,QAAQM,WAAUP,QAAQO,QAAUN,QAAQM,SAEtDb,UAAUO,QAAQO,SAAQR,QAAQQ,MAAQP,QAAQO,OAElDd,UAAUO,QAAQQ,SAAQT,QAAQS,MAAQR,QAAQQ,OAElDf,UAAUO,QAAQS,cAAaV,QAAQU,WAAaT,QAAQS,YAE5DhB,UAAUO,QAAQU,UAASX,QAAQW,OAASV,QAAQU,QAEpDjB,UAAUO,QAAQW,QAAOZ,QAAQY,KAAOX,QAAQW,MACtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Object3dUtils.js","sources":["../../../src/ThreeLib/Utils/Object3dUtils.ts"],"sourcesContent":["import type { TObject3DParams, TObject3DPropConfig } from '@
|
|
1
|
+
{"version":3,"file":"Object3dUtils.js","sources":["../../../src/ThreeLib/Utils/Object3dUtils.ts"],"sourcesContent":["import type { TObject3DParams, TObject3DPropConfig } from '@hellpig/anarchy-engine/ThreeLib/Models';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport { Euler, Vector3 } from 'three';\n\nexport function object3dConfigToParams(config: Partial<TObject3DPropConfig>): TObject3DParams {\n const { position, rotation, scale } = config;\n const result = { ...config } as TObject3DParams;\n\n return {\n ...result,\n position: isDefined(position) ? new Vector3(position.x, position.y, position.z) : new Vector3(),\n rotation: isDefined(rotation) ? new Euler(rotation.x, rotation.y, rotation.z) : new Euler(),\n scale: isDefined(scale) ? new Vector3(scale.x, scale.y, scale.z) : new Vector3(1, 1, 1)\n };\n}\n"],"names":["object3dConfigToParams","config","position","rotation","scale","isDefined","Vector3","x","y","z","Euler"],"mappings":"8GAIO,SAASA,uBAAuBC,QACrC,MAAMC,SAAEA,SAAAC,SAAUA,SAAAC,MAAUA,OAAUH,OAGtC,MAAO,IAFQ,IAAKA,QAIlBC,SAAUG,UAAUH,UAAY,IAAII,QAAQJ,SAASK,EAAGL,SAASM,EAAGN,SAASO,GAAK,IAAIH,QACtFH,SAAUE,UAAUF,UAAY,IAAIO,MAAMP,SAASI,EAAGJ,SAASK,EAAGL,SAASM,GAAK,IAAIC,MACpFN,MAAOC,UAAUD,OAAS,IAAIE,QAAQF,MAAMG,EAAGH,MAAMI,EAAGJ,MAAMK,GAAK,IAAIH,QAAQ,EAAG,EAAG,GAEzF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityToConfig.js","sources":["../../../src/TransformDrive/Adapters/EntityToConfig.ts"],"sourcesContent":["import { ignoreDefaultStateKinematic } from '@
|
|
1
|
+
{"version":3,"file":"EntityToConfig.js","sources":["../../../src/TransformDrive/Adapters/EntityToConfig.ts"],"sourcesContent":["import { ignoreDefaultStateKinematic } from '@hellpig/anarchy-engine/Kinematic';\nimport type { TTransformDrive, TTransformDriveSerializedData } from '@hellpig/anarchy-engine/TransformDrive/Models';\nimport { eulerToXyz, vector3ToXyz } from '@hellpig/anarchy-engine/Utils';\nimport { Euler } from 'three';\n\nexport function transformDriveToConfig(drive: TTransformDrive<any>): TTransformDriveSerializedData {\n const { position$, rotation$, scale$, agent$ } = drive;\n\n return {\n physicsBodyName: drive.physics?.physicsBody$.value.name,\n kinematic: ignoreDefaultStateKinematic(drive.kinematic?.serialize()),\n position: vector3ToXyz(position$.value),\n rotation: eulerToXyz(new Euler().setFromQuaternion(rotation$.value)),\n scale: vector3ToXyz(scale$.value),\n agent: agent$.value\n };\n}\n"],"names":["transformDriveToConfig","drive","position$","rotation$","scale$","agent$","physicsBodyName","physics","physicsBody$","value","name","kinematic","ignoreDefaultStateKinematic","serialize","position","vector3ToXyz","rotation","eulerToXyz","Euler","setFromQuaternion","scale","agent"],"mappings":"6KAKO,SAASA,uBAAuBC,OACrC,MAAMC,UAAEA,UAAAC,UAAWA,UAAAC,OAAWA,OAAAC,OAAQA,QAAWJ,MAEjD,MAAO,CACLK,gBAAiBL,MAAMM,SAASC,aAAaC,MAAMC,KACnDC,UAAWC,4BAA4BX,MAAMU,WAAWE,aACxDC,SAAUC,aAAab,UAAUO,OACjCO,SAAUC,YAAW,IAAIC,OAAQC,kBAAkBhB,UAAUM,QAC7DW,MAAOL,aAAaX,OAAOK,OAC3BY,MAAOhB,OAAOI,MAElB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractTransformAgent.js","sources":["../../../../src/TransformDrive/Entities/Agents/AbstractTransformAgent.ts"],"sourcesContent":["import type { TDestroyable } from '@
|
|
1
|
+
{"version":3,"file":"AbstractTransformAgent.js","sources":["../../../../src/TransformDrive/Entities/Agents/AbstractTransformAgent.ts"],"sourcesContent":["import type { TDestroyable } from '@hellpig/anarchy-engine/Mixins';\nimport { destroyableMixin } from '@hellpig/anarchy-engine/Mixins';\nimport type { TReadonlyQuaternion, TReadonlyVector3 } from '@hellpig/anarchy-engine/ThreeLib';\nimport type { TransformAgent } from '@hellpig/anarchy-engine/TransformDrive/Constants';\nimport type { TAbstractTransformAgent, TReadonlyTransform, TSerializedTransform, TTransformAgentParams } from '@hellpig/anarchy-engine/TransformDrive/Models';\nimport { isDefined } from '@hellpig/anarchy-shared/Utils';\nimport { nanoid } from 'nanoid';\nimport type { Subscription } from 'rxjs';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nexport function AbstractTransformAgent(params: TTransformAgentParams, type: TransformAgent): TAbstractTransformAgent {\n const id: string = type + '_transform_agent_' + nanoid();\n const relatedDriveId$: BehaviorSubject<string | undefined> = new BehaviorSubject<string | undefined>(undefined);\n // IMPORTANT: enabled$ doesn't do anything by in AbstractTransformAgent. You have to implement that logic yourself\n const enabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(params.enabled ?? false);\n const position$: BehaviorSubject<TReadonlyVector3> = new BehaviorSubject<TReadonlyVector3>(params.position);\n const rotation$: BehaviorSubject<TReadonlyQuaternion> = new BehaviorSubject<TReadonlyQuaternion>(params.rotation);\n const scale$: BehaviorSubject<TReadonlyVector3> = new BehaviorSubject<TReadonlyVector3>(params.scale);\n const onActivated$: Subject<TReadonlyTransform> = new Subject<TReadonlyTransform>();\n const onDeactivated$: Subject<TReadonlyTransform> = new Subject<TReadonlyTransform>();\n\n const onDeactivated$Sub: Subscription = onDeactivated$.subscribe((transform: TReadonlyTransform): void => {\n if (isDefined(params.onDeactivated)) params.onDeactivated(transform);\n });\n\n const onActivated$Sub: Subscription = onActivated$.subscribe(({ position, rotation, scale }: TReadonlyTransform): void => {\n if (isDefined(params.onActivated)) params.onActivated({ position, rotation, scale });\n });\n\n const destroyable: TDestroyable = destroyableMixin();\n const destroySub$: Subscription = destroyable.destroy$.subscribe((): void => {\n //Stop subscriptions\n destroySub$.unsubscribe();\n onDeactivated$Sub?.unsubscribe();\n onActivated$Sub?.unsubscribe();\n\n //Complete subjects\n onDeactivated$.next({ position: position$.value, rotation: rotation$.value, scale: scale$.value });\n onDeactivated$.complete();\n position$.complete();\n rotation$.complete();\n scale$.complete();\n enabled$.next(false);\n enabled$.complete();\n onActivated$.complete();\n relatedDriveId$.complete();\n });\n\n return {\n ...destroyable,\n id,\n type,\n position$,\n rotation$,\n scale$,\n enabled$,\n onActivated$,\n onDeactivated$,\n relatedDriveId$,\n serialize: (): TSerializedTransform => ({\n position: position$.value,\n rotation: rotation$.value,\n scale: scale$.value\n })\n };\n}\n"],"names":["AbstractTransformAgent","params","type","id","nanoid","relatedDriveId$","BehaviorSubject","enabled$","enabled","position$","position","rotation$","rotation","scale$","scale","onActivated$","Subject","onDeactivated$","onDeactivated$Sub","subscribe","transform","isDefined","onDeactivated","onActivated$Sub","onActivated","destroyable","destroyableMixin","destroySub$","destroy$","unsubscribe","next","value","complete","serialize"],"mappings":"iaAUO,SAASA,uBAAuBC,OAA+BC,MACpE,MAAMC,GAAaD,KAAO,oBAAsBE,SAC1CC,gBAAuD,IAAIC,wBAE3DC,SAAqC,IAAID,gBAAyBL,OAAOO,UAAW,GACpFC,UAA+C,IAAIH,gBAAkCL,OAAOS,UAC5FC,UAAkD,IAAIL,gBAAqCL,OAAOW,UAClGC,OAA4C,IAAIP,gBAAkCL,OAAOa,OACzFC,aAA4C,IAAIC,QAChDC,eAA8C,IAAID,QAElDE,kBAAkCD,eAAeE,UAAWC,YAC5DC,UAAUpB,OAAOqB,gBAAgBrB,OAAOqB,cAAcF,aAGtDG,gBAAgCR,aAAaI,UAAU,EAAGT,kBAAUE,kBAAUE,gBAC9EO,UAAUpB,OAAOuB,cAAcvB,OAAOuB,YAAY,CAAEd,kBAAUE,kBAAUE,gBAGxEW,YAA4BC,mBAC5BC,YAA4BF,YAAYG,SAAST,UAAU,KAE/DQ,YAAYE,cACZX,mBAAmBW,cACnBN,iBAAiBM,cAGjBZ,eAAea,KAAK,CAAEpB,SAAUD,UAAUsB,MAAOnB,SAAUD,UAAUoB,MAAOjB,MAAOD,OAAOkB,QAC1Fd,eAAee,WACfvB,UAAUuB,WACVrB,UAAUqB,WACVnB,OAAOmB,WACPzB,SAASuB,MAAK,GACdvB,SAASyB,WACTjB,aAAaiB,WACb3B,gBAAgB2B,aAGlB,MAAO,IACFP,YACHtB,MACAD,UACAO,oBACAE,oBACAE,cACAN,kBACAQ,0BACAE,8BACAZ,gCACA4B,UAAW,KAAA,CACTvB,SAAUD,UAAUsB,MACpBnB,SAAUD,UAAUoB,MACpBjB,MAAOD,OAAOkB,QAGpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectedTransformAgent.js","sources":["../../../../src/TransformDrive/Entities/Agents/ConnectedTransformAgent.ts"],"sourcesContent":["import { TransformAgent } from '@
|
|
1
|
+
{"version":3,"file":"ConnectedTransformAgent.js","sources":["../../../../src/TransformDrive/Entities/Agents/ConnectedTransformAgent.ts"],"sourcesContent":["import { TransformAgent } from '@hellpig/anarchy-engine/TransformDrive/Constants';\nimport { withMutablePositionConnector, withMutableRotationConnector, withMutableScaleConnector } from '@hellpig/anarchy-engine/TransformDrive/Mixins';\nimport type { TAbstractTransformAgent, TConnectedTransformAgent, TTransformAgentParams } from '@hellpig/anarchy-engine/TransformDrive/Models';\nimport type { Subscription } from 'rxjs';\n\nimport { AbstractTransformAgent } from './AbstractTransformAgent';\n\nexport function ConnectedTransformAgent(params: TTransformAgentParams): TConnectedTransformAgent {\n const abstractTransformAgent: TAbstractTransformAgent = AbstractTransformAgent(params, TransformAgent.Connected);\n\n const destroySub$: Subscription = abstractTransformAgent.destroy$.subscribe((): void => {\n //Stop subscriptions\n destroySub$.unsubscribe();\n\n abstractTransformAgent.destroy$.next();\n });\n\n // eslint-disable-next-line functional/immutable-data\n return Object.assign(abstractTransformAgent, {\n ...withMutablePositionConnector(abstractTransformAgent.position$),\n ...withMutableRotationConnector(abstractTransformAgent.rotation$),\n ...withMutableScaleConnector(abstractTransformAgent.scale$)\n });\n}\n"],"names":["ConnectedTransformAgent","params","abstractTransformAgent","AbstractTransformAgent","TransformAgent","Connected","destroySub$","destroy$","subscribe","unsubscribe","next","Object","assign","withMutablePositionConnector","position$","withMutableRotationConnector","rotation$","withMutableScaleConnector","scale$"],"mappings":"6XAOO,SAASA,wBAAwBC,QACtC,MAAMC,uBAAkDC,uBAAuBF,OAAQG,eAAeC,WAEhGC,YAA4BJ,uBAAuBK,SAASC,UAAU,KAE1EF,YAAYG,cAEZP,uBAAuBK,SAASG,SAIlC,OAAOC,OAAOC,OAAOV,uBAAwB,IACxCW,6BAA6BX,uBAAuBY,cACpDC,6BAA6Bb,uBAAuBc,cACpDC,0BAA0Bf,uBAAuBgB,SAExD"}
|