Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XnaDirectContentSource.cs
Go to the documentation of this file.
1using System;
3using System.IO;
4using System.Linq;
5
7
9{
10 private readonly string[] _rootDirectories;
11
13 {
15 SetAssetNames(_rootDirectories.SelectMany((string rootDir) => from path in Directory.GetFiles(rootDir, "*.xnb", SearchOption.AllDirectories)
16 select path.Substring(rootDir.Length + 1)).ToHashSet());
17 }
18
19 public override Stream OpenStream(string assetName)
20 {
21 try
22 {
23 return File.OpenRead(_rootDirectories.Select((string rootDir) => Path.Combine(rootDir, assetName)).First(File.Exists));
24 }
26 {
28 }
29 }
30}
static AssetLoadException FromMissingAsset(string assetName, Exception innerException=null)
static string CleanPath(string path)
void SetAssetNames(IEnumerable< string > paths)
override Stream OpenStream(string assetName)
Must be threadsafe!
XnaDirectContentSource(IEnumerable< string > rootDirectories)
static string[] GetFiles(string path)
Definition Directory.cs:136
static bool Exists([NotNullWhen(true)] string? path)
Definition File.cs:97
static FileStream OpenRead(string path)
Definition File.cs:236
static string Combine(string path1, string path2)
Definition Path.cs:304