< Summary

Class:AssetCatalogBridge
Assembly:SceneAssets
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Models/SceneAssets/AssetCatalogBridge.cs
Covered lines:50
Uncovered lines:13
Coverable lines:63
Total lines:164
Line coverage:79.3% (50 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
 1617    public static AssetCatalogBridge i { get; internal set; }
 18
 19    private SceneAssetPackDictionary sceneAssetPackCatalogValue;
 20
 21    public SceneAssetPackDictionary sceneAssetPackCatalog
 22    {
 23        get
 24        {
 10925            if (sceneAssetPackCatalogValue == null)
 26            {
 3627                sceneAssetPackCatalogValue = Resources.Load<SceneAssetPackDictionary>("SceneAssetPackCatalog");
 28            }
 29
 10930            return sceneAssetPackCatalogValue;
 31        }
 32    }
 33
 34    private SceneObjectDictionary sceneObjectCatalogValue;
 35
 36    public SceneObjectDictionary sceneObjectCatalog
 37    {
 38        get
 39        {
 12640            if (sceneObjectCatalogValue == null)
 41            {
 3642                sceneObjectCatalogValue = Resources.Load<SceneObjectDictionary>("SceneObjectCatalog");
 43            }
 44
 12645            return sceneObjectCatalogValue;
 46        }
 47    }
 48
 9649    public void Awake() { i = this; }
 50
 51    public ContentProvider GetContentProviderForAssetIdInSceneObjectCatalog(string assetId)
 52    {
 1753        if (sceneObjectCatalogValue.TryGetValue(assetId, out SceneObject sceneObject))
 1754            return CreateContentProviderForSceneObject(sceneObject);
 55
 056        return null;
 57    }
 58
 59    ContentProvider CreateContentProviderForSceneObject(SceneObject sceneObject)
 60    {
 1761        ContentProvider contentProvider = new ContentProvider();
 1762        contentProvider.baseUrl = BIWUrlUtils.GetUrlSceneObjectContent();
 9663        foreach (KeyValuePair<string, string> content in sceneObject.contents)
 64        {
 3165            ContentServerUtils.MappingPair mappingPair = new ContentServerUtils.MappingPair();
 3166            mappingPair.file = content.Key;
 3167            mappingPair.hash = content.Value;
 3168            contentProvider.contents.Add(mappingPair);
 69        }
 70
 1771        contentProvider.BakeHashes();
 1772        return contentProvider;
 73    }
 74
 75    public SceneObject GetSceneObjectById(string assetId)
 76    {
 077        if (sceneObjectCatalogValue.TryGetValue(assetId, out SceneObject sceneObject))
 078            return sceneObject;
 079        return null;
 80    }
 81
 82    public void AddFullSceneObjectCatalog(string payload)
 83    {
 3284        JObject jObject = (JObject)JsonConvert.DeserializeObject(payload);
 3285        if (jObject["ok"].ToObject<bool>())
 86        {
 3287            JArray array = JArray.Parse(jObject["data"].ToString());
 88
 12889            foreach (JObject item in array)
 90            {
 3291                i.AddSceneAssetPackToCatalog(item);
 92            }
 93        }
 3294    }
 95
 96    public void ClearCatalog()
 97    {
 4498        sceneObjectCatalog.Clear();
 4499        sceneAssetPackCatalog.Clear();
 44100    }
 101
 102    public void AddSceneObjectToCatalog(SceneObject sceneObject)
 103    {
 39104        if (sceneObjectCatalog.ContainsKey(sceneObject.id))
 0105            return;
 106
 39107        sceneObjectCatalog.Add(sceneObject.id, sceneObject);
 39108        OnItemAdded?.Invoke(sceneObject);
 39109    }
 110
 111    public void RemoveSceneObjectToSceneCatalog(string sceneObjectId)
 112    {
 0113        if (!sceneObjectCatalog.ContainsKey(sceneObjectId))
 0114            return;
 115
 0116        sceneObjectCatalog.Remove(sceneObjectId);
 0117    }
 118
 119    public void AddScenesObjectToSceneCatalog(string payload)
 120    {
 0121        AddScenesObjectToSceneCatalog(JsonConvert.DeserializeObject<SceneObject[]>(payload));
 0122    }
 123
 124    public void AddScenesObjectToSceneCatalog(SceneObject[] sceneObjects)
 125    {
 4126        foreach (var sceneObject in sceneObjects)
 127        {
 1128            AddSceneObjectToSceneCatalog(sceneObject);
 129        }
 1130    }
 131
 132    public void AddSceneObjectToSceneCatalog(SceneObject sceneObject)
 133    {
 1134        if (sceneObjectCatalog.ContainsKey(sceneObject.id))
 0135            return;
 136
 1137        sceneObjectCatalog.Add(sceneObject.id, sceneObject);
 1138        OnSceneCatalogItemAdded?.Invoke(sceneObject);
 1139    }
 140
 141    public void AddSceneAssetPackToCatalog(SceneAssetPack sceneAssetPack)
 142    {
 33143        if (sceneAssetPackCatalog.ContainsKey(sceneAssetPack.id))
 1144            return;
 145
 142146        foreach (SceneObject sceneObject in sceneAssetPack.assets)
 147        {
 39148            AddSceneObjectToCatalog(sceneObject);
 149        }
 150
 32151        sceneAssetPackCatalog.Add(sceneAssetPack.id, sceneAssetPack);
 32152        OnSceneAssetPackAdded?.Invoke(sceneAssetPack);
 32153    }
 154
 155    public SceneAssetPack AddSceneAssetPackToCatalog(JObject payload)
 156    {
 32157        if (VERBOSE)
 0158            Debug.Log("add sceneAssetPack: " + payload);
 159
 32160        SceneAssetPack sceneAssetPack = JsonConvert.DeserializeObject<SceneAssetPack>(payload.ToString());
 32161        AddSceneAssetPackToCatalog(sceneAssetPack);
 32162        return sceneAssetPack;
 163    }
 164}