Merge pull request #9710 from obrakmann/yaml-removals

Fix yaml removals
This commit is contained in:
Matthias Mailänder
2015-12-06 17:04:47 +01:00
16 changed files with 170 additions and 104 deletions

View File

@@ -36,7 +36,7 @@ namespace OpenRA.Mods.Common.Graphics
if (nodes.TryGetValue("Defaults", out defaults))
{
nodes.Remove("Defaults");
nodes = nodes.ToDictionary(kv => kv.Key, kv => MiniYaml.MergeStrict(kv.Value, defaults));
nodes = nodes.ToDictionary(kv => kv.Key, kv => MiniYaml.Merge(kv.Value, defaults));
// Merge 'Defaults' animation image value. An example follows.
//

View File

@@ -32,8 +32,10 @@ namespace OpenRA.Mods.Common.Lint
this.emitError = emitError;
var sequenceSource = map != null ? map.SequenceDefinitions : new List<MiniYamlNode>();
sequenceDefinitions = MiniYaml.MergeLiberal(sequenceSource,
Game.ModData.Manifest.Sequences.Select(MiniYaml.FromFile).Aggregate(MiniYaml.MergeLiberal));
var partial = Game.ModData.Manifest.Sequences
.Select(MiniYaml.FromFile)
.Aggregate(MiniYaml.MergePartial);
sequenceDefinitions = MiniYaml.Merge(sequenceSource, partial);
var rules = map == null ? Game.ModData.DefaultRules : map.Rules;
var factions = rules.Actors["world"].TraitInfos<FactionInfo>().Select(f => f.InternalName).ToArray();

View File

@@ -39,10 +39,11 @@ namespace OpenRA.Mods.Common.UtilityCommands
var sc = new SpriteCache(modData.SpriteLoaders, new SheetBuilder(SheetType.Indexed));
var sequenceFiles = modData.Manifest.Sequences;
var nodes = sequenceFiles
var partial = sequenceFiles
.Select(s => MiniYaml.FromFile(s))
.Aggregate(MiniYaml.MergeLiberal);
.Aggregate(MiniYaml.MergePartial);
var nodes = MiniYaml.ApplyRemovals(partial);
foreach (var n in nodes)
Game.ModData.SpriteSequenceLoader.ParseSequences(Game.ModData, ts, sc, n);
}

View File

@@ -97,8 +97,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic
// Add a group for each campaign
if (Game.ModData.Manifest.Missions.Any())
{
var yaml = Game.ModData.Manifest.Missions.Select(MiniYaml.FromFile).Aggregate(MiniYaml.MergeLiberal);
var partial = Game.ModData.Manifest.Missions
.Select(MiniYaml.FromFile)
.Aggregate(MiniYaml.MergePartial);
var yaml = MiniYaml.ApplyRemovals(partial);
foreach (var kv in yaml)
{
var missionMapPaths = kv.Value.Nodes.Select(n => Path.GetFullPath(n.Key));