Files
kttd/maneuvers/grapple.py

37 lines
1.2 KiB
Python

from time import sleep
from . import Maneuver
from .utils import magnitude, correct_course_to_target, rcs_push, point_toward_target
class GrappleManeuver(Maneuver):
def __init__(self, conn, mission_control, target):
super().__init__(conn, mission_control)
self.target = target
def start(self):
vessel = self.mission_control.vessel
vessel.parts.controlling = self.mission_control.get_grappling()
point_toward_target(self.conn, vessel, self.target)
self.mission_control.toggle_grappling(True)
rcs_push(vessel, {"y": 1}, .75)
vessel.control.rcs = True
try:
while magnitude(vessel.position(self.target.reference_frame)) > 0:
print(magnitude(vessel.position(self.target.reference_frame)))
sa = self.conn.mech_jeb.smart_ass
sa.autopilot_mode = self.conn.mech_jeb.SmartASSAutopilotMode.relative_plus
sa.update(False)
correct_course_to_target(vessel, self.target)
except ValueError:
vessel = self.conn.space_center.active_vessel
self.mission_control.vessel = vessel
finally:
vessel.control.rcs = False
return True