public void FixedUpdate()
{
if(HighLogic.LoadedSceneIsFlight)
{
engineIsOn = QueryEngineOn();
deployed = deployed || engineIsOn;
if (hasMultiEngine)
activeEngineName = multiController.mode;
}
foreach(var anim in animationStates)
{
if (engineIsOn && anim.normalizedTime < WaitForAnimation)
{
anim.speed = 1;
if(HighLogic.LoadedSceneIsFlight)
{
if (hasMultiEngine)
{
foreach (ModuleEngines fx in engines)
{
if (fx.engineID == activeEngineName)
fx.Shutdown();
}
}
else
{
foreach (ModuleEngines fx in engines)
{
fx.Shutdown();
}
}
}
}
if(HighLogic.LoadedSceneIsFlight && anim.normalizedTime >= WaitForAnimation && anim.speed > 0)
{
if (hasMultiEngine)
{
foreach (ModuleEngines fx in engines)
{
if (fx.engineID == activeEngineName)
fx.Activate();
}
}
else
{
foreach (ModuleEngines fx in engines)
{
fx.Activate();
}
}
}
if(anim.normalizedTime>=1)
{
anim.speed = 0;
anim.normalizedTime = 1;
}
if(anim.normalizedTime >=1 && !engineIsOn && !(HighLogic.LoadedSceneIsFlight && isOneShot))
{
anim.speed = -1;
}
if(anim.normalizedTime <0)
{
anim.speed = 0;
anim.normalizedTime = 0;
}
}
}