diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj index a35bf7ce2c..488ef9fd21 100644 --- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj +++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj @@ -404,7 +404,7 @@ - + diff --git a/OpenRA.Mods.Common/Traits/Render/RenderEditorOnly.cs b/OpenRA.Mods.Common/Traits/Render/RenderSpritesEditorOnly.cs similarity index 71% rename from OpenRA.Mods.Common/Traits/Render/RenderEditorOnly.cs rename to OpenRA.Mods.Common/Traits/Render/RenderSpritesEditorOnly.cs index 90184db62c..937f0140b5 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderEditorOnly.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderSpritesEditorOnly.cs @@ -14,15 +14,15 @@ using OpenRA.Graphics; namespace OpenRA.Mods.Common.Traits { [Desc("Invisible during games.")] - class RenderEditorOnlyInfo : RenderSimpleInfo + class RenderSpritesEditorOnlyInfo : RenderSpritesInfo { - public override object Create(ActorInitializer init) { return new RenderEditorOnly(init, this); } + public override object Create(ActorInitializer init) { return new RenderSpritesEditorOnly(init, this); } } - class RenderEditorOnly : RenderSimple + class RenderSpritesEditorOnly : RenderSprites { - public RenderEditorOnly(ActorInitializer init, RenderEditorOnlyInfo info) - : base(init, info, () => 0) { } + public RenderSpritesEditorOnly(ActorInitializer init, RenderSpritesEditorOnlyInfo info) + : base(init, info) { } public override IEnumerable Render(Actor self, WorldRenderer wr) { return SpriteRenderable.None; } } diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index e23f86f98e..2ac14ecccf 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -1637,6 +1637,32 @@ namespace OpenRA.Mods.Common.UtilityCommands } } + if (engineVersion < 20150720) + { + // Rename RenderEditorOnly to RenderSpritesEditorOnly + if (depth == 0) + { + var reo = node.Value.Nodes.FirstOrDefault(n => n.Key.StartsWith("RenderEditorOnly")); + if (reo != null) + { + reo.Key = "RenderSpritesEditorOnly"; + + var wsbNodes = reo.Value.Nodes.Where(n => n.Key == "Sequence").ToList(); + + if (wsbNodes.Any()) + node.Value.Nodes.Add(new MiniYamlNode("WithSpriteBody", new MiniYaml("", wsbNodes))); + else + node.Value.Nodes.Add(new MiniYamlNode("WithSpriteBody", "")); + + reo.Value.Nodes.RemoveAll(n => wsbNodes.Contains(n)); + } + + var rreo = node.Value.Nodes.FirstOrDefault(n => n.Key.StartsWith("-RenderEditorOnly")); + if (rreo != null) + rreo.Key = "-RenderSpritesEditorOnly"; + } + } + UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); } } diff --git a/mods/cnc/rules/misc.yaml b/mods/cnc/rules/misc.yaml index d6610af0d8..8de9650a65 100644 --- a/mods/cnc/rules/misc.yaml +++ b/mods/cnc/rules/misc.yaml @@ -34,7 +34,8 @@ mpspawn: AlwaysVisible: Immobile: OccupiesSpace: false - RenderEditorOnly: + WithSpriteBody: + RenderSpritesEditorOnly: Palette: chrome BodyOrientation: @@ -42,7 +43,8 @@ waypoint: AlwaysVisible: Immobile: OccupiesSpace: false - RenderEditorOnly: + WithSpriteBody: + RenderSpritesEditorOnly: Palette: chrome BodyOrientation: diff --git a/mods/d2k/rules/misc.yaml b/mods/d2k/rules/misc.yaml index 9113a9893a..5f550faa74 100644 --- a/mods/d2k/rules/misc.yaml +++ b/mods/d2k/rules/misc.yaml @@ -114,22 +114,22 @@ mpspawn: AlwaysVisible: Immobile: OccupiesSpace: false - RenderEditorOnly: + RenderSpritesEditorOnly: + WithSpriteBody: BodyOrientation: waypoint: AlwaysVisible: Immobile: OccupiesSpace: false - RenderEditorOnly: + RenderSpritesEditorOnly: + WithSpriteBody: BodyOrientation: ^carryall.colorpicker: Inherits: carryall - WithFacingSpriteBody: Helicopter: InitialFacing: 104 - AutoSelectionSize: RenderSprites: Image: carryall Palette: colorpicker @@ -149,7 +149,8 @@ wormspawner: AlwaysVisible: Immobile: OccupiesSpace: false - RenderEditorOnly: + RenderSpritesEditorOnly: + WithSpriteBody: BodyOrientation: WormSpawner: diff --git a/mods/ra/rules/misc.yaml b/mods/ra/rules/misc.yaml index 28712624ec..80e62ec8eb 100644 --- a/mods/ra/rules/misc.yaml +++ b/mods/ra/rules/misc.yaml @@ -181,7 +181,8 @@ CAMERA: BodyOrientation: DetectCloaked: Range: 10 - RenderEditorOnly: + WithSpriteBody: + RenderSpritesEditorOnly: Image: camera camera.paradrop: @@ -390,14 +391,16 @@ mpspawn: AlwaysVisible: Immobile: OccupiesSpace: false - RenderEditorOnly: + WithSpriteBody: + RenderSpritesEditorOnly: BodyOrientation: waypoint: AlwaysVisible: Immobile: OccupiesSpace: false - RenderEditorOnly: + WithSpriteBody: + RenderSpritesEditorOnly: BodyOrientation: ^fact.colorpicker: diff --git a/mods/ts/rules/misc.yaml b/mods/ts/rules/misc.yaml index f931bc6c6c..87e9338a8d 100644 --- a/mods/ts/rules/misc.yaml +++ b/mods/ts/rules/misc.yaml @@ -2,14 +2,16 @@ mpspawn: AlwaysVisible: Immobile: OccupiesSpace: false - RenderEditorOnly: + RenderSpritesEditorOnly: + WithSpriteBody: BodyOrientation: waypoint: AlwaysVisible: Immobile: OccupiesSpace: false - RenderEditorOnly: + RenderSpritesEditorOnly: + WithSpriteBody: BodyOrientation: ^mmch.colorpicker: