diff --git a/OpenRA.Game/GameRules/ActorInfo.cs b/OpenRA.Game/GameRules/ActorInfo.cs index 132e03c182..a2bd8dc00a 100644 --- a/OpenRA.Game/GameRules/ActorInfo.cs +++ b/OpenRA.Game/GameRules/ActorInfo.cs @@ -147,20 +147,6 @@ namespace OpenRA .Select(t => t.GetGenericArguments()[0]); } - public IEnumerable> GetInitKeys() - { - var inits = traits.WithInterface().SelectMany( - t => t.GetType().GetInterfaces() - .Where(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(UsesInit<>)) - .Select(i => i.GetGenericArguments()[0])).ToList(); - - inits.Add(typeof(OwnerInit)); /* not exposed by a trait; this is used by the Actor itself */ - - return inits.Select( - i => Pair.New( - i.Name.Replace("Init", ""), i)); - } - public bool HasTraitInfo() where T : ITraitInfoInterface { return traits.Contains(); } public T TraitInfo() where T : ITraitInfoInterface { return traits.Get(); } public T TraitInfoOrDefault() where T : ITraitInfoInterface { return traits.GetOrDefault(); } diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index d3c0894dee..86745a90db 100644 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -343,8 +343,6 @@ namespace OpenRA.Traits [SuppressMessage("StyleCop.CSharp.NamingRules", "SA1302:InterfaceNamesMustBeginWithI", Justification = "Not a real interface, but more like a tag.")] public interface Requires where T : class, ITraitInfoInterface { } - [SuppressMessage("StyleCop.CSharp.NamingRules", "SA1302:InterfaceNamesMustBeginWithI", Justification = "Not a real interface, but more like a tag.")] - public interface UsesInit : ITraitInfo where T : IActorInit { } [RequireExplicitImplementation] public interface INotifySelected { void Selected(Actor self); } diff --git a/OpenRA.Mods.Cnc/Traits/TDGunboat.cs b/OpenRA.Mods.Cnc/Traits/TDGunboat.cs index e49d44fc1b..bd99026ceb 100644 --- a/OpenRA.Mods.Cnc/Traits/TDGunboat.cs +++ b/OpenRA.Mods.Cnc/Traits/TDGunboat.cs @@ -19,8 +19,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Cnc.Traits { - public class TDGunboatInfo : ITraitInfo, IPositionableInfo, IFacingInfo, IMoveInfo, - UsesInit, UsesInit, IActorPreviewInitInfo + public class TDGunboatInfo : ITraitInfo, IPositionableInfo, IFacingInfo, IMoveInfo, IActorPreviewInitInfo { public readonly int Speed = 28; diff --git a/OpenRA.Mods.Common/EditorBrushes/EditorDefaultBrush.cs b/OpenRA.Mods.Common/EditorBrushes/EditorDefaultBrush.cs index 1046ffcdbb..1f1acd80af 100644 --- a/OpenRA.Mods.Common/EditorBrushes/EditorDefaultBrush.cs +++ b/OpenRA.Mods.Common/EditorBrushes/EditorDefaultBrush.cs @@ -102,24 +102,6 @@ namespace OpenRA.Mods.Common.Widgets if (mapResources.Contains(cell) && mapResources[cell].Type != 0) mapResources[cell] = new ResourceTile(); } - else if (mi.Event == MouseInputEvent.Scroll) - { - if (underCursor != null) - { - // Test case / demonstration of how to edit an existing actor - var facing = underCursor.Init(); - if (facing != null) - underCursor.ReplaceInit(new FacingInit((facing.Value(world) + mi.ScrollDelta) % 256)); - else if (underCursor.Info.HasTraitInfo>()) - underCursor.ReplaceInit(new FacingInit(mi.ScrollDelta)); - - var turret = underCursor.Init(); - if (turret != null) - underCursor.ReplaceInit(new TurretFacingInit((turret.Value(world) + mi.ScrollDelta) % 256)); - else if (underCursor.Info.HasTraitInfo>()) - underCursor.ReplaceInit(new TurretFacingInit(mi.ScrollDelta)); - } - } return true; } diff --git a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs index 048cb0f4d4..c5ad970f03 100644 --- a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs +++ b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs @@ -23,7 +23,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { public class AircraftInfo : ITraitInfo, IPositionableInfo, IFacingInfo, IMoveInfo, ICruiseAltitudeInfo, - UsesInit, UsesInit, IActorPreviewInitInfo + IActorPreviewInitInfo { public readonly WDist CruiseAltitude = new WDist(1280); diff --git a/OpenRA.Mods.Common/Traits/AutoTarget.cs b/OpenRA.Mods.Common/Traits/AutoTarget.cs index e1255c213e..ee2ffd8dbe 100644 --- a/OpenRA.Mods.Common/Traits/AutoTarget.cs +++ b/OpenRA.Mods.Common/Traits/AutoTarget.cs @@ -17,7 +17,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("The actor will automatically engage the enemy when it is in range.")] - public class AutoTargetInfo : ConditionalTraitInfo, IRulesetLoaded, Requires, UsesInit + public class AutoTargetInfo : ConditionalTraitInfo, IRulesetLoaded, Requires { [Desc("It will try to hunt down the enemy if it is set to AttackAnything.")] public readonly bool AllowMovement = true; diff --git a/OpenRA.Mods.Common/Traits/Buildings/Building.cs b/OpenRA.Mods.Common/Traits/Buildings/Building.cs index feb7d9b5a6..446c93e17c 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/Building.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/Building.cs @@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.Traits OccupiedUntargetable = 'X' } - public class BuildingInfo : ITraitInfo, IOccupySpaceInfo, IPlaceBuildingDecorationInfo, UsesInit + public class BuildingInfo : ITraitInfo, IOccupySpaceInfo, IPlaceBuildingDecorationInfo { [Desc("Where you are allowed to place the building (Water, Clear, ...)")] public readonly HashSet TerrainTypes = new HashSet(); diff --git a/OpenRA.Mods.Common/Traits/Health.cs b/OpenRA.Mods.Common/Traits/Health.cs index edd252be9e..70aee0a18d 100644 --- a/OpenRA.Mods.Common/Traits/Health.cs +++ b/OpenRA.Mods.Common/Traits/Health.cs @@ -15,7 +15,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { - public class HealthInfo : IHealthInfo, UsesInit, IRulesetLoaded + public class HealthInfo : IHealthInfo, IRulesetLoaded { [Desc("HitPoints")] public readonly int HP = 0; diff --git a/OpenRA.Mods.Common/Traits/Mobile.cs b/OpenRA.Mods.Common/Traits/Mobile.cs index 0afba61a34..71aeadb5cf 100644 --- a/OpenRA.Mods.Common/Traits/Mobile.cs +++ b/OpenRA.Mods.Common/Traits/Mobile.cs @@ -22,8 +22,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("Unit is able to move.")] - public class MobileInfo : ConditionalTraitInfo, IMoveInfo, IPositionableInfo, IFacingInfo, - UsesInit, UsesInit, UsesInit, IActorPreviewInitInfo + public class MobileInfo : ConditionalTraitInfo, IMoveInfo, IPositionableInfo, IFacingInfo, IActorPreviewInitInfo { [Desc("Which Locomotor does this trait use. Must be defined on the World actor.")] [LocomotorReference, FieldLoader.Require] diff --git a/OpenRA.Mods.Common/Traits/Pluggable.cs b/OpenRA.Mods.Common/Traits/Pluggable.cs index 2b21e14fa3..fee02c0ddd 100644 --- a/OpenRA.Mods.Common/Traits/Pluggable.cs +++ b/OpenRA.Mods.Common/Traits/Pluggable.cs @@ -16,7 +16,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { - public class PluggableInfo : ITraitInfo, UsesInit + public class PluggableInfo : ITraitInfo { [Desc("Footprint cell offset where a plug can be placed.")] public readonly CVec Offset = CVec.Zero; diff --git a/OpenRA.Mods.Common/Traits/ProductionFromMapEdge.cs b/OpenRA.Mods.Common/Traits/ProductionFromMapEdge.cs index ffe2928560..3e5a6a7186 100644 --- a/OpenRA.Mods.Common/Traits/ProductionFromMapEdge.cs +++ b/OpenRA.Mods.Common/Traits/ProductionFromMapEdge.cs @@ -16,7 +16,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("Produce a unit on the closest map edge cell and move into the world.")] - class ProductionFromMapEdgeInfo : ProductionInfo, UsesInit + class ProductionFromMapEdgeInfo : ProductionInfo { public override object Create(ActorInitializer init) { return new ProductionFromMapEdge(init, this); } } diff --git a/OpenRA.Mods.Common/Traits/ScriptTags.cs b/OpenRA.Mods.Common/Traits/ScriptTags.cs index 2e81aa98d5..c69e0ac278 100644 --- a/OpenRA.Mods.Common/Traits/ScriptTags.cs +++ b/OpenRA.Mods.Common/Traits/ScriptTags.cs @@ -15,7 +15,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("Allows this actor to be 'tagged' with arbitrary strings. Tags must be unique or they will be rejected.")] - public class ScriptTagsInfo : UsesInit + public class ScriptTagsInfo : ITraitInfo { object ITraitInfo.Create(ActorInitializer init) { return new ScriptTags(init, this); } } diff --git a/OpenRA.Mods.Common/Traits/Turreted.cs b/OpenRA.Mods.Common/Traits/Turreted.cs index a3fc212618..f5cfe510ca 100644 --- a/OpenRA.Mods.Common/Traits/Turreted.cs +++ b/OpenRA.Mods.Common/Traits/Turreted.cs @@ -17,7 +17,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { - public class TurretedInfo : PausableConditionalTraitInfo, UsesInit, Requires, IActorPreviewInitInfo + public class TurretedInfo : PausableConditionalTraitInfo, Requires, IActorPreviewInitInfo { public readonly string Turret = "primary"; [Desc("Speed at which the turret turns.")]