Advertisement
sumguytwitches

SG Hathi III X to orbit

Aug 8th, 2023 (edited)
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. bays off.
  2. for m in ship:modulesnamed("WBIModuleGeneratorFX") if m:hasevent("activate fusion power") m:doevent("activate fusion power").
  3. set steeringmanager:rollcontrolanglerange to 180.
  4. set proprad to 5.8.
  5. set rotormods to ship:modulesnamed("ModuleRoboticServoRotor").
  6. set rotors to list().
  7. for rm in rotormods {
  8. local rotor to lexicon().
  9. if(rm:getfield("motor") <> "Unpowered")
  10. {
  11. set rotor["part"] to rm:part.
  12. set rotor["mod"] to rm.
  13. if rotor:part:parent:name:contains("bay") {
  14. set baymod to rotor:part:parent:getmodule("ModuleAnimateGeneric").
  15. if baymod:hasevent("open") baymod:doevent("open").
  16. }
  17.  
  18. set rotor["blades"] to list().
  19. for bm in rm:part:ModulesNamed("ModuleControlSurface") {
  20. local b to bm:part.
  21.  
  22. local blade to lexicon().
  23. set blade["mod"] to bm.
  24. set blade["offset"] to vdot(-b:Facing:starvector, b:position - b:parent:position).
  25. set blade["proprad"] to proprad.
  26.  
  27. bm:setfield("deploy", true).
  28.  
  29. rotor["blades"]:add(blade).
  30. }
  31.  
  32. rotors:add(rotor).
  33. if rm:hasfield("torque limit(%)") rm:setfield("torque limit(%)", 100).
  34. }
  35. }
  36. lock throttle to ship:control:pilotmainthrottle.
  37. lock rpmtarget to min(459,max(0, throttle * 460)).
  38.  
  39. set props to true.
  40.  
  41. on round(time:seconds * 20) {
  42. if props {
  43. set rpmcopy to rpmtarget.
  44. for rotor in rotors {
  45.  
  46. rotor:mod:setfield("rpm limit", rpmcopy ).
  47. set calcAirspeed to (2 * constant:pi * (rotor:blades[0]:proprad + rotor:blades[0]:offset) * rpmcopy/60).
  48. set deploycopy to max(3, 4.5 + arctan2(airspeed, calcAirspeed)).
  49. for blade in rotor:blades {
  50. blade:mod:setfield("deploy angle", deploycopy).
  51. }
  52. }
  53. }
  54.  
  55. return props.
  56. }
  57. lock steering to heading(90,00).
  58. brakes on.
  59. wait 4.
  60. brakes off.
  61. lock throttle to 1.
  62. SetAngle(90).
  63. startup(vectors).
  64. when airspeed > 90 then {
  65. lock steering to heading(90,10).
  66. SetAngle(15).
  67. }
  68. when alt:radar > 10 then {
  69. gear off.
  70. }
  71. when airspeed > 110 then {
  72. lock steering to heading(90,20).
  73. setangle(25).
  74. }
  75. when airspeed > 150 then {
  76. setangle(90).
  77. lock steering to heading(90,30).
  78. }
  79. when airspeed > 300 then {
  80.  
  81. set props to false.
  82.  
  83. for rotor in rotors {
  84. rotor:mod:setfield("torque limit(%)", 0).
  85. rotor:mod:setfield("rpm limit", 0 ).
  86.  
  87. for blade in rotor:blades {
  88. blade:mod:setfield("deploy angle", 90).
  89. }
  90. }
  91.  
  92. for m in ship:modulesnamed("WBIModuleGeneratorFX") if m:hasevent("deactivate fusion power") m:doevent("deactivate fusion power").
  93. wait 0.
  94. bays off.
  95. }
  96. when apoapsis > body:Atm:height + 10e3 then {
  97.  
  98. lock throttle to 0.
  99. lock steering to srfprograde.
  100. }
  101. when altitude > body:atm:height then {
  102. lock steering to prograde.
  103. lock throttle to 30-eta:apoapsis.
  104. }
  105.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement