From: CaasGit <87243814+CaasGit@users.noreply.github.com> Date: Sat, 20 Jul 2024 03:36:22 +0000 (-0700) Subject: fix(FaxVisualsSystem): Fax can Play() when a anim key has been added. (#30013) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=b04f98513c498c9994caaa7c8412e67a19dc6c3e;p=space-station-14.git fix(FaxVisualsSystem): Fax can Play() when a anim key has been added. (#30013) Adds a check to see if a faxecute animation is being played before playing another animation. The old code can thrown an exception which I've seen on live while ghosting. --- diff --git a/Content.Client/Fax/System/FaxVisualsSystem.cs b/Content.Client/Fax/System/FaxVisualsSystem.cs index 892aec1d95..e752fbf48e 100644 --- a/Content.Client/Fax/System/FaxVisualsSystem.cs +++ b/Content.Client/Fax/System/FaxVisualsSystem.cs @@ -25,24 +25,30 @@ public sealed class FaxVisualsSystem : EntitySystem if (args.Sprite == null) return; - if (_appearance.TryGetData(uid, FaxMachineVisuals.VisualState, out FaxMachineVisualState visuals) && visuals == FaxMachineVisualState.Inserting) + if (_player.HasRunningAnimation(uid, "faxecute")) + return; + + if (_appearance.TryGetData(uid, FaxMachineVisuals.VisualState, out FaxMachineVisualState visuals) && + visuals == FaxMachineVisualState.Inserting) { - _player.Play(uid, new Animation() - { - Length = TimeSpan.FromSeconds(2.4), - AnimationTracks = + _player.Play(uid, + new Animation() { - new AnimationTrackSpriteFlick() + Length = TimeSpan.FromSeconds(2.4), + AnimationTracks = { - LayerKey = FaxMachineVisuals.VisualState, - KeyFrames = + new AnimationTrackSpriteFlick() { - new AnimationTrackSpriteFlick.KeyFrame(component.InsertingState, 0f), - new AnimationTrackSpriteFlick.KeyFrame("icon", 2.4f), - } - } - } - }, "faxecute"); + LayerKey = FaxMachineVisuals.VisualState, + KeyFrames = + { + new AnimationTrackSpriteFlick.KeyFrame(component.InsertingState, 0f), + new AnimationTrackSpriteFlick.KeyFrame("icon", 2.4f), + }, + }, + }, + }, + "faxecute"); } } }