Guest User

Untitled

a guest
Jan 2nd, 2024
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. private AutopilotMode? locked_dir = null;
  2. public void Update()
  3. {
  4. locked_dir = AutopilotMode.Prograde; //TODO Remove
  5.  
  6. var l_locked_dir = locked_dir;
  7. if (l_locked_dir is null) return;
  8. locked_dir = null;
  9. if (!in_valid_game_state) return;
  10. if (!menu_open) return;
  11.  
  12. var vessel = GameManager.Instance.Game.ViewController.GetActiveSimVessel(true);
  13. var autopilot = vessel.Autopilot;
  14. if (l_locked_dir != autopilot.AutopilotMode) return;
  15. locked_dir = l_locked_dir;
  16.  
  17. var telemetry = (TelemetryComponent)autopilot.GetType().GetField("_telemetry", BindingFlags.Instance|BindingFlags.NonPublic).GetValue(autopilot);
  18.  
  19. var curr_forward = vessel.transform.up; //TODO Why not forward???
  20. var targ_forward = telemetry.OrbitMovementPrograde;
  21. Logger.LogDebug($"Vector diff sqr mag={(curr_forward - targ_forward).sqrMagnitude}");
  22. if ((curr_forward - targ_forward).sqrMagnitude==0) return; //TODO <0.01
  23. var rotation = Rotation.FromTo(curr_forward, targ_forward);
  24.  
  25. Logger.LogDebug($"Rotating from forward={vessel.transform.forward.vector} up={vessel.transform.up.vector}");
  26. Logger.LogDebug($"Towards prograde={telemetry.OrbitMovementPrograde.vector}");
  27. Logger.LogDebug($"Using rotation={rotation.localRotation}");
  28. vessel.transform.UpdateRotation(rotation);
  29. Logger.LogDebug($"To final rotation forward={vessel.transform.forward.vector} up={vessel.transform.up.vector}");
  30.  
  31. //autopilot.SetMode(l_locked_dir.Value);
  32.  
  33. }
Advertisement
Add Comment
Please, Sign In to add comment