public object Load(Stream stream, UFile filePath, ILogger log, bool clearBrokenObjectReferences, out bool aliasOccurred, out AttachedYamlAssetMetadata yamlMetadata) { aliasOccurred = false; var assetFileExtension = filePath.GetFileExtension().ToLowerInvariant(); var type = AssetRegistry.GetAssetTypeFromFileExtension(assetFileExtension); var asset = (SourceCodeAsset)Activator.CreateInstance(type); var textAccessor = asset.TextAccessor as DefaultTextAccessor; if (textAccessor != null) { // Don't load the file if we have the file path textAccessor.FilePath = filePath; // Set the assets text if it loaded from an in-memory version // TODO: Propagate dirtiness? if (stream is MemoryStream) { var reader = new StreamReader(stream, Encoding.UTF8); textAccessor.Set(reader.ReadToEnd()); } } // No override in source code assets yamlMetadata = new AttachedYamlAssetMetadata(); return(asset); }
public object Load(Stream stream, string filePath, ILogger log, out bool aliasOccurred) { aliasOccurred = false; var assetFileExtension = Path.GetExtension(filePath).ToLowerInvariant(); var type = AssetRegistry.GetAssetTypeFromFileExtension(assetFileExtension); var asset = (SourceCodeAsset)Activator.CreateInstance(type); var textAccessor = asset.TextAccessor as SourceCodeAsset.DefaultTextAccessor; if (textAccessor != null) { // Don't load the file if we have the file path textAccessor.FilePath = filePath; // Set the assets text if it loaded from an in-memory version // TODO: Propagate dirtiness? if (stream is MemoryStream) { var reader = new StreamReader(stream, Encoding.UTF8); textAccessor.Set(reader.ReadToEnd()); } } return(asset); }
public object Load(Stream stream, string assetFileExtension, ILogger log, out bool aliasOccurred) { aliasOccurred = false; var type = AssetRegistry.GetAssetTypeFromFileExtension(assetFileExtension); var asset = (SourceCodeAsset)Activator.CreateInstance(type); return(asset); }
public IAssetSerializer TryCreate(string assetFileExtension) { var assetType = AssetRegistry.GetAssetTypeFromFileExtension(assetFileExtension); if (assetType != null && typeof(SourceCodeAsset).IsAssignableFrom(assetType)) { return(this); } return(null); }
public object Load(Stream stream, string assetFileExtension, ILogger log, out bool aliasOccurred) { aliasOccurred = false; var type = AssetRegistry.GetAssetTypeFromFileExtension(assetFileExtension); var asset = (SourceCodeAsset)Activator.CreateInstance(type); var reader = new StreamReader(stream, Encoding.UTF8); asset.Text = reader.ReadToEnd(); return(asset); }