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: