void prepNGS() { if (lTargetSite != null) { sTargetSiteName = lTargetSite.LaunchSiteName; fRangeToTarget = LaunchSiteManager.getDistanceToBase(FlightGlobals.ActiveVessel.GetTransform().position, lTargetSite); if (fRangeToTarget > fOldRange) { bClosing = false; } if (fRangeToTarget < fOldRange) { bClosing = true; } var basepos = KerbalKonstructs.instance.GetCurrentBody().transform.InverseTransformPoint(lTargetSite.staticInstance.gameObject.transform.position); //disBaseLat = dBaseLat * 180 / Math.PI; //disBaseLon = dBaseLon * 180 / Math.PI; disBaseLat = KKMath.GetLatitudeInDeg(basepos); disBaseLon = KKMath.GetLongitudeInDeg(basepos); var dBaseLat = disBaseLat * KKMath.deg2rad; var dBaseLon = disBaseLon * KKMath.deg2rad; fOldRange = fRangeToTarget; if (bClosing) { tTextureMiddle = UIMain.tIconOpen; } else { tTextureMiddle = UIMain.tIconClosed; } Vector3 vcraftpos = FlightGlobals.ActiveVessel.GetTransform().position; vCrft = vcraftpos; Vector3 vsitepos = lTargetSite.staticInstance.transform.position; vSPos = vsitepos; Vector3 vHeading = FlightGlobals.ActiveVessel.transform.up; vHead = vHeading; disLat = FlightGlobals.ActiveVessel.latitude; var dLat = disLat / 180 * Math.PI; disLon = FlightGlobals.ActiveVessel.longitude; var dLon = disLon / 180 * Math.PI; var y = Math.Sin(dBaseLon - dLon) * Math.Cos(dBaseLat); var x = (Math.Cos(dLat) * Math.Sin(dBaseLat)) - (Math.Sin(dLat) * Math.Cos(dBaseLat) * Math.Cos(dBaseLon - dLon)); var requiredHeading = Math.Atan2(y, x) * 180 / Math.PI; dreqheading = (requiredHeading + 360) % 360; var diff = (360 + 180 + requiredHeading - FlightGlobals.ship_heading) % 360 - 180; dshipheading = (FlightGlobals.ship_heading + 360) % 360; if (diff > 5) { iCorrection = 2; } else if (diff < -5) { iCorrection = 1; } else { iCorrection = 0; } if (bClosing) { tTextureLeft = UIMain.tLeftOff; tTextureRight = UIMain.tRightOff; } else { tTextureLeft = UIMain.tLeftOn; tTextureRight = UIMain.tRightOn; } if (iCorrection == 1) { tTextureLeft = UIMain.tLeftOn; tTextureRight = UIMain.tRightOff; } if (iCorrection == 2) { tTextureLeft = UIMain.tLeftOff; tTextureRight = UIMain.tRightOn; } } else { tTextureMiddle = UIMain.tIconClosed; tTextureLeft = UIMain.tLeftOff; tTextureRight = UIMain.tRightOff; } }