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(); }
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(); }