< Summary

Class:DCLServices.MapRendererV2.ComponentsFactory.FriendUsersMarkersInstaller
Assembly:MapRendererV2
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/MapRendererV2/ComponentsFactory/FriendUsersMarkersInstaller.cs
Covered lines:15
Uncovered lines:0
Coverable lines:15
Total lines:73
Line coverage:100% (15 of 15)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:2
Method coverage:100% (2 of 2)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Install()0%660100%
GetPrefab()0%330100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/MapRendererV2/ComponentsFactory/FriendUsersMarkersInstaller.cs

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using Cysharp.Threading.Tasks.Linq;
 3using DCL;
 4using DCL.Providers;
 5using DCL.Social.Friends;
 6using DCLServices.MapRendererV2.CoordsUtils;
 7using DCLServices.MapRendererV2.Culling;
 8using DCLServices.MapRendererV2.MapLayers;
 9using DCLServices.MapRendererV2.MapLayers.UsersMarkers.Friends;
 10using DCLServices.MapRendererV2.MapLayers.UsersMarkers.HotArea;
 11using MainScripts.DCL.Helpers.Utils;
 12using System.Collections.Generic;
 13using System.Threading;
 14using System.Threading.Tasks;
 15using UnityEngine;
 16using UnityEngine.Pool;
 17
 18namespace DCLServices.MapRendererV2.ComponentsFactory
 19{
 20    internal struct FriendUsersMarkersInstaller
 21    {
 22        private const string FRIEND_USER_MARKER_ADDRESS = "FriendUserMarker";
 23        private const int FRIEND_USER_MARKERS_PREWARM_COUNT = 30;
 24
 25        private Service<IAddressableResourceProvider> addressablesProvider;
 26
 27        public async UniTask Install(
 28            Dictionary<MapLayer, IMapLayerController> writer,
 29            List<IZoomScalingLayer> zoomScalingWriter,
 30            MapRendererConfiguration configuration,
 31            ICoordsUtils coordsUtils,
 32            IMapCullingController cullingController,
 33            IUserProfileBridge userProfileBridge,
 34            IFriendsController friendsController,
 35            CancellationToken cancellationToken)
 36        {
 9837            var prefab = await GetPrefab(cancellationToken);
 38
 39            void OnCreate(FriendUserMarkerObject obj)
 40            {
 1698041                for (var i = 0; i < obj.spriteRenderers.Length; i++)
 566042                    obj.spriteRenderers[i].sortingOrder = MapRendererDrawOrder.FRIEND_USER_MARKERS;
 43
 283044                obj.profileName.sortingOrder = MapRendererDrawOrder.FRIEND_USER_MARKERS;
 283045                coordsUtils.SetObjectScale(obj);
 283046            }
 47
 9648            var objectsPool = new UnityObjectPool<FriendUserMarkerObject>(prefab, configuration.FriendUserMarkersRoot, a
 49
 50            IFriendUserMarker CreateWrap() =>
 288051                new FriendUserMarker(objectsPool, cullingController, coordsUtils, CommonScriptableObjects.worldOffset);
 52
 297653            var wrapsPool = new ObjectPool<IFriendUserMarker>(CreateWrap, actionOnRelease: m => m.Dispose(), defaultCapa
 54
 9655            var controller = new FriendsMarkersAreaController(
 56                DataStore.i.player.otherPlayers,
 57                objectsPool,
 58                wrapsPool,
 59                FRIEND_USER_MARKERS_PREWARM_COUNT,
 60                configuration.HotUserMarkersRoot,
 61                coordsUtils, cullingController,
 62                userProfileBridge,
 63                friendsController);
 64
 28865            await controller.Initialize(cancellationToken);
 8966            writer.Add(MapLayer.Friends, controller);
 8967            zoomScalingWriter.Add(controller);
 8968        }
 69
 70        internal async Task<FriendUserMarkerObject> GetPrefab(CancellationToken cancellationToken) =>
 9871            await addressablesProvider.Ref.GetAddressable<FriendUserMarkerObject>(FRIEND_USER_MARKER_ADDRESS, cancellati
 72    }
 73}

Methods/Properties

Install()
GetPrefab()