Stride

OPEN / CLOSE
  • Features
  • Blog
  • Documentation
  • Community
(icon) Download

  • Discord
  • Facebook
  • Twitter
  • YouTube

LANGUAGE

OPEN / CLOSE
  • English
  • 日本語
    Show / Hide Table of Contents

    Package Class

    Namespace: Stride.Core.Assets
    Assembly: Stride.Core.Assets.dll

    A package managing assets.

    System.Object → Package
    Derived from Package:

    [DataContract("Package")]
    [AssetDescription(".sdpkg")]
    [AssetFormatVersion("Assets", "3.1.0.0", "0.0.0.4")]
    [AssetUpgrader("Assets", "0.0.0.4", "3.1.0.0", typeof(Package.MovePackageInsideProject))]
    public sealed class Package : IFileSynchronizable, IAssetFinder
    Name Description
    Constructors
    Package()

    Initializes a new instance of the Package class.

    Fields
    PackageFileExtension

    The file extension used for Package.

    Properties
    AssetFolders

    Gets the asset directories to lookup.

    Assets

    Gets the assets stored in this package.

    Bundles

    Gets the bundles defined for this package.

    Container
    ExplicitFolders

    Gets or sets the list of folders that are explicitly created but contains no assets.

    FullPath

    Gets the path to the package file. May be null if the package was not loaded or saved.

    IsDirty

    Gets or sets a value indicating whether this instance has been modified since last saving.

    IsImplicitProject
    IsSystem

    Gets or sets a value indicating whether this package is a system package.

    LoadedAssemblies

    Gets the list of assemblies loaded by this package.

    Meta

    Gets or sets the metadata associated with this package.

    OutputGroupDirectories

    Gets the output group directories.

    ResourceFolders

    Gets the resource directories to lookup.

    RootAssets

    Asset references that needs to be compiled even if not directly or indirectly referenced (useful for explicit code references).

    RootDirectory

    Gets the top directory of this package on the local disk.

    RootNamespace
    SerializedVersion

    Gets or sets the version number for this asset, used internally when migrating assets.

    Session

    Gets the session.

    State
    TemplateFolders

    Gets the template folders.

    Templates

    Gets the loaded templates from the TemplateFolders

    TemporaryAssets

    Gets the temporary assets list loaded from disk before they are going into Assets.

    UserSettings

    Gets the package user settings. Usually stored in a .user file alongside the package. Lazily loaded on first time.

    Methods
    AddExistingProject(UFile)

    Adds an existing project to this package.

    AddExistingProject(UFile, LoggerResult)

    Adds an existing project to this package.

    Clone()

    Deep clone this package.

    FindAsset(AssetId)

    Finds an asset by its identifier.

    FindAsset(UFile)

    Finds an asset by its location.

    FindAssetFromProxyObject(Object)

    Finds an asset from a proxy object.

    FindAssetsInProject(String, out String)
    GetDefaultAssetFolder()
    GetPackageIdFromFile(String)

    Gets the package identifier from file.

    ListAssetFiles(ILogger, Package, Boolean, Boolean, Nullable<CancellationToken>)
    Load(ILogger, String, PackageLoadParameters)

    Loads only the package description but not assets or plugins.

    LoadProject(ILogger, String)
    LoadTemporaryAssets(ILogger, List<PackageLoadingAssetFile>, Nullable<CancellationToken>, Boolean, Func<PackageLoadingAssetFile, Boolean>)

    Refreshes this package from the disk by loading or reloading all assets.

    SaveSingleAsset(AssetItem, ILogger)
    SetPackagePath(UFile, Boolean)

    Sets the package path.

    UpdateAssemblyReferences(ILogger, PackageLoadParameters)

    Loads the assembly references that were not loaded before.

    ValidateAssets(Boolean, Boolean, ILogger)
    Events
    AssetDirtyChanged

    Occurs when an asset dirty changed occurred.

    PackageDirtyChanged

    Occurs when package dirty changed occurred.

    | Improve this Doc View Source

    Constructors


    Package()

    Initializes a new instance of the Package class.

    public Package()
    | Improve this Doc View Source

    Fields


    PackageFileExtension

    The file extension used for Package.

    public const string PackageFileExtension = ".sdpkg"
    Field Value
    Type Description
    System.String
    | Improve this Doc View Source

    Properties


    AssetFolders

    Gets the asset directories to lookup.

    [DataMember(40, DataMemberMode.Assign)]
    public AssetFolderCollection AssetFolders { get; set; }
    Property Value
    Type Description
    AssetFolderCollection

    The asset directories.


    Assets

    Gets the assets stored in this package.

    public PackageAssetCollection Assets { get; }
    Property Value
    Type Description
    PackageAssetCollection

    The assets.


    Bundles

    Gets the bundles defined for this package.

    [DataMember(80)]
    public BundleCollection Bundles { get; }
    Property Value
    Type Description
    BundleCollection

    The bundles.


    Container

    public PackageContainer Container { get; }
    Property Value
    Type Description
    PackageContainer

    ExplicitFolders

    Gets or sets the list of folders that are explicitly created but contains no assets.

    [DataMember(70)]
    public List<UDirectory> ExplicitFolders { get; }
    Property Value
    Type Description
    System.Collections.Generic.List<Stride.Core.IO.UDirectory>

    FullPath

    Gets the path to the package file. May be null if the package was not loaded or saved.

    public UFile FullPath { get; set; }
    Property Value
    Type Description
    Stride.Core.IO.UFile

    The package path.


    IsDirty

    Gets or sets a value indicating whether this instance has been modified since last saving.

    public bool IsDirty { get; set; }
    Property Value
    Type Description
    System.Boolean

    true if this instance is dirty; otherwise, false.


    IsImplicitProject

    public bool IsImplicitProject { get; }
    Property Value
    Type Description
    System.Boolean

    IsSystem

    Gets or sets a value indicating whether this package is a system package.

    public bool IsSystem { get; }
    Property Value
    Type Description
    System.Boolean

    true if this package is a system package; otherwise, false.


    LoadedAssemblies

    Gets the list of assemblies loaded by this package.

    public List<PackageLoadedAssembly> LoadedAssemblies { get; }
    Property Value
    Type Description
    System.Collections.Generic.List<PackageLoadedAssembly>

    The loaded assemblies.


    Meta

    Gets or sets the metadata associated with this package.

    [DataMember(10)]
    public PackageMeta Meta { get; set; }
    Property Value
    Type Description
    PackageMeta

    The meta.


    OutputGroupDirectories

    Gets the output group directories.

    [DataMember(50, DataMemberMode.Assign)]
    public Dictionary<string, UDirectory> OutputGroupDirectories { get; set; }
    Property Value
    Type Description
    System.Collections.Generic.Dictionary<System.String, Stride.Core.IO.UDirectory>

    The output group directories.


    ResourceFolders

    Gets the resource directories to lookup.

    [DataMember(45, DataMemberMode.Assign)]
    public List<UDirectory> ResourceFolders { get; set; }
    Property Value
    Type Description
    System.Collections.Generic.List<Stride.Core.IO.UDirectory>

    The resource directories.


    RootAssets

    Asset references that needs to be compiled even if not directly or indirectly referenced (useful for explicit code references).

    [DataMember(100)]
    public RootAssetCollection RootAssets { get; }
    Property Value
    Type Description
    RootAssetCollection

    RootDirectory

    Gets the top directory of this package on the local disk.

    public UDirectory RootDirectory { get; }
    Property Value
    Type Description
    Stride.Core.IO.UDirectory

    The top directory.


    RootNamespace

    public string RootNamespace { get; }
    Property Value
    Type Description
    System.String

    SerializedVersion

    Gets or sets the version number for this asset, used internally when migrating assets.

    [DataMember(-8000, DataMemberMode.Assign)]
    [DataStyle(DataStyle.Compact)]
    [Display(null, null, Browsable = false)]
    public Dictionary<string, PackageVersion> SerializedVersion { get; set; }
    Property Value
    Type Description
    System.Collections.Generic.Dictionary<System.String, Stride.Core.PackageVersion>

    The version.


    Session

    Gets the session.

    public PackageSession Session { get; }
    Property Value
    Type Description
    PackageSession

    The session.

    Exceptions
    Type Condition
    System.InvalidOperationException

    Cannot attach a package to more than one session


    State

    public PackageState State { get; set; }
    Property Value
    Type Description
    PackageState

    TemplateFolders

    Gets the template folders.

    [DataMember(90)]
    public List<TemplateFolder> TemplateFolders { get; }
    Property Value
    Type Description
    System.Collections.Generic.List<TemplateFolder>

    The template folders.


    Templates

    Gets the loaded templates from the TemplateFolders

    public List<TemplateDescription> Templates { get; }
    Property Value
    Type Description
    System.Collections.Generic.List<TemplateDescription>

    The templates.


    TemporaryAssets

    Gets the temporary assets list loaded from disk before they are going into Assets.

    public List<AssetItem> TemporaryAssets { get; }
    Property Value
    Type Description
    System.Collections.Generic.List<AssetItem>

    The temporary assets.


    UserSettings

    Gets the package user settings. Usually stored in a .user file alongside the package. Lazily loaded on first time.

    public PackageUserSettings UserSettings { get; }
    Property Value
    Type Description
    PackageUserSettings

    The package user settings.

    | Improve this Doc View Source

    Methods


    AddExistingProject(UFile)

    Adds an existing project to this package.

    public LoggerResult AddExistingProject(UFile pathToMsproj)
    Parameters
    Type Name Description
    Stride.Core.IO.UFile pathToMsproj

    The path to msproj.

    Returns
    Type Description
    LoggerResult

    LoggerResult.


    AddExistingProject(UFile, LoggerResult)

    Adds an existing project to this package.

    public void AddExistingProject(UFile pathToMsproj, LoggerResult logger)
    Parameters
    Type Name Description
    Stride.Core.IO.UFile pathToMsproj

    The path to msproj.

    LoggerResult logger

    The logger.


    Clone()

    Deep clone this package.

    public Package Clone()
    Returns
    Type Description
    Package

    The package cloned.


    FindAsset(AssetId)

    Finds an asset by its identifier.

    public AssetItem FindAsset(AssetId assetId)
    Parameters
    Type Name Description
    AssetId assetId

    The identifier of the asset.

    Returns
    Type Description
    AssetItem

    The corresponding AssetItem if found; otherwise, null.

    Remarks

    Looks for the asset amongst the current package and its dependencies.


    FindAsset(UFile)

    Finds an asset by its location.

    public AssetItem FindAsset(UFile location)
    Parameters
    Type Name Description
    Stride.Core.IO.UFile location

    The location of the asset.

    Returns
    Type Description
    AssetItem

    The corresponding AssetItem if found; otherwise, null.

    Remarks

    Looks for the asset amongst the current package and its dependencies.


    FindAssetFromProxyObject(Object)

    Finds an asset from a proxy object.

    public AssetItem FindAssetFromProxyObject(object proxyObject)
    Parameters
    Type Name Description
    System.Object proxyObject

    The proxy object which is represent the targeted asset.

    Returns
    Type Description
    AssetItem

    The corresponding AssetItem if found; otherwise, null.

    Remarks

    Looks for the asset amongst the current package and its dependencies.


    FindAssetsInProject(String, out String)

    public static List<(UFile FilePath, UFile Link)> FindAssetsInProject(string projectFullPath, out string nameSpace)
    Parameters
    Type Name Description
    System.String projectFullPath
    System.String nameSpace
    Returns
    Type Description
    System.Collections.Generic.List<System.ValueTuple<Stride.Core.IO.UFile, Stride.Core.IO.UFile>>

    GetDefaultAssetFolder()

    public UDirectory GetDefaultAssetFolder()
    Returns
    Type Description
    Stride.Core.IO.UDirectory

    GetPackageIdFromFile(String)

    Gets the package identifier from file.

    public static Guid GetPackageIdFromFile(string filePath)
    Parameters
    Type Name Description
    System.String filePath

    The file path.

    Returns
    Type Description
    System.Guid

    Guid.

    Exceptions
    Type Condition
    System.ArgumentNullException

    log or filePath


    ListAssetFiles(ILogger, Package, Boolean, Boolean, Nullable<CancellationToken>)

    public static List<PackageLoadingAssetFile> ListAssetFiles(ILogger log, Package package, bool listAssetsInMsbuild, bool listUnregisteredAssets, CancellationToken? cancelToken)
    Parameters
    Type Name Description
    ILogger log
    Package package
    System.Boolean listAssetsInMsbuild
    System.Boolean listUnregisteredAssets
    System.Nullable<System.Threading.CancellationToken> cancelToken
    Returns
    Type Description
    System.Collections.Generic.List<PackageLoadingAssetFile>

    Load(ILogger, String, PackageLoadParameters)

    Loads only the package description but not assets or plugins.

    public static Package Load(ILogger log, string filePath, PackageLoadParameters loadParametersArg = null)
    Parameters
    Type Name Description
    ILogger log

    The log to receive error messages.

    System.String filePath

    The file path.

    PackageLoadParameters loadParametersArg

    The load parameters argument.

    Returns
    Type Description
    Package

    A package.

    Exceptions
    Type Condition
    System.ArgumentNullException

    log or filePath


    LoadProject(ILogger, String)

    public static PackageContainer LoadProject(ILogger log, string filePath)
    Parameters
    Type Name Description
    ILogger log
    System.String filePath
    Returns
    Type Description
    PackageContainer

    LoadTemporaryAssets(ILogger, List<PackageLoadingAssetFile>, Nullable<CancellationToken>, Boolean, Func<PackageLoadingAssetFile, Boolean>)

    Refreshes this package from the disk by loading or reloading all assets.

    public void LoadTemporaryAssets(ILogger log, List<PackageLoadingAssetFile> assetFiles = null, CancellationToken? cancelToken = null, bool listAssetsInMsbuild = true, Func<PackageLoadingAssetFile, bool> filterFunc = null)
    Parameters
    Type Name Description
    ILogger log

    The log.

    System.Collections.Generic.List<PackageLoadingAssetFile> assetFiles

    The asset files (loaded from ListAssetFiles(ILogger, Package, Boolean, Boolean, Nullable<CancellationToken>) if null).

    System.Nullable<System.Threading.CancellationToken> cancelToken

    The cancel token.

    System.Boolean listAssetsInMsbuild

    Specifies if we need to evaluate MSBuild files for assets.

    System.Func<PackageLoadingAssetFile, System.Boolean> filterFunc

    A function that will filter assets loading

    Exceptions
    Type Condition
    System.InvalidOperationException

    Package RootDirectory is null or Package RootDirectory [{0}] does not exist.ToFormat(RootDirectory)


    SaveSingleAsset(AssetItem, ILogger)

    public static bool SaveSingleAsset(AssetItem asset, ILogger log)
    Parameters
    Type Name Description
    AssetItem asset
    ILogger log
    Returns
    Type Description
    System.Boolean

    SetPackagePath(UFile, Boolean)

    Sets the package path.

    public void SetPackagePath(UFile newPath, bool copyAssets = true)
    Parameters
    Type Name Description
    Stride.Core.IO.UFile newPath

    The new path.

    System.Boolean copyAssets

    if set to true assets will be copied relatively to the new location.


    UpdateAssemblyReferences(ILogger, PackageLoadParameters)

    Loads the assembly references that were not loaded before.

    public void UpdateAssemblyReferences(ILogger log, PackageLoadParameters loadParametersArg = null)
    Parameters
    Type Name Description
    ILogger log

    The log.

    PackageLoadParameters loadParametersArg

    The load parameters argument.


    ValidateAssets(Boolean, Boolean, ILogger)

    public void ValidateAssets(bool alwaysGenerateNewAssetId, bool removeUnloadableObjects, ILogger log)
    Parameters
    Type Name Description
    System.Boolean alwaysGenerateNewAssetId
    System.Boolean removeUnloadableObjects
    ILogger log
    | Improve this Doc View Source

    Events


    AssetDirtyChanged

    Occurs when an asset dirty changed occurred.

    public event DirtyFlagChangedDelegate<AssetItem> AssetDirtyChanged
    Event Type
    Type Description
    DirtyFlagChangedDelegate<AssetItem>

    PackageDirtyChanged

    Occurs when package dirty changed occurred.

    public event DirtyFlagChangedDelegate<Package> PackageDirtyChanged
    Event Type
    Type Description
    DirtyFlagChangedDelegate<Package>

    Extension Methods

    ComponentBaseExtensions.DisposeBy<T>(T, ICollectorHolder)
    ComponentBaseExtensions.RemoveDisposeBy<T>(T, ICollectorHolder)
    PackageExtensions.FindAsset(Package, IReference)
    PackageExtensions.FindDependencies(Package, Boolean)
    • Improve this Doc
    • View Source
    In This Article

    Back to top

    Copyright © 2019-2021 .NET Foundation and Contributors
    Supported by the .NET Foundation