void SetAssetPackInListView(SceneAssetPack sceneAssetPack)
    {
        catalogTitleTxt.text = sceneAssetPack.title;
        Dictionary <string, List <SceneObject> > groupedSceneObjects = new Dictionary <string, List <SceneObject> >();


        foreach (SceneObject sceneObject in sceneAssetPack.assets)
        {
            string titleToUse = sceneObject.category;
            if (!isFilterByAssetPacks)
            {
                titleToUse = sceneObject.titleToShow;
            }

            if (!groupedSceneObjects.ContainsKey(titleToUse))
            {
                groupedSceneObjects.Add(titleToUse, GetAssetsListByCategory(titleToUse, sceneAssetPack, isFilterByAssetPacks));
            }
        }

        List <Dictionary <string, List <SceneObject> > > contentList = new List <Dictionary <string, List <SceneObject> > >
        {
            groupedSceneObjects
        };

        catalogGroupListView.SetContent(contentList);
    }
    SceneAssetPack GetCollectiblesAssetPack()
    {
        SceneAssetPack sceneAssetPack = new SceneAssetPack();

        sceneAssetPack.id    = BuilderInWorldSettings.ASSETS_COLLECTIBLES;
        sceneAssetPack.title = BuilderInWorldSettings.ASSETS_COLLECTIBLES;

        sceneAssetPack.assets = BuilderInWorldNFTController.i.GetNFTsAsSceneObjects();
        return(sceneAssetPack);
    }
예제 #3
0
    public void AddSceneAssetPackToCatalog(JObject payload)
    {
        if (VERBOSE)
        {
            Debug.Log("add sceneAssetPack: " + payload);
        }

        SceneAssetPack sceneAssetPack = JsonConvert.DeserializeObject <SceneAssetPack>(payload.ToString());

        AddSceneAssetPackToCatalog(sceneAssetPack);
    }
예제 #4
0
    public static void AddSceneAssetPack(SceneAssetPack sceneAssetPack)
    {
        if (DataStore.i.builderInWorld.catalogItemPackDict.ContainsKey(sceneAssetPack.id))
        {
            return;
        }

        CatalogItemPack catalogItemPack = CreateCatalogItemPack(sceneAssetPack);

        DataStore.i.builderInWorld.catalogItemPackDict.Add(catalogItemPack.id, catalogItemPack);
    }
예제 #5
0
    public void AddSceneAssetPackToCatalog(SceneAssetPack sceneAssetPack)
    {
        if (sceneAssetPackCatalog.ContainsKey(sceneAssetPack.id))
        {
            return;
        }

        foreach (SceneObject sceneObject in sceneAssetPack.assets)
        {
            AddSceneObjectToCatalog(sceneObject);
        }

        sceneAssetPackCatalog.Add(sceneAssetPack.id, sceneAssetPack);
        OnSceneAssetPackAdded?.Invoke(sceneAssetPack);
    }
예제 #6
0
    public static void AddSceneAssetPack(SceneAssetPack sceneAssetPack)
    {
        if (DataStore.i.builderInWorld.catalogItemPackDict.ContainsKey(sceneAssetPack.id))
        {
            return;
        }

        CatalogItemPack catalogItemPack = CreateCatalogItemPack(sceneAssetPack);

        //TODO: SmartItems disabled until kernel has them implemented
        if (catalogItemPack.assets.Count != 0)
        {
            DataStore.i.builderInWorld.catalogItemPackDict.Add(catalogItemPack.id, catalogItemPack);
        }
    }
    List <SceneObject> GetAssetsListByCategory(string category, SceneAssetPack sceneAssetPack, bool useCategory)
    {
        List <SceneObject> sceneObjectsList = new List <SceneObject>();

        foreach (SceneObject sceneObject in sceneAssetPack.assets)
        {
            if ((category == sceneObject.category && useCategory) ||
                (category == sceneObject.titleToShow && !useCategory))
            {
                sceneObjectsList.Add(sceneObject);
            }
        }

        return(sceneObjectsList);
    }
예제 #8
0
    public void SetContent(SceneAssetPack sceneAssetPack)
    {
        this.sceneAssetPack = sceneAssetPack;
        titleTxt.text       = this.sceneAssetPack.title;

        if (sceneAssetPack.id != BuilderInWorldSettings.ASSETS_COLLECTIBLES)
        {
            GetThumbnail();
        }
        else
        {
            packImg.enabled = true;
            packImg.texture = collectiblesSprite;
        }
    }
