diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
index 5a48825910..b7545db6da 100644
--- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
+++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
@@ -484,7 +484,6 @@
-
diff --git a/OpenRA.Mods.Common/Traits/TransformOnPassenger.cs b/OpenRA.Mods.Common/Traits/TransformOnPassenger.cs
deleted file mode 100644
index 5fb040115b..0000000000
--- a/OpenRA.Mods.Common/Traits/TransformOnPassenger.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-#region Copyright & License Information
-/*
- * Copyright 2007-2015 The OpenRA Developers (see AUTHORS)
- * This file is part of OpenRA, which is free software. It is made
- * available to you under the terms of the GNU General Public License
- * as published by the Free Software Foundation. For more information,
- * see COPYING.
- */
-#endregion
-
-using System.Collections.Generic;
-using System.Linq;
-using OpenRA.Mods.Common.Activities;
-using OpenRA.Traits;
-
-namespace OpenRA.Mods.Common.Traits
-{
- public class TransformOnPassengerInfo : ITraitInfo
- {
- [ActorReference, FieldLoader.Require] public readonly HashSet PassengerTypes = new HashSet();
- [ActorReference] public readonly string OnEnter = null;
- [ActorReference] public readonly string OnExit = null;
- public readonly bool SkipMakeAnims = false;
- public readonly bool BecomeNeutral = false;
-
- public object Create(ActorInitializer init) { return new TransformOnPassenger(this); }
- }
-
- public class TransformOnPassenger : INotifyPassengerEntered, INotifyPassengerExited
- {
- readonly TransformOnPassengerInfo info;
-
- public TransformOnPassenger(TransformOnPassengerInfo info) { this.info = info; }
-
- void MaybeTransform(Actor self, Actor passenger, string transformTo)
- {
- if (info.PassengerTypes.Contains(passenger.Info.Name) && transformTo != null)
- {
- self.World.AddFrameEndTask(w =>
- {
- var facing = self.TraitOrDefault();
- var transform = new Transform(self, transformTo) { SkipMakeAnims = info.SkipMakeAnims };
- if (facing != null) transform.Facing = facing.Facing;
-
- self.CancelActivity();
- self.QueueActivity(transform);
- if (info.BecomeNeutral) self.ChangeOwner(self.World.WorldActor.Owner);
- });
- }
- }
-
- public void PassengerEntered(Actor self, Actor passenger) { MaybeTransform(self, passenger, info.OnEnter); }
- public void PassengerExited(Actor self, Actor passenger) { MaybeTransform(self, passenger, info.OnExit); }
- }
-}
diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs
index 0e49de27fd..595a0e11b1 100644
--- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs
+++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs
@@ -2807,6 +2807,14 @@ namespace OpenRA.Mods.Common.UtilityCommands
}
}
+ // Remove obsolete TransformOnPassenger trait.
+ if (engineVersion < 20160102)
+ {
+ node.Value.Nodes.RemoveAll(x => x.Key.Contains("TransformOnPassenger"));
+ Console.WriteLine("TransformOnPassenger has been removed.");
+ Console.WriteLine("Use the upgrades system to apply modifiers to the transport actor instead.");
+ }
+
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
}
}