Advertisement
VFB1210

WaypointNav.ks

Mar 22nd, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. PARAMETER DESTINATION IS "".
  2. PARAMETER RUNMODE IS 1. //1 = Take off, climb, and cruise, 2 = climb and cruise only, 3 = cruise only.
  3.  
  4. DECLARE HEADINGL TO 0.
  5. DECLARE V0 TO GETVOICE(0).
  6. DECLARE INITALT TO SHIP:ALTITUDE.
  7.  
  8. FUNCTION COMPASS {
  9. PARAMETER SPOT IS "".
  10. GLOBAL PLACE IS LATLNG(0,0).
  11.  
  12. IF SPOT:TYPENAME = "STRING" {
  13. SET PLACE TO WAYPOINT(SPOT):GEOPOSITION.
  14. }
  15. ELSE IF SPOTY:TYPENAME = "GEOCOORDINATES" {
  16. SET PLACE TO SPOT.
  17. }
  18. ELSE{
  19. PRINT "The destination input must be either the name of a valid waypoint or a valid LATLNG() pair. Please try again.".
  20. UNLOCK STEERING.
  21. SAS ON.
  22. SHUTDOWN.
  23. }
  24.  
  25. LOCAL X IS SIN(PLACE:LNG - SHIP:GEOPOSITION:LNG) * COS(PLACE:LAT).
  26. LOCAL Y IS COS(SHIP:GEOPOSITION:LAT) * SIN(PLACE:LAT) - SIN(SHIP:GEOPOSITION:LAT) * COS(PLACE:LAT) * COS(PLACE:LNG - SHIP:GEOPOSITION:LNG).
  27.  
  28. LOCAL HDG IS ARCTAN2(Y, X).
  29.  
  30. RETURN MOD(HDG + 360, 360).
  31. }
  32.  
  33. WHEN SHIP:LIQUIDFUEL < 2000 THEN {
  34. STAGE.
  35. WHEN SHIP:LIQUIDFUEL < 1800 THEN {
  36. STAGE.
  37. WHEN SHIP:LIQUIDFUEL < 1600 THEN {
  38. STAGE.
  39. }
  40. }
  41. }
  42.  
  43. WHEN ALTITUDE > 5000 THEN {
  44. SET HEAD TO COMPASS(DESTINATION).
  45. SET RUNMODE TO 2.
  46. WHEN ALTITUDE > 14000 THEN {
  47. SET RUNMODE TO 3.
  48. SET WARP TO 3.
  49. WHEN PLACE:DISTANCE < 90000 THEN { //90km from destination; about 6 minutes at typical cruise speed.
  50. SET WARP TO 0.
  51. UNLOCK STEERING.
  52. SAS ON.
  53. V0:PLAY(NOTE(440, 5)).
  54. WAIT 6.
  55. SHUTDOWN.
  56. }
  57. }
  58. }
  59.  
  60. IF RUNMODE = 1 { //Takeoff logic. Only used in runmode 1.
  61. SAS OFF.
  62.  
  63. BRAKES OFF.
  64.  
  65. LOCK THROTTLE TO 1.
  66.  
  67. STAGE.
  68.  
  69. LOCK STEERING TO LOOKDIRUP(HEADING(SHIP:FACING:FOREVECTOR, 5):FOREVECTOR, UP:FOREVECTOR).
  70.  
  71. WAIT UNTIL ALTITUDE > INITALT + 20.
  72.  
  73. TOGGLE GEAR.
  74.  
  75. WAIT UNTIL ALTITUDE > INITALT + 50.
  76.  
  77. LOCK STEERING TO LOOKDIRUP(HEADING(90, 25):FOREVECTOR, UP:FOREVECTOR).
  78. }
  79.  
  80. IF RUNMODE = 2 {
  81. LOCK STEERING TO LOOKDIRUP(HEADING(HEAD, 15):FOREVECTOR, UP:FOREVECTOR).
  82. }
  83.  
  84. IF RUNMODE = 3 {
  85. LOCK STEERING TO LOOKDIRUP(HEADING(HEAD, 10):FOREVECTOR, UP:FOREVECTOR).
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement