< Summary

Class:DCL.Components.LoadWrapper_OBJ
Assembly:MainScripts
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/LoadableShapes/LoadWrapper/LoadWrapper_OBJ.cs
Covered lines:23
Uncovered lines:3
Coverable lines:26
Total lines:63
Line coverage:88.4% (23 of 26)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Unload()0%110100%
Load(...)0%4.24076.92%
SuccessWrapper()0%220100%
CallOnComponentUpdated()0%330100%

File(s)

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

#LineLine coverage
 1using DCL.Helpers;
 2using UnityEngine;
 3
 4namespace DCL.Components
 5{
 6    public class LoadWrapper_OBJ : LoadWrapper
 7    {
 8        DynamicOBJLoaderController objLoaderComponent;
 9        System.Action<LoadWrapper> OnSuccessEvent;
 10
 11        public override void Unload()
 12        {
 113            objLoaderComponent.OnFinishedLoadingAsset -= SuccessWrapper;
 114            Object.Destroy(objLoaderComponent);
 115            entity.Cleanup();
 116        }
 17
 18        public override void Load(string src, System.Action<LoadWrapper> OnSuccess, System.Action<LoadWrapper> OnFail)
 19        {
 120            if (string.IsNullOrEmpty(src))
 021                return;
 22
 123            if (objLoaderComponent == null)
 124                objLoaderComponent = entity.meshRootGameObject.GetOrCreateComponent<DynamicOBJLoaderController>();
 25
 126            objLoaderComponent.OnFinishedLoadingAsset += SuccessWrapper;
 127            OnSuccessEvent = OnSuccess;
 28
 129            alreadyLoaded = false;
 130            objLoaderComponent.LoadAsset(src, true);
 31
 132            if (objLoaderComponent.loadingPlaceholder == null)
 33            {
 134                objLoaderComponent.loadingPlaceholder =
 35                    Helpers.Utils.AttachPlaceholderRendererGameObject(entity.gameObject.transform);
 136            }
 37            else
 38            {
 039                objLoaderComponent.loadingPlaceholder.SetActive(true);
 40            }
 041        }
 42
 43        void SuccessWrapper()
 44        {
 145            CallOnComponentUpdated();
 146            OnSuccessEvent?.Invoke(this);
 147        }
 48
 49        void CallOnComponentUpdated()
 50        {
 151            alreadyLoaded = true;
 52
 153            if (entity.OnShapeUpdated != null)
 54            {
 155                entity.OnShapeUpdated.Invoke(entity);
 56            }
 157            entity.OnShapeLoaded?.Invoke(entity);
 58
 159            CollidersManager.i.ConfigureColliders(entity);
 160        }
 61
 62    }
 63}