1
0
Fork 0
fgdata/Nasal/windsock.nas
James Turner 0172ef9d08 Nasal fixes for unit testing
Tolerate missing properties in various places, since defaults and 
other subsystems might not have created them.
2019-09-18 15:00:00 +01:00

29 lines
1.1 KiB
Text

###############################################################################
##
## Windsock turbulence animation
##
###############################################################################
var dt = 0.0;
var windsock = func {
var wind = getprop("/environment/wind-speed-kt") or 0;
var mag1 = getprop("/environment/turbulence/magnitude-norm") or 0;
var mag2 = getprop("/environment/turbulence/raw-magnitude-norm") or 0;
var sens = getprop("/environment/turbulence/sensitivity") or 1.0;
var rateHz = getprop("/environment/turbulence/rate-hz") or 0;
var rate = 3.1514 * rateHz;
var tot1 = math.sin(dt*rate)*mag1*mag1;
var tot2 = math.sin(3.33*dt*rate/sens)*sens*mag2*mag2;
tot2 = mag2*tot2 + (1-mag2)*math.tan(dt/10)/5;
var total = wind + tot2 + tot1*tot2;
interpolate("/environment/windsock/wind-speed-kt", total, 0.3);
total += 5*mag2;
interpolate("/environment/windsock/wind-speed-12.5kt", total, 0.1);
dt += 0.08 + 0.02*(math.sin(dt)+math.cos(dt/(mag2+0.01))*0.33);
}
windsockTimer = maketimer(0.25, windsock);
windsockTimer.simulatedTime = 1;
windsockTimer.start();