4 using System.Collections.Generic;
6 using SiliconStudio.Assets.Analysis;
7 using SiliconStudio.Core.Diagnostics;
8 using SiliconStudio.Core.IO;
10 namespace SiliconStudio.Assets
25 var packages = session.CurrentPackage != null ? session.GetPackagesFromCurrent() : session.
Packages;
26 return packages.Select(packageItem => packageItem.Assets.Find(location)).FirstOrDefault(asset => asset != null);
37 return session.Packages.Select(packageItem => packageItem.Assets.Find(assetId)).FirstOrDefault(asset => asset != null);
46 if (originalAssetItem == null)
throw new ArgumentNullException(
"originalAssetItem");
49 var assetItem = session.FindAsset(originalAssetItem.Id);
50 if (assetItem == null)
52 throw new ArgumentException(
"Cannot find the specified AssetItem instance in the session");
56 var dependencies = session.DependencyManager.ComputeDependencies(assetItem, AssetDependencySearchOptions.Out | AssetDependencySearchOptions.Recursive);
57 var assetItemRootCloned = dependencies.Item.Clone();
60 assetItemRootCloned.SourceFolder = assetItem.FullPath.GetParent();
63 var assetPackageCloned =
new Package();
64 var compilePackageSession =
new PackageSession(assetPackageCloned);
66 assetPackageCloned.Assets.Add(assetItemRootCloned);
69 foreach (var item
in dependencies)
72 if (assetPackageCloned.Assets.Find(item.Id) == null)
75 var assetItemCloned = item.Clone();
78 assetItemCloned.SourceFolder = item.FullPath.GetParent();
79 assetPackageCloned.Assets.Add(assetItemCloned);
83 return compilePackageSession;
PackageCollection Packages
Gets the packages.
An asset item part of a Package accessible through SiliconStudio.Assets.Package.Assets.
static AssetItem FindAsset(this PackageSession session, UFile location)
Finds an asset from all the packages by its location.
A session for editing a package.
Extension methods for PackageSession.
A package managing assets.
static PackageSession CreateCompilePackageFromAsset(this PackageSession session, AssetItem originalAssetItem)
Create a PackageSession that can be used to compile an AssetItem by analyzing and resolving its depen...
static AssetItem FindAsset(this PackageSession session, Guid assetId)
Finds an asset from all the packages by its id.
Defines a normalized file path. See UPath for details. This class cannot be inherited.