kOS/lib/navigation.ks

31 lines
774 B
Plaintext

// functions for calculating steering values.
@lazyglobal off.
function GetPitch {
parameter v is SHIP:FACING:FOREVECTOR.
return 90 - vectorangle(SHIP:UP:FOREVECTOR, v).
}
function AddCircularizationNode {
parameter usePeriapsis is false.
local target is SHIP:ORBIT:APOAPSIS.
local t is TIME + SHIP:ORBIT:ETA:APOAPSIS.
if usePeriapsis {
set target to SHIP:ORBIT:PERIAPSIS.
set t to SHIP:ORBIT:ETA:PERIAPSIS.
}
local n is Node(t, 0, 0, 0).
add(n).
local delta is 1.
local diff is n:ORBIT:APOAPSIS - n:ORBIT:PERIAPSIS.
until (diff < 1000) {
set n:PROGRADE to n:PROGRADE + delta.
local newDiff is n:ORBIT:APOAPSIS - n:ORBIT:PERIAPSIS.
if newDiff > diff {
set delta to (delta * -1) / 10.
}
set diff to newDiff.
}
}