public sealed class RoutedBundleSourceSends each bundle to the source that can supply it.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
A real catalog mixes the two: the base game ships inside the application and an expansion is downloaded, and the asset manager is given one source rather than being taught the difference. This is that one source.
The URL decides, not ContentProvider. The provider is a property of an address — it says what a load will cost the player — and what a bundle needs is a property of the bundle. They agree in a well-formed catalog, and when they do not, the one that determines whether there is anything to fetch is the one with the URL in it.
Methods (7)
public RoutedBundleSource(IBundleSource local, IBundleSource remote)Sends each bundle to the source that can supply it.
public IBundleSource SourceFor(CatalogBundle bundle)Which source a bundle comes from.
public bool IsAvailable(CatalogBundle bundle)Whether the bundle can be opened without fetching anything.
public ValueTask<IOdbBackend> OpenAsync(CatalogBundle bundle, CancellationToken cancellationToken = default(CancellationToken))Opens a bundle, fetching it first if that is what it takes.
public ValueTask EnsureAsync(CatalogBundle bundle, IProgress<BundleProgress>? progress = null, CancellationToken cancellationToken = default(CancellationToken))Gets a bundle onto the device without opening it.
public bool Evict(CatalogBundle bundle)Gives back whatever local copy this source is keeping of a bundle.
public void Dispose()Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Used by (3)
- ContentMountVixen.App.Hosting
- RemoteContentTestsVixen.Assets.Tests
- RemoteWorldVixen.Assets.Tests