예제 #9
0
    public void CustomContentProvider()
    {
        string entityId = "1";

        TestHelpers.CreateSceneEntity(scene, entityId);

        string mockupAssetId = "cdd5a4ea94388dd21babdecd26dd560f739dce2fbb8c99cc10a45bb8306b6076";
        string mockupKey     = "key";
        string mockupValue   = "Value";

        SceneAssetPack sceneAssetPack = new SceneAssetPack();

        sceneAssetPack.assets = new System.Collections.Generic.List <SceneObject>();
        sceneAssetPack.id     = "mockupId";

        SceneObject sceneObject = new SceneObject();

        sceneObject.id       = mockupAssetId;
        sceneObject.contents = new System.Collections.Generic.Dictionary <string, string>();
        sceneObject.contents.Add(mockupKey, mockupValue);

        sceneAssetPack.assets.Add(sceneObject);

        AssetCatalogBridge.AddSceneAssetPackToCatalog(sceneAssetPack);

        TestHelpers.CreateAndSetShape(scene, entityId, DCL.Models.CLASS_ID.GLTF_SHAPE, JsonConvert.SerializeObject(
                                          new
        {
            assetId = mockupAssetId,
            src     = Utils.GetTestsAssetsPath() + "/GLB/Lantern/Lantern.glb"
        }));


        LoadWrapper gltfShape = GLTFShape.GetLoaderForEntity(scene.entities[entityId]);

        if (!(gltfShape is LoadWrapper_GLTF))
        {
            Assert.Fail();
        }


        LoadWrapper_GLTF gltfWrapper           = (LoadWrapper_GLTF)gltfShape;
        ContentProvider  customContentProvider = AssetCatalogBridge.GetContentProviderForAssetIdInSceneObjectCatalog(mockupAssetId);

        Assert.AreEqual(customContentProvider.baseUrl, gltfWrapper.customContentProvider.baseUrl);
        Assert.AreEqual(mockupKey, gltfWrapper.customContentProvider.contents[0].file);
        Assert.AreEqual(mockupValue, gltfWrapper.customContentProvider.contents[0].hash);
    }
    void FilterCategories()
    {
        categoryList = new List <SceneAssetPack>();
        var assetPacks = AssetCatalogBridge.sceneAssetPackCatalog.GetValues().ToList();

        Dictionary <string, SceneAssetPack> assetPackDic = new Dictionary <string, SceneAssetPack>();

        foreach (SceneAssetPack assetPack in assetPacks)
        {
            foreach (SceneObject sceneObject in assetPack.assets)
            {
                if (!assetPackDic.ContainsKey(sceneObject.category))
                {
                    SceneAssetPack categoryAssetPack = new SceneAssetPack();
                    categoryAssetPack.thumbnail = sceneObject.category;
                    categoryAssetPack.title     = sceneObject.category;
                    categoryAssetPack.assets    = new List <SceneObject>();
                    sceneObject.titleToShow     = assetPack.title;
                    categoryAssetPack.assets.Add(sceneObject);

                    if (!string.IsNullOrEmpty(categoryAssetPack.title))
                    {
                        if (categoryAssetPack.title.Length == 1)
                        {
                            categoryAssetPack.title = categoryAssetPack.title.ToUpper();
                        }
                        else
                        {
                            categoryAssetPack.title = char.ToUpper(categoryAssetPack.title[0]) + categoryAssetPack.title.Substring(1);
                        }
                    }

                    assetPackDic.Add(sceneObject.category, categoryAssetPack);
                    continue;
                }
                else
                {
                    sceneObject.titleToShow = assetPack.title;
                    assetPackDic[sceneObject.category].assets.Add(sceneObject);
                }
            }
        }

        categoryList = assetPackDic.Values.ToList();
    }
예제 #11
0
    public static CatalogItemPack CreateCatalogItemPack(SceneAssetPack sceneAssetPack)
    {
        CatalogItemPack catalogItemPack = new CatalogItemPack();

        catalogItemPack.id    = sceneAssetPack.id;
        catalogItemPack.title = sceneAssetPack.title;

        catalogItemPack.assets = new List <CatalogItem>();

        catalogItemPack.SetThumbnailULR(sceneAssetPack.ComposeThumbnailUrl());

        foreach (SceneObject sceneObject in sceneAssetPack.assets)
        {
            catalogItemPack.assets.Add(CreateCatalogItem(sceneObject));
        }

        return(catalogItemPack);
    }
예제 #12
0
    public static CatalogItemPack CreateCatalogItemPack(SceneAssetPack sceneAssetPack)
    {
        CatalogItemPack catalogItemPack = new CatalogItemPack();

        catalogItemPack.id    = sceneAssetPack.id;
        catalogItemPack.title = sceneAssetPack.title;

        catalogItemPack.assets = new List <CatalogItem>();

        catalogItemPack.SetThumbnailULR(sceneAssetPack.ComposeThumbnailUrl());

        foreach (SceneObject sceneObject in sceneAssetPack.assets)
        {
            //TODO: SmartItems disabled until kernel has them implemented
            if (!sceneObject.IsSmartItem())
            {
                catalogItemPack.assets.Add(CreateCatalogItem(sceneObject));
            }
        }

        return(catalogItemPack);
    }
    void OnScenePackSelected(SceneAssetPack sceneAssetPack)
    {
        ShowCatalogContent();

        SetAssetPackInListView(sceneAssetPack);
    }
예제 #14
0
 public static void AddSceneAssetPackToCatalog(SceneAssetPack sceneAssetPack)
 {
     sceneAssetPackCatalog.Add(sceneAssetPack.id, sceneAssetPack);
 }