Set yaml filename when loading from FileSystem.
This commit is contained in:
@@ -243,7 +243,7 @@ namespace OpenRA
|
||||
{
|
||||
var mapFiles = FieldLoader.GetValue<string[]>("value", mapRules.Value);
|
||||
foreach (var f in mapFiles)
|
||||
if (AnyFlaggedTraits(modData, MiniYaml.FromStream(fileSystem.Open(f))))
|
||||
if (AnyFlaggedTraits(modData, MiniYaml.FromStream(fileSystem.Open(f), f)))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace OpenRA.Graphics
|
||||
cachedSprites = new Dictionary<string, Dictionary<string, Sprite>>();
|
||||
|
||||
var chrome = MiniYaml.Merge(modData.Manifest.Chrome
|
||||
.Select(s => MiniYaml.FromStream(fileSystem.Open(s))));
|
||||
.Select(s => MiniYaml.FromStream(fileSystem.Open(s), s)));
|
||||
|
||||
foreach (var c in chrome)
|
||||
LoadCollection(c.Key, c.Value);
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace OpenRA.Graphics
|
||||
{
|
||||
var fileSystem = modData.DefaultFileSystem;
|
||||
var sequenceYaml = MiniYaml.Merge(modData.Manifest.Cursors.Select(
|
||||
s => MiniYaml.FromStream(fileSystem.Open(s))));
|
||||
s => MiniYaml.FromStream(fileSystem.Open(s), s)));
|
||||
|
||||
var shadowIndex = new int[] { };
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace OpenRA
|
||||
{
|
||||
var package = ModMetadata.AllMods[modId].Package;
|
||||
|
||||
yaml = new MiniYaml(null, MiniYaml.FromStream(package.GetStream("mod.yaml"))).ToDictionary();
|
||||
yaml = new MiniYaml(null, MiniYaml.FromStream(package.GetStream("mod.yaml"), "mod.yaml")).ToDictionary();
|
||||
|
||||
Mod = FieldLoader.Load<ModMetadata>(yaml["Metadata"]);
|
||||
Mod.Id = modId;
|
||||
|
||||
@@ -204,7 +204,7 @@ namespace OpenRA
|
||||
|
||||
public TileSet(IReadOnlyFileSystem fileSystem, string filepath)
|
||||
{
|
||||
var yaml = MiniYaml.DictFromStream(fileSystem.Open(filepath));
|
||||
var yaml = MiniYaml.DictFromStream(fileSystem.Open(filepath), filepath);
|
||||
|
||||
// General info
|
||||
FieldLoader.Load(this, yaml["General"]);
|
||||
|
||||
@@ -236,9 +236,9 @@ namespace OpenRA
|
||||
return FromFile(path).ToDictionary(x => x.Key, x => x.Value);
|
||||
}
|
||||
|
||||
public static Dictionary<string, MiniYaml> DictFromStream(Stream stream)
|
||||
public static Dictionary<string, MiniYaml> DictFromStream(Stream stream, string fileName = "<no filename available>")
|
||||
{
|
||||
return FromStream(stream).ToDictionary(x => x.Key, x => x.Value);
|
||||
return FromStream(stream, fileName).ToDictionary(x => x.Key, x => x.Value);
|
||||
}
|
||||
|
||||
public static List<MiniYamlNode> FromFile(string path)
|
||||
@@ -385,7 +385,7 @@ namespace OpenRA
|
||||
files = files.Append(mapFiles);
|
||||
}
|
||||
|
||||
var yaml = files.Select(s => MiniYaml.FromStream(fileSystem.Open(s)));
|
||||
var yaml = files.Select(s => MiniYaml.FromStream(fileSystem.Open(s), s));
|
||||
if (mapRules != null && mapRules.Nodes.Any())
|
||||
yaml = yaml.Append(mapRules.Nodes);
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace OpenRA
|
||||
continue;
|
||||
}
|
||||
|
||||
var yaml = new MiniYaml(null, MiniYaml.FromStream(package.GetStream("mod.yaml")));
|
||||
var yaml = new MiniYaml(null, MiniYaml.FromStream(package.GetStream("mod.yaml"), "mod.yaml"));
|
||||
var nd = yaml.ToDictionary();
|
||||
if (!nd.ContainsKey("Metadata"))
|
||||
{
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace OpenRA.Widgets
|
||||
{
|
||||
data = new Dictionary<string, string>();
|
||||
var metrics = MiniYaml.Merge(modData.Manifest.ChromeMetrics.Select(
|
||||
y => MiniYaml.FromStream(modData.DefaultFileSystem.Open(y))));
|
||||
y => MiniYaml.FromStream(modData.DefaultFileSystem.Open(y), y)));
|
||||
foreach (var m in metrics)
|
||||
foreach (var n in m.Value.Nodes)
|
||||
data[n.Key] = n.Value.Value;
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace OpenRA
|
||||
{
|
||||
this.modData = modData;
|
||||
|
||||
foreach (var file in modData.Manifest.ChromeLayout.Select(a => MiniYaml.FromStream(modData.DefaultFileSystem.Open(a))))
|
||||
foreach (var file in modData.Manifest.ChromeLayout.Select(a => MiniYaml.FromStream(modData.DefaultFileSystem.Open(a), a)))
|
||||
foreach (var w in file)
|
||||
{
|
||||
var key = w.Key.Substring(w.Key.IndexOf('@') + 1);
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace OpenRA.Mods.Common.Lint
|
||||
public void Run(Action<string> emitError, Action<string> emitWarning, ModData modData)
|
||||
{
|
||||
foreach (var filename in modData.Manifest.ChromeLayout)
|
||||
CheckInner(MiniYaml.FromStream(modData.DefaultFileSystem.Open(filename)), filename, emitError);
|
||||
CheckInner(MiniYaml.FromStream(modData.DefaultFileSystem.Open(filename), filename), filename, emitError);
|
||||
}
|
||||
|
||||
void CheckInner(List<MiniYamlNode> nodes, string filename, Action<string> emitError)
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
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))));
|
||||
var nodes = MiniYaml.Merge(modData.Manifest.Sequences.Select(s => MiniYaml.FromStream(modData.DefaultFileSystem.Open(s), s)));
|
||||
foreach (var n in nodes)
|
||||
modData.SpriteSequenceLoader.ParseSequences(modData, ts, sc, n);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
include |= map.Package.Contains(f);
|
||||
if (include)
|
||||
nodes.AddRange(MiniYaml.FromStream(map.Open(f)));
|
||||
nodes.AddRange(MiniYaml.FromStream(map.Open(f), f));
|
||||
else
|
||||
includes.Add(f);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
var files = FieldLoader.GetValue<string[]>("value", yaml.Value);
|
||||
foreach (var filename in files)
|
||||
{
|
||||
var fileNodes = MiniYaml.FromStream(map.Package.GetStream(filename));
|
||||
var fileNodes = MiniYaml.FromStream(map.Package.GetStream(filename), filename);
|
||||
processYaml(engineDate, ref fileNodes, null, 0);
|
||||
((IReadWritePackage)map.Package).Update(filename, Encoding.ASCII.GetBytes(fileNodes.WriteToString()));
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
continue;
|
||||
}
|
||||
|
||||
var yaml = MiniYaml.FromStream(package.GetStream(name));
|
||||
var yaml = MiniYaml.FromStream(package.GetStream(name), name);
|
||||
processFile(engineDate, ref yaml, null, 0);
|
||||
|
||||
// Generate the on-disk path
|
||||
|
||||
@@ -100,7 +100,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
if (modData.Manifest.Missions.Any())
|
||||
{
|
||||
var yaml = MiniYaml.Merge(modData.Manifest.Missions.Select(
|
||||
m => MiniYaml.FromStream(modData.DefaultFileSystem.Open(m))));
|
||||
m => MiniYaml.FromStream(modData.DefaultFileSystem.Open(m), m)));
|
||||
|
||||
foreach (var kv in yaml)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user