Some more renaming from "folder" to "package"

This commit is contained in:
Pavel Penev
2016-01-11 21:59:55 +02:00
parent 45382d193a
commit e3f5697f7e
2 changed files with 36 additions and 36 deletions

View File

@@ -19,8 +19,8 @@ namespace OpenRA.FileSystem
{ {
public class FileSystem public class FileSystem
{ {
public readonly List<string> FolderPaths = new List<string>(); public readonly List<string> PackagePaths = new List<string>();
public readonly List<IPackage> MountedFolders = new List<IPackage>(); public readonly List<IPackage> MountedPackages = new List<IPackage>();
static readonly Dictionary<string, Assembly> AssemblyCache = new Dictionary<string, Assembly>(); static readonly Dictionary<string, Assembly> AssemblyCache = new Dictionary<string, Assembly>();
@@ -83,8 +83,8 @@ namespace OpenRA.FileSystem
public void Mount(IPackage mount) public void Mount(IPackage mount)
{ {
if (!MountedFolders.Contains(mount)) if (!MountedPackages.Contains(mount))
MountedFolders.Add(mount); MountedPackages.Add(mount);
} }
public void Mount(string name, string annotation = null) public void Mount(string name, string annotation = null)
@@ -95,7 +95,7 @@ namespace OpenRA.FileSystem
name = Platform.ResolvePath(name); name = Platform.ResolvePath(name);
FolderPaths.Add(name); PackagePaths.Add(name);
Action a = () => MountInner(OpenPackage(name, annotation, order++)); Action a = () => MountInner(OpenPackage(name, annotation, order++));
if (optional) if (optional)
@@ -107,38 +107,38 @@ namespace OpenRA.FileSystem
void MountInner(IPackage package) void MountInner(IPackage package)
{ {
MountedFolders.Add(package); MountedPackages.Add(package);
foreach (var hash in package.ClassicHashes()) foreach (var hash in package.ClassicHashes())
{ {
var folderList = classicHashIndex[hash]; var packageList = classicHashIndex[hash];
if (!folderList.Contains(package)) if (!packageList.Contains(package))
folderList.Add(package); packageList.Add(package);
} }
foreach (var hash in package.CrcHashes()) foreach (var hash in package.CrcHashes())
{ {
var folderList = crcHashIndex[hash]; var packageList = crcHashIndex[hash];
if (!folderList.Contains(package)) if (!packageList.Contains(package))
folderList.Add(package); packageList.Add(package);
} }
} }
public bool Unmount(IPackage mount) public bool Unmount(IPackage mount)
{ {
if (MountedFolders.Contains(mount)) if (MountedPackages.Contains(mount))
mount.Dispose(); mount.Dispose();
return MountedFolders.RemoveAll(f => f == mount) > 0; return MountedPackages.RemoveAll(f => f == mount) > 0;
} }
public void UnmountAll() public void UnmountAll()
{ {
foreach (var folder in MountedFolders) foreach (var package in MountedPackages)
folder.Dispose(); package.Dispose();
MountedFolders.Clear(); MountedPackages.Clear();
FolderPaths.Clear(); PackagePaths.Clear();
classicHashIndex = new Cache<uint, List<IPackage>>(_ => new List<IPackage>()); classicHashIndex = new Cache<uint, List<IPackage>>(_ => new List<IPackage>());
crcHashIndex = new Cache<uint, List<IPackage>>(_ => new List<IPackage>()); crcHashIndex = new Cache<uint, List<IPackage>>(_ => new List<IPackage>());
} }
@@ -156,12 +156,12 @@ namespace OpenRA.FileSystem
Stream GetFromCache(PackageHashType type, string filename) Stream GetFromCache(PackageHashType type, string filename)
{ {
var index = type == PackageHashType.CRC32 ? crcHashIndex : classicHashIndex; var index = type == PackageHashType.CRC32 ? crcHashIndex : classicHashIndex;
var folder = index[PackageEntry.HashFilename(filename, type)] var package = index[PackageEntry.HashFilename(filename, type)]
.Where(x => x.Exists(filename)) .Where(x => x.Exists(filename))
.MinByOrDefault(x => x.Priority); .MinByOrDefault(x => x.Priority);
if (folder != null) if (package != null)
return folder.GetContent(filename); return package.GetContent(filename);
return null; return null;
} }
@@ -178,20 +178,20 @@ namespace OpenRA.FileSystem
public bool TryOpen(string name, out Stream s) public bool TryOpen(string name, out Stream s)
{ {
var filename = name; var filename = name;
var foldername = string.Empty; var packageName = string.Empty;
// Used for faction specific packages; rule out false positive on Windows C:\ drive notation // Used for faction specific packages; rule out false positive on Windows C:\ drive notation
var explicitFolder = name.Contains(':') && !Directory.Exists(Path.GetDirectoryName(name)); var explicitPackage = name.Contains(':') && !Directory.Exists(Path.GetDirectoryName(name));
if (explicitFolder) if (explicitPackage)
{ {
var divide = name.Split(':'); var divide = name.Split(':');
foldername = divide.First(); packageName = divide.First();
filename = divide.Last(); filename = divide.Last();
} }
// Check the cache for a quick lookup if the package name is unknown // Check the cache for a quick lookup if the package name is unknown
// TODO: This disables caching for explicit package requests // TODO: This disables caching for explicit package requests
if (filename.IndexOfAny(new char[] { '/', '\\' }) == -1 && !explicitFolder) if (filename.IndexOfAny(new[] { '/', '\\' }) == -1 && !explicitPackage)
{ {
s = GetFromCache(PackageHashType.Classic, filename); s = GetFromCache(PackageHashType.Classic, filename);
if (s != null) if (s != null)
@@ -204,10 +204,10 @@ namespace OpenRA.FileSystem
// Ask each package individually // Ask each package individually
IPackage package; IPackage package;
if (explicitFolder && !string.IsNullOrEmpty(foldername)) if (explicitPackage && !string.IsNullOrEmpty(packageName))
package = MountedFolders.Where(x => x.Name == foldername).MaxByOrDefault(x => x.Priority); package = MountedPackages.Where(x => x.Name == packageName).MaxByOrDefault(x => x.Priority);
else else
package = MountedFolders.Where(x => x.Exists(filename)).MaxByOrDefault(x => x.Priority); package = MountedPackages.Where(x => x.Exists(filename)).MaxByOrDefault(x => x.Priority);
if (package != null) if (package != null)
{ {
@@ -221,16 +221,16 @@ namespace OpenRA.FileSystem
public bool Exists(string name) public bool Exists(string name)
{ {
var explicitFolder = name.Contains(':') && !Directory.Exists(Path.GetDirectoryName(name)); var explicitPackage = name.Contains(':') && !Directory.Exists(Path.GetDirectoryName(name));
if (explicitFolder) if (explicitPackage)
{ {
var divide = name.Split(':'); var divide = name.Split(':');
var foldername = divide.First(); var packageName = divide.First();
var filename = divide.Last(); var filename = divide.Last();
return MountedFolders.Where(n => n.Name == foldername).Any(f => f.Exists(filename)); return MountedPackages.Where(n => n.Name == packageName).Any(f => f.Exists(filename));
} }
else else
return MountedFolders.Any(f => f.Exists(name)); return MountedPackages.Any(f => f.Exists(name));
} }
public static Assembly ResolveAssembly(object sender, ResolveEventArgs e) public static Assembly ResolveAssembly(object sender, ResolveEventArgs e)

View File

@@ -50,7 +50,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
this.world = world; this.world = world;
panel = widget; panel = widget;
assetSource = Game.ModData.ModFiles.MountedFolders.First(); assetSource = Game.ModData.ModFiles.MountedPackages.First();
var ticker = panel.GetOrNull<LogicTickerWidget>("ANIMATION_TICKER"); var ticker = panel.GetOrNull<LogicTickerWidget>("ANIMATION_TICKER");
if (ticker != null) if (ticker != null)
@@ -345,7 +345,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
// TODO: Re-enable "All Packages" once list generation is done in a background thread // TODO: Re-enable "All Packages" once list generation is done in a background thread
// var sources = new[] { (IPackage)null }.Concat(GlobalFileSystem.MountedFolders); // var sources = new[] { (IPackage)null }.Concat(GlobalFileSystem.MountedFolders);
var sources = Game.ModData.ModFiles.MountedFolders; var sources = Game.ModData.ModFiles.MountedPackages;
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 280, sources, setupItem); dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 280, sources, setupItem);
return true; return true;
} }