Merge pull request #10705 from pchote/filesystem-lint
Fix lint test yaml loading.
This commit is contained in:
@@ -20,7 +20,7 @@ namespace OpenRA.Mods.Common.Lint
|
||||
public void Run(Action<string> emitError, Action<string> emitWarning)
|
||||
{
|
||||
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)
|
||||
|
||||
@@ -28,12 +28,13 @@ namespace OpenRA.Mods.Common.Lint
|
||||
if (map != null && !map.SequenceDefinitions.Any())
|
||||
return;
|
||||
|
||||
var modData = Game.ModData;
|
||||
this.emitError = emitError;
|
||||
|
||||
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 sequenceProviders = map == null ? rules.Sequences.Values : new[] { rules.Sequences[map.Tileset] };
|
||||
|
||||
|
||||
@@ -28,17 +28,18 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
{
|
||||
// HACK: The engine code assumes that Game.modData is set.
|
||||
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);
|
||||
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)
|
||||
Game.ModData.SpriteSequenceLoader.ParseSequences(Game.ModData, ts, sc, n);
|
||||
modData.SpriteSequenceLoader.ParseSequences(modData, ts, sc, n);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user