< 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:164
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.583060%
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
 5217    public static AssetCatalogBridge i { get; internal set; }
 18
 19    private SceneAssetPackDictionary sceneAssetPackCatalogValue;
 20
 21    public SceneAssetPackDictionary sceneAssetPackCatalog
 22    {
 23        get
 24        {
 5625            if (sceneAssetPackCatalogValue == null)
 26            {
 1927                sceneAssetPackCatalogValue = Resources.Load<SceneAssetPackDictionary>("SceneAssetPackCatalog");
 28            }
 29
 5630            return sceneAssetPackCatalogValue;
 31        }
 32    }
 33
 34    private SceneObjectDictionary sceneObjectCatalogValue;
 35
 36    public SceneObjectDictionary sceneObjectCatalog
 37    {
 38        get
 39        {
 6340            if (sceneObjectCatalogValue == null)
 41            {
 1942                sceneObjectCatalogValue = Resources.Load<SceneObjectDictionary>("SceneObjectCatalog");
 43            }
 44
 6345            return sceneObjectCatalogValue;
 46        }
 47    }
 48
 4049    public void Awake() { i = this; }
 50
 51    public ContentProvider GetContentProviderForAssetIdInSceneObjectCatalog(string assetId)
 52    {
 253        if (sceneObjectCatalogValue.TryGetValue(assetId, out SceneObject sceneObject))
 254            return CreateContentProviderForSceneObject(sceneObject);
 55
 056        return null;
 57    }
 58
 59    ContentProvider CreateContentProviderForSceneObject(SceneObject sceneObject)
 60    {
 261        ContentProvider contentProvider = new ContentProvider();
 262        contentProvider.baseUrl = BIWUrlUtils.GetUrlSceneObjectContent();
 863        foreach (KeyValuePair<string, string> content in sceneObject.contents)
 64        {
 265            ContentServerUtils.MappingPair mappingPair = new ContentServerUtils.MappingPair();
 266            mappingPair.file = content.Key;
 267            mappingPair.hash = content.Value;
 268            contentProvider.contents.Add(mappingPair);
 69        }
 70
 271        contentProvider.BakeHashes();
 272        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    {
 1684        JObject jObject = (JObject)JsonConvert.DeserializeObject(payload);
 1685        if (jObject["ok"].ToObject<bool>())
 86        {
 1687            JArray array = JArray.Parse(jObject["data"].ToString());
 88
 6489            foreach (JObject item in array)
 90            {
 1691                i.AddSceneAssetPackToCatalog(item);
 92            }
 93        }
 1694    }
 95
 96    public void ClearCatalog()
 97    {
 2398        sceneObjectCatalog.Clear();
 2399        sceneAssetPackCatalog.Clear();
 23100    }
 101
 102    public void AddSceneObjectToCatalog(SceneObject sceneObject)
 103    {
 18104        if (sceneObjectCatalog.ContainsKey(sceneObject.id))
 0105            return;
 106
 18107        sceneObjectCatalog.Add(sceneObject.id, sceneObject);
 18108        OnItemAdded?.Invoke(sceneObject);
 16109    }
 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);
 0139    }
 140
 141    public void AddSceneAssetPackToCatalog(SceneAssetPack sceneAssetPack)
 142    {
 17143        if (sceneAssetPackCatalog.ContainsKey(sceneAssetPack.id))
 1144            return;
 145
 68146        foreach (SceneObject sceneObject in sceneAssetPack.assets)
 147        {
 18148            AddSceneObjectToCatalog(sceneObject);
 149        }
 150
 16151        sceneAssetPackCatalog.Add(sceneAssetPack.id, sceneAssetPack);
 16152        OnSceneAssetPackAdded?.Invoke(sceneAssetPack);
 15153    }
 154
 155    public SceneAssetPack AddSceneAssetPackToCatalog(JObject payload)
 156    {
 16157        if (VERBOSE)
 0158            Debug.Log("add sceneAssetPack: " + payload);
 159
 16160        SceneAssetPack sceneAssetPack = JsonConvert.DeserializeObject<SceneAssetPack>(payload.ToString());
 16161        AddSceneAssetPackToCatalog(sceneAssetPack);
 16162        return sceneAssetPack;
 163    }
 164}