Fix turret muzzleflash.
This commit is contained in:
@@ -19,7 +19,10 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
{
|
{
|
||||||
class WithMuzzleFlashInfo : ITraitInfo, Requires<RenderSpritesInfo>, Requires<AttackBaseInfo>, Requires<ArmamentInfo>
|
class WithMuzzleFlashInfo : ITraitInfo, Requires<RenderSpritesInfo>, Requires<AttackBaseInfo>, Requires<ArmamentInfo>
|
||||||
{
|
{
|
||||||
public object Create(ActorInitializer init) { return new WithMuzzleFlash(init.self); }
|
[Desc("Ignore the weapon position, and always draw relative to the center of the actor")]
|
||||||
|
public readonly bool IgnoreOffset = false;
|
||||||
|
|
||||||
|
public object Create(ActorInitializer init) { return new WithMuzzleFlash(init.self, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
class WithMuzzleFlash : INotifyAttack, IRender, ITick
|
class WithMuzzleFlash : INotifyAttack, IRender, ITick
|
||||||
@@ -28,7 +31,7 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
Dictionary<Barrel, AnimationWithOffset> anims = new Dictionary<Barrel, AnimationWithOffset>();
|
Dictionary<Barrel, AnimationWithOffset> anims = new Dictionary<Barrel, AnimationWithOffset>();
|
||||||
Func<int> getFacing;
|
Func<int> getFacing;
|
||||||
|
|
||||||
public WithMuzzleFlash(Actor self)
|
public WithMuzzleFlash(Actor self, WithMuzzleFlashInfo info)
|
||||||
{
|
{
|
||||||
var render = self.Trait<RenderSprites>();
|
var render = self.Trait<RenderSprites>();
|
||||||
var facing = self.TraitOrDefault<IFacing>();
|
var facing = self.TraitOrDefault<IFacing>();
|
||||||
@@ -52,7 +55,7 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
visible.Add(barrel, false);
|
visible.Add(barrel, false);
|
||||||
anims.Add(barrel,
|
anims.Add(barrel,
|
||||||
new AnimationWithOffset(muzzleFlash,
|
new AnimationWithOffset(muzzleFlash,
|
||||||
() => arm.MuzzleOffset(self, barrel),
|
() => info.IgnoreOffset ? WVec.Zero : arm.MuzzleOffset(self, barrel),
|
||||||
() => !visible[barrel],
|
() => !visible[barrel],
|
||||||
p => WithTurret.ZOffsetFromCenter(self, p, 2)));
|
p => WithTurret.ZOffsetFromCenter(self, p, 2)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -469,6 +469,7 @@ WALL:
|
|||||||
QuantizedFacings: 32
|
QuantizedFacings: 32
|
||||||
WithTurret:
|
WithTurret:
|
||||||
WithMuzzleFlash:
|
WithMuzzleFlash:
|
||||||
|
IgnoreOffset: true
|
||||||
Turreted:
|
Turreted:
|
||||||
ROT: 6
|
ROT: 6
|
||||||
InitialFacing: 128
|
InitialFacing: 128
|
||||||
|
|||||||
@@ -61,9 +61,10 @@ guntowera:
|
|||||||
Facings: -32
|
Facings: -32
|
||||||
Offset: -24,16
|
Offset: -24,16
|
||||||
muzzle: DATA
|
muzzle: DATA
|
||||||
Frames: 3775, 3775, 3776, 3776, 3777, 3777, 3778, 3778, 3779, 3779, 3780, 3780, 3781, 3781, 3782, 3782, 3783, 3783, 3784, 3784, 3785, 3785, 3786, 3786, 3787, 3787, 3788, 3788, 3789, 3789, 3790, 3790, 3791, 3791, 3792, 3792, 3793, 3793, 3794, 3794, 3795, 3795, 3796, 3796, 3797, 3797, 3798, 3798, 3799, 3799, 3800, 3800, 3801, 3801, 3802, 3802, 3803, 3803, 3804, 3804, 3805, 3805, 3806, 3806
|
Frames: 3839, 3839, 3840, 3840, 3841, 3841, 3842, 3842, 3843, 3843, 3844, 3844, 3845, 3845, 3846, 3846, 3847, 3847, 3848, 3848, 3849, 3849, 3850, 3850, 3851, 3851, 3852, 3852, 3853, 3853, 3854, 3854, 3855, 3855, 3856, 3856, 3857, 3857, 3858, 3858, 3859, 3859, 3860, 3860, 3861, 3861, 3862, 3862, 3863, 3863, 3864, 3864, 3865, 3865, 3866, 3866, 3867, 3867, 3868, 3868, 3869, 3869, 3870, 3870
|
||||||
Facings: -32
|
Facings: -32
|
||||||
Length: 2
|
Length: 2
|
||||||
|
Offset: 0,-12
|
||||||
BlendMode: Additive
|
BlendMode: Additive
|
||||||
icon: DATA
|
icon: DATA
|
||||||
Start: 4069
|
Start: 4069
|
||||||
@@ -83,9 +84,10 @@ guntowerh:
|
|||||||
Facings: -32
|
Facings: -32
|
||||||
Offset: -24,16
|
Offset: -24,16
|
||||||
muzzle: DATA
|
muzzle: DATA
|
||||||
Frames: 3775, 3775, 3776, 3776, 3777, 3777, 3778, 3778, 3779, 3779, 3780, 3780, 3781, 3781, 3782, 3782, 3783, 3783, 3784, 3784, 3785, 3785, 3786, 3786, 3787, 3787, 3788, 3788, 3789, 3789, 3790, 3790, 3791, 3791, 3792, 3792, 3793, 3793, 3794, 3794, 3795, 3795, 3796, 3796, 3797, 3797, 3798, 3798, 3799, 3799, 3800, 3800, 3801, 3801, 3802, 3802, 3803, 3803, 3804, 3804, 3805, 3805, 3806, 3806
|
Frames: 3839, 3839, 3840, 3840, 3841, 3841, 3842, 3842, 3843, 3843, 3844, 3844, 3845, 3845, 3846, 3846, 3847, 3847, 3848, 3848, 3849, 3849, 3850, 3850, 3851, 3851, 3852, 3852, 3853, 3853, 3854, 3854, 3855, 3855, 3856, 3856, 3857, 3857, 3858, 3858, 3859, 3859, 3860, 3860, 3861, 3861, 3862, 3862, 3863, 3863, 3864, 3864, 3865, 3865, 3866, 3866, 3867, 3867, 3868, 3868, 3869, 3869, 3870, 3870
|
||||||
Facings: -32
|
Facings: -32
|
||||||
Length: 2
|
Length: 2
|
||||||
|
Offset: 0,-12
|
||||||
BlendMode: Additive
|
BlendMode: Additive
|
||||||
icon: DATA
|
icon: DATA
|
||||||
Frames: 4070
|
Frames: 4070
|
||||||
@@ -105,9 +107,10 @@ guntowero:
|
|||||||
Facings: -32
|
Facings: -32
|
||||||
Offset: -24,16
|
Offset: -24,16
|
||||||
muzzle: DATA
|
muzzle: DATA
|
||||||
Frames: 3775, 3775, 3776, 3776, 3777, 3777, 3778, 3778, 3779, 3779, 3780, 3780, 3781, 3781, 3782, 3782, 3783, 3783, 3784, 3784, 3785, 3785, 3786, 3786, 3787, 3787, 3788, 3788, 3789, 3789, 3790, 3790, 3791, 3791, 3792, 3792, 3793, 3793, 3794, 3794, 3795, 3795, 3796, 3796, 3797, 3797, 3798, 3798, 3799, 3799, 3800, 3800, 3801, 3801, 3802, 3802, 3803, 3803, 3804, 3804, 3805, 3805, 3806, 3806
|
Frames: 3839, 3839, 3840, 3840, 3841, 3841, 3842, 3842, 3843, 3843, 3844, 3844, 3845, 3845, 3846, 3846, 3847, 3847, 3848, 3848, 3849, 3849, 3850, 3850, 3851, 3851, 3852, 3852, 3853, 3853, 3854, 3854, 3855, 3855, 3856, 3856, 3857, 3857, 3858, 3858, 3859, 3859, 3860, 3860, 3861, 3861, 3862, 3862, 3863, 3863, 3864, 3864, 3865, 3865, 3866, 3866, 3867, 3867, 3868, 3868, 3869, 3869, 3870, 3870
|
||||||
Facings: -32
|
Facings: -32
|
||||||
Length: 2
|
Length: 2
|
||||||
|
Offset: 0,-12
|
||||||
BlendMode: Additive
|
BlendMode: Additive
|
||||||
icon: DATA
|
icon: DATA
|
||||||
Start: 4071
|
Start: 4071
|
||||||
|
|||||||
Reference in New Issue
Block a user