Use a consistent set of arguments for Render* ctors.
This commit is contained in:
@@ -26,7 +26,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
public readonly string WakeLeftSequence = "wake-left";
|
public readonly string WakeLeftSequence = "wake-left";
|
||||||
public readonly string WakeRightSequence = "wake-right";
|
public readonly string WakeRightSequence = "wake-right";
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new RenderGunboat(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new RenderGunboat(init, this); }
|
||||||
|
|
||||||
public int QuantizedBodyFacings(SequenceProvider sequenceProvider, ActorInfo ai)
|
public int QuantizedBodyFacings(SequenceProvider sequenceProvider, ActorInfo ai)
|
||||||
{
|
{
|
||||||
@@ -38,27 +38,27 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
{
|
{
|
||||||
Animation left, right;
|
Animation left, right;
|
||||||
|
|
||||||
public RenderGunboat(Actor self, RenderGunboatInfo info)
|
public RenderGunboat(ActorInitializer init, RenderGunboatInfo info)
|
||||||
: base(self)
|
: base(init, info)
|
||||||
{
|
{
|
||||||
var name = GetImage(self);
|
var name = GetImage(init.Self);
|
||||||
var facing = self.Trait<IFacing>();
|
var facing = init.Self.Trait<IFacing>();
|
||||||
var turret = self.TraitsImplementing<Turreted>()
|
var turret = init.Self.TraitsImplementing<Turreted>()
|
||||||
.First(t => t.Name == info.Turret);
|
.First(t => t.Name == info.Turret);
|
||||||
|
|
||||||
left = new Animation(self.World, name, () => turret.TurretFacing);
|
left = new Animation(init.World, name, () => turret.TurretFacing);
|
||||||
left.Play(info.LeftSequence);
|
left.Play(info.LeftSequence);
|
||||||
Add(info.LeftSequence, new AnimationWithOffset(left, null, () => facing.Facing > 128, 0));
|
Add(info.LeftSequence, new AnimationWithOffset(left, null, () => facing.Facing > 128, 0));
|
||||||
|
|
||||||
right = new Animation(self.World, name, () => turret.TurretFacing);
|
right = new Animation(init.World, name, () => turret.TurretFacing);
|
||||||
right.Play(info.RightSequence);
|
right.Play(info.RightSequence);
|
||||||
Add(info.RightSequence, new AnimationWithOffset(right, null, () => facing.Facing <= 128, 0));
|
Add(info.RightSequence, new AnimationWithOffset(right, null, () => facing.Facing <= 128, 0));
|
||||||
|
|
||||||
var leftWake = new Animation(self.World, name);
|
var leftWake = new Animation(init.World, name);
|
||||||
leftWake.PlayRepeating(info.WakeLeftSequence);
|
leftWake.PlayRepeating(info.WakeLeftSequence);
|
||||||
Add(info.WakeLeftSequence, new AnimationWithOffset(leftWake, null, () => facing.Facing > 128, -87));
|
Add(info.WakeLeftSequence, new AnimationWithOffset(leftWake, null, () => facing.Facing > 128, -87));
|
||||||
|
|
||||||
var rightWake = new Animation(self.World, name);
|
var rightWake = new Animation(init.World, name);
|
||||||
rightWake.PlayRepeating(info.WakeRightSequence);
|
rightWake.PlayRepeating(info.WakeRightSequence);
|
||||||
Add(info.WakeRightSequence, new AnimationWithOffset(rightWake, null, () => facing.Facing <= 128, -87));
|
Add(info.WakeRightSequence, new AnimationWithOffset(rightWake, null, () => facing.Facing <= 128, -87));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
: this(init, info, () => 0) { }
|
: this(init, info, () => 0) { }
|
||||||
|
|
||||||
public RenderBuilding(ActorInitializer init, RenderBuildingInfo info, Func<int> baseFacing)
|
public RenderBuilding(ActorInitializer init, RenderBuildingInfo info, Func<int> baseFacing)
|
||||||
: base(init.Self, baseFacing)
|
: base(init, info, baseFacing)
|
||||||
{
|
{
|
||||||
var self = init.Self;
|
var self = init.Self;
|
||||||
this.info = info;
|
this.info = info;
|
||||||
|
|||||||
@@ -16,12 +16,13 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Invisible during games.")]
|
[Desc("Invisible during games.")]
|
||||||
class RenderEditorOnlyInfo : RenderSimpleInfo
|
class RenderEditorOnlyInfo : RenderSimpleInfo
|
||||||
{
|
{
|
||||||
public override object Create(ActorInitializer init) { return new RenderEditorOnly(init.Self); }
|
public override object Create(ActorInitializer init) { return new RenderEditorOnly(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
class RenderEditorOnly : RenderSimple
|
class RenderEditorOnly : RenderSimple
|
||||||
{
|
{
|
||||||
public RenderEditorOnly(Actor self) : base(self, () => 0) { }
|
public RenderEditorOnly(ActorInitializer init, RenderEditorOnlyInfo info)
|
||||||
|
: base(init, info, () => 0) { }
|
||||||
|
|
||||||
public override IEnumerable<IRenderable> Render(Actor self, WorldRenderer wr) { return SpriteRenderable.None; }
|
public override IEnumerable<IRenderable> Render(Actor self, WorldRenderer wr) { return SpriteRenderable.None; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,13 +12,13 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
class RenderFlareInfo : RenderSimpleInfo
|
class RenderFlareInfo : RenderSimpleInfo
|
||||||
{
|
{
|
||||||
public override object Create(ActorInitializer init) { return new RenderFlare(init.Self); }
|
public override object Create(ActorInitializer init) { return new RenderFlare(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
class RenderFlare : RenderSimple
|
class RenderFlare : RenderSimple
|
||||||
{
|
{
|
||||||
public RenderFlare(Actor self)
|
public RenderFlare(ActorInitializer init, RenderFlareInfo info)
|
||||||
: base(self, () => 0)
|
: base(init, info, () => 0)
|
||||||
{
|
{
|
||||||
DefaultAnimation.PlayThen("open", () => DefaultAnimation.PlayRepeating("idle"));
|
DefaultAnimation.PlayThen("open", () => DefaultAnimation.PlayRepeating("idle"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
class RenderHarvesterInfo : RenderUnitInfo, Requires<HarvesterInfo>
|
class RenderHarvesterInfo : RenderUnitInfo, Requires<HarvesterInfo>
|
||||||
{
|
{
|
||||||
public readonly string[] ImagesByFullness = { "harv" };
|
public readonly string[] ImagesByFullness = { "harv" };
|
||||||
public override object Create(ActorInitializer init) { return new RenderHarvester(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new RenderHarvester(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
class RenderHarvester : RenderUnit, INotifyHarvesterAction
|
class RenderHarvester : RenderUnit, INotifyHarvesterAction
|
||||||
@@ -25,15 +25,15 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
Harvester harv;
|
Harvester harv;
|
||||||
RenderHarvesterInfo info;
|
RenderHarvesterInfo info;
|
||||||
|
|
||||||
public RenderHarvester(Actor self, RenderHarvesterInfo info)
|
public RenderHarvester(ActorInitializer init, RenderHarvesterInfo info)
|
||||||
: base(self)
|
: base(init, info)
|
||||||
{
|
{
|
||||||
this.info = info;
|
this.info = info;
|
||||||
harv = self.Trait<Harvester>();
|
harv = init.Self.Trait<Harvester>();
|
||||||
|
|
||||||
// HACK: Force images to be loaded up-front
|
// HACK: Force images to be loaded up-front
|
||||||
foreach (var image in info.ImagesByFullness)
|
foreach (var image in info.ImagesByFullness)
|
||||||
new Animation(self.World, image);
|
new Animation(init.World, image);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Tick(Actor self)
|
public override void Tick(Actor self)
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly string[] IdleAnimations = { };
|
public readonly string[] IdleAnimations = { };
|
||||||
public readonly string[] StandAnimations = { "stand" };
|
public readonly string[] StandAnimations = { "stand" };
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new RenderInfantry(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new RenderInfantry(init, this); }
|
||||||
|
|
||||||
public override IEnumerable<IActorPreview> RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p)
|
public override IEnumerable<IActorPreview> RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p)
|
||||||
{
|
{
|
||||||
@@ -58,14 +58,14 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
bool IsModifyingSequence { get { return rsm != null && rsm.IsModifyingSequence; } }
|
bool IsModifyingSequence { get { return rsm != null && rsm.IsModifyingSequence; } }
|
||||||
bool wasModifying;
|
bool wasModifying;
|
||||||
|
|
||||||
public RenderInfantry(Actor self, RenderInfantryInfo info)
|
public RenderInfantry(ActorInitializer init, RenderInfantryInfo info)
|
||||||
: base(self, MakeFacingFunc(self))
|
: base(init, info, MakeFacingFunc(init.Self))
|
||||||
{
|
{
|
||||||
this.info = info;
|
this.info = info;
|
||||||
DefaultAnimation.PlayFetchIndex(NormalizeInfantrySequence(self, info.StandAnimations.Random(Game.CosmeticRandom)), () => 0);
|
DefaultAnimation.PlayFetchIndex(NormalizeInfantrySequence(init.Self, info.StandAnimations.Random(Game.CosmeticRandom)), () => 0);
|
||||||
state = AnimationState.Waiting;
|
state = AnimationState.Waiting;
|
||||||
move = self.Trait<IMove>();
|
move = init.Self.Trait<IMove>();
|
||||||
rsm = self.TraitOrDefault<IRenderInfantrySequenceModifier>();
|
rsm = init.Self.TraitOrDefault<IRenderInfantrySequenceModifier>();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual string NormalizeInfantrySequence(Actor self, string baseSequence)
|
protected virtual string NormalizeInfantrySequence(Actor self, string baseSequence)
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
public class RenderSimpleInfo : RenderSpritesInfo, IRenderActorPreviewSpritesInfo, IQuantizeBodyOrientationInfo, ILegacyEditorRenderInfo, Requires<IBodyOrientationInfo>
|
public class RenderSimpleInfo : RenderSpritesInfo, IRenderActorPreviewSpritesInfo, IQuantizeBodyOrientationInfo, ILegacyEditorRenderInfo, Requires<IBodyOrientationInfo>
|
||||||
{
|
{
|
||||||
public override object Create(ActorInitializer init) { return new RenderSimple(init.Self); }
|
public override object Create(ActorInitializer init) { return new RenderSimple(init, this); }
|
||||||
|
|
||||||
public virtual IEnumerable<IActorPreview> RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p)
|
public virtual IEnumerable<IActorPreview> RenderPreviewSprites(ActorPreviewInitializer init, RenderSpritesInfo rs, string image, int facings, PaletteReference p)
|
||||||
{
|
{
|
||||||
@@ -43,17 +43,17 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
public readonly Animation DefaultAnimation;
|
public readonly Animation DefaultAnimation;
|
||||||
|
|
||||||
public RenderSimple(Actor self, Func<int> baseFacing)
|
public RenderSimple(ActorInitializer init, RenderSimpleInfo info, Func<int> baseFacing)
|
||||||
: base(self)
|
: base(init, info)
|
||||||
{
|
{
|
||||||
DefaultAnimation = new Animation(self.World, GetImage(self), baseFacing);
|
DefaultAnimation = new Animation(init.World, GetImage(init.Self), baseFacing);
|
||||||
Add("", DefaultAnimation);
|
Add("", DefaultAnimation);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RenderSimple(Actor self)
|
public RenderSimple(ActorInitializer init, RenderSimpleInfo info)
|
||||||
: this(self, MakeFacingFunc(self))
|
: this(init, info, MakeFacingFunc(init.Self))
|
||||||
{
|
{
|
||||||
DefaultAnimation.PlayRepeating(NormalizeSequence(self, "idle"));
|
DefaultAnimation.PlayRepeating(NormalizeSequence(init.Self, "idle"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public int2 SelectionSize(Actor self) { return AutoSelectionSize(self); }
|
public int2 SelectionSize(Actor self) { return AutoSelectionSize(self); }
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Change the sprite image size.")]
|
[Desc("Change the sprite image size.")]
|
||||||
public readonly float Scale = 1f;
|
public readonly float Scale = 1f;
|
||||||
|
|
||||||
public virtual object Create(ActorInitializer init) { return new RenderSprites(init.Self); }
|
public virtual object Create(ActorInitializer init) { return new RenderSprites(init, this); }
|
||||||
|
|
||||||
public IEnumerable<IActorPreview> RenderPreview(ActorPreviewInitializer init)
|
public IEnumerable<IActorPreview> RenderPreview(ActorPreviewInitializer init)
|
||||||
{
|
{
|
||||||
@@ -99,9 +99,9 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return () => facing.Facing;
|
return () => facing.Facing;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RenderSprites(Actor self)
|
public RenderSprites(ActorInitializer init, RenderSpritesInfo info)
|
||||||
{
|
{
|
||||||
info = self.Info.Traits.Get<RenderSpritesInfo>();
|
this.info = info;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetImage(ActorInfo actor)
|
public static string GetImage(ActorInfo actor)
|
||||||
|
|||||||
@@ -15,13 +15,13 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
public class RenderUnitInfo : RenderSimpleInfo, Requires<IFacingInfo>
|
public class RenderUnitInfo : RenderSimpleInfo, Requires<IFacingInfo>
|
||||||
{
|
{
|
||||||
public override object Create(ActorInitializer init) { return new RenderUnit(init.Self); }
|
public override object Create(ActorInitializer init) { return new RenderUnit(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RenderUnit : RenderSimple
|
public class RenderUnit : RenderSimple
|
||||||
{
|
{
|
||||||
public RenderUnit(Actor self)
|
public RenderUnit(ActorInitializer init, RenderUnitInfo info)
|
||||||
: base(self) { }
|
: base(init, info) { }
|
||||||
|
|
||||||
public void PlayCustomAnimation(Actor self, string newAnim, Action after)
|
public void PlayCustomAnimation(Actor self, string newAnim, Action after)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
{
|
{
|
||||||
class RenderDisguiseInfo : RenderInfantryInfo, Requires<DisguiseInfo>
|
class RenderDisguiseInfo : RenderInfantryInfo, Requires<DisguiseInfo>
|
||||||
{
|
{
|
||||||
public override object Create(ActorInitializer init) { return new RenderDisguise(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new RenderDisguise(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
class RenderDisguise : RenderInfantry
|
class RenderDisguise : RenderInfantry
|
||||||
@@ -24,11 +24,11 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
string intendedSprite;
|
string intendedSprite;
|
||||||
Disguise disguise;
|
Disguise disguise;
|
||||||
|
|
||||||
public RenderDisguise(Actor self, RenderDisguiseInfo info)
|
public RenderDisguise(ActorInitializer init, RenderDisguiseInfo info)
|
||||||
: base(self, info)
|
: base(init, info)
|
||||||
{
|
{
|
||||||
this.info = info;
|
this.info = info;
|
||||||
disguise = self.Trait<Disguise>();
|
disguise = init.Self.Trait<Disguise>();
|
||||||
intendedSprite = disguise.AsSprite;
|
intendedSprite = disguise.AsSprite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
public readonly string OpenAnim = "open";
|
public readonly string OpenAnim = "open";
|
||||||
public readonly string UnloadAnim = "unload";
|
public readonly string UnloadAnim = "unload";
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new RenderLandingCraft(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new RenderLandingCraft(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RenderLandingCraft : RenderUnit
|
public class RenderLandingCraft : RenderUnit
|
||||||
@@ -31,11 +31,11 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
readonly IMove move;
|
readonly IMove move;
|
||||||
bool open;
|
bool open;
|
||||||
|
|
||||||
public RenderLandingCraft(Actor self, RenderLandingCraftInfo info)
|
public RenderLandingCraft(ActorInitializer init, RenderLandingCraftInfo info)
|
||||||
: base(self)
|
: base(init, info)
|
||||||
{
|
{
|
||||||
this.info = info;
|
this.info = info;
|
||||||
this.self = self;
|
self = init.Self;
|
||||||
cargo = self.Trait<Cargo>();
|
cargo = self.Trait<Cargo>();
|
||||||
move = self.Trait<IMove>();
|
move = self.Trait<IMove>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
[Desc("Armament name")]
|
[Desc("Armament name")]
|
||||||
public readonly string Armament = "primary";
|
public readonly string Armament = "primary";
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new RenderUnitReload(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new RenderUnitReload(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
class RenderUnitReload : RenderUnit
|
class RenderUnitReload : RenderUnit
|
||||||
@@ -27,11 +27,11 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
readonly AttackBase attack;
|
readonly AttackBase attack;
|
||||||
readonly Armament armament;
|
readonly Armament armament;
|
||||||
|
|
||||||
public RenderUnitReload(Actor self, RenderUnitReloadInfo info)
|
public RenderUnitReload(ActorInitializer init, RenderUnitReloadInfo info)
|
||||||
: base(self)
|
: base(init, info)
|
||||||
{
|
{
|
||||||
attack = self.Trait<AttackBase>();
|
attack = init.Self.Trait<AttackBase>();
|
||||||
armament = self.TraitsImplementing<Armament>()
|
armament = init.Self.TraitsImplementing<Armament>()
|
||||||
.Single(a => a.Info.Name == info.Armament);
|
.Single(a => a.Info.Name == info.Armament);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user