1
0
Fork 0
fgdata/Nasal/windsock.nas
Richard Harrison 40ff13b65b Reposition slowdown settimer fixes.
Definitely problems in aar.nas, seaport.nas; as these were hanging off a fdm-initialized.

The others have timers that are started from a listener and as such are more suited to use maketimer rather than settimer

The modules that use the loopid technique are probably fine, but these are also more suited (and easier to understand) using a maketimer
2018-09-14 22:50:47 +02:00

28 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 0;
var rate = 3.1514*getprop("/environment/turbulence/rate-hz") or 0;
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();