Remove TurretFacingsInit and PlugsInit.
This commit is contained in:
@@ -139,7 +139,6 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
(actor, value) =>
|
(actor, value) =>
|
||||||
{
|
{
|
||||||
// TODO: This can all go away once turrets are properly defined as a relative facing
|
// TODO: This can all go away once turrets are properly defined as a relative facing
|
||||||
var turretsInit = actor.GetInitOrDefault<TurretFacingsInit>();
|
|
||||||
var facingInit = actor.GetInitOrDefault<FacingInit>();
|
var facingInit = actor.GetInitOrDefault<FacingInit>();
|
||||||
|
|
||||||
var oldFacing = facingInit != null ? facingInit.Value : InitialFacing;
|
var oldFacing = facingInit != null ? facingInit.Value : InitialFacing;
|
||||||
@@ -153,13 +152,6 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
actor.AddInit(new TurretFacingInit(turretInit.InstanceName, newTurretFacing));
|
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));
|
actor.ReplaceInit(new FacingInit(newFacing));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,9 +92,6 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
Info = info;
|
Info = info;
|
||||||
|
|
||||||
initialPlug = init.GetValue<PlugInit, string>(info, null);
|
initialPlug = init.GetValue<PlugInit, string>(info, null);
|
||||||
var plugsInit = init.GetValue<PlugsInit, Dictionary<CVec, string>>(new Dictionary<CVec, string>());
|
|
||||||
if (plugsInit.ContainsKey(Info.Offset))
|
|
||||||
initialPlug = plugsInit[Info.Offset];
|
|
||||||
|
|
||||||
if (info.Requirements.Count > 0)
|
if (info.Requirements.Count > 0)
|
||||||
{
|
{
|
||||||
@@ -154,12 +151,6 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PlugsInit : ValueActorInit<Dictionary<CVec, string>>, ISingleInstanceInit
|
|
||||||
{
|
|
||||||
public PlugsInit(Dictionary<CVec, string> value)
|
|
||||||
: base(value) { }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class PlugInit : ValueActorInit<string>
|
public class PlugInit : ValueActorInit<string>
|
||||||
{
|
{
|
||||||
public PlugInit(TraitInfo info, string value)
|
public PlugInit(TraitInfo info, string value)
|
||||||
|
|||||||
@@ -56,11 +56,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
return InitialFacing;
|
return InitialFacing;
|
||||||
},
|
},
|
||||||
(actor, value) =>
|
(actor, value) => actor.ReplaceInit(new TurretFacingInit(this, (int)value), this));
|
||||||
{
|
|
||||||
actor.RemoveInit<TurretFacingsInit>();
|
|
||||||
actor.ReplaceInit(new TurretFacingInit(this, (int)value), this);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new Turreted(init, this); }
|
public override object Create(ActorInitializer init) { return new Turreted(init, this); }
|
||||||
@@ -89,24 +85,11 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public static Func<int> TurretFacingFromInit(IActorInitializer init, TurretedInfo info)
|
public static Func<int> TurretFacingFromInit(IActorInitializer init, TurretedInfo info)
|
||||||
{
|
{
|
||||||
return TurretFacingFromInit(init, info, info.InitialFacing, info.Turret);
|
return TurretFacingFromInit(init, info, info.InitialFacing);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Func<int> TurretFacingFromInit(IActorInitializer init, TraitInfo info, int defaultFacing, string turret = null)
|
public static Func<int> TurretFacingFromInit(IActorInitializer init, TraitInfo info, int defaultFacing)
|
||||||
{
|
{
|
||||||
if (turret != null)
|
|
||||||
{
|
|
||||||
Func<int> getFacing;
|
|
||||||
var dynamicTurretFacingsInit = init.GetOrDefault<DynamicTurretFacingsInit>();
|
|
||||||
if (dynamicTurretFacingsInit != null && dynamicTurretFacingsInit.Value.TryGetValue(turret, out getFacing))
|
|
||||||
return getFacing;
|
|
||||||
|
|
||||||
int facing;
|
|
||||||
var turretFacingsInit = init.GetOrDefault<TurretFacingsInit>();
|
|
||||||
if (turretFacingsInit != null && turretFacingsInit.Value.TryGetValue(turret, out facing))
|
|
||||||
return () => facing;
|
|
||||||
}
|
|
||||||
|
|
||||||
var turretFacingInit = init.GetOrDefault<TurretFacingInit>(info);
|
var turretFacingInit = init.GetOrDefault<TurretFacingInit>(info);
|
||||||
if (turretFacingInit != null)
|
if (turretFacingInit != null)
|
||||||
{
|
{
|
||||||
@@ -220,26 +203,11 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public void ModifyDeathActorInit(Actor self, TypeDictionary init)
|
public void ModifyDeathActorInit(Actor self, TypeDictionary init)
|
||||||
{
|
{
|
||||||
var facings = init.GetOrDefault<TurretFacingsInit>();
|
init.Add(new TurretFacingInit(Info, TurretFacing));
|
||||||
if (facings == null)
|
|
||||||
{
|
|
||||||
facings = new TurretFacingsInit(new Dictionary<string, int>());
|
|
||||||
init.Add(facings);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!facings.Value.ContainsKey(Name))
|
|
||||||
facings.Value.Add(Name, TurretFacing);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IActorPreviewInitModifier.ModifyActorPreviewInit(Actor self, TypeDictionary inits)
|
void IActorPreviewInitModifier.ModifyActorPreviewInit(Actor self, TypeDictionary inits)
|
||||||
{
|
{
|
||||||
var facings = inits.GetOrDefault<DynamicTurretFacingsInit>();
|
|
||||||
if (facings == null)
|
|
||||||
{
|
|
||||||
facings = new DynamicTurretFacingsInit(new Dictionary<string, Func<int>>());
|
|
||||||
inits.Add(facings);
|
|
||||||
}
|
|
||||||
|
|
||||||
Func<int> bodyFacing = () => facing.Facing.Facing;
|
Func<int> bodyFacing = () => facing.Facing.Facing;
|
||||||
var dynamicFacing = inits.GetOrDefault<DynamicFacingInit>();
|
var dynamicFacing = inits.GetOrDefault<DynamicFacingInit>();
|
||||||
var staticFacing = inits.GetOrDefault<FacingInit>();
|
var staticFacing = inits.GetOrDefault<FacingInit>();
|
||||||
@@ -250,7 +218,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
// Freeze the relative turret facing to its current value
|
// Freeze the relative turret facing to its current value
|
||||||
var facingOffset = TurretFacing - bodyFacing();
|
var facingOffset = TurretFacing - bodyFacing();
|
||||||
facings.Value.Add(Name, () => bodyFacing() + facingOffset);
|
inits.Add(new DynamicTurretFacingInit(Info, () => bodyFacing() + facingOffset));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void TraitDisabled(Actor self)
|
protected override void TraitDisabled(Actor self)
|
||||||
@@ -272,15 +240,9 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
: base(value) { }
|
: base(value) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TurretFacingsInit : ValueActorInit<Dictionary<string, int>>, ISingleInstanceInit
|
public class DynamicTurretFacingInit : ValueActorInit<Func<int>>
|
||||||
{
|
{
|
||||||
public TurretFacingsInit(Dictionary<string, int> value)
|
public DynamicTurretFacingInit(TraitInfo info, Func<int> value)
|
||||||
: base(value) { }
|
: base(info, value) { }
|
||||||
}
|
|
||||||
|
|
||||||
public class DynamicTurretFacingsInit : ValueActorInit<Dictionary<string, Func<int>>>, ISingleInstanceInit
|
|
||||||
{
|
|
||||||
public DynamicTurretFacingsInit(Dictionary<string, Func<int>> value)
|
|
||||||
: base(value) { }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user