Fix the sequence filename update rule node placement

This commit is contained in:
abcdefg30
2023-02-15 23:49:48 +01:00
committed by Matthias Mailänder
parent 64933ed04b
commit cb8921dc22

View File

@@ -207,25 +207,36 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
}
}
var inheritsNode = imageNode.LastChildMatching("Inherits");
var inheritsNodeIndex = inheritsNode == null ? 0 : imageNode.Value.Nodes.IndexOf(inheritsNode) + 1;
var maxDuplicateTilesetCount = duplicateTilesetCount.MaxByOrDefault(kv => kv.Value).Value;
if (maxDuplicateTilesetCount > 1)
{
if (imageNode.LastChildMatching("Defaults") == null)
imageNode.Value.Nodes.Insert(0, new MiniYamlNode("Defaults", ""));
var defaultsNode = imageNode.LastChildMatching("Defaults");
if (defaultsNode == null)
{
defaultsNode = new MiniYamlNode("Defaults", "");
imageNode.Value.Nodes.Insert(inheritsNodeIndex, defaultsNode);
}
var nodes = MiniYaml.FromString(duplicateTilesetCount.First(kv => kv.Value == maxDuplicateTilesetCount).Key);
defaultTilesetFilenamesNode = new MiniYamlNode("TilesetFilenames", "", nodes);
imageNode.LastChildMatching("Defaults").Value.Nodes.Insert(0, defaultTilesetFilenamesNode);
defaultsNode.Value.Nodes.Insert(0, defaultTilesetFilenamesNode);
}
var maxDuplicateCount = duplicateCount.MaxByOrDefault(kv => kv.Value).Value;
if (maxDuplicateCount > 1)
{
if (imageNode.LastChildMatching("Defaults") == null)
imageNode.Value.Nodes.Insert(0, new MiniYamlNode("Defaults", ""));
var defaultsNode = imageNode.LastChildMatching("Defaults");
if (defaultsNode == null)
{
defaultsNode = new MiniYamlNode("Defaults", "");
imageNode.Value.Nodes.Insert(inheritsNodeIndex, defaultsNode);
}
defaultFilenameNode = new MiniYamlNode("Filename", duplicateCount.First(kv => kv.Value == maxDuplicateCount).Key);
imageNode.LastChildMatching("Defaults").Value.Nodes.Insert(0, defaultFilenameNode);
defaultsNode.Value.Nodes.Insert(0, defaultFilenameNode);
}
}