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.
This commit is contained in:
CaasGit
2024-07-19 20:36:22 -07:00
committed by GitHub
parent 8be13bf495
commit b04f98513c

View File

@@ -25,24 +25,30 @@ public sealed class FaxVisualsSystem : EntitySystem
if (args.Sprite == null) if (args.Sprite == null)
return; 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() _player.Play(uid,
{ new Animation()
Length = TimeSpan.FromSeconds(2.4),
AnimationTracks =
{ {
new AnimationTrackSpriteFlick() Length = TimeSpan.FromSeconds(2.4),
AnimationTracks =
{ {
LayerKey = FaxMachineVisuals.VisualState, new AnimationTrackSpriteFlick()
KeyFrames =
{ {
new AnimationTrackSpriteFlick.KeyFrame(component.InsertingState, 0f), LayerKey = FaxMachineVisuals.VisualState,
new AnimationTrackSpriteFlick.KeyFrame("icon", 2.4f), KeyFrames =
} {
} new AnimationTrackSpriteFlick.KeyFrame(component.InsertingState, 0f),
} new AnimationTrackSpriteFlick.KeyFrame("icon", 2.4f),
}, "faxecute"); },
},
},
},
"faxecute");
} }
} }
} }