/// <summary>Load a matched asset.</summary> /// <param name="asset">Basic metadata about the asset being loaded.</param> public T Load <T>(IAssetInfo asset) { // texture redirect string redirectPath = this.GetRedirect <T>(asset); if (redirectPath != null) { string relativePath = ContentHandler.GetRelativePath(redirectPath, this.ModPath); // underlying content manager doesn't allow absolute paths return(this.ContentHelper.Load <T>(relativePath)); } // loader delegate FileLoadMethod <T> loader = this.GetLoaderDelegate <T>(asset); if (loader != null) { return(loader.Invoke(asset.AssetName)); } // none found? throw new InvalidOperationException("ContentManager: no asset loaders found. This shouldn't happen."); }