removing duplication wrt mounting FS packages
This commit is contained in:
@@ -17,10 +17,8 @@ namespace FileExtractor
|
||||
}
|
||||
|
||||
var mods = args[0].Split(',');
|
||||
var manifest = new Manifest(mods);
|
||||
|
||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
||||
var manifest = new Manifest(mods);
|
||||
FileSystem.LoadFromManifest( manifest );
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
@@ -34,10 +34,7 @@ namespace OpenRA.Editor
|
||||
|
||||
var manifest = new Manifest(new[] { currentMod });
|
||||
Game.modData = new ModData( manifest );
|
||||
|
||||
FileSystem.UnmountAll();
|
||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
||||
FileSystem.LoadFromManifest( manifest );
|
||||
|
||||
Rules.LoadRules(manifest, new Map());
|
||||
|
||||
@@ -64,10 +61,7 @@ namespace OpenRA.Editor
|
||||
|
||||
var manifest = new Manifest(new[] { currentMod });
|
||||
Game.modData = new ModData( manifest );
|
||||
|
||||
FileSystem.UnmountAll();
|
||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
||||
FileSystem.LoadFromManifest( manifest );
|
||||
|
||||
// load the map
|
||||
var map = new Map(new Folder(mapname));
|
||||
@@ -93,10 +87,7 @@ namespace OpenRA.Editor
|
||||
|
||||
var manifest = new Manifest(new[] { currentMod });
|
||||
Game.modData = new ModData( manifest );
|
||||
|
||||
FileSystem.UnmountAll();
|
||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
||||
FileSystem.LoadFromManifest( manifest );
|
||||
|
||||
PrepareMapResources(manifest, map);
|
||||
|
||||
|
||||
@@ -64,6 +64,13 @@ namespace OpenRA.FileFormats
|
||||
allFiles = new Cache<uint, List<IFolder>>( _ => new List<IFolder>() );
|
||||
}
|
||||
|
||||
public static void LoadFromManifest( Manifest manifest )
|
||||
{
|
||||
UnmountAll();
|
||||
foreach (var dir in manifest.Folders) Mount(dir);
|
||||
foreach (var pkg in manifest.Packages) Mount(pkg);
|
||||
}
|
||||
|
||||
static Stream GetFromCache( Cache<uint, List<IFolder>> index, string filename )
|
||||
{
|
||||
foreach( var folder in index[ PackageEntry.HashFilename( filename ) ] )
|
||||
|
||||
@@ -51,17 +51,6 @@ namespace OpenRA
|
||||
static bool packageChangePending;
|
||||
static bool mapChangePending;
|
||||
|
||||
static void LoadModPackages( Manifest manifest )
|
||||
{
|
||||
FileSystem.UnmountAll();
|
||||
Timer.Time("reset: {0}");
|
||||
|
||||
foreach (var dir in manifest.Folders) FileSystem.Mount(dir);
|
||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
||||
|
||||
Timer.Time("mount temporary packages: {0}");
|
||||
}
|
||||
|
||||
public static Dictionary<string, MapStub> AvailableMaps;
|
||||
|
||||
// TODO: Do this nicer
|
||||
@@ -81,7 +70,7 @@ namespace OpenRA
|
||||
Timer.Time("manifest: {0}");
|
||||
modData = new ModData( manifest );
|
||||
SheetBuilder.Initialize();
|
||||
LoadModPackages( manifest );
|
||||
FileSystem.LoadFromManifest( manifest );
|
||||
Timer.Time("load assemblies, packages: {0}");
|
||||
ChromeProvider.Initialize(manifest.Chrome);
|
||||
packageChangePending = false;
|
||||
@@ -464,7 +453,7 @@ namespace OpenRA
|
||||
modData = new ModData( manifest );
|
||||
|
||||
// Load the default mod to access required files
|
||||
LoadModPackages( manifest );
|
||||
FileSystem.LoadFromManifest( manifest );
|
||||
|
||||
Renderer.SheetSize = Settings.SheetSize;
|
||||
|
||||
@@ -548,10 +537,7 @@ namespace OpenRA
|
||||
AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly;
|
||||
var manifest = new Manifest(mods);
|
||||
modData = new ModData( manifest );
|
||||
|
||||
FileSystem.UnmountAll();
|
||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
||||
FileSystem.LoadFromManifest( manifest );
|
||||
|
||||
Rules.LoadRules(manifest, new Map());
|
||||
}
|
||||
|
||||
@@ -87,9 +87,7 @@ namespace SequenceEditor
|
||||
|
||||
var mods = args[0].Split(',');
|
||||
var manifest = new Manifest(mods);
|
||||
|
||||
foreach (var folder in manifest.Folders) FileSystem.Mount(folder);
|
||||
foreach (var pkg in manifest.Packages) FileSystem.Mount(pkg);
|
||||
FileSystem.LoadFromManifest( manifest );
|
||||
|
||||
XmlFilename = args[1];
|
||||
Doc = new XmlDocument();
|
||||
|
||||
Reference in New Issue
Block a user