SpriteEffect facing -> WAngle.

This commit is contained in:
Paul Chote
2020-05-08 20:12:32 +01:00
committed by atlimit8
parent fe58ed1283
commit 552bceb07c
5 changed files with 25 additions and 19 deletions

View File

@@ -9,7 +9,9 @@
*/
#endregion
using System;
using OpenRA.Mods.Common.Effects;
using OpenRA.Mods.Common.Traits.Render;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
@@ -37,19 +39,14 @@ namespace OpenRA.Mods.Common.Traits
{
readonly SmokeTrailWhenDamagedInfo info;
readonly BodyOrientation body;
readonly int getFacing;
readonly Func<WAngle> getFacing;
int ticks;
public SmokeTrailWhenDamaged(Actor self, SmokeTrailWhenDamagedInfo info)
{
this.info = info;
body = self.Trait<BodyOrientation>();
var facing = self.TraitOrDefault<IFacing>();
if (facing != null)
getFacing = facing.Facing;
else
getFacing = 0;
getFacing = RenderSprites.MakeFacingFunc(self);
}
void ITick.Tick(Actor self)
@@ -61,7 +58,7 @@ namespace OpenRA.Mods.Common.Traits
{
var offset = info.Offset.Rotate(body.QuantizeOrientation(self, self.Orientation));
var pos = position + body.LocalToWorld(offset);
self.World.AddFrameEndTask(w => w.Add(new SpriteEffect(pos, w, info.Sprite, info.Sequence, info.Palette, facing: getFacing)));
self.World.AddFrameEndTask(w => w.Add(new SpriteEffect(pos, getFacing(), w, info.Sprite, info.Sequence, info.Palette)));
}
ticks = info.Interval;