Advertisement
sumguytwitches

rendezvous

Nov 2nd, 2020 (edited)
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. if allnodes:length = 0 add node(time:seconds + eta:apoapsis, 0, 0, 0).
  2. print "increase peri".
  3. until nextnode:orbit:periapsis > target:periapsis {
  4. set nextnode:prograde to nextnode:prograde + 0.05.
  5. wait 0.
  6. print target:periapsis - nextnode:orbit:periapsis at (0,0).
  7. }
  8. print "decrease peri".
  9. until nextnode:orbit:periapsis < target:apoapsis {
  10. set nextnode:prograde to nextnode:prograde - 0.025.
  11. wait 0.
  12. print abs(target:periapsis - nextnode:orbit:periapsis) at (0,0).
  13. }
  14.  
  15. lock rt to time:seconds + nextnode:eta + nextnode:orbit:period / 2.
  16. lock dist to (positionat(ship, rt) - positionat(target, rt)):mag.
  17.  
  18. function increment {
  19. parameter step.
  20. parameter type is "e".
  21.  
  22. if type = "e" set nextnode:eta to nextnode:eta + step.
  23. if type = "p" set nextnode:prograde to nextnode:prograde + step.
  24. if type = "n" set nextnode:normal to nextnode:normal + step.
  25. if type = "ro" set nextnode:radialout to nextnode:radialout + step.
  26. }
  27.  
  28. function adjust {
  29. parameter type is "e".
  30. set lastdist to dist.
  31. until lastdist < dist {
  32. set lastdist to dist. increment(step, type). wait 0. print dist.
  33. }.
  34. }
  35.  
  36. function tweak {
  37. parameter type is "e".
  38. adjust(type).
  39. set step to -step/2.
  40. adjust(type).
  41. increment(-step, type).
  42. }
  43.  
  44. set step to orbit:period.
  45. adjust().
  46. set step to 1.
  47. tweak("e").
  48.  
  49. set step to 1.
  50. tweak("p").
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement