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,9 +25,14 @@ 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()
_player.Play(uid,
new Animation()
{
Length = TimeSpan.FromSeconds(2.4),
AnimationTracks =
@@ -39,10 +44,11 @@ public sealed class FaxVisualsSystem : EntitySystem
{
new AnimationTrackSpriteFlick.KeyFrame(component.InsertingState, 0f),
new AnimationTrackSpriteFlick.KeyFrame("icon", 2.4f),
}
}
}
}, "faxecute");
},
},
},
},
"faxecute");
}
}
}