diff --git a/OpenRA.Mods.Common/Traits/Mobile.cs b/OpenRA.Mods.Common/Traits/Mobile.cs index c9972145f0..bd7f25b1cc 100644 --- a/OpenRA.Mods.Common/Traits/Mobile.cs +++ b/OpenRA.Mods.Common/Traits/Mobile.cs @@ -139,7 +139,6 @@ namespace OpenRA.Mods.Common.Traits (actor, value) => { // TODO: This can all go away once turrets are properly defined as a relative facing - var turretsInit = actor.GetInitOrDefault(); var facingInit = actor.GetInitOrDefault(); var oldFacing = facingInit != null ? facingInit.Value : InitialFacing; @@ -153,13 +152,6 @@ namespace OpenRA.Mods.Common.Traits actor.AddInit(new TurretFacingInit(turretInit.InstanceName, newTurretFacing)); } - if (turretsInit != null) - { - var newTurretFacings = turretsInit.Value - .ToDictionary(kv => kv.Key, kv => (kv.Value + newFacing - oldFacing + 255) % 255); - actor.ReplaceInit(new TurretFacingsInit(newTurretFacings)); - } - actor.ReplaceInit(new FacingInit(newFacing)); }); } diff --git a/OpenRA.Mods.Common/Traits/Pluggable.cs b/OpenRA.Mods.Common/Traits/Pluggable.cs index 8f5a8e58c3..9673ef3622 100644 --- a/OpenRA.Mods.Common/Traits/Pluggable.cs +++ b/OpenRA.Mods.Common/Traits/Pluggable.cs @@ -92,9 +92,6 @@ namespace OpenRA.Mods.Common.Traits Info = info; initialPlug = init.GetValue(info, null); - var plugsInit = init.GetValue>(new Dictionary()); - if (plugsInit.ContainsKey(Info.Offset)) - initialPlug = plugsInit[Info.Offset]; if (info.Requirements.Count > 0) { @@ -154,12 +151,6 @@ namespace OpenRA.Mods.Common.Traits } } - public class PlugsInit : ValueActorInit>, ISingleInstanceInit - { - public PlugsInit(Dictionary value) - : base(value) { } - } - public class PlugInit : ValueActorInit { public PlugInit(TraitInfo info, string value) diff --git a/OpenRA.Mods.Common/Traits/Turreted.cs b/OpenRA.Mods.Common/Traits/Turreted.cs index 11e70666ab..d26281ac2c 100644 --- a/OpenRA.Mods.Common/Traits/Turreted.cs +++ b/OpenRA.Mods.Common/Traits/Turreted.cs @@ -56,11 +56,7 @@ namespace OpenRA.Mods.Common.Traits return InitialFacing; }, - (actor, value) => - { - actor.RemoveInit(); - actor.ReplaceInit(new TurretFacingInit(this, (int)value), this); - }); + (actor, value) => actor.ReplaceInit(new TurretFacingInit(this, (int)value), this)); } public override object Create(ActorInitializer init) { return new Turreted(init, this); } @@ -89,24 +85,11 @@ namespace OpenRA.Mods.Common.Traits public static Func TurretFacingFromInit(IActorInitializer init, TurretedInfo info) { - return TurretFacingFromInit(init, info, info.InitialFacing, info.Turret); + return TurretFacingFromInit(init, info, info.InitialFacing); } - public static Func TurretFacingFromInit(IActorInitializer init, TraitInfo info, int defaultFacing, string turret = null) + public static Func TurretFacingFromInit(IActorInitializer init, TraitInfo info, int defaultFacing) { - if (turret != null) - { - Func getFacing; - var dynamicTurretFacingsInit = init.GetOrDefault(); - if (dynamicTurretFacingsInit != null && dynamicTurretFacingsInit.Value.TryGetValue(turret, out getFacing)) - return getFacing; - - int facing; - var turretFacingsInit = init.GetOrDefault(); - if (turretFacingsInit != null && turretFacingsInit.Value.TryGetValue(turret, out facing)) - return () => facing; - } - var turretFacingInit = init.GetOrDefault(info); if (turretFacingInit != null) { @@ -220,26 +203,11 @@ namespace OpenRA.Mods.Common.Traits public void ModifyDeathActorInit(Actor self, TypeDictionary init) { - var facings = init.GetOrDefault(); - if (facings == null) - { - facings = new TurretFacingsInit(new Dictionary()); - init.Add(facings); - } - - if (!facings.Value.ContainsKey(Name)) - facings.Value.Add(Name, TurretFacing); + init.Add(new TurretFacingInit(Info, TurretFacing)); } void IActorPreviewInitModifier.ModifyActorPreviewInit(Actor self, TypeDictionary inits) { - var facings = inits.GetOrDefault(); - if (facings == null) - { - facings = new DynamicTurretFacingsInit(new Dictionary>()); - inits.Add(facings); - } - Func bodyFacing = () => facing.Facing.Facing; var dynamicFacing = inits.GetOrDefault(); var staticFacing = inits.GetOrDefault(); @@ -250,7 +218,7 @@ namespace OpenRA.Mods.Common.Traits // Freeze the relative turret facing to its current value var facingOffset = TurretFacing - bodyFacing(); - facings.Value.Add(Name, () => bodyFacing() + facingOffset); + inits.Add(new DynamicTurretFacingInit(Info, () => bodyFacing() + facingOffset)); } protected override void TraitDisabled(Actor self) @@ -272,15 +240,9 @@ namespace OpenRA.Mods.Common.Traits : base(value) { } } - public class TurretFacingsInit : ValueActorInit>, ISingleInstanceInit + public class DynamicTurretFacingInit : ValueActorInit> { - public TurretFacingsInit(Dictionary value) - : base(value) { } - } - - public class DynamicTurretFacingsInit : ValueActorInit>>, ISingleInstanceInit - { - public DynamicTurretFacingsInit(Dictionary> value) - : base(value) { } + public DynamicTurretFacingInit(TraitInfo info, Func value) + : base(info, value) { } } }