Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private AutopilotMode? locked_dir = null;
- public void Update()
- {
- locked_dir = AutopilotMode.Prograde; //TODO Remove
- var l_locked_dir = locked_dir;
- if (l_locked_dir is null) return;
- locked_dir = null;
- if (!in_valid_game_state) return;
- if (!menu_open) return;
- var vessel = GameManager.Instance.Game.ViewController.GetActiveSimVessel(true);
- var autopilot = vessel.Autopilot;
- if (l_locked_dir != autopilot.AutopilotMode) return;
- locked_dir = l_locked_dir;
- var telemetry = (TelemetryComponent)autopilot.GetType().GetField("_telemetry", BindingFlags.Instance|BindingFlags.NonPublic).GetValue(autopilot);
- var curr_forward = vessel.transform.up; //TODO Why not forward???
- var targ_forward = telemetry.OrbitMovementPrograde;
- Logger.LogDebug($"Vector diff sqr mag={(curr_forward - targ_forward).sqrMagnitude}");
- if ((curr_forward - targ_forward).sqrMagnitude==0) return; //TODO <0.01
- var rotation = Rotation.FromTo(curr_forward, targ_forward);
- Logger.LogDebug($"Rotating from forward={vessel.transform.forward.vector} up={vessel.transform.up.vector}");
- Logger.LogDebug($"Towards prograde={telemetry.OrbitMovementPrograde.vector}");
- Logger.LogDebug($"Using rotation={rotation.localRotation}");
- vessel.transform.UpdateRotation(rotation);
- Logger.LogDebug($"To final rotation forward={vessel.transform.forward.vector} up={vessel.transform.up.vector}");
- //autopilot.SetMode(l_locked_dir.Value);
- }
Advertisement
Add Comment
Please, Sign In to add comment