Beispiel #1
0
 public void OnPostAutopilotUpdate(FlightCtrlState s)
 {
     if (!Valid || !CFG.Enabled)
     {
         return;
     }
     //handle engines
     VSL.PostUpdateState(s);
     VSL.Engines.Tune();
     if (VSL.Engines.NumActive > 0)
     {
         //:preset manual limits for translation if needed
         if (VSL.Controls.ManualTranslationSwitch.On)
         {
             ENG.PresetLimitsForTranslation(VSL.Engines.Active.Manual, VSL.Controls.ManualTranslation);
             if (CFG.VSCIsActive)
             {
                 ENG.LimitInDirection(VSL.Engines.Active.Manual, VSL.Physics.UpL);
             }
         }
         //:optimize limits for steering
         ENG.PresetLimitsForTranslation(VSL.Engines.Active.Maneuver, VSL.Controls.Translation);
         ENG.Steer();
     }
     RCS.Steer();
     VSL.Engines.SetControls();
     VSL.FinalUpdate();
 }
Beispiel #2
0
 public void OnPostAutopilotUpdate(FlightCtrlState s)
 {
     if (!Valid || !CFG.Enabled)
     {
         return;
     }
     //handle engines
     VSL.PostUpdateState(s);
     VSL.Engines.Tune();
     if (VSL.Engines.NumActive > 0)
     {
         //:preset manual limits for translation if needed
         var translation = VSL.Controls.EnginesTranslation;
         if (VSL.Controls.HasTranslation)
         {
             translation += VSL.Controls.Translation;
         }
         if (!translation.IsZero())
         {
             EngineOptimizer.PresetLimitsForTranslation(VSL.Engines.Active.Maneuver, translation.normalized);
             if (CFG.VSCIsActive && !VSL.Controls.HasTranslation)
             {
                 EngineOptimizer.LimitInDirection(VSL.Engines.Active.Maneuver, VSL.Physics.UpL);
             }
         }
         ENG.Steer();
     }
     RCS.Steer();
     VSL.Engines.SetControls();
     VSL.FinalUpdate();
 }