Unstatic GlobalFileSystem and rename it to FileSystem

Add a ModFiles field on ModData and move all access to the file system to go through that.
This commit is contained in:
Pavel Penev
2015-10-09 13:55:08 +03:00
parent 5684bcec1c
commit 1b88d24cfa
46 changed files with 154 additions and 172 deletions

View File

@@ -30,6 +30,9 @@ namespace OpenRA.Mods.Common.UtilityCommands
var relativePath = args[1];
var projectPath = Path.GetFullPath(relativePath);
// HACK: The engine code assumes that Game.modData is set.
Game.ModData = modData;
var console = new StyleCopConsole(null, false, null, null, true);
var project = new CodeProject(0, projectPath, new Configuration(null));
foreach (var filePath in Directory.GetFiles(projectPath, "*.cs", SearchOption.AllDirectories))

View File

@@ -10,7 +10,6 @@
using System;
using System.Linq;
using OpenRA.FileSystem;
using OpenRA.Graphics;
namespace OpenRA.Mods.Common.UtilityCommands
@@ -29,7 +28,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
{
// HACK: The engine code assumes that Game.modData is set.
Game.ModData = modData;
GlobalFileSystem.LoadFromManifest(Game.ModData.Manifest);
Game.ModData.ModFiles.LoadFromManifest(Game.ModData.Manifest);
Game.ModData.SpriteSequenceLoader.OnMissingSpriteError = s => Console.WriteLine("\t" + s);
foreach (var t in Game.ModData.Manifest.TileSets)

View File

@@ -28,11 +28,11 @@ namespace OpenRA.Mods.Common.UtilityCommands
public void Run(ModData modData, string[] args)
{
var files = args.Skip(1);
GlobalFileSystem.LoadFromManifest(modData.Manifest);
modData.ModFiles.LoadFromManifest(modData.Manifest);
foreach (var f in files)
{
var src = GlobalFileSystem.Open(f);
var src = modData.ModFiles.Open(f);
if (src == null)
throw new InvalidOperationException("File not found: {0}".F(f));
var data = src.ReadAllBytes();

View File

@@ -13,7 +13,6 @@ using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using OpenRA.FileSystem;
using OpenRA.Graphics;
namespace OpenRA.Mods.Common.UtilityCommands
@@ -32,7 +31,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
{
// HACK: The engine code assumes that Game.modData is set.
Game.ModData = modData;
GlobalFileSystem.LoadFromManifest(Game.ModData.Manifest);
modData.ModFiles.LoadFromManifest(Game.ModData.Manifest);
var imageField = typeof(TerrainTemplateInfo).GetField("Image");
var pickAnyField = typeof(TerrainTemplateInfo).GetField("PickAny");
@@ -56,7 +55,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
foreach (var ext in exts)
{
Stream s;
if (GlobalFileSystem.TryOpen(template.Images[0] + ext, out s))
if (modData.ModFiles.TryOpen(template.Images[0] + ext, out s))
s.Dispose();
else
continue;

View File

@@ -10,7 +10,6 @@
using System;
using System.IO;
using OpenRA.FileSystem;
using OpenRA.Graphics;
namespace OpenRA.Mods.Common.UtilityCommands
@@ -30,9 +29,9 @@ namespace OpenRA.Mods.Common.UtilityCommands
Game.ModData = modData;
var map = new Map(args[1]);
GlobalFileSystem.UnmountAll();
modData.ModFiles.UnmountAll();
foreach (var dir in Game.ModData.Manifest.Folders)
GlobalFileSystem.Mount(dir);
modData.ModFiles.Mount(dir);
var minimap = Minimap.RenderMapPreview(map.Rules.TileSets[map.Tileset], map, true);

View File

@@ -14,7 +14,6 @@ using System.IO;
using System.Linq;
using System.Text;
using OpenRA.FileFormats;
using OpenRA.FileSystem;
using OpenRA.Graphics;
using OpenRA.Mods.Common.Traits;
using OpenRA.Primitives;
@@ -130,7 +129,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
public void ConvertIniMap(string iniFile)
{
using (var stream = GlobalFileSystem.Open(iniFile))
using (var stream = Game.ModData.ModFiles.Open(iniFile))
{
var file = new IniFile(stream);
var basic = file.GetSection("Basic");
@@ -162,7 +161,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
else
{
// CnC
using (var s = GlobalFileSystem.Open(iniFile.Substring(0, iniFile.Length - 4) + ".bin"))
using (var s = Game.ModData.ModFiles.Open(iniFile.Substring(0, iniFile.Length - 4) + ".bin"))
UnpackCncTileData(s);
ReadCncOverlay(file);
ReadCncTrees(file);

View File

@@ -13,7 +13,6 @@ using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using OpenRA.FileSystem;
using OpenRA.Graphics;
using OpenRA.Mods.Common.SpriteLoaders;
using OpenRA.Traits;
@@ -41,14 +40,14 @@ namespace OpenRA.Mods.Common.UtilityCommands
var srcMod = args[1].Split(':')[0];
Game.ModData = new ModData(srcMod);
GlobalFileSystem.LoadFromManifest(Game.ModData.Manifest);
Game.ModData.ModFiles.LoadFromManifest(Game.ModData.Manifest);
var srcRules = Game.ModData.RulesetCache.Load();
var srcPaletteInfo = srcRules.Actors["player"].TraitInfo<PlayerColorPaletteInfo>();
var srcRemapIndex = srcPaletteInfo.RemapIndex;
var destMod = args[2].Split(':')[0];
Game.ModData = new ModData(destMod);
GlobalFileSystem.LoadFromManifest(Game.ModData.Manifest);
Game.ModData.ModFiles.LoadFromManifest(Game.ModData.Manifest);
var destRules = Game.ModData.RulesetCache.Load();
var destPaletteInfo = destRules.Actors["player"].TraitInfo<PlayerColorPaletteInfo>();
var destRemapIndex = destPaletteInfo.RemapIndex;