コード例 #1
0
        public AssetBrowserViewModel(string rootPath, Framework framework)
        {
            var rootFolder = new AssetFolder(rootPath, framework, this.thumbnailMgr);
            AssetFolders = new List<AssetFolder>(1) { rootFolder };

            ShownAssets = new ObservableCollection<Asset>();
            AssetFolders.ForEach((f) => AddToShownAssets(f));

            // Type filters
            AssetTypeFilters = framework.AssetManager.AllAssetTypes
                .Select((type) => new AssetTypeFilter() { Type = type, Name = type.Name, IsChecked = false }).ToList();
            AssetTypeFilters.Insert(0, new AssetTypeFilter() { Name = "All", IsChecked = true });
            AssetTypeFilters.ForEach((f) => f.PropertyChanged += (o, e) =>
                {
                    if (e.PropertyName == "IsChecked")
                    {
                        AssetTypeFilter filter = o as AssetTypeFilter;
                        if (filter.Name == "All" && filter.IsChecked == true)
                        {
                            AssetTypeFilters.Where((f2) => f2.Name != "All").ToList()
                                            .ForEach((f3) => f3.IsChecked = false);
                        }
                        else if (filter.Name != "All" && filter.IsChecked == true)
                        {
                            AssetTypeFilters.Find((f2) => f2.Name == "All").IsChecked = false;
                        }

                        UpdateShownAssetsView();
                    }
                });

            // Register all assets to service (for global access)
            AssetService.SetAssetFolders(AssetFolders);
        }
コード例 #2
0
ファイル: AssetService.cs プロジェクト: HaKDMoDz/Irelia
 private static void CategorizeAssets(AssetFolder assetFolder)
 {
     assetFolder.Assets.ForEach((asset) =>
         {
             if (asset as TextureAsset != null)
                 TextureAssets.Add(asset as TextureAsset);
             else if (asset as ShaderAsset != null)
                 ShaderAssets.Add(asset as ShaderAsset);
             else if (asset as FontAsset != null)
                 FontAssets.Add(asset as FontAsset);
         });
     assetFolder.ChildFolders.ForEach((af) => CategorizeAssets(af));
 }
コード例 #3
0
ファイル: AssetFolderTest.cs プロジェクト: HaKDMoDz/Irelia
        public void AssetFolder_Constructor_Test()
        {
            var folder = new AssetFolder(Path.Combine(RenderSettings.MediaPath, @"Test"), Framework, new ThumbnailManagerMock());

            Assert.IsTrue(folder.FullPath.EndsWith(@"Test"));
            Assert.AreEqual("Test", folder.Name);
            Assert.AreEqual(1, folder.ChildFolders.Count);
            Assert.IsTrue(folder.Assets.Count > 0);
            Assert.AreEqual(0, folder.Assets.Count((a) => a.Name == @"Test\Dummy.xxx"));
            Assert.AreEqual(1, folder.Assets.Count((a) => a.Name == @"Test\explosion_30_128.tga"));

            var subFolder = folder.ChildFolders[0];
            Assert.AreEqual("SubFolder", subFolder.Name);
            Assert.AreEqual(0, subFolder.ChildFolders.Count);
            Assert.AreEqual(1, subFolder.Assets.Count);
            Assert.AreEqual(@"Test\SubFolder\mountains_back.jpg", subFolder.Assets[0].Name);
        }
コード例 #4
0
        public void SelectFolder(AssetFolder folder, bool clear)
        {
            if (clear)
            {
                this.selectedFolders.ForEach((f) => f.IsSelected = false);
                this.selectedFolders.Clear();
            }

            folder.IsSelected = true;
            this.selectedFolders.Add(folder);

            ShownAssets.Clear();
            this.selectedFolders.ForEach((f) => AddToShownAssets(f));
        }
コード例 #5
0
 private void AddToShownAssets(AssetFolder folder)
 {
     folder.Assets.ForEach((asset) =>
     {
         if (ShownAssets.Contains(asset) == false)
             ShownAssets.Add(asset);
     });
     folder.ChildFolders.ForEach((f) => AddToShownAssets(f));
 }