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); } }