Load mod yaml via the virtual filesystem.

This commit is contained in:
Paul Chote
2016-01-21 17:36:06 +00:00
parent 45bae7e9b3
commit 4a12e7bafc
11 changed files with 31 additions and 19 deletions

View File

@@ -17,11 +17,11 @@ namespace OpenRA.Widgets
{
static Dictionary<string, string> data = new Dictionary<string, string>();
public static void Initialize(IEnumerable<string> yaml)
public static void Initialize(ModData modData)
{
data = new Dictionary<string, string>();
var metrics = MiniYaml.Merge(yaml.Select(MiniYaml.FromFile));
var metrics = MiniYaml.Merge(modData.Manifest.ChromeMetrics.Select(
y => MiniYaml.FromStream(modData.ModFiles.Open(y))));
foreach (var m in metrics)
foreach (var n in m.Value.Nodes)
data[n.Key] = n.Value.Value;

View File

@@ -27,7 +27,7 @@ namespace OpenRA.Widgets
if (hk == Game.Settings.Keys.DevReloadChromeKey)
{
ChromeProvider.Initialize(Game.ModData.Manifest.Chrome);
ChromeProvider.Initialize(Game.ModData);
return true;
}

View File

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