Merge pull request #10705 from pchote/filesystem-lint

Fix lint test yaml loading.
This commit is contained in:
Pavel Penev
2016-02-07 00:24:49 +02:00
3 changed files with 11 additions and 9 deletions

View File

@@ -20,7 +20,7 @@ namespace OpenRA.Mods.Common.Lint
public void Run(Action<string> emitError, Action<string> emitWarning) public void Run(Action<string> emitError, Action<string> emitWarning)
{ {
foreach (var filename in Game.ModData.Manifest.ChromeLayout) foreach (var filename in Game.ModData.Manifest.ChromeLayout)
CheckInner(MiniYaml.FromFile(filename), filename, emitError); CheckInner(MiniYaml.FromStream(Game.ModData.ModFiles.Open(filename)), filename, emitError);
} }
void CheckInner(List<MiniYamlNode> nodes, string filename, Action<string> emitError) void CheckInner(List<MiniYamlNode> nodes, string filename, Action<string> emitError)

View File

@@ -28,12 +28,13 @@ namespace OpenRA.Mods.Common.Lint
if (map != null && !map.SequenceDefinitions.Any()) if (map != null && !map.SequenceDefinitions.Any())
return; return;
var modData = Game.ModData;
this.emitError = emitError; this.emitError = emitError;
var sequenceSource = map != null ? map.SequenceDefinitions : new List<MiniYamlNode>(); var sequenceSource = map != null ? map.SequenceDefinitions : new List<MiniYamlNode>();
sequenceDefinitions = MiniYaml.Merge(Game.ModData.Manifest.Sequences.Select(MiniYaml.FromFile).Append(sequenceSource)); sequenceDefinitions = MiniYaml.Merge(modData.Manifest.Sequences.Select(s => MiniYaml.FromStream(modData.ModFiles.Open(s))).Append(sequenceSource));
var rules = map == null ? Game.ModData.DefaultRules : map.Rules; var rules = map == null ? modData.DefaultRules : map.Rules;
var factions = rules.Actors["world"].TraitInfos<FactionInfo>().Select(f => f.InternalName).ToArray(); var factions = rules.Actors["world"].TraitInfos<FactionInfo>().Select(f => f.InternalName).ToArray();
var sequenceProviders = map == null ? rules.Sequences.Values : new[] { rules.Sequences[map.Tileset] }; var sequenceProviders = map == null ? rules.Sequences.Values : new[] { rules.Sequences[map.Tileset] };

View File

@@ -28,17 +28,18 @@ namespace OpenRA.Mods.Common.UtilityCommands
{ {
// HACK: The engine code assumes that Game.modData is set. // HACK: The engine code assumes that Game.modData is set.
Game.ModData = modData; Game.ModData = modData;
Game.ModData.ModFiles.LoadFromManifest(Game.ModData.Manifest);
Game.ModData.SpriteSequenceLoader.OnMissingSpriteError = s => Console.WriteLine("\t" + s);
foreach (var t in Game.ModData.Manifest.TileSets) modData.ModFiles.LoadFromManifest(modData.Manifest);
modData.SpriteSequenceLoader.OnMissingSpriteError = s => Console.WriteLine("\t" + s);
foreach (var t in modData.Manifest.TileSets)
{ {
var ts = new TileSet(Game.ModData, t); var ts = new TileSet(modData, t);
Console.WriteLine("Tileset: " + ts.Name); Console.WriteLine("Tileset: " + ts.Name);
var sc = new SpriteCache(modData.SpriteLoaders, new SheetBuilder(SheetType.Indexed)); var sc = new SpriteCache(modData.SpriteLoaders, new SheetBuilder(SheetType.Indexed));
var nodes = MiniYaml.Merge(modData.Manifest.Sequences.Select(MiniYaml.FromFile)); var nodes = MiniYaml.Merge(modData.Manifest.Sequences.Select(s => MiniYaml.FromStream(modData.ModFiles.Open(s))));
foreach (var n in nodes) foreach (var n in nodes)
Game.ModData.SpriteSequenceLoader.ParseSequences(Game.ModData, ts, sc, n); modData.SpriteSequenceLoader.ParseSequences(modData, ts, sc, n);
} }
} }
} }