From 3a60dcd4a1c9a7ba1c86f99719d3d52e9b96416e Mon Sep 17 00:00:00 2001 From: reaperrr Date: Mon, 21 May 2018 04:55:46 +0200 Subject: [PATCH] Use new update util extensions to simplify some update rules --- .../UpdateRules/Rules/ChangeIntensityToDuration.cs | 8 +------- .../UpdateRules/Rules/DefineLocomotors.cs | 13 +++---------- .../UpdateRules/Rules/SplitAimAnimations.cs | 12 +++--------- 3 files changed, 7 insertions(+), 26 deletions(-) diff --git a/OpenRA.Mods.Common/UpdateRules/Rules/ChangeIntensityToDuration.cs b/OpenRA.Mods.Common/UpdateRules/Rules/ChangeIntensityToDuration.cs index d002cb8f6d..ed0f00d915 100644 --- a/OpenRA.Mods.Common/UpdateRules/Rules/ChangeIntensityToDuration.cs +++ b/OpenRA.Mods.Common/UpdateRules/Rules/ChangeIntensityToDuration.cs @@ -30,13 +30,7 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules public override IEnumerable UpdateActorNode(ModData modData, MiniYamlNode actorNode) { foreach (var sod in actorNode.ChildrenMatching("ShakeOnDeath")) - { - var intensity = sod.LastChildMatching("Intensity"); - if (intensity == null) - continue; - - intensity.RenameKey("Duration"); - } + sod.RenameChildrenMatching("Intensity", "Duration"); yield break; } diff --git a/OpenRA.Mods.Common/UpdateRules/Rules/DefineLocomotors.cs b/OpenRA.Mods.Common/UpdateRules/Rules/DefineLocomotors.cs index 200dc8ca61..1459c044ea 100644 --- a/OpenRA.Mods.Common/UpdateRules/Rules/DefineLocomotors.cs +++ b/OpenRA.Mods.Common/UpdateRules/Rules/DefineLocomotors.cs @@ -92,9 +92,8 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules if (tunnelConditionNode != null) { var grantNode = new MiniYamlNode("GrantConditionOnTunnelLayer", ""); - grantNode.AddNode("Condition", tunnelConditionNode.Value.Value); + tunnelConditionNode.MoveAndRenameNode(mobileNode, grantNode, "Condition"); addNodes.Add(grantNode); - mobileNode.RemoveNodes("TunnelCondition"); } var subterraneanNode = mobileNode.LastChildMatching("Subterranean"); @@ -125,13 +124,8 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules { var grantNode = new MiniYamlNode("GrantConditionOnSubterraneanLayer", ""); foreach (var node in nodes) - { if (node != null) - { - grantNode.AddNode(node); - mobileNode.RemoveNode(node); - } - } + node.MoveNode(mobileNode, grantNode); addNodes.Add(grantNode); } @@ -147,8 +141,7 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules if (conditionNode != null) { var grantNode = new MiniYamlNode("GrantConditionOnJumpjetLayer", ""); - grantNode.AddNode("Condition", conditionNode.Value.Value); - mobileNode.RemoveNodes("JumpjetCondition"); + conditionNode.MoveAndRenameNode(mobileNode, grantNode, "Condition"); addNodes.Add(grantNode); } } diff --git a/OpenRA.Mods.Common/UpdateRules/Rules/SplitAimAnimations.cs b/OpenRA.Mods.Common/UpdateRules/Rules/SplitAimAnimations.cs index fdc43da965..2d57c6d881 100644 --- a/OpenRA.Mods.Common/UpdateRules/Rules/SplitAimAnimations.cs +++ b/OpenRA.Mods.Common/UpdateRules/Rules/SplitAimAnimations.cs @@ -90,9 +90,7 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules else if (attackSequence != null && aimSequence != null) { var turretAim = new MiniYamlNode("WithTurretAimAnimation", ""); - aimSequence.RenameKey("Sequence"); - turretAim.AddNode(aimSequence); - turretAttack.RemoveNode(aimSequence); + aimSequence.MoveAndRenameNode(turretAttack, turretAim, "Sequence"); var turret = turretAttack.LastChildMatching("Turret"); var armament = turretAttack.LastChildMatching("Armament"); @@ -118,9 +116,7 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules aimAnimLocations.Add(Tuple.Create(actorNode.Key, actorNode.Location.Filename)); var aimAnim = new MiniYamlNode("WithTurretAimAnimation", ""); - aimSequence.RenameKey("Sequence"); - aimAnim.AddNode(aimSequence); - spriteTurret.RemoveNode(aimSequence); + aimSequence.MoveAndRenameNode(spriteTurret, aimAnim, "Sequence"); actorNode.AddNode(aimAnim); } } @@ -160,9 +156,7 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules else if (attackSequence != null && aimSequence != null) { var aimAnim = new MiniYamlNode("WithAimAnimation", ""); - aimSequence.RenameKey("Sequence"); - aimAnim.AddNode(aimSequence); - attackAnim.RemoveNode(aimSequence); + aimSequence.MoveAndRenameNode(attackAnim, aimAnim, "Sequence"); var body = attackAnim.LastChildMatching("Body"); var armament = attackAnim.LastChildMatching("Armament");