//public interface: public void LandAtPositionTarget(object controller) { landAtTarget = true; users.Add(controller); predictor.users.Add(this); vessel.RemoveAllManeuverNodes(); // For the benefit of the landing predictions module deployedGears = false; // Create a new parachute plan parachutePlan = new ParachutePlan(this); parachutePlan.StartPlanning(); if (orbit.PeA < 0) { setStep(new Landing.CourseCorrection(core)); } else if (UseLowDeorbitStrategy()) { setStep(new Landing.PlaneChange(core)); } else { setStep(new Landing.DeorbitBurn(core)); } }
public void ControlParachutes() { // Firstly - do we have a parachute plan? If not then we had better get one quick! if (null == parachutePlan) { parachutePlan = new ParachutePlan(this); } // Are there any deployable parachute? If not then there is no point in us being here. Let's switch to cruising to the deceleration burn instead. if (!ParachutesDeployable()) { predictor.runErrorSimulations = false; parachutePlan.ClearData(); return; } else { predictor.runErrorSimulations = true; } // Is there an error prediction available? If so add that into the mix if (ErrorPredictionReady && !double.IsNaN(errorPrediction.parachuteMultiplier)) { parachutePlan.AddResult(errorPrediction); } // Has the Landing prediction been updated? If so then we can use the result to refine our parachute plan. if (PredictionReady && !double.IsNaN(prediction.parachuteMultiplier)) { parachutePlan.AddResult(prediction); } }
public void PatchPredictorPolicy() { if (parachutePlan == null) { this.parachutePlan = new ParachutePlan(this); this.parachutePlan.StartPlanning(); } predictor.descentSpeedPolicy = PickDescentSpeedPolicy(); //create a separate IDescentSpeedPolicy object for the simulation predictor.decelEndAltitudeASL = DecelerationEndAltitude(); predictor.parachuteSemiDeployMultiplier = this.parachutePlan.Multiplier; }
public void LandUntargeted(object controller) { landAtTarget = false; users.Add(controller); deployedGears = false; // Create a new parachute plan this.parachutePlan = new ParachutePlan(this); this.parachutePlan.StartPlanning(); setStep(new Landing.UntargetedDeorbit(core)); }
//public interface: public void LandAtPositionTarget(object controller) { landAtTarget = true; users.Add(controller); predictor.users.Add(this); vessel.RemoveAllManeuverNodes(); // For the benefit of the landing predictions module deployedGears = false; // Create a new parachute plan parachutePlan = new ParachutePlan(this); parachutePlan.StartPlanning(); bool useTrajectoriesAtmo = TrajectoriesConnector.isLoadedTrajectories && mainBody.atmosphere; if (useTrajectoriesAtmo && orbit.PeA < mainBody.atmosphereDepth) { setStep(new Landing.AtmosphericCorrection(core)); } else if (orbit.PeA < 0) { setStep(new Landing.CourseCorrection(core)); } else if (UseLowDeorbitStrategy()) { setStep(new Landing.PlaneChange(core)); } else if (useTrajectoriesAtmo) { setStep(new Landing.AtmosphericDeorbit(core)); } else { setStep(new Landing.DeorbitBurn(core)); } }
//public interface: public void LandAtPositionTarget(object controller) { landAtTarget = true; users.Add(controller); predictor.users.Add(this); vessel.RemoveAllManeuverNodes(); // For the benefit of the landing predictions module deployedGears = false; // Create a new parachute plan parachutePlan = new ParachutePlan(this); parachutePlan.StartPlanning(); if (orbit.PeA < 0) setStep(new Landing.CourseCorrection(core)); else if (UseLowDeorbitStrategy()) setStep(new Landing.PlaneChange(core)); else setStep(new Landing.DeorbitBurn(core)); }
public void LandUntargeted(object controller) { users.Add(controller); deployedGears = false; // Create a new parachute plan this.parachutePlan = new ParachutePlan(this); this.parachutePlan.StartPlanning(); landStep = LandStep.UNTARGETED_DEORBIT; }
//public interface: public void LandAtPositionTarget(object controller) { users.Add(controller); predictor.users.Add(this); vessel.RemoveAllManeuverNodes(); //for the benefit of the landing predictions module deployedGears = false; deorbitBurnTriggered = false; lowDeorbitEndConditionSet = false; planeChangeTriggered = false; // Create a new parachute plan this.parachutePlan = new ParachutePlan(this); this.parachutePlan.StartPlanning(); if (orbit.PeA < 0) landStep = LandStep.COURSE_CORRECTIONS; else if (UseLowDeorbitStrategy()) landStep = LandStep.PLANE_CHANGE; else landStep = LandStep.DEORBIT_BURN; }