Use IReadOnlyFileSystem in UI code.

This commit is contained in:
Paul Chote
2016-02-15 02:37:56 +00:00
parent b347fade71
commit 9341055f50
6 changed files with 10 additions and 7 deletions

View File

@@ -10,6 +10,7 @@
using System.Collections.Generic;
using System.Linq;
using OpenRA.FileSystem;
namespace OpenRA.Graphics
{
@@ -24,17 +25,19 @@ namespace OpenRA.Graphics
static Dictionary<string, Collection> collections;
static Dictionary<string, Sheet> cachedSheets;
static Dictionary<string, Dictionary<string, Sprite>> cachedSprites;
static IReadOnlyFileSystem fileSystem;
public static void Initialize(ModData modData)
{
Deinitialize();
fileSystem = modData.DefaultFileSystem;
collections = new Dictionary<string, Collection>();
cachedSheets = new Dictionary<string, Sheet>();
cachedSprites = new Dictionary<string, Dictionary<string, Sprite>>();
var chrome = MiniYaml.Merge(modData.Manifest.Chrome
.Select(s => MiniYaml.FromStream(modData.ModFiles.Open(s))));
.Select(s => MiniYaml.FromStream(fileSystem.Open(s))));
foreach (var c in chrome)
LoadCollection(c.Key, c.Value);
@@ -107,7 +110,7 @@ namespace OpenRA.Graphics
sheet = cachedSheets[mi.Src];
else
{
using (var stream = Game.ModData.ModFiles.Open(mi.Src))
using (var stream = fileSystem.Open(mi.Src))
sheet = new Sheet(SheetType.BGRA, stream);
cachedSheets.Add(mi.Src, sheet);

View File

@@ -21,7 +21,7 @@ namespace OpenRA.Widgets
{
data = new Dictionary<string, string>();
var metrics = MiniYaml.Merge(modData.Manifest.ChromeMetrics.Select(
y => MiniYaml.FromStream(modData.ModFiles.Open(y))));
y => MiniYaml.FromStream(modData.DefaultFileSystem.Open(y))));
foreach (var m in metrics)
foreach (var n in m.Value.Nodes)
data[n.Key] = n.Value.Value;

View File

@@ -24,7 +24,7 @@ namespace OpenRA
{
this.modData = modData;
foreach (var file in modData.Manifest.ChromeLayout.Select(a => MiniYaml.FromStream(modData.ModFiles.Open(a))))
foreach (var file in modData.Manifest.ChromeLayout.Select(a => MiniYaml.FromStream(modData.DefaultFileSystem.Open(a))))
foreach (var w in file)
{
var key = w.Key.Substring(w.Key.IndexOf('@') + 1);

View File

@@ -42,7 +42,7 @@ namespace OpenRA.Mods.Cnc
r = Game.Renderer;
if (r == null) return;
using (var stream = modData.ModFiles.Open(info["Image"]))
using (var stream = modData.DefaultFileSystem.Open(info["Image"]))
sheet = new Sheet(SheetType.BGRA, stream);
var res = r.Resolution;

View File

@@ -41,7 +41,7 @@ namespace OpenRA.Mods.Common.LoadScreens
if (info.ContainsKey("Image"))
{
using (var stream = modData.ModFiles.Open(info["Image"]))
using (var stream = modData.DefaultFileSystem.Open(info["Image"]))
sheet = new Sheet(SheetType.BGRA, stream);
logo = new Sprite(sheet, new Rectangle(0, 0, 256, 256), TextureChannel.Alpha);

View File

@@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.LoadScreens
var res = Game.Renderer.Resolution;
bounds = new Rectangle(0, 0, res.Width, res.Height);
using (var stream = modData.ModFiles.Open(info["Image"]))
using (var stream = modData.DefaultFileSystem.Open(info["Image"]))
{
var sheet = new Sheet(SheetType.BGRA, stream);
sprite = new Sprite(sheet, new Rectangle(0, 0, 1024, 480), TextureChannel.Alpha);