< 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;
 50410        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        {
 54229            if (tracker is ResourcesLoadTrackerLegacyECS)
 030                return;
 31
 54232            tracker = new ResourcesLoadTrackerLegacyECS(componentsManagerLegacy, worldState);
 54233            tracker.OnResourcesLoaded += TrackerResourcesLoaded;
 54234            tracker.OnStatusUpdate += OnTrackerResourcesStatusUpdate;
 54235        }
 36
 37        public void Dispose()
 38        {
 50239            DisposeCurrentTracker();
 50240        }
 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        {
 50274            if (tracker == null)
 75            {
 076                return;
 77            }
 50278            tracker.OnResourcesLoaded -= TrackerResourcesLoaded;
 50279            tracker.OnStatusUpdate -= OnTrackerResourcesStatusUpdate;
 50280            tracker.Dispose();
 50281        }
 82
 83        private void TrackerResourcesLoaded()
 84        {
 585            OnResourcesLoaded?.Invoke();
 286        }
 87
 88        private void OnTrackerResourcesStatusUpdate()
 89        {
 190            OnResourcesStatusUpdate?.Invoke();
 091        }
 92    }
 93}