Rewrite ActorInit queries.

This commit is contained in:
Paul Chote
2020-05-24 22:28:16 +01:00
committed by teinarss
parent 626b40f31b
commit 7c6ec577dc
66 changed files with 332 additions and 265 deletions

View File

@@ -32,7 +32,7 @@ namespace OpenRA.Mods.Cnc.Traits
public IEnumerable<IActorPreview> RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p)
{
if (init.Contains<HideBibPreviewInit>() && init.Get<HideBibPreviewInit, bool>())
if (init.Contains<HideBibPreviewInit>(this))
yield break;
if (Palette != null)
@@ -45,10 +45,7 @@ namespace OpenRA.Mods.Cnc.Traits
var bibOffset = bi.Dimensions.Y - rows;
var centerOffset = bi.CenterOffset(init.World);
var map = init.World.Map;
var location = CPos.Zero;
if (init.Contains<LocationInit>())
location = init.Get<LocationInit, CPos>();
var location = init.GetValue<LocationInit, CPos>(this, CPos.Zero);
for (var i = 0; i < rows * width; i++)
{
@@ -136,13 +133,8 @@ namespace OpenRA.Mods.Cnc.Traits
}
}
class HideBibPreviewInit : IActorInit<bool>, ISuppressInitExport
class HideBibPreviewInit : IActorInit, ISuppressInitExport
{
[FieldFromYamlKey]
readonly bool value = true;
public HideBibPreviewInit() { }
public HideBibPreviewInit(bool init) { value = init; }
public bool Value(World world) { return value; }
}
}

View File

@@ -34,7 +34,7 @@ namespace OpenRA.Mods.Cnc.Traits.Render
var wsb = init.Actor.TraitInfos<WithSpriteBodyInfo>().FirstOrDefault();
// Show the correct turret facing
var facing = WAngle.FromFacing(init.Contains<TurretFacingInit>() ? init.Get<TurretFacingInit>().Value(init.World) : t.InitialFacing);
var facing = WAngle.FromFacing(init.GetValue<TurretFacingInit, int>(this, t.InitialFacing));
var anim = new Animation(init.World, image, () => facing);
anim.PlayRepeating(RenderSprites.NormalizeSequence(anim, init.GetDamageState(), wsb.Sequence));

View File

@@ -36,7 +36,7 @@ namespace OpenRA.Mods.Cnc.Traits.Render
{
var model = init.World.ModelCache.GetModelSequence(image, Sequence);
var body = init.Actor.TraitInfo<BodyOrientationInfo>();
var frame = init.Contains<BodyAnimationFrameInit>() ? init.Get<BodyAnimationFrameInit, uint>() : 0;
var frame = init.GetValue<BodyAnimationFrameInit, uint>(this, 0);
yield return new ModelAnimation(model, () => WVec.Zero,
() => new[] { body.QuantizeOrientation(orientation(), facings) },
@@ -102,6 +102,6 @@ namespace OpenRA.Mods.Cnc.Traits.Render
public BodyAnimationFrameInit() { }
public BodyAnimationFrameInit(uint init) { value = init; }
public uint Value(World world) { return value; }
public uint Value { get { return value; } }
}
}