public void FixedUpdate()
{
foreach (var anim in animationStates)
{
if (anim.normalizedTime >= 1)
{
anim.speed = 0;
anim.normalizedTime = 1;
}
if (HighLogic.LoadedSceneIsFlight && !decoupled && decoupler != null && decoupler.isDecoupled)
{
decoupled = true;
PlayAnimation(1);
}
if (anim.normalizedTime < 0)
{
anim.speed = 0;
anim.normalizedTime = 0;
}
animPosition = anim.normalizedTime;
animSpeed = anim.speed;
}
if (HighLogic.LoadedSceneIsFlight && animPosition >= waitForAnimation && animSpeed > 0)
{
if (decoupler != null && !decoupler.isDecoupled)
{
decoupler.Decouple();
}
decoupled = true;
if (payloadDecoupler != null)
payloadDecoupler.isEnabled = true;
}
if (playing && animSpeed == 0f)
{
playing = false;
OnStop.Fire(animPosition);
}
}