Advertisement
sumguytwitches

sg ride x cargo vtol takeoff

Jan 30th, 2023 (edited)
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. function info {
  2. parameter message.
  3.  
  4. set logmessage to round(missionTime,1) + ": " + message.
  5. print logmessage.
  6. }
  7. list engines in es. for e in es e:shutdown().
  8. set takeoffspeed to 60.
  9. set targetOrbitAltitude to 101e3.
  10. set takeoffalt to altitude + 8.
  11.  
  12. set vectors to ship:partsdubbedpattern("vector").
  13. for v in vectors set v:thrustlimit to 0.
  14. set servos to ship:modulesnamed("ModuleRoboticRotationServo").
  15. lock p to choose 0 if airspeed < takeoffspeed else min(20,max(0,groundspeed/10)).
  16. lock steering to heading(90,p).
  17.  
  18. for v in vectors v:activate().
  19. lock throttle to targetOrbitAltitude-apoapsis.
  20. when altitude > 72 then {
  21. info("engage dynamic servo").
  22. lock angletarget to max(0, min(35,100 - ((-verticalspeed + (80-altitude)/1.5)*100))).
  23. }
  24. toggle ag1.
  25. info("initialize vtols").
  26. lock vlimit to (-verticalspeed + (takeoffalt-altitude))*100.
  27. lock angletarget to 0.
  28. until vlimit < 0 {
  29. set vlimitcopy to vlimit.
  30. set anglecopy to angletarget.
  31. for v in vectors set v:thrustlimit to vlimitcopy.
  32. for s in servos if s:hasfield("target angle") s:setfield("target angle", anglecopy).
  33. print " v thrust: " + vlimitcopy at (0,0).
  34. print "servo angle: " + anglecopy at (0,1).
  35. wait 0.
  36. }
  37. info("store vtols").
  38.  
  39. toggle ag2.
  40. for s in servos if s:hasfield("target angle") s:setfield("target angle", 90).
  41. print " v thrust: " + vlimitcopy at (0,0).
  42. print "servo angle: " + anglecopy at (0,1).
  43. bays off.
  44. info("gain speed").
  45. lock p to 9.6.
  46. when airspeed > 400 then {
  47. info("climb").
  48. lock p to 12.
  49. }
  50. when altitude > 8000 then {
  51. info("climb faster").
  52. lock p to 18.
  53. }
  54. when altitude > 14000 then {
  55. info("engage rockets").
  56. list engines in es. for e in es if e:name:contains("nuc") e:activate().
  57. toggle ag8.
  58. wait 2.
  59. toggle ag2.
  60. for v in vectors set v:thrustlimit to 100.
  61. }
  62. when altitude > 22e3 then {
  63. set p to 10.
  64. info("push to orbit").
  65. }
  66. when ship:oxidizer < 1 then {
  67. toggle ag2.
  68. toggle ag8.
  69. }
  70. when apoapsis >= body:atm:height then {
  71. lock steering to srfPrograde.
  72. info("lock surface prograde").
  73. }
  74. when apoapsis >= targetOrbitAltitude then {
  75. info("warping to space").
  76. toggle ag1.
  77. lock throttle to 0.
  78. set warpmode to "physics".
  79. set warp to 3.
  80. }
  81.  
  82. when altitude >= body:atm:height then {
  83. set warp to 0.
  84. info("adjusting apoapsis").
  85. lock throttle to choose (targetOrbitAltitude - apoapsis)/10 if apoapsis - periapsis > 10 else 0.
  86. }
  87. when altitude > body:atm:height and apoapsis >= targetOrbitAltitude then {
  88. lock throttle to 0.
  89. if(apoapsis - periapsis > 10) {
  90.  
  91. info("circularize").
  92. wait 1.
  93. run plan_circularize.
  94. run execute_node_old.
  95. lock throttle to 0.
  96. }
  97. }
  98. function fuelformun {
  99. radiators on.
  100.  
  101. set isrs to ship:modulesnamed("ModuleResourceConverter").
  102.  
  103. for isr in isrs { if isr:hasaction("start isru [ox]") isr:doaction("start isru [ox]",true).}
  104.  
  105. set warp to 1. wait 1. set warp to 5.
  106. wait until ship:oxidizer * 9 / 11 >= ship:liquidfuel.
  107. isru off.
  108. for isr in isrs { if isr:hasaction("start isru [lf+ox]") isr:doaction("start isru [lf+ox]",true).}
  109. lock vectordv to Round(315 * 9.81 * ln(ship:mass / (ship:mass - (ship:liquidfuel * 0.005) - (ship:oxidizer * 0.005))), 5).
  110. wait until vectordv >= 600.
  111. isru off.
  112. for isr in isrs { if isr:hasaction("start isru [lqdfuel]") isr:doaction("start isru [lqdfuel]",true).}
  113. wait until ship:ore < 1.
  114. isru off.
  115. set warp to 0.
  116. radiators off.
  117. }
  118.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement