Wetter mit einem Add-on

Beim Start schreibt FlightGear das Wetter erst nach dem Laden, und das Grafikprofil überschreibt manche Startoption. Ein kleines Add-on setzt deshalb die Werte nach dem Laden und danach noch ein paarmal.

Dateien anlegen

mkdir -p "$FG_BASIS/Addons/Schoenwetter"
cat > "$FG_BASIS/Addons/Schoenwetter/addon-metadata.xml" <<'EOF'
<?xml version="1.0"?>
<PropertyList>
  <meta>
    <file-type type="string">FlightGear add-on metadata</file-type>
    <format-version type="int">1</format-version>
  </meta>
  <addon>
    <identifier type="string">de.beispiel.schoenwetter</identifier>
    <name type="string">Schoenwetter</name>
    <version type="string">1.0.0</version>
    <authors><author><name type="string">Ich</name></author></authors>
    <short-description type="string">Wolkenschichten und klare Fernsicht</short-description>
    <min-FG-version type="string">2020.3.0</min-FG-version>
  </addon>
</PropertyList>
EOF
cat > "$FG_BASIS/Addons/Schoenwetter/addon-main.nas" <<'EOF'
var SCHICHTEN = [["scattered", 4500, 2500], ["few", 9000, 1500], ["scattered", 26000, 400]];
var SICHT_M = 80000;

var anwenden = func {
    setprop("/environment/params/metar-updates-environment", 0);
    forindex (var i; SCHICHTEN) {
        var pfad = "/environment/clouds/layer[" ~ i ~ "]/";
        setprop(pfad ~ "coverage", SCHICHTEN[i][0]);
        setprop(pfad ~ "elevation-ft", SCHICHTEN[i][1]);
        setprop(pfad ~ "thickness-ft", SCHICHTEN[i][2]);
    }
    setprop("/environment/visibility-m", SICHT_M);
    setprop("/environment/ground-visibility-m", SICHT_M);
    setprop("/sim/rendering/random-vegetation", 0);
    # Sonst liegt im Mittelgebirge Schnee, der nicht zu den Luftbildern passt.
    setprop("/environment/params/metar-updates-snow-level", 0);
    setprop("/environment/snow-level-m", 9000);
};

var main = func(addon) {
    var durchlauf = 0;
    var nachholen = maketimer(5, func {
        anwenden();
        durchlauf += 1;
        if (durchlauf >= 4) nachholen.stop();
    });
    nachholen.start();
};
EOF

Einschalten

"$FG_BASIS/werkzeuge/starten.sh" --aircraft=c172p --airport=EDDP \
  --addon="$FG_BASIS/Addons/Schoenwetter"

Im Log muss Schoenwetter als geladenes Add-on stehen.

Wolken im All

Quellwolken wirken von oben schnell wie aus dem Comic. Wer hoch hinaus will, setzt die Schichten im Flug auf clear und zeigt sie erst unterhalb einer bestimmten Höhe wieder. Setz die Werte erst, nachdem das Add-on durch ist, sonst überschreibt es sie.