< Summary

Class:AssetCatalogBridge
Assembly:SceneAssets
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Models/SceneAssets/AssetCatalogBridge.cs
Covered lines:49
Uncovered lines:14
Coverable lines:63
Total lines:163
Line coverage:77.7% (49 of 63)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Awake()0%110100%
GetContentProviderForAssetIdInSceneObjectCatalog(...)0%2.152066.67%
CreateContentProviderForSceneObject(...)0%220100%
GetSceneObjectById(...)0%6200%
AddFullSceneObjectCatalog(...)0%440100%
ClearCatalog()0%110100%
AddSceneObjectToCatalog(...)0%3.073080%
RemoveSceneObjectToSceneCatalog(...)0%6200%
AddScenesObjectToSceneCatalog(...)0%2100%
AddScenesObjectToSceneCatalog(...)0%220100%
AddSceneObjectToSceneCatalog(...)0%3.073080%
AddSceneAssetPackToCatalog(...)0%440100%
AddSceneAssetPackToCatalog(...)0%4.134080%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Models/SceneAssets/AssetCatalogBridge.cs

#LineLine coverage
 1using DCL;
 2using DCL.Configuration;
 3using Newtonsoft.Json;
 4using Newtonsoft.Json.Linq;
 5using System.Collections;
 6using System.Collections.Generic;
 7using UnityEngine;
 8
 9public class AssetCatalogBridge : MonoBehaviour
 10{
 11    public static bool VERBOSE = false;
 12
 13    public static System.Action<SceneObject> OnItemAdded;
 14    public static System.Action<SceneObject> OnSceneCatalogItemAdded;
 15    public static System.Action<SceneAssetPack> OnSceneAssetPackAdded;
 16
 017    public static AssetCatalogBridge i { get; internal set; }
 18
 19    private SceneAssetPackDictionary sceneAssetPackCatalogValue;
 20    public SceneAssetPackDictionary sceneAssetPackCatalog
 21    {
 22        get
 23        {
 16524            if (sceneAssetPackCatalogValue == null)
 25            {
 3326                sceneAssetPackCatalogValue = Resources.Load<SceneAssetPackDictionary>("SceneAssetPackCatalog");
 27            }
 28
 16529            return sceneAssetPackCatalogValue;
 30        }
 31    }
 32
 33    private SceneObjectDictionary sceneObjectCatalogValue;
 34    public SceneObjectDictionary sceneObjectCatalog
 35    {
 36        get
 37        {
 18238            if (sceneObjectCatalogValue == null)
 39            {
 3340                sceneObjectCatalogValue = Resources.Load<SceneObjectDictionary>("SceneObjectCatalog");
 41            }
 42
 18243            return sceneObjectCatalogValue;
 44        }
 45    }
 46
 29847    public void Awake() { i = this; }
 48
 49    public ContentProvider GetContentProviderForAssetIdInSceneObjectCatalog(string assetId)
 50    {
 1751        if (sceneObjectCatalogValue.TryGetValue(assetId, out SceneObject sceneObject))
 1752            return CreateContentProviderForSceneObject(sceneObject);
 53
 054        return null;
 55    }
 56
 57    ContentProvider CreateContentProviderForSceneObject(SceneObject sceneObject)
 58    {
 1759        ContentProvider contentProvider = new ContentProvider();
 1760        contentProvider.baseUrl = BIWUrlUtils.GetUrlSceneObjectContent();
 9661        foreach (KeyValuePair<string, string> content in sceneObject.contents)
 62        {
 3163            ContentServerUtils.MappingPair mappingPair = new ContentServerUtils.MappingPair();
 3164            mappingPair.file = content.Key;
 3165            mappingPair.hash = content.Value;
 3166            contentProvider.contents.Add(mappingPair);
 67        }
 68
 1769        contentProvider.BakeHashes();
 1770        return contentProvider;
 71    }
 72
 73    public SceneObject GetSceneObjectById(string assetId)
 74    {
 075        if (sceneObjectCatalogValue.TryGetValue(assetId, out SceneObject sceneObject))
 076            return sceneObject;
 077        return null;
 78    }
 79
 80    public void AddFullSceneObjectCatalog(string payload)
 81    {
 3282        JObject jObject = (JObject)JsonConvert.DeserializeObject(payload);
 3283        if (jObject["ok"].ToObject<bool>())
 84        {
 85
 3286            JArray array = JArray.Parse(jObject["data"].ToString());
 87
 12888            foreach (JObject item in array)
 89            {
 3290                i.AddSceneAssetPackToCatalog(item);
 91            }
 92        }
 3293    }
 94
 95    public void ClearCatalog()
 96    {
 10097        sceneObjectCatalog.Clear();
 10098        sceneAssetPackCatalog.Clear();
 10099    }
 100
 101    public void AddSceneObjectToCatalog(SceneObject sceneObject)
 102    {
 39103        if (sceneObjectCatalog.ContainsKey(sceneObject.id))
 0104            return;
 105
 39106        sceneObjectCatalog.Add(sceneObject.id, sceneObject);
 39107        OnItemAdded?.Invoke(sceneObject);
 39108    }
 109
 110    public void RemoveSceneObjectToSceneCatalog(string sceneObjectId)
 111    {
 0112        if (!sceneObjectCatalog.ContainsKey(sceneObjectId))
 0113            return;
 114
 0115        sceneObjectCatalog.Remove(sceneObjectId);
 0116    }
 117
 118    public void AddScenesObjectToSceneCatalog(string payload)
 119    {
 0120        AddScenesObjectToSceneCatalog(JsonConvert.DeserializeObject<SceneObject[]>(payload));
 0121    }
 122
 123    public void AddScenesObjectToSceneCatalog(SceneObject[] sceneObjects)
 124    {
 4125        foreach (var sceneObject in sceneObjects)
 126        {
 1127            AddSceneObjectToSceneCatalog(sceneObject);
 128        }
 1129    }
 130
 131    public void AddSceneObjectToSceneCatalog(SceneObject sceneObject)
 132    {
 1133        if (sceneObjectCatalog.ContainsKey(sceneObject.id))
 0134            return;
 135
 1136        sceneObjectCatalog.Add(sceneObject.id, sceneObject);
 1137        OnSceneCatalogItemAdded?.Invoke(sceneObject);
 1138    }
 139
 140    public void AddSceneAssetPackToCatalog(SceneAssetPack sceneAssetPack)
 141    {
 33142        if (sceneAssetPackCatalog.ContainsKey(sceneAssetPack.id))
 1143            return;
 144
 142145        foreach (SceneObject sceneObject in sceneAssetPack.assets)
 146        {
 39147            AddSceneObjectToCatalog(sceneObject);
 148        }
 149
 32150        sceneAssetPackCatalog.Add(sceneAssetPack.id, sceneAssetPack);
 32151        OnSceneAssetPackAdded?.Invoke(sceneAssetPack);
 32152    }
 153
 154    public SceneAssetPack AddSceneAssetPackToCatalog(JObject payload)
 155    {
 32156        if (VERBOSE)
 0157            Debug.Log("add sceneAssetPack: " + payload);
 158
 32159        SceneAssetPack sceneAssetPack = JsonConvert.DeserializeObject<SceneAssetPack>(payload.ToString());
 32160        AddSceneAssetPackToCatalog(sceneAssetPack);
 32161        return sceneAssetPack;
 162    }
 163}