< Summary

Class:DCL.Components.LoadWrapper_GLTF
Assembly:DCL.Components.LoadableShapes
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/LoadableShapes/LoadWrapper/LoadWrapper_GLTF.cs
Covered lines:46
Uncovered lines:4
Coverable lines:50
Total lines:104
Line coverage:92% (46 of 50)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Load(...)0%6.026092%
OnFailWrapper(...)0%220100%
OnSuccessWrapper(...)0%220100%
OnEntityCleanup(...)0%110100%
Unload()0%3.013090%
ToString()0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/LoadableShapes/LoadWrapper/LoadWrapper_GLTF.cs

#LineLine coverage
 1using System;
 2using UnityEngine;
 3using UnityEngine.Assertions;
 4
 5namespace DCL.Components
 6{
 7    public class LoadWrapper_GLTF : LoadWrapper
 8    {
 9        static readonly bool VERBOSE = false;
 10
 11        RendereableAssetLoadHelper loadHelper;
 12
 13        public ContentProvider customContentProvider;
 14
 15        private Action<Rendereable> successWrapperEvent;
 16        private Action<Exception> failWrapperEvent;
 17
 18        public override void Load(string targetUrl, Action<LoadWrapper> OnSuccess, Action<LoadWrapper, Exception> OnFail
 19        {
 9720            if (loadHelper != null)
 21            {
 222                loadHelper.Unload();
 23
 224                if (VERBOSE)
 025                    Debug.Log("Forgetting not null loader...");
 26            }
 27
 9728            alreadyLoaded = false;
 9729            Assert.IsFalse(string.IsNullOrEmpty(targetUrl), "url is null!!");
 30
 31
 9732            if (customContentProvider == null)
 033                loadHelper = new RendereableAssetLoadHelper(this.entity.scene.contentProvider, entity.scene.sceneData.ba
 34            else
 9735                loadHelper = new RendereableAssetLoadHelper(customContentProvider, entity.scene.sceneData.baseUrlBundles
 36
 9737            loadHelper.settings.forceGPUOnlyMesh = true;
 9738            loadHelper.settings.parent = entity.meshRootGameObject.transform;
 39
 9740            if (initialVisibility == false)
 41            {
 542                loadHelper.settings.visibleFlags = AssetPromiseSettings_Rendering.VisibleFlags.INVISIBLE;
 543            }
 44            else
 45            {
 9246                if (useVisualFeedback)
 147                    loadHelper.settings.visibleFlags = AssetPromiseSettings_Rendering.VisibleFlags.VISIBLE_WITH_TRANSITI
 48                else
 9149                    loadHelper.settings.visibleFlags = AssetPromiseSettings_Rendering.VisibleFlags.VISIBLE_WITHOUT_TRANS
 50            }
 51
 9752            this.entity.OnCleanupEvent -= OnEntityCleanup;
 9753            this.entity.OnCleanupEvent += OnEntityCleanup;
 54
 17355            successWrapperEvent = x => OnSuccessWrapper(OnSuccess);
 10056            failWrapperEvent = error => OnFailWrapper(OnFail, error);
 57
 9758            loadHelper.OnSuccessEvent += successWrapperEvent;
 9759            loadHelper.OnFailEvent += failWrapperEvent;
 9760            loadHelper.Load(targetUrl);
 9761        }
 62
 63        private void OnFailWrapper(Action<LoadWrapper, Exception> OnFail, Exception exception)
 64        {
 365            alreadyLoaded = true;
 366            loadHelper.OnSuccessEvent -= successWrapperEvent;
 367            loadHelper.OnFailEvent -= failWrapperEvent;
 368            this.entity.OnCleanupEvent -= OnEntityCleanup;
 369            OnFail?.Invoke(this, exception);
 370        }
 71
 72        private void OnSuccessWrapper(Action<LoadWrapper> OnSuccess)
 73        {
 7674            alreadyLoaded = true;
 7675            loadHelper.OnSuccessEvent -= successWrapperEvent;
 7676            loadHelper.OnFailEvent -= failWrapperEvent;
 77
 7678            loadHelper.loadedAsset.ownerId = entity.entityId;
 7679            DataStore.i.sceneWorldObjects.AddRendereable(entity.scene.sceneData.id, loadHelper.loadedAsset);
 7680            OnSuccess?.Invoke(this);
 7681        }
 82
 283        public void OnEntityCleanup(ICleanableEventDispatcher source) { Unload(); }
 84
 85        public override void Unload()
 86        {
 7687            if (loadHelper == null)
 088                return;
 89
 7690            if ( loadHelper.loadedAsset != null )
 91            {
 5892                DataStore.i.sceneWorldObjects.RemoveRendereable(entity.scene.sceneData.id, loadHelper.loadedAsset);
 93            }
 94
 7695            loadHelper.Unload();
 7696            this.entity.OnCleanupEvent -= OnEntityCleanup;
 7697            loadHelper.OnSuccessEvent -= successWrapperEvent;
 7698            loadHelper.OnFailEvent -= failWrapperEvent;
 7699            alreadyLoaded = false;
 76100        }
 101
 0102        public override string ToString() { return $"LoadWrapper ... {loadHelper.ToString()}"; }
 103    }
 104}