Add ActorInfo.TraitInfo[OrDefault]<T>() requiring ITraitIfo types
This commit is contained in:
@@ -32,7 +32,7 @@ namespace OpenRA.Mods.RA.Activities
|
||||
public LayMines(Actor self)
|
||||
{
|
||||
minelayer = self.TraitOrDefault<Minelayer>();
|
||||
info = self.Info.Traits.Get<MinelayerInfo>();
|
||||
info = self.Info.TraitInfo<MinelayerInfo>();
|
||||
ammoPools = self.TraitsImplementing<AmmoPool>().ToArray();
|
||||
movement = self.Trait<IMove>();
|
||||
rearmBuildings = info.RearmBuildings;
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
if (producer.Owner != self.Owner || producer.Info.HasTraitInfo<ClonesProducedUnitsInfo>())
|
||||
return;
|
||||
|
||||
var ci = produced.Info.Traits.GetOrDefault<CloneableInfo>();
|
||||
var ci = produced.Info.TraitInfoOrDefault<CloneableInfo>();
|
||||
if (ci == null || !info.CloneableTypes.Overlaps(ci.Types))
|
||||
return;
|
||||
|
||||
|
||||
@@ -167,7 +167,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
var oldDisguiseSetting = Disguised;
|
||||
var oldEffectiveOwner = AsPlayer;
|
||||
|
||||
var renderSprites = actorInfo.Traits.GetOrDefault<RenderSpritesInfo>();
|
||||
var renderSprites = actorInfo.TraitInfoOrDefault<RenderSpritesInfo>();
|
||||
AsSprite = renderSprites == null ? null : renderSprites.GetImage(actorInfo, self.World.Map.SequenceProvider, newOwner.Faction.InternalName);
|
||||
AsPlayer = newOwner;
|
||||
AsTooltipInfo = actorInfo.Traits.WithInterface<TooltipInfo>().FirstOrDefault();
|
||||
|
||||
@@ -88,7 +88,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
var movement = self.Trait<IPositionable>();
|
||||
|
||||
Minefield = GetMinefieldCells(minefieldStart, order.TargetLocation,
|
||||
self.Info.Traits.Get<MinelayerInfo>().MinefieldDepth)
|
||||
self.Info.TraitInfo<MinelayerInfo>().MinefieldDepth)
|
||||
.Where(p => movement.CanEnterCell(p, null, false)).ToArray();
|
||||
|
||||
self.CancelActivity();
|
||||
@@ -155,7 +155,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
var underCursor = world.ScreenMap.ActorsAt(mi)
|
||||
.Where(a => !world.FogObscures(a))
|
||||
.MaxByOrDefault(a => a.Info.HasTraitInfo<SelectableInfo>()
|
||||
? a.Info.Traits.Get<SelectableInfo>().Priority : int.MinValue);
|
||||
? a.Info.TraitInfo<SelectableInfo>().Priority : int.MinValue);
|
||||
|
||||
if (mi.Button == Game.Settings.Game.MouseButtonPreference.Action && underCursor == null)
|
||||
{
|
||||
@@ -179,7 +179,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
|
||||
var movement = minelayer.Trait<IPositionable>();
|
||||
var minefield = GetMinefieldCells(minefieldStart, lastMousePos,
|
||||
minelayer.Info.Traits.Get<MinelayerInfo>().MinefieldDepth);
|
||||
minelayer.Info.TraitInfo<MinelayerInfo>().MinefieldDepth);
|
||||
|
||||
var pal = wr.Palette("terrain");
|
||||
foreach (var c in minefield)
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
{
|
||||
public IEnumerable<IRenderable> Render(WorldRenderer wr, World w, ActorInfo ai, WPos centerPosition)
|
||||
{
|
||||
var jamsMissiles = ai.Traits.GetOrDefault<JamsMissilesInfo>();
|
||||
var jamsMissiles = ai.TraitInfoOrDefault<JamsMissilesInfo>();
|
||||
if (jamsMissiles != null)
|
||||
{
|
||||
yield return new RangeCircleRenderable(
|
||||
@@ -33,7 +33,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
Color.FromArgb(96, Color.Black));
|
||||
}
|
||||
|
||||
var jamsRadar = ai.Traits.GetOrDefault<JamsRadarInfo>();
|
||||
var jamsRadar = ai.TraitInfoOrDefault<JamsRadarInfo>();
|
||||
if (jamsRadar != null)
|
||||
{
|
||||
yield return new RangeCircleRenderable(
|
||||
@@ -64,7 +64,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
if (!self.Owner.IsAlliedWith(self.World.RenderPlayer))
|
||||
yield break;
|
||||
|
||||
var jamsMissiles = self.Info.Traits.GetOrDefault<JamsMissilesInfo>();
|
||||
var jamsMissiles = self.Info.TraitInfoOrDefault<JamsMissilesInfo>();
|
||||
if (jamsMissiles != null)
|
||||
{
|
||||
yield return new RangeCircleRenderable(
|
||||
@@ -75,7 +75,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
Color.FromArgb(96, Color.Black));
|
||||
}
|
||||
|
||||
var jamsRadar = self.Info.Traits.GetOrDefault<JamsRadarInfo>();
|
||||
var jamsRadar = self.Info.TraitInfoOrDefault<JamsRadarInfo>();
|
||||
if (jamsRadar != null)
|
||||
{
|
||||
yield return new RangeCircleRenderable(
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
{
|
||||
yield return new RangeCircleRenderable(
|
||||
centerPosition,
|
||||
ai.Traits.Get<CreatesShroudInfo>().Range,
|
||||
ai.TraitInfo<CreatesShroudInfo>().Range,
|
||||
0,
|
||||
Color.FromArgb(128, Color.Cyan),
|
||||
Color.FromArgb(96, Color.Black));
|
||||
@@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
|
||||
yield return new RangeCircleRenderable(
|
||||
self.CenterPosition,
|
||||
self.Info.Traits.Get<CreatesShroudInfo>().Range,
|
||||
self.Info.TraitInfo<CreatesShroudInfo>().Range,
|
||||
0,
|
||||
Color.FromArgb(128, Color.Cyan),
|
||||
Color.FromArgb(96, Color.Black));
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
if (randomize)
|
||||
dropFacing = Util.QuantizeFacing(self.World.SharedRandom.Next(256), info.QuantizedFacings) * (256 / info.QuantizedFacings);
|
||||
|
||||
var altitude = self.World.Map.Rules.Actors[info.UnitType].Traits.Get<PlaneInfo>().CruiseAltitude.Length;
|
||||
var altitude = self.World.Map.Rules.Actors[info.UnitType].TraitInfo<PlaneInfo>().CruiseAltitude.Length;
|
||||
var dropRotation = WRot.FromFacing(dropFacing);
|
||||
var delta = new WVec(0, -1024, 0).Rotate(dropRotation);
|
||||
target = target + new WVec(0, 0, altitude);
|
||||
|
||||
Reference in New Issue
Block a user