Fix RCS1077

This commit is contained in:
RoosterDragon
2023-03-18 12:47:08 +00:00
committed by Gustas
parent 499efa1d0a
commit 330ca92045
60 changed files with 110 additions and 97 deletions

View File

@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
{
// Keep a resolved copy of the sequences so we can account for values imported through inheritance or Defaults.
// This will be modified during processing, so take a deep copy to avoid side-effects on other update rules.
this.resolvedImagesNodes = MiniYaml.FromString(resolvedImagesNodes.WriteToString()).Select(n => new MiniYamlNodeBuilder(n)).ToList();
this.resolvedImagesNodes = MiniYaml.FromString(resolvedImagesNodes.WriteToString()).ConvertAll(n => new MiniYamlNodeBuilder(n));
var requiredMetadata = new HashSet<string>();
foreach (var imageNode in resolvedImagesNodes)
@@ -213,7 +213,7 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
{
resolvedDefaultsNode.Value.Nodes.Select(n => n.Build()).ToArray(),
resolvedSequenceNode.Value.Nodes.Select(n => n.Build()).ToArray()
}).Select(n => new MiniYamlNodeBuilder(n)).ToList();
}).ConvertAll(n => new MiniYamlNodeBuilder(n));
resolvedSequenceNode.Value.Value ??= resolvedDefaultsNode.Value.Value;
}
}

View File

@@ -45,7 +45,7 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
harvesters[actorNode.Key] = harvesterNode.ChildrenMatching("DeliveryBuildings", includeRemovals: false)
.FirstOrDefault()?.NodeValue<HashSet<string>>() ?? new HashSet<string>();
if (actorNode.ChildrenMatching("Refinery", includeRemovals: false).FirstOrDefault() != null)
if (actorNode.ChildrenMatching("Refinery", includeRemovals: false).Any())
refineries.Add(actorNode.Key.ToLowerInvariant());
}
@@ -102,7 +102,7 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
refineryNode.RemoveNode(dockOffsetNode);
}
var buildingNode = actorNode.Value.Nodes.FirstOrDefault(n => buildings.Any(b => n.KeyMatches(b, includeRemovals: false)));
var buildingNode = actorNode.Value.Nodes.Find(n => buildings.Any(b => n.KeyMatches(b, includeRemovals: false)));
if (buildingNode != null)
{
var dimensions = buildingNode.ChildrenMatching("Dimensions", includeRemovals: false).FirstOrDefault()?.NodeValue<CVec>() ?? new CVec(1, 1);

View File

@@ -9,6 +9,7 @@
*/
#endregion
using System;
using System.Collections.Generic;
using System.Linq;
using OpenRA.Mods.Common.UpdateRules.Rules;
@@ -98,7 +99,7 @@ namespace OpenRA.Mods.Common.UpdateRules
if (namedType != null && namedType.IsSubclassOf(typeof(UpdateRule)))
return new[] { (UpdateRule)objectCreator.CreateBasic(namedType) };
return Paths.FirstOrDefault(p => p.source == source)?.Rules(chain);
return Array.Find(Paths, p => p.source == source)?.Rules(chain);
}
public static IEnumerable<string> KnownPaths { get { return Paths.Select(p => p.source); } }

View File

@@ -35,7 +35,7 @@ namespace OpenRA.Mods.Common.UpdateRules
continue;
}
yaml.Add(((IReadWritePackage)package, name, MiniYaml.FromStream(package.GetStream(name), name, false).Select(n => new MiniYamlNodeBuilder(n)).ToList()));
yaml.Add(((IReadWritePackage)package, name, MiniYaml.FromStream(package.GetStream(name), name, false).ConvertAll(n => new MiniYamlNodeBuilder(n))));
}
return yaml;
@@ -68,7 +68,7 @@ namespace OpenRA.Mods.Common.UpdateRules
{
// Ignore any files that aren't in the map bundle
if (!filename.Contains('|') && mapPackage.Contains(filename))
fileSet.Add((mapPackage, filename, MiniYaml.FromStream(mapPackage.GetStream(filename), filename, false).Select(n => new MiniYamlNodeBuilder(n)).ToList()));
fileSet.Add((mapPackage, filename, MiniYaml.FromStream(mapPackage.GetStream(filename), filename, false).ConvertAll(n => new MiniYamlNodeBuilder(n))));
else if (modData.ModFiles.Exists(filename))
externalFilenames.Add(filename);
}
@@ -177,9 +177,9 @@ namespace OpenRA.Mods.Common.UpdateRules
}
if (mapNode != null && mapNode.Nodes.Count > 0)
yaml.Add(mapNode.Nodes.Select(n => n.Build()).ToList());
yaml.Add(mapNode.Nodes.ConvertAll(n => n.Build()));
return MiniYaml.Merge(yaml).Select(n => new MiniYamlNodeBuilder(n)).ToList();
return MiniYaml.Merge(yaml).ConvertAll(n => new MiniYamlNodeBuilder(n));
}
static IEnumerable<string> FilterExternalModFiles(ModData modData, IEnumerable<string> files, HashSet<string> externalFilenames)
@@ -241,7 +241,7 @@ namespace OpenRA.Mods.Common.UpdateRules
if (rule is IBeforeUpdateActors beforeActors)
{
var resolvedActors = MiniYaml.Load(modData.DefaultFileSystem, modData.Manifest.Rules, null)
.Select(n => new MiniYamlNodeBuilder(n)).ToList();
.ConvertAll(n => new MiniYamlNodeBuilder(n));
manualSteps.AddRange(beforeActors.BeforeUpdateActors(modData, resolvedActors));
}
@@ -250,7 +250,7 @@ namespace OpenRA.Mods.Common.UpdateRules
if (rule is IBeforeUpdateWeapons beforeWeapons)
{
var resolvedWeapons = MiniYaml.Load(modData.DefaultFileSystem, modData.Manifest.Weapons, null)
.Select(n => new MiniYamlNodeBuilder(n)).ToList();
.ConvertAll(n => new MiniYamlNodeBuilder(n));
manualSteps.AddRange(beforeWeapons.BeforeUpdateWeapons(modData, resolvedWeapons));
}
@@ -259,7 +259,7 @@ namespace OpenRA.Mods.Common.UpdateRules
if (rule is IBeforeUpdateSequences beforeSequences)
{
var resolvedImages = MiniYaml.Load(modData.DefaultFileSystem, modData.Manifest.Sequences, null)
.Select(n => new MiniYamlNodeBuilder(n)).ToList();
.ConvertAll(n => new MiniYamlNodeBuilder(n));
manualSteps.AddRange(beforeSequences.BeforeUpdateSequences(modData, resolvedImages));
}