-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlib_node.ks
More file actions
48 lines (41 loc) · 1.1 KB
/
lib_node.ks
File metadata and controls
48 lines (41 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
@LAZYGLOBAL OFF. // #include init
GLOBAL NODE_BUFF IS 60.
FUNCTION nodeBuffer {
PARAMETER s IS 0.
IF s > 0 { SET NODE_BUFF TO s. }
RETURN NODE_BUFF.
}
FUNCTION bufferTime {
PARAMETER u_time IS TIME:SECONDS.
RETURN u_time + NODE_BUFF.
}
FUNCTION removeAllNodes {
UNTIL NOT HASNODE { REMOVE NEXTNODE. WAIT 0. }
}
FUNCTION nodeDV {
PARAMETER n.
RETURN SQRT(n:RADIALOUT^2 + n:NORMAL^2 + n:PROGRADE^2).
}
FUNCTION pOrbit {
PARAMETER o.
pOut("Orbit:").
pOut(" Bdy: " + o:BODY:NAME).
pOut(" Ap: " + ROUND(o:APOAPSIS) + "m").
pOut(" Pe: " + ROUND(o:PERIAPSIS) + "m").
pOut(" Inc: " + ROUND(o:INCLINATION,1) + " deg").
pOut(" LAN: " + ROUND(o:LAN,1) + " deg").
pOut(" Arg: " + ROUND(o:ARGUMENTOFPERIAPSIS,1) + " deg").
// pOut(" Prd: " + ROUND(o:PERIOD) + "s").
IF o:HASNEXTPATCH { pOrbit(o:NEXTPATCH). }
}
FUNCTION addNode {
PARAMETER n.
ADD n.
WAIT 0.
pOut("Node:").
pOut(" DV: " + ROUND(nodeDV(n),2) + "m/s").
pOut(" Rad: " + ROUND(n:RADIALOUT,2) + "m/s").
pOut(" Nrm: " + ROUND(n:NORMAL,2) + "m/s").
pOut(" Pro: " + ROUND(n:PROGRADE,2) + "m/s").
pOrbit(n:ORBIT).
}