From db49fe8c225f7fe3a5de27c849479c3bfec42958 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Thu, 7 Nov 2013 17:38:14 +1300 Subject: [PATCH] Use the original flame and chem muzzle flashes. --- OpenRA.Mods.RA/Render/WithMuzzleFlash.cs | 16 +++++- mods/cnc/bits/chem.shp | Bin 14870 -> 0 bytes mods/cnc/bits/flame2.shp | Bin 15861 -> 0 bytes mods/cnc/rules/infantry.yaml | 6 +- mods/cnc/rules/vehicles.yaml | 1 + mods/cnc/sequences/infantry.yaml | 68 +++++++++++++++++++++-- mods/cnc/sequences/vehicles.yaml | 34 +++++++++++- 7 files changed, 112 insertions(+), 13 deletions(-) delete mode 100644 mods/cnc/bits/chem.shp delete mode 100644 mods/cnc/bits/flame2.shp diff --git a/OpenRA.Mods.RA/Render/WithMuzzleFlash.cs b/OpenRA.Mods.RA/Render/WithMuzzleFlash.cs index 7bf24fe8ea..571d6421d6 100644 --- a/OpenRA.Mods.RA/Render/WithMuzzleFlash.cs +++ b/OpenRA.Mods.RA/Render/WithMuzzleFlash.cs @@ -26,6 +26,12 @@ namespace OpenRA.Mods.RA.Render [Desc("Armament name")] public readonly string Armament = "primary"; + [Desc("Are the muzzle facings split into multiple shps?")] + public readonly bool SplitFacings = false; + + [Desc("Number of separate facing images that are defined in the sequences.")] + public readonly int FacingCount = 8; + public object Create(ActorInitializer init) { return new WithMuzzleFlash(init.self, this); } } @@ -34,6 +40,7 @@ namespace OpenRA.Mods.RA.Render readonly WithMuzzleFlashInfo info; Dictionary visible = new Dictionary(); Dictionary anims = new Dictionary(); + Func getFacing; public WithMuzzleFlash(Actor self, WithMuzzleFlashInfo info) { @@ -50,7 +57,7 @@ namespace OpenRA.Mods.RA.Render var turreted = self.TraitsImplementing() .FirstOrDefault(t => t.Name == arm.Info.Turret); - var getFacing = turreted != null ? () => turreted.turretFacing : + getFacing = turreted != null ? () => turreted.turretFacing : facing != null ? (Func)(() => facing.Facing) : () => 0; var muzzleFlash = new Animation(render.GetImage(self), getFacing); @@ -69,7 +76,12 @@ namespace OpenRA.Mods.RA.Render return; visible[barrel] = true; - anims[barrel].Animation.PlayThen(info.Sequence, () => visible[barrel] = false); + var sequence = info.Sequence; + + if (info.SplitFacings) + sequence += Traits.Util.QuantizeFacing(getFacing(), info.FacingCount).ToString(); + + anims[barrel].Animation.PlayThen(sequence, () => visible[barrel] = false); } public IEnumerable Render(Actor self, WorldRenderer wr) diff --git a/mods/cnc/bits/chem.shp b/mods/cnc/bits/chem.shp deleted file mode 100644 index 8116e742c7abb6aa33bbe1131a9b6b53e95e05fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14870 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 gwtl-eaV{fW@iubJ5-h^R=!i>fH7E!9@Y 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 e(JT&~41nl`EBq5ew%|Iy2|ClEW$k_$Wd0X3v}