Files
kttd/maneuvers/docking.py

37 lines
1.1 KiB
Python

from time import sleep
from .utils import kill_relative_velocity, kill_relative_velocity_rcs, correct_course, magnitude
from . import Maneuver
class DockingManeuver(Maneuver):
def __init__(self, conn, mission_control, docking_port, target_docking_port):
super().__init__(conn, mission_control)
self.mech_jeb = conn.mech_jeb
self.docking_port = docking_port
self.target_docking_port = target_docking_port
def start(self):
vessel = self.conn.space_center.active_vessel
self.conn.space_center.active_vessel = self.mission_control.vessel
vessel.parts.controlling = self.docking_port.part
self.conn.space_center.target_docking_port = self.target_docking_port
da = self.mech_jeb.docking_autopilot
da.speed_limit = 10
da.roll = 0
da.force_roll = True
da.enabled = True
sleep(1)
with self.conn.stream(getattr, da, "enabled") as enabled:
enabled.rate = 1
with enabled.condition:
while enabled():
enabled.wait()
return True