From ce97b3a3a27609484e05d7c12db6b210d622c0d0 Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Thu, 9 Feb 2017 13:11:01 +0100 Subject: [PATCH] Fix IPositionableInfo not inheriting IOccupySpaceInfo --- OpenRA.Game/Traits/TraitsInterfaces.cs | 2 +- OpenRA.Mods.Common/Traits/Air/Aircraft.cs | 2 +- OpenRA.Mods.Common/Traits/Crates/Crate.cs | 2 +- OpenRA.Mods.Common/Traits/Mobile.cs | 4 ++-- OpenRA.Mods.Common/Traits/World/SpawnMPUnits.cs | 3 +-- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index a3e242d3b3..afcada806a 100644 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -265,7 +265,7 @@ namespace OpenRA.Traits [RequireExplicitImplementation] public interface ISelectionBar { float GetValue(); Color GetColor(); bool DisplayWhenEmpty { get; } } - public interface IPositionableInfo : ITraitInfoInterface + public interface IPositionableInfo : IOccupySpaceInfo { bool CanEnterCell(World world, Actor self, CPos cell, Actor ignoreActor = null, bool checkTransientActors = true); } diff --git a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs index 240037e077..389eb3007c 100644 --- a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs +++ b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs @@ -21,7 +21,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { - public class AircraftInfo : ITraitInfo, IPositionableInfo, IFacingInfo, IOccupySpaceInfo, IMoveInfo, ICruiseAltitudeInfo, + public class AircraftInfo : ITraitInfo, IPositionableInfo, IFacingInfo, IMoveInfo, ICruiseAltitudeInfo, UsesInit, UsesInit { public readonly WDist CruiseAltitude = new WDist(1280); diff --git a/OpenRA.Mods.Common/Traits/Crates/Crate.cs b/OpenRA.Mods.Common/Traits/Crates/Crate.cs index e8c04e25f6..4291e450bc 100644 --- a/OpenRA.Mods.Common/Traits/Crates/Crate.cs +++ b/OpenRA.Mods.Common/Traits/Crates/Crate.cs @@ -17,7 +17,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { - class CrateInfo : ITraitInfo, IPositionableInfo, IOccupySpaceInfo, Requires + class CrateInfo : ITraitInfo, IPositionableInfo, Requires { [Desc("Length of time (in seconds) until the crate gets removed automatically. " + "A value of zero disables auto-removal.")] diff --git a/OpenRA.Mods.Common/Traits/Mobile.cs b/OpenRA.Mods.Common/Traits/Mobile.cs index 4e8fdd4b22..6b344d3785 100644 --- a/OpenRA.Mods.Common/Traits/Mobile.cs +++ b/OpenRA.Mods.Common/Traits/Mobile.cs @@ -48,7 +48,7 @@ namespace OpenRA.Mods.Common.Traits } [Desc("Unit is able to move.")] - public class MobileInfo : ConditionalTraitInfo, IMoveInfo, IPositionableInfo, IOccupySpaceInfo, IFacingInfo, + public class MobileInfo : ConditionalTraitInfo, IMoveInfo, IPositionableInfo, IFacingInfo, UsesInit, UsesInit, UsesInit { [FieldLoader.LoadUsing("LoadSpeeds", true)] @@ -381,7 +381,7 @@ namespace OpenRA.Mods.Common.Traits } public class Mobile : ConditionalTrait, INotifyCreated, IIssueOrder, IResolveOrder, IOrderVoice, IPositionable, IMove, - IFacing, ISync, IDeathActorInitModifier, INotifyAddedToWorld, INotifyRemovedFromWorld, INotifyBlockingMove, IActorPreviewInitModifier + IFacing, IDeathActorInitModifier, INotifyAddedToWorld, INotifyRemovedFromWorld, INotifyBlockingMove, IActorPreviewInitModifier { const int AverageTicksBeforePathing = 5; const int SpreadTicksBeforePathing = 5; diff --git a/OpenRA.Mods.Common/Traits/World/SpawnMPUnits.cs b/OpenRA.Mods.Common/Traits/World/SpawnMPUnits.cs index f8d6127ce6..8b47b08f36 100644 --- a/OpenRA.Mods.Common/Traits/World/SpawnMPUnits.cs +++ b/OpenRA.Mods.Common/Traits/World/SpawnMPUnits.cs @@ -96,8 +96,7 @@ namespace OpenRA.Mods.Common.Traits } var cell = validCells.Random(w.SharedRandom); - var ios = actorRules.TraitInfo(); - var subCell = ios.SharesCell ? w.ActorMap.FreeSubCell(cell) : 0; + var subCell = ip.SharesCell ? w.ActorMap.FreeSubCell(cell) : 0; w.CreateActor(s.ToLowerInvariant(), new TypeDictionary {