< Summary

Class:DCL.WorldRuntime.SceneResourcesLoadTracker
Assembly:SceneResourcesLoadTracker
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/SceneResourcesLoadTracker/SceneResourcesLoadTracker.cs
Covered lines:25
Uncovered lines:12
Coverable lines:37
Total lines:93
Line coverage:67.5% (25 of 37)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Track(...)0%2.022083.33%
Track(...)0%2.022083.33%
Dispose()0%110100%
ShouldWaitForPendingResources()0%220100%
PrintWaitingResourcesDebugInfo()0%6200%
GetStateString()0%6200%
DisposeCurrentTracker()0%2.022083.33%
TrackerResourcesLoaded()0%220100%
OnTrackerResourcesStatusUpdate()0%2.52050%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/SceneResourcesLoadTracker/SceneResourcesLoadTracker.cs

#LineLine coverage
 1using System;
 2using DCL.ECSRuntime;
 3using UnityEngine;
 4
 5namespace DCL.WorldRuntime
 6{
 7    public class SceneResourcesLoadTracker : IDisposable
 8    {
 69        public int pendingResourcesCount => tracker.pendingResourcesCount;
 50110        public float loadingProgress => tracker.loadingProgress;
 11
 12        public event Action OnResourcesLoaded;
 13        public event Action OnResourcesStatusUpdate;
 14
 15        internal IResourcesLoadTracker tracker;
 16
 17        public void Track(string sceneId)
 18        {
 919            if (tracker is ResourcesLoadTrackerECS)
 020                return;
 21
 922            tracker = new ResourcesLoadTrackerECS(DataStore.i.ecs7,sceneId);
 923            tracker.OnResourcesLoaded += TrackerResourcesLoaded;
 924            tracker.OnStatusUpdate += OnTrackerResourcesStatusUpdate;
 925        }
 26
 27        public void Track(IECSComponentsManagerLegacy componentsManagerLegacy, IWorldState worldState)
 28        {
 53929            if (tracker is ResourcesLoadTrackerLegacyECS)
 030                return;
 31
 53932            tracker = new ResourcesLoadTrackerLegacyECS(componentsManagerLegacy, worldState);
 53933            tracker.OnResourcesLoaded += TrackerResourcesLoaded;
 53934            tracker.OnStatusUpdate += OnTrackerResourcesStatusUpdate;
 53935        }
 36
 37        public void Dispose()
 38        {
 49939            DisposeCurrentTracker();
 49940        }
 41
 42        public bool ShouldWaitForPendingResources()
 43        {
 644            if (tracker.pendingResourcesCount == 0)
 45            {
 446                return false;
 47            }
 248            return tracker.CheckPendingResources();
 49        }
 50
 51        public void PrintWaitingResourcesDebugInfo()
 52        {
 053            if (tracker == null)
 54            {
 055                Debug.Log($"PrintWaitingResourcesDebugInfo failed. SceneResourcesLoadTracker tracker == null");
 056                return;
 57            }
 58
 059            tracker.PrintWaitingResourcesDebugInfo();
 060        }
 61
 62        public string GetStateString()
 63        {
 064            if (tracker == null)
 65            {
 066                return "SceneResourcesLoadTracker tracker == null";
 67            }
 68
 069            return tracker.GetStateString();
 70        }
 71
 72        private void DisposeCurrentTracker()
 73        {
 49974            if (tracker == null)
 75            {
 076                return;
 77            }
 49978            tracker.OnResourcesLoaded -= TrackerResourcesLoaded;
 49979            tracker.OnStatusUpdate -= OnTrackerResourcesStatusUpdate;
 49980            tracker.Dispose();
 49981        }
 82
 83        private void TrackerResourcesLoaded()
 84        {
 485            OnResourcesLoaded?.Invoke();
 286        }
 87
 88        private void OnTrackerResourcesStatusUpdate()
 89        {
 190            OnResourcesStatusUpdate?.Invoke();
 091        }
 92    }
 93}