< Summary

Class:AssetCatalogBridge
Assembly:SceneAssets
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Models/SceneAssets/AssetCatalogBridge.cs
Covered lines:27
Uncovered lines:36
Coverable lines:63
Total lines:164
Line coverage:42.8% (27 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%20400%
ClearCatalog()0%2100%
AddSceneObjectToCatalog(...)0%3.583060%
RemoveSceneObjectToSceneCatalog(...)0%6200%
AddScenesObjectToSceneCatalog(...)0%2100%
AddScenesObjectToSceneCatalog(...)0%6200%
AddSceneObjectToSceneCatalog(...)0%12300%
AddSceneAssetPackToCatalog(...)0%4.184077.78%
AddSceneAssetPackToCatalog(...)0%20400%

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
 317    public static AssetCatalogBridge i { get; internal set; }
 18
 19    private SceneAssetPackDictionary sceneAssetPackCatalogValue;
 20
 21    public SceneAssetPackDictionary sceneAssetPackCatalog
 22    {
 23        get
 24        {
 225            if (sceneAssetPackCatalogValue == null)
 26            {
 127                sceneAssetPackCatalogValue = Resources.Load<SceneAssetPackDictionary>("SceneAssetPackCatalog");
 28            }
 29
 230            return sceneAssetPackCatalogValue;
 31        }
 32    }
 33
 34    private SceneObjectDictionary sceneObjectCatalogValue;
 35
 36    public SceneObjectDictionary sceneObjectCatalog
 37    {
 38        get
 39        {
 240            if (sceneObjectCatalogValue == null)
 41            {
 142                sceneObjectCatalogValue = Resources.Load<SceneObjectDictionary>("SceneObjectCatalog");
 43            }
 44
 245            return sceneObjectCatalogValue;
 46        }
 47    }
 48
 249    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 = SceneEndpoints.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    {
 084        JObject jObject = (JObject)JsonConvert.DeserializeObject(payload);
 085        if (jObject["ok"].ToObject<bool>())
 86        {
 087            JArray array = JArray.Parse(jObject["data"].ToString());
 88
 089            foreach (JObject item in array)
 90            {
 091                i.AddSceneAssetPackToCatalog(item);
 92            }
 93        }
 094    }
 95
 96    public void ClearCatalog()
 97    {
 098        sceneObjectCatalog.Clear();
 099        sceneAssetPackCatalog.Clear();
 0100    }
 101
 102    public void AddSceneObjectToCatalog(SceneObject sceneObject)
 103    {
 1104        if (sceneObjectCatalog.ContainsKey(sceneObject.id))
 0105            return;
 106
 1107        sceneObjectCatalog.Add(sceneObject.id, sceneObject);
 1108        OnItemAdded?.Invoke(sceneObject);
 0109    }
 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    {
 0126        foreach (var sceneObject in sceneObjects)
 127        {
 0128            AddSceneObjectToSceneCatalog(sceneObject);
 129        }
 0130    }
 131
 132    public void AddSceneObjectToSceneCatalog(SceneObject sceneObject)
 133    {
 0134        if (sceneObjectCatalog.ContainsKey(sceneObject.id))
 0135            return;
 136
 0137        sceneObjectCatalog.Add(sceneObject.id, sceneObject);
 0138        OnSceneCatalogItemAdded?.Invoke(sceneObject);
 0139    }
 140
 141    public void AddSceneAssetPackToCatalog(SceneAssetPack sceneAssetPack)
 142    {
 1143        if (sceneAssetPackCatalog.ContainsKey(sceneAssetPack.id))
 0144            return;
 145
 4146        foreach (SceneObject sceneObject in sceneAssetPack.assets)
 147        {
 1148            AddSceneObjectToCatalog(sceneObject);
 149        }
 150
 1151        sceneAssetPackCatalog.Add(sceneAssetPack.id, sceneAssetPack);
 1152        OnSceneAssetPackAdded?.Invoke(sceneAssetPack);
 0153    }
 154
 155    public SceneAssetPack AddSceneAssetPackToCatalog(JObject payload)
 156    {
 0157        if (VERBOSE)
 0158            Debug.Log("add sceneAssetPack: " + payload);
 159
 0160        SceneAssetPack sceneAssetPack = JsonConvert.DeserializeObject<SceneAssetPack>(payload.ToString());
 0161        AddSceneAssetPackToCatalog(sceneAssetPack);
 0162        return sceneAssetPack;
 163    }
 164}