< Summary

Class:DCLServices.MapRendererV2.MapLayers.Atlas.ParcelChunkController
Assembly:MapRendererV2
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/MapRendererV2/MapLayers/Atlas/ParcelAtlas/ParcelChunkController.cs
Covered lines:18
Uncovered lines:3
Coverable lines:21
Total lines:62
Line coverage:85.7% (18 of 21)
Covered branches:0
Total branches:0
Covered methods:3
Total methods:4
Method coverage:75% (3 of 4)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ParcelChunkController(...)0%110100%
LoadImage()0%330100%
Dispose()0%6200%
SetDrawOrder(...)0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/MapRendererV2/MapLayers/Atlas/ParcelAtlas/ParcelChunkController.cs

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using DCL;
 3using DCL.Helpers;
 4using MainScripts.DCL.Helpers.Utils;
 5using System.Threading;
 6using UnityEngine;
 7using Object = UnityEngine.Object;
 8
 9namespace DCLServices.MapRendererV2.MapLayers.Atlas
 10{
 11    public class ParcelChunkController : IChunkController
 12    {
 13        private const int PIXELS_PER_UNIT = 50;
 14        private const string CHUNKS_API = "https://api.decentraland.org/v1/map.png";
 15
 16        private readonly SpriteRenderer spriteRenderer;
 17
 18        private Service<IWebRequestController> webRequestController;
 19
 55020        public ParcelChunkController(SpriteRenderer prefab, Vector3 chunkLocalPosition, Vector2Int coordsCenter, Transfo
 21        {
 55022            spriteRenderer = Object.Instantiate(prefab, parent);
 23#if UNITY_EDITOR
 55024            spriteRenderer.gameObject.name = $"Chunk {coordsCenter.x},{coordsCenter.y}";
 25#endif
 55026            var transform = spriteRenderer.transform;
 27
 55028            transform.localScale = Vector3.one * PIXELS_PER_UNIT;
 55029            transform.localPosition = chunkLocalPosition;
 55030        }
 31
 32        public async UniTask LoadImage(int chunkSize, int parcelSize, Vector2Int mapPosition, CancellationToken ct)
 33        {
 55034            string url = $"{CHUNKS_API}?center={mapPosition.x},{mapPosition.y}&width={chunkSize}&height={chunkSize}&size
 165035            var webRequest = await webRequestController.Ref.GetTextureAsync(url, cancellationToken: ct);
 36
 7037            var texture = CreateTexture(webRequest.downloadHandler.data);
 7038            texture.wrapMode = TextureWrapMode.Clamp;
 39
 7040            spriteRenderer.sprite =
 41                Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2Ext.OneHalf, PIXELS_PER_UNI
 42
 43            Texture2D CreateTexture(byte[] data)
 44            {
 7045                Texture2D texture2D = new Texture2D(1, 1);
 7046                texture2D.LoadImage(data);
 7047                return texture2D;
 48            }
 7049        }
 50
 51        public void Dispose()
 52        {
 053            if (spriteRenderer)
 054                Utils.SafeDestroy(spriteRenderer.gameObject);
 055        }
 56
 57        public void SetDrawOrder(int order)
 58        {
 55059            spriteRenderer.sortingOrder = order;
 55060        }
 61    }
 62}