< Summary

Class:DCL.Components.LoadWrapper_GLTF
Assembly:MainScripts
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/LoadableShapes/LoadWrapper/LoadWrapper_GLTF.cs
Covered lines:42
Uncovered lines:5
Coverable lines:47
Total lines:103
Line coverage:89.3% (42 of 47)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Load(...)0%6.156084%
OnFailWrapper(...)0%220100%
OnSuccessWrapper(...)0%220100%
OnEntityCleanup(...)0%110100%
Unload()0%220100%
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 System.Collections.Generic;
 3using System.Linq;
 4using UnityEngine;
 5using UnityEngine.Animations;
 6using UnityEngine.Assertions;
 7
 8namespace DCL.Components
 9{
 10    public class LoadWrapper_GLTF : LoadWrapper
 11    {
 12        static readonly bool VERBOSE = false;
 13
 14        RendereableAssetLoadHelper loadHelper;
 15
 16        public ContentProvider customContentProvider;
 17
 18        private Action<Rendereable> successWrapperEvent;
 19        private Action failWrapperEvent;
 20
 21        public override void Load(string targetUrl, Action<LoadWrapper> OnSuccess, Action<LoadWrapper> OnFail)
 22        {
 7923            if (loadHelper != null)
 24            {
 225                loadHelper.Unload();
 26
 227                if (VERBOSE)
 028                    Debug.Log("Forgetting not null loader...");
 29            }
 30
 7931            alreadyLoaded = false;
 7932            Assert.IsFalse(string.IsNullOrEmpty(targetUrl), "url is null!!");
 33
 34
 7935            if (customContentProvider == null)
 036                loadHelper = new RendereableAssetLoadHelper(this.entity.scene.contentProvider, entity.scene.sceneData.ba
 37            else
 7938                loadHelper = new RendereableAssetLoadHelper(customContentProvider, entity.scene.sceneData.baseUrlBundles
 39
 7940            loadHelper.settings.forceGPUOnlyMesh = true;
 7941            loadHelper.settings.parent = entity.meshRootGameObject.transform;
 42
 7943            if (initialVisibility == false)
 44            {
 045                loadHelper.settings.visibleFlags = AssetPromiseSettings_Rendering.VisibleFlags.INVISIBLE;
 046            }
 47            else
 48            {
 7949                if (useVisualFeedback)
 150                    loadHelper.settings.visibleFlags = AssetPromiseSettings_Rendering.VisibleFlags.VISIBLE_WITH_TRANSITI
 51                else
 7852                    loadHelper.settings.visibleFlags = AssetPromiseSettings_Rendering.VisibleFlags.VISIBLE_WITHOUT_TRANS
 53            }
 54
 7955            this.entity.OnCleanupEvent -= OnEntityCleanup;
 7956            this.entity.OnCleanupEvent += OnEntityCleanup;
 57
 14858            successWrapperEvent = (x) => OnSuccessWrapper(OnSuccess);
 8259            failWrapperEvent = () => OnFailWrapper(OnFail);
 60
 7961            loadHelper.OnSuccessEvent += successWrapperEvent;
 7962            loadHelper.OnFailEvent += failWrapperEvent;
 7963            loadHelper.Load(targetUrl);
 7964        }
 65
 66        private void OnFailWrapper(Action<LoadWrapper> OnFail)
 67        {
 368            alreadyLoaded = true;
 369            loadHelper.OnSuccessEvent -= successWrapperEvent;
 370            loadHelper.OnFailEvent -= failWrapperEvent;
 371            this.entity.OnCleanupEvent -= OnEntityCleanup;
 372            OnFail?.Invoke(this);
 373        }
 74
 75        private void OnSuccessWrapper(Action<LoadWrapper> OnSuccess)
 76        {
 6977            alreadyLoaded = true;
 6978            loadHelper.OnSuccessEvent -= successWrapperEvent;
 6979            loadHelper.OnFailEvent -= failWrapperEvent;
 80
 6981            DataStore.i.sceneWorldObjects.AddRendereable(entity, loadHelper.loadedAsset);
 6982            OnSuccess?.Invoke(this);
 6983        }
 84
 285        public void OnEntityCleanup(ICleanableEventDispatcher source) { Unload(); }
 86
 87        public override void Unload()
 88        {
 7189            if ( loadHelper.loadedAsset != null )
 90            {
 6491                DataStore.i.sceneWorldObjects.RemoveRendereable(entity, loadHelper.loadedAsset);
 92            }
 93
 7194            loadHelper.Unload();
 7195            this.entity.OnCleanupEvent -= OnEntityCleanup;
 7196            loadHelper.OnSuccessEvent -= successWrapperEvent;
 7197            loadHelper.OnFailEvent -= failWrapperEvent;
 7198            alreadyLoaded = false;
 7199        }
 100
 0101        public override string ToString() { return $"LoadWrapper ... {loadHelper.ToString()}"; }
 102    }
 103}