Misc remaining FileSystem cleanups.

This commit is contained in:
Paul Chote
2016-02-15 03:37:08 +00:00
parent d573e21a48
commit 88f6daf57f
8 changed files with 15 additions and 10 deletions

View File

@@ -122,7 +122,8 @@ namespace OpenRA
return itemSet;
}
Dictionary<string, TileSet> LoadTileSets(IReadOnlyFileSystem fileSystem, Dictionary<string, TileSet> itemCache, Dictionary<string, SequenceCache> sequenceCaches, string[] files)
Dictionary<string, TileSet> LoadTileSets(IReadOnlyFileSystem fileSystem, Dictionary<string, TileSet> itemCache,
Dictionary<string, SequenceCache> sequenceCaches, string[] files)
{
var items = new Dictionary<string, TileSet>();
@@ -133,7 +134,7 @@ namespace OpenRA
items.Add(t.Id, t);
else
{
t = new TileSet(modData, file);
t = new TileSet(fileSystem, file);
itemCache.Add(file, t);
// every time we load a tile set, we create a sequence cache for it

View File

@@ -12,6 +12,7 @@ using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using OpenRA.FileSystem;
using OpenRA.Primitives;
namespace OpenRA
@@ -191,9 +192,9 @@ namespace OpenRA
// Private default ctor for serialization comparison
TileSet() { }
public TileSet(ModData modData, string filepath)
public TileSet(IReadOnlyFileSystem fileSystem, string filepath)
{
var yaml = MiniYaml.DictFromStream(modData.ModFiles.Open(filepath));
var yaml = MiniYaml.DictFromStream(fileSystem.Open(filepath));
// General info
FieldLoader.Load(this, yaml["General"]);

View File

@@ -142,7 +142,7 @@ namespace OpenRA.Mods.Cnc.UtilityCommands
public override void ReadPacks(IniFile file, string filename)
{
using (var s = Game.ModData.ModFiles.Open(filename.Substring(0, filename.Length - 4) + ".bin"))
using (var s = ModData.DefaultFileSystem.Open(filename.Substring(0, filename.Length - 4) + ".bin"))
UnpackTileData(s);
ReadOverlay(file);

View File

@@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
foreach (var t in modData.Manifest.TileSets)
{
var ts = new TileSet(modData, t);
var ts = new TileSet(modData.DefaultFileSystem, t);
Console.WriteLine("Tileset: " + ts.Name);
var sc = new SpriteCache(modData.DefaultFileSystem, modData.SpriteLoaders, new SheetBuilder(SheetType.Indexed));
var nodes = MiniYaml.Merge(modData.Manifest.Sequences.Select(s => MiniYaml.FromStream(modData.DefaultFileSystem.Open(s))));

View File

@@ -44,7 +44,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
foreach (var t in modData.Manifest.TileSets)
{
var ts = new TileSet(modData, t);
var ts = new TileSet(modData.DefaultFileSystem, t);
var frameCache = new FrameCache(modData.DefaultFileSystem, modData.SpriteLoaders);
Console.WriteLine("Tileset: " + ts.Name);

View File

@@ -29,6 +29,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
MapSize = mapSize;
}
public ModData ModData;
public Map Map;
public Ruleset Rules;
public List<string> Players = new List<string>();
@@ -42,9 +43,10 @@ namespace OpenRA.Mods.Common.UtilityCommands
[Desc("FILENAME", "Convert a legacy INI/MPR map to the OpenRA format.")]
public virtual void Run(ModData modData, string[] args)
{
ModData = modData;
// HACK: The engine code assumes that Game.modData is set.
Game.ModData = modData;
Rules = modData.RulesetCache.Load(modData.DefaultFileSystem);
var filename = args[1];

View File

@@ -20,6 +20,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public CreditsLogic(Widget widget, Action onExit)
{
var panel = widget.Get("CREDITS_PANEL");
var modData = Game.ModData;
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () =>
{
@@ -31,7 +32,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var template = scrollPanel.Get<LabelWidget>("CREDITS_TEMPLATE");
scrollPanel.RemoveChildren();
var lines = Game.ModData.ModFiles.Open("AUTHORS").ReadAllLines();
var lines = modData.DefaultFileSystem.Open("AUTHORS").ReadAllLines();
foreach (var l in lines)
{
// Improve the formatting

View File

@@ -41,7 +41,7 @@ namespace OpenRA.Mods.Common.Widgets
{
if (filename == cachedVideo)
return;
var video = new VqaReader(Game.ModData.ModFiles.Open(filename));
var video = new VqaReader(Game.ModData.DefaultFileSystem.Open(filename));
cachedVideo = filename;
Open(video);