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