Merge branch 'master' of D:\Git_New\fgdata
This commit is contained in:
commit
ec1175807e
17 changed files with 467 additions and 353 deletions
|
@ -91,7 +91,7 @@
|
||||||
<terrain_alt><use>/environment/mean-terrain-elevation-m</use></terrain_alt>
|
<terrain_alt><use>/environment/mean-terrain-elevation-m</use></terrain_alt>
|
||||||
<overcast><use>/rendering/scene/overcast</use></overcast>
|
<overcast><use>/rendering/scene/overcast</use></overcast>
|
||||||
<eye_alt><use>/sim/rendering/eye-altitude-m</use></eye_alt>
|
<eye_alt><use>/sim/rendering/eye-altitude-m</use></eye_alt>
|
||||||
<mysnow_level><use>/environment/mysnow-level-m</use></mysnow_level>
|
<snow_level><use>/environment/snow-level-m</use></snow_level>
|
||||||
<dust_cover_factor><use>/environment/surface/dust-cover-factor</use></dust_cover_factor>
|
<dust_cover_factor><use>/environment/surface/dust-cover-factor</use></dust_cover_factor>
|
||||||
<fogtype><use>/sim/rendering/shaders/skydome</use></fogtype>
|
<fogtype><use>/sim/rendering/shaders/skydome</use></fogtype>
|
||||||
<fogstructure><use>/environment/fog-structure</use></fogstructure>
|
<fogstructure><use>/environment/fog-structure</use></fogstructure>
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
<terrain_alt><use>/environment/mean-terrain-elevation-m</use></terrain_alt>
|
<terrain_alt><use>/environment/mean-terrain-elevation-m</use></terrain_alt>
|
||||||
<overcast><use>/rendering/scene/overcast</use></overcast>
|
<overcast><use>/rendering/scene/overcast</use></overcast>
|
||||||
<eye_alt><use>/sim/rendering/eye-altitude-m</use></eye_alt>
|
<eye_alt><use>/sim/rendering/eye-altitude-m</use></eye_alt>
|
||||||
<mysnow_level><use>/environment/mysnow-level-m</use></mysnow_level>
|
<snow_level><use>/environment/snow-level-m</use></snow_level>
|
||||||
<dust_cover_factor><use>/environment/surface/dust-cover-factor</use></dust_cover_factor>
|
<dust_cover_factor><use>/environment/surface/dust-cover-factor</use></dust_cover_factor>
|
||||||
<wetness><use>/environment/surface/wetness</use></wetness>
|
<wetness><use>/environment/surface/wetness</use></wetness>
|
||||||
<fogtype><use>/sim/rendering/shaders/skydome</use></fogtype>
|
<fogtype><use>/sim/rendering/shaders/skydome</use></fogtype>
|
||||||
|
@ -252,9 +252,9 @@
|
||||||
<value><use>eye_alt</use></value>
|
<value><use>eye_alt</use></value>
|
||||||
</uniform>
|
</uniform>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>mysnowlevel</name>
|
<name>snowlevel</name>
|
||||||
<type>float</type>
|
<type>float</type>
|
||||||
<value><use>mysnow_level</use></value>
|
<value><use>snow_level</use></value>
|
||||||
</uniform>
|
</uniform>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>dust_cover_factor</name>
|
<name>dust_cover_factor</name>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<terrain_alt><use>/environment/mean-terrain-elevation-m</use></terrain_alt>
|
<terrain_alt><use>/environment/mean-terrain-elevation-m</use></terrain_alt>
|
||||||
<overcast><use>/rendering/scene/overcast</use></overcast>
|
<overcast><use>/rendering/scene/overcast</use></overcast>
|
||||||
<eye_alt><use>/sim/rendering/eye-altitude-m</use></eye_alt>
|
<eye_alt><use>/sim/rendering/eye-altitude-m</use></eye_alt>
|
||||||
<mysnow_level><use>/environment/mysnow-level-m</use></mysnow_level>
|
<snow_level><use>/environment/snow-level-m</use></snow_level>
|
||||||
<dust_cover_factor><use>/environment/surface/dust-cover-factor</use></dust_cover_factor>
|
<dust_cover_factor><use>/environment/surface/dust-cover-factor</use></dust_cover_factor>
|
||||||
<fogtype><use>/sim/rendering/shaders/skydome</use></fogtype>
|
<fogtype><use>/sim/rendering/shaders/skydome</use></fogtype>
|
||||||
<fogstructure><use>/environment/fog-structure</use></fogstructure>
|
<fogstructure><use>/environment/fog-structure</use></fogstructure>
|
||||||
|
|
|
@ -303,9 +303,9 @@
|
||||||
<value><use>eye_alt</use></value>
|
<value><use>eye_alt</use></value>
|
||||||
</uniform>
|
</uniform>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>mysnowlevel</name>
|
<name>snowlevel</name>
|
||||||
<type>float</type>
|
<type>float</type>
|
||||||
<value><use>mysnow_level</use></value>
|
<value><use>snow_level</use></value>
|
||||||
</uniform>
|
</uniform>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>dust_cover_factor</name>
|
<name>dust_cover_factor</name>
|
||||||
|
@ -500,9 +500,9 @@
|
||||||
<value><use>eye_alt</use></value>
|
<value><use>eye_alt</use></value>
|
||||||
</uniform>
|
</uniform>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>mysnowlevel</name>
|
<name>snowlevel</name>
|
||||||
<type>float</type>
|
<type>float</type>
|
||||||
<value><use>mysnow_level</use></value>
|
<value><use>snow_level</use></value>
|
||||||
</uniform>
|
</uniform>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>dust_cover_factor</name>
|
<name>dust_cover_factor</name>
|
||||||
|
|
|
@ -23,18 +23,27 @@
|
||||||
Fetch live weather data for your nearest airport from noaa.gov. You need a working internet connection.
|
Fetch live weather data for your nearest airport from noaa.gov. You need a working internet connection.
|
||||||
All the controls in this dialog are computed automatically, once a valid METAR is received.
|
All the controls in this dialog are computed automatically, once a valid METAR is received.
|
||||||
</description>
|
</description>
|
||||||
<tile>live</tile>
|
<local-weather>
|
||||||
|
<tile-type>live</tile-type>
|
||||||
|
<tile-management>METAR</tile-management>
|
||||||
|
</local-weather>
|
||||||
</scenario>
|
</scenario>
|
||||||
<scenario>
|
<scenario>
|
||||||
<name type="string">Manual input</name>
|
<name type="string">Manual input</name>
|
||||||
<description type="string">Enter your favorite METAR weather in the textbox above. A valid METAR syntax is required.</description>
|
<description type="string">Enter your favorite METAR weather in the textbox above. A valid METAR syntax is required.</description>
|
||||||
<tile>manual</tile>
|
<local-weather>
|
||||||
|
<tile-type>manual</tile-type>
|
||||||
|
<tile-management>METAR</tile-management>
|
||||||
|
</local-weather>
|
||||||
</scenario>
|
</scenario>
|
||||||
<scenario>
|
<scenario>
|
||||||
<name type="string">Fair weather</name>
|
<name type="string">Fair weather</name>
|
||||||
<metar type="string">XXXX 012345Z 15003KT 12SM SCT041 FEW200 20/08 Q1015 NOSIG</metar>
|
<metar type="string">XXXX 012345Z 15003KT 12SM SCT041 FEW200 20/08 Q1015 NOSIG</metar>
|
||||||
<description type="string">A lovely day for trip to your favorite 100$ hamburger airfield</description>
|
<description type="string">A lovely day for trip to your favorite 100$ hamburger airfield</description>
|
||||||
<tile>High-pressure-core</tile>
|
<local-weather>
|
||||||
|
<tile-type>High-pressure-core</tile-type>
|
||||||
|
<tile-management>realistic-weather</tile-management>
|
||||||
|
</local-weather>
|
||||||
</scenario>
|
</scenario>
|
||||||
<scenario>
|
<scenario>
|
||||||
<name type="string">Thunderstorm</name>
|
<name type="string">Thunderstorm</name>
|
||||||
|
@ -44,7 +53,10 @@
|
||||||
Be prepared for reduction of visibility in showers and strong gusts
|
Be prepared for reduction of visibility in showers and strong gusts
|
||||||
near thunderstorms
|
near thunderstorms
|
||||||
</description>
|
</description>
|
||||||
<tile>Thunderstorms</tile>
|
<local-weather>
|
||||||
|
<tile-type>Thunderstorms</tile-type>
|
||||||
|
<tile-management>realistic-weather</tile-management>
|
||||||
|
</local-weather>
|
||||||
</scenario>
|
</scenario>
|
||||||
<scenario>
|
<scenario>
|
||||||
<name type="string">Stormy Monday</name>
|
<name type="string">Stormy Monday</name>
|
||||||
|
@ -285,6 +297,7 @@
|
||||||
<metar-max-age-min type="long">240</metar-max-age-min>
|
<metar-max-age-min type="long">240</metar-max-age-min>
|
||||||
<metar-updates-environment type="bool">true</metar-updates-environment>
|
<metar-updates-environment type="bool">true</metar-updates-environment>
|
||||||
<metar-updates-winds-aloft type="bool">true</metar-updates-winds-aloft>
|
<metar-updates-winds-aloft type="bool">true</metar-updates-winds-aloft>
|
||||||
|
<metar-updates-snow-level type="bool" userarchive="y">true</metar-updates-snow-level>
|
||||||
<control-fdm-atmosphere type="bool">true</control-fdm-atmosphere>
|
<control-fdm-atmosphere type="bool">true</control-fdm-atmosphere>
|
||||||
<contrail-altitude type="double">30000</contrail-altitude>
|
<contrail-altitude type="double">30000</contrail-altitude>
|
||||||
<!-- definitions for the metar generated fog/mist/haze layer -->
|
<!-- definitions for the metar generated fog/mist/haze layer -->
|
||||||
|
@ -344,7 +357,6 @@
|
||||||
<ground-haze-thickness-m type="double" userarchive="n">2000.0</ground-haze-thickness-m>
|
<ground-haze-thickness-m type="double" userarchive="n">2000.0</ground-haze-thickness-m>
|
||||||
<terminator-relative-position-m type="double" userarchive="n">1000000.0</terminator-relative-position-m>
|
<terminator-relative-position-m type="double" userarchive="n">1000000.0</terminator-relative-position-m>
|
||||||
<mean-terrain-elevation-m type="double" userarchive="n">0.0</mean-terrain-elevation-m>
|
<mean-terrain-elevation-m type="double" userarchive="n">0.0</mean-terrain-elevation-m>
|
||||||
<mysnow-level-m type="double" userarchive="y">3200.0</mysnow-level-m>
|
|
||||||
<fog-structure type="double" userarchive="y">0.0</fog-structure>
|
<fog-structure type="double" userarchive="y">0.0</fog-structure>
|
||||||
<!-- definitions for the environment at surface interface -->
|
<!-- definitions for the environment at surface interface -->
|
||||||
<surface>
|
<surface>
|
||||||
|
|
|
@ -415,6 +415,12 @@
|
||||||
<name>MetarController:snow-level</name>
|
<name>MetarController:snow-level</name>
|
||||||
<type>gain</type>
|
<type>gain</type>
|
||||||
<gain>1.0</gain>
|
<gain>1.0</gain>
|
||||||
|
<enable>
|
||||||
|
<condition>
|
||||||
|
<property>/environment/params/metar-updates-snow-level</property>
|
||||||
|
<property>/environment/params/metar-updates-environment</property>
|
||||||
|
</condition>
|
||||||
|
</enable>
|
||||||
<input>
|
<input>
|
||||||
<condition>
|
<condition>
|
||||||
<property>/environment/metar/valid</property>
|
<property>/environment/metar/valid</property>
|
||||||
|
|
|
@ -711,14 +711,41 @@ var Image = {
|
||||||
var m = {
|
var m = {
|
||||||
parents: [Image, Element.new(parent, "image", id, arg)]
|
parents: [Image, Element.new(parent, "image", id, arg)]
|
||||||
};
|
};
|
||||||
m.color = _createColorNodes(m._node, "color");
|
m.color_fill = _createColorNodes(m._node, "color-fill");
|
||||||
m.sourceRect = m._node.getNode("source", 1);
|
|
||||||
return m;
|
return m;
|
||||||
},
|
},
|
||||||
|
# Set image file to be used
|
||||||
|
#
|
||||||
|
# @param file Path to file or canvas (Use canvas://... for canvas, eg.
|
||||||
|
# canvas://by-index/texture[0])
|
||||||
setFile: func(file)
|
setFile: func(file)
|
||||||
{
|
{
|
||||||
me.set("file", file);
|
me.set("file", file);
|
||||||
|
},
|
||||||
|
# Set rectangular region of source image to be used
|
||||||
|
#
|
||||||
|
# @param left Rectangle minimum x coordinate
|
||||||
|
# @param top Rectangle minimum y coordinate
|
||||||
|
# @param right Rectangle maximum x coordinate
|
||||||
|
# @param bottom Rectangle maximum y coordinate
|
||||||
|
# @param normalized Whether to use normalized ([0,1]) or image
|
||||||
|
# ([0, image_width]/[0, image_height]) coordinates
|
||||||
|
setSourceRect: func(left, top, right, bottom, normalized = 1)
|
||||||
|
{
|
||||||
|
me._node.getNode("source", 1).setValues({
|
||||||
|
left: left,
|
||||||
|
top: top,
|
||||||
|
right: right,
|
||||||
|
bottom: bottom,
|
||||||
|
normalized: normalized
|
||||||
|
});
|
||||||
|
return me;
|
||||||
|
},
|
||||||
|
# Set size of image element
|
||||||
|
setSize: func(width, height)
|
||||||
|
{
|
||||||
|
me._node.setValues({size: [width, height]});
|
||||||
|
return me;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -764,7 +791,12 @@ var Canvas = {
|
||||||
# Set the background color
|
# Set the background color
|
||||||
#
|
#
|
||||||
# @param color Vector of 3 or 4 values in [0, 1]
|
# @param color Vector of 3 or 4 values in [0, 1]
|
||||||
setColorBackground: func { _setColorNodes(me.color, arg); return me; }
|
setColorBackground: func { _setColorNodes(me.color, arg); return me; },
|
||||||
|
# Get path of canvas to be used eg. in Image::setFile
|
||||||
|
getPath: func()
|
||||||
|
{
|
||||||
|
return "canvas://by-index/texture[" ~ me._node.getIndex() ~ "]";
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
# Create a new canvas. Pass parameters as hash, eg:
|
# Create a new canvas. Pass parameters as hash, eg:
|
||||||
|
@ -779,11 +811,7 @@ var new = func(vals)
|
||||||
{
|
{
|
||||||
var m = { parents: [Canvas] };
|
var m = { parents: [Canvas] };
|
||||||
|
|
||||||
m.texture = _createNodeWithIndex
|
m.texture = _createNodeWithIndex(Canvas.property_root, "texture");
|
||||||
(
|
|
||||||
props.globals.getNode("canvas", 1),
|
|
||||||
"texture"
|
|
||||||
);
|
|
||||||
m.color = _createColorNodes(m.texture, "color-background");
|
m.color = _createColorNodes(m.texture, "color-background");
|
||||||
m.texture.setValues(vals);
|
m.texture.setValues(vals);
|
||||||
|
|
||||||
|
@ -802,11 +830,7 @@ var get = func(name)
|
||||||
node_canvas = name;
|
node_canvas = name;
|
||||||
else if( typeof(name) == 'scalar' )
|
else if( typeof(name) == 'scalar' )
|
||||||
{
|
{
|
||||||
var canvas_root = props.globals.getNode("canvas");
|
foreach(var c; Canvas.property_root.getChildren("texture"))
|
||||||
if( canvas_root == nil )
|
|
||||||
return nil;
|
|
||||||
|
|
||||||
foreach(var c; canvas_root.getChildren("texture"))
|
|
||||||
{
|
{
|
||||||
if( c.getValue("name") == name )
|
if( c.getValue("name") == name )
|
||||||
node_canvas = c;
|
node_canvas = c;
|
||||||
|
@ -847,4 +871,7 @@ else
|
||||||
{button: {legend: "Ok", binding: {command: "dialog-close"}}}
|
{button: {legend: "Ok", binding: {command: "dialog-close"}}}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} })();
|
}
|
||||||
|
|
||||||
|
Canvas.property_root = props.globals.getNode("canvas/by-index", 1);
|
||||||
|
})();
|
||||||
|
|
|
@ -28,7 +28,7 @@ uniform float terrain_alt;
|
||||||
uniform float hazeLayerAltitude;
|
uniform float hazeLayerAltitude;
|
||||||
uniform float overcast;
|
uniform float overcast;
|
||||||
uniform float eye_alt;
|
uniform float eye_alt;
|
||||||
uniform float mysnowlevel;
|
uniform float snowlevel;
|
||||||
uniform float dust_cover_factor;
|
uniform float dust_cover_factor;
|
||||||
uniform float wetness;
|
uniform float wetness;
|
||||||
uniform float fogstructure;
|
uniform float fogstructure;
|
||||||
|
@ -262,7 +262,7 @@ void main()
|
||||||
|
|
||||||
// mix snow
|
// mix snow
|
||||||
snow_alpha = smoothstep(0.75, 0.85, abs(steepness));
|
snow_alpha = smoothstep(0.75, 0.85, abs(steepness));
|
||||||
texel = mix(texel, snow_texel, smoothstep(mysnowlevel, mysnowlevel+200.0, snow_alpha * (relPos.z + eye_alt)+ (noise_2000m + 0.1 * noise_10m -0.55) *400.0));
|
texel = mix(texel, snow_texel, smoothstep(snowlevel, snowlevel+200.0, snow_alpha * (relPos.z + eye_alt)+ (noise_2000m + 0.1 * noise_10m -0.55) *400.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ uniform float terrain_alt;
|
||||||
uniform float hazeLayerAltitude;
|
uniform float hazeLayerAltitude;
|
||||||
uniform float overcast;
|
uniform float overcast;
|
||||||
uniform float eye_alt;
|
uniform float eye_alt;
|
||||||
uniform float mysnowlevel;
|
uniform float snowlevel;
|
||||||
uniform float dust_cover_factor;
|
uniform float dust_cover_factor;
|
||||||
uniform float wetness;
|
uniform float wetness;
|
||||||
uniform float fogstructure;
|
uniform float fogstructure;
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
<!-- Environment menu -->
|
<!-- Environment menu -->
|
||||||
<environment>Environment</environment>
|
<environment>Environment</environment>
|
||||||
<global-weather>Weather</global-weather>
|
<global-weather>Weather</global-weather>
|
||||||
|
<environment-settings>Environment Settings</environment-settings>
|
||||||
<time-settings>Time Settings</time-settings>
|
<time-settings>Time Settings</time-settings>
|
||||||
<wildfire-settings>Wildfire Settings</wildfire-settings>
|
<wildfire-settings>Wildfire Settings</wildfire-settings>
|
||||||
<terrasync>Scenery Download</terrasync>
|
<terrasync>Scenery Download</terrasync>
|
||||||
|
|
259
gui/dialogs/environment-settings.xml
Normal file
259
gui/dialogs/environment-settings.xml
Normal file
|
@ -0,0 +1,259 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<PropertyList>
|
||||||
|
<name>environment-settings</name>
|
||||||
|
<modal>false</modal>
|
||||||
|
<resizable>false</resizable>
|
||||||
|
<layout>vbox</layout>
|
||||||
|
<default-padding>3</default-padding>
|
||||||
|
|
||||||
|
<!-- Title bar with close button -->
|
||||||
|
<group>
|
||||||
|
<layout>hbox</layout>
|
||||||
|
<default-padding>1</default-padding>
|
||||||
|
|
||||||
|
<empty>
|
||||||
|
<stretch>true</stretch>
|
||||||
|
</empty>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>Environmental Settings</label>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<empty>
|
||||||
|
<stretch>true</stretch>
|
||||||
|
</empty>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<legend/>
|
||||||
|
<key>Esc</key>
|
||||||
|
<pref-width>16</pref-width>
|
||||||
|
<pref-height>16</pref-height>
|
||||||
|
<border>2</border>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-close</command>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<hrule/>
|
||||||
|
|
||||||
|
<group>
|
||||||
|
<layout>table</layout>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<row>0</row>
|
||||||
|
<col>0</col>
|
||||||
|
<label>Ground textures:</label>
|
||||||
|
<halign>right</halign>
|
||||||
|
</text>
|
||||||
|
<combo>
|
||||||
|
<row>0</row>
|
||||||
|
<col>1</col>
|
||||||
|
<name>season</name>
|
||||||
|
<halign>left</halign>
|
||||||
|
<live>true</live>
|
||||||
|
<property>/sim/startup/season</property>
|
||||||
|
<value>summer</value>
|
||||||
|
<value>winter</value>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
<object-name>season</object-name>
|
||||||
|
</binding>
|
||||||
|
</combo>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<row>0</row>
|
||||||
|
<col>2</col>
|
||||||
|
<legend>Reload Scenery</legend>
|
||||||
|
<binding>
|
||||||
|
<command>reinit</command>
|
||||||
|
<subsystem>tile-manager</subsystem>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<hrule/>
|
||||||
|
|
||||||
|
|
||||||
|
<group>
|
||||||
|
<layout>table</layout>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<row>0</row>
|
||||||
|
<col>0</col>
|
||||||
|
<colspan>4</colspan>
|
||||||
|
<halign>left</halign>
|
||||||
|
<label>Ground conditions (requires shaders effects)</label>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<row>1</row>
|
||||||
|
<col>0</col>
|
||||||
|
<colspan>4</colspan>
|
||||||
|
<halign>left</halign>
|
||||||
|
<label>Set snow level from METAR</label>
|
||||||
|
<name>metar-snow</name>
|
||||||
|
<property>/environment/params/metar-updates-snow-level</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
<object-name>metar-snow</object-name>
|
||||||
|
</binding>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>Snow line</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<row>2</row>
|
||||||
|
<col>0</col>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>-425m</label>
|
||||||
|
<halign>right</halign>
|
||||||
|
<row>2</row>
|
||||||
|
<col>1</col>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<slider>
|
||||||
|
<name>snow-level</name>
|
||||||
|
<row>2</row>
|
||||||
|
<col>2</col>
|
||||||
|
<min>-425.0</min>
|
||||||
|
<max>7500.0</max>
|
||||||
|
<live>true</live>
|
||||||
|
<property>/environment/snow-level-m</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
<object-name>snow-level</object-name>
|
||||||
|
</binding>
|
||||||
|
</slider>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>7500m</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<row>2</row>
|
||||||
|
<col>3</col>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<row>2</row>
|
||||||
|
<col>4</col>
|
||||||
|
<label>12345678</label>
|
||||||
|
<format>%.fm</format>
|
||||||
|
<live>true</live>
|
||||||
|
<property>/environment/snow-level-m</property>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>Dust cover</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<row>3</row>
|
||||||
|
<col>0</col>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>none</label>
|
||||||
|
<halign>right</halign>
|
||||||
|
<row>3</row>
|
||||||
|
<col>1</col>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<slider>
|
||||||
|
<name>dust-level</name>
|
||||||
|
<row>3</row>
|
||||||
|
<col>2</col>
|
||||||
|
<min>0.0</min>
|
||||||
|
<max>0.7</max>
|
||||||
|
<live>true</live>
|
||||||
|
<property>/environment/surface/dust-cover-factor</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
<object-name>dust-level</object-name>
|
||||||
|
</binding>
|
||||||
|
</slider>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>dusty</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<row>3</row>
|
||||||
|
<col>3</col>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>Wetness</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<row>4</row>
|
||||||
|
<col>0</col>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>dry</label>
|
||||||
|
<halign>right</halign>
|
||||||
|
<row>4</row>
|
||||||
|
<col>1</col>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<slider>
|
||||||
|
<name>wetness</name>
|
||||||
|
<row>4</row>
|
||||||
|
<col>2</col>
|
||||||
|
<min>0.0</min>
|
||||||
|
<max>0.7</max>
|
||||||
|
<live>true</live>
|
||||||
|
<property>/environment/surface/wetness</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
<object-name>wetness</object-name>
|
||||||
|
</binding>
|
||||||
|
</slider>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>wet</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<row>4</row>
|
||||||
|
<col>3</col>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<hrule/>
|
||||||
|
|
||||||
|
<group>
|
||||||
|
<empty>
|
||||||
|
<stretch>true</stretch>
|
||||||
|
</empty>
|
||||||
|
<layout>hbox</layout>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<legend>OK</legend>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-close</command>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<legend>Apply</legend>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<legend>Close</legend>
|
||||||
|
<default>true</default>
|
||||||
|
<key>Esc</key>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-close</command>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
|
<empty>
|
||||||
|
<stretch>true</stretch>
|
||||||
|
</empty>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
</PropertyList>
|
|
@ -1,189 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
|
|
||||||
|
|
||||||
<name>local_weather_environment</name>
|
|
||||||
<width>400</width>
|
|
||||||
<height>210</height>
|
|
||||||
<modal>false</modal>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>5</x>
|
|
||||||
<y>180</y>
|
|
||||||
<label>Environment parameters (only used by detailed shaders)</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>5</x>
|
|
||||||
<y>150</y>
|
|
||||||
<label>Snow line:</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>120</x>
|
|
||||||
<y>150</y>
|
|
||||||
<label>0 m </label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<slider>
|
|
||||||
<x>190</x>
|
|
||||||
<y>150</y>
|
|
||||||
<width>90</width>
|
|
||||||
<height>20</height>
|
|
||||||
<min>0.0</min>
|
|
||||||
<max>7500.0</max>
|
|
||||||
<property>/environment/mysnow-level-m</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
</slider>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>290</x>
|
|
||||||
<y>150</y>
|
|
||||||
<label>7500 m</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>340</x>
|
|
||||||
<y>150</y>
|
|
||||||
<label>12345678</label>
|
|
||||||
<format>%.fm</format>
|
|
||||||
<live>true</live>
|
|
||||||
<property>/environment/mysnow-level-m</property>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>5</x>
|
|
||||||
<y>120</y>
|
|
||||||
<label>Terrain dust cover:</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>120</x>
|
|
||||||
<y>120</y>
|
|
||||||
<label>none </label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<slider>
|
|
||||||
<x>190</x>
|
|
||||||
<y>120</y>
|
|
||||||
<width>90</width>
|
|
||||||
<height>20</height>
|
|
||||||
<min>0.0</min>
|
|
||||||
<max>0.7</max>
|
|
||||||
<property>/environment/surface/dust-cover-factor</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
</slider>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>290</x>
|
|
||||||
<y>120</y>
|
|
||||||
<label>dusty</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>5</x>
|
|
||||||
<y>90</y>
|
|
||||||
<label>Fog properties:</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>120</x>
|
|
||||||
<y>90</y>
|
|
||||||
<label>smooth </label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<slider>
|
|
||||||
<x>190</x>
|
|
||||||
<y>90</y>
|
|
||||||
<width>90</width>
|
|
||||||
<height>20</height>
|
|
||||||
<min>0.0</min>
|
|
||||||
<max>12.0</max>
|
|
||||||
<property>/environment/fog-structure</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
</slider>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>290</x>
|
|
||||||
<y>90</y>
|
|
||||||
<label>structured</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>5</x>
|
|
||||||
<y>60</y>
|
|
||||||
<label>Terrain wetness:</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>120</x>
|
|
||||||
<y>60</y>
|
|
||||||
<label>dry </label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<slider>
|
|
||||||
<x>190</x>
|
|
||||||
<y>60</y>
|
|
||||||
<width>90</width>
|
|
||||||
<height>20</height>
|
|
||||||
<min>0.0</min>
|
|
||||||
<max>0.7</max>
|
|
||||||
<property>/environment/surface/wetness</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
</slider>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<x>290</x>
|
|
||||||
<y>60</y>
|
|
||||||
<label>wet</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
|
|
||||||
<group>
|
|
||||||
<x>10</x>
|
|
||||||
<y>10</y>
|
|
||||||
|
|
||||||
<button>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<legend>OK</legend>
|
|
||||||
<!--<default>true</default>-->
|
|
||||||
<equal>true</equal>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-close</command>
|
|
||||||
</binding>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
<button>
|
|
||||||
<x>265</x>
|
|
||||||
<y>0</y>
|
|
||||||
<legend>Cancel</legend>
|
|
||||||
<equal>true</equal>
|
|
||||||
<key>Esc</key>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-close</command>
|
|
||||||
</binding>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
</group>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -430,19 +430,51 @@
|
||||||
<row>3</row>
|
<row>3</row>
|
||||||
<col>0</col>
|
<col>0</col>
|
||||||
<halign>right</halign>
|
<halign>right</halign>
|
||||||
<label>Max. visibility</label>
|
<label>Fog properties</label>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
<row>3</row>
|
<row>3</row>
|
||||||
<col>1</col>
|
<col>1</col>
|
||||||
<halign>right</halign>
|
<halign>right</halign>
|
||||||
<label>20 km</label>
|
<label>smooth</label>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<slider>
|
<slider>
|
||||||
<row>3</row>
|
<row>3</row>
|
||||||
<col>2</col>
|
<col>2</col>
|
||||||
|
<min>0.0</min>
|
||||||
|
<max>12.0</max>
|
||||||
|
<property>/environment/fog-structure</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
</slider>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<row>3</row>
|
||||||
|
<col>3</col>
|
||||||
|
<halign>left</halign>
|
||||||
|
<label>structured</label>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<row>4</row>
|
||||||
|
<col>0</col>
|
||||||
|
<halign>right</halign>
|
||||||
|
<label>Max. visibility</label>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<row>4</row>
|
||||||
|
<col>1</col>
|
||||||
|
<halign>right</halign>
|
||||||
|
<label>20 km</label>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<slider>
|
||||||
|
<row>4</row>
|
||||||
|
<col>2</col>
|
||||||
<min>9.90348</min>
|
<min>9.90348</min>
|
||||||
<max>12.429216196</max>
|
<max>12.429216196</max>
|
||||||
<property>/local-weather/config/aux-max-vis-range-m</property>
|
<property>/local-weather/config/aux-max-vis-range-m</property>
|
||||||
|
@ -452,14 +484,14 @@
|
||||||
</slider>
|
</slider>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
<row>3</row>
|
<row>4</row>
|
||||||
<col>3</col>
|
<col>3</col>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<label>250 km</label>
|
<label>250 km</label>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
<row>3</row>
|
<row>4</row>
|
||||||
<col>4</col>
|
<col>4</col>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<label>12345678</label>
|
<label>12345678</label>
|
||||||
|
@ -579,17 +611,6 @@
|
||||||
</binding>
|
</binding>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button>
|
|
||||||
<legend>Advanced...</legend>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-show</command>
|
|
||||||
<dialog-name>local_weather_environment</dialog-name>
|
|
||||||
</binding>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<empty>
|
<empty>
|
||||||
<stretch>true</stretch>
|
<stretch>true</stretch>
|
||||||
</empty>
|
</empty>
|
||||||
|
|
|
@ -207,31 +207,8 @@
|
||||||
<group>
|
<group>
|
||||||
<layout>table</layout>
|
<layout>table</layout>
|
||||||
|
|
||||||
<text>
|
|
||||||
<row>0</row>
|
|
||||||
<col>0</col>
|
|
||||||
<colspan>2</colspan>
|
|
||||||
<label>Season (ground textures): </label>
|
|
||||||
<halign>right</halign>
|
|
||||||
</text>
|
|
||||||
<combo>
|
|
||||||
<row>0</row>
|
|
||||||
<col>2</col>
|
|
||||||
<colspan>2</colspan>
|
|
||||||
<name>season</name>
|
|
||||||
<halign>left</halign>
|
|
||||||
<live>true</live>
|
|
||||||
<property>/sim/startup/season</property>
|
|
||||||
<value>summer</value>
|
|
||||||
<value>winter</value>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
<object-name>season</object-name>
|
|
||||||
</binding>
|
|
||||||
</combo>
|
|
||||||
|
|
||||||
<checkbox>
|
<checkbox>
|
||||||
<row>1</row>
|
<row>0</row>
|
||||||
<col>0</col>
|
<col>0</col>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<label>Animated jetways</label>
|
<label>Animated jetways</label>
|
||||||
|
@ -244,7 +221,7 @@
|
||||||
</checkbox>
|
</checkbox>
|
||||||
|
|
||||||
<checkbox>
|
<checkbox>
|
||||||
<row>2</row>
|
<row>1</row>
|
||||||
<col>0</col>
|
<col>0</col>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<label>Random buildings</label>
|
<label>Random buildings</label>
|
||||||
|
@ -256,8 +233,20 @@
|
||||||
</binding>
|
</binding>
|
||||||
</checkbox>
|
</checkbox>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<row>1</row>
|
||||||
|
<col>1</col>
|
||||||
|
<colspan>3</colspan>
|
||||||
|
<color>
|
||||||
|
<red>1.0</red>
|
||||||
|
<green>0.6</green>
|
||||||
|
<blue>0.6</blue>
|
||||||
|
</color>
|
||||||
|
<label>Warning: Requires lots of memory</label>
|
||||||
|
</text>
|
||||||
|
|
||||||
<checkbox>
|
<checkbox>
|
||||||
<row>3</row>
|
<row>2</row>
|
||||||
<col>0</col>
|
<col>0</col>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<label>Random objects</label>
|
<label>Random objects</label>
|
||||||
|
@ -270,7 +259,7 @@
|
||||||
</checkbox>
|
</checkbox>
|
||||||
|
|
||||||
<checkbox>
|
<checkbox>
|
||||||
<row>4</row>
|
<row>3</row>
|
||||||
<col>0</col>
|
<col>0</col>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<label>Random vegetation</label>
|
<label>Random vegetation</label>
|
||||||
|
@ -282,7 +271,7 @@
|
||||||
</binding>
|
</binding>
|
||||||
</checkbox>
|
</checkbox>
|
||||||
<text>
|
<text>
|
||||||
<row>4</row>
|
<row>3</row>
|
||||||
<col>1</col>
|
<col>1</col>
|
||||||
<label>density</label>
|
<label>density</label>
|
||||||
<enable>
|
<enable>
|
||||||
|
@ -290,7 +279,7 @@
|
||||||
</enable>
|
</enable>
|
||||||
</text>
|
</text>
|
||||||
<slider>
|
<slider>
|
||||||
<row>4</row>
|
<row>3</row>
|
||||||
<col>2</col>
|
<col>2</col>
|
||||||
<name>vegetation-density</name>
|
<name>vegetation-density</name>
|
||||||
<min>0</min>
|
<min>0</min>
|
||||||
|
@ -303,7 +292,7 @@
|
||||||
</binding>
|
</binding>
|
||||||
</slider>
|
</slider>
|
||||||
<text>
|
<text>
|
||||||
<row>4</row>
|
<row>3</row>
|
||||||
<col>3</col>
|
<col>3</col>
|
||||||
<label>12345678</label>
|
<label>12345678</label>
|
||||||
<format>%.1f</format>
|
<format>%.1f</format>
|
||||||
|
|
|
@ -372,67 +372,6 @@
|
||||||
</binding>
|
</binding>
|
||||||
</input>
|
</input>
|
||||||
|
|
||||||
<text>
|
|
||||||
<label>Snow line</label>
|
|
||||||
<row>2</row>
|
|
||||||
<col>0</col>
|
|
||||||
<enable>
|
|
||||||
<and>
|
|
||||||
<property>/sim/rendering/shaders/quality-level</property>
|
|
||||||
<or>
|
|
||||||
<property>/sim/rendering/shaders/crop</property>
|
|
||||||
<property>/sim/rendering/shaders/landmass</property>
|
|
||||||
<property>/sim/rendering/shaders/transition</property>
|
|
||||||
<property>/sim/rendering/shaders/urban</property>
|
|
||||||
</or>
|
|
||||||
</and>
|
|
||||||
</enable>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<slider>
|
|
||||||
<name>snow-level</name>
|
|
||||||
<row>2</row>
|
|
||||||
<col>1</col>
|
|
||||||
<enable>
|
|
||||||
<and>
|
|
||||||
<property>/sim/rendering/shaders/quality-level</property>
|
|
||||||
<or>
|
|
||||||
<property>/sim/rendering/shaders/crop</property>
|
|
||||||
<property>/sim/rendering/shaders/landmass</property>
|
|
||||||
<property>/sim/rendering/shaders/transition</property>
|
|
||||||
<property>/sim/rendering/shaders/urban</property>
|
|
||||||
</or>
|
|
||||||
</and>
|
|
||||||
</enable>
|
|
||||||
<min>-425.0</min>
|
|
||||||
<max>5000.0</max>
|
|
||||||
<live>true</live>
|
|
||||||
<property>/environment/snow-level-m</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
<object-name>snow-level</object-name>
|
|
||||||
</binding>
|
|
||||||
</slider>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<row>2</row>
|
|
||||||
<col>2</col>
|
|
||||||
<enable>
|
|
||||||
<and>
|
|
||||||
<property>/sim/rendering/shaders/quality-level</property>
|
|
||||||
<or>
|
|
||||||
<property>/sim/rendering/shaders/crop</property>
|
|
||||||
<property>/sim/rendering/shaders/landmass</property>
|
|
||||||
<property>/sim/rendering/shaders/transition</property>
|
|
||||||
<property>/sim/rendering/shaders/urban</property>
|
|
||||||
</or>
|
|
||||||
</and>
|
|
||||||
</enable>
|
|
||||||
<label>12345678</label>
|
|
||||||
<format>%.fm</format>
|
|
||||||
<live>true</live>
|
|
||||||
<property>/environment/snow-level-m</property>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
|
|
@ -38,9 +38,10 @@
|
||||||
var scenarioName = getprop( me.base ~ "/source-selection");
|
var scenarioName = getprop( me.base ~ "/source-selection");
|
||||||
|
|
||||||
if (getprop( me.base ~ "/mode/manual-weather")) {
|
if (getprop( me.base ~ "/mode/manual-weather")) {
|
||||||
# In manual weather mode we have to diable live weather
|
# In manual weather mode we have to disable live weather
|
||||||
# fetch so the weather can be changed by the user in the
|
# fetch so the weather can be changed by the user in the
|
||||||
# weather configuration dialog.
|
# weather configuration dialog.
|
||||||
|
|
||||||
setprop( "/environment/params/metar-updates-environment", 0 );
|
setprop( "/environment/params/metar-updates-environment", 0 );
|
||||||
setprop( "/environment/realwx/enabled", 0 );
|
setprop( "/environment/realwx/enabled", 0 );
|
||||||
setprop( "/environment/config/enabled", 0 );
|
setprop( "/environment/config/enabled", 0 );
|
||||||
|
@ -77,13 +78,14 @@
|
||||||
} else {
|
} else {
|
||||||
# preset configured scenario
|
# preset configured scenario
|
||||||
var wsn = props.globals.getNode( "/environment/weather-scenarios" );
|
var wsn = props.globals.getNode( "/environment/weather-scenarios" );
|
||||||
|
var current = getprop("/environment/weather-scenario", "");
|
||||||
var found = 0;
|
var found = 0;
|
||||||
if( wsn != nil ) {
|
if( wsn != nil ) {
|
||||||
var scenarios = wsn.getChildren("scenario");
|
var scenarios = wsn.getChildren("scenario");
|
||||||
forindex (var i; scenarios ) {
|
forindex (var i; scenarios ) {
|
||||||
var metarN = scenarios[i].getNode("metar");
|
var metarN = scenarios[i].getNode("metar");
|
||||||
metarN == nil and continue;
|
metarN == nil and continue;
|
||||||
if( metarN.getValue() == getprop("/environment/metar/data","") ) {
|
if( scenarios[i].getNode("name").getValue() == current ) {
|
||||||
setprop( me.base ~ "/source-selection", scenarios[i].getNode("name").getValue() );
|
setprop( me.base ~ "/source-selection", scenarios[i].getNode("name").getValue() );
|
||||||
found = 1;
|
found = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -122,7 +124,6 @@
|
||||||
apply : func {
|
apply : func {
|
||||||
var scenarioName = getprop( me.base ~ "/source-selection");
|
var scenarioName = getprop( me.base ~ "/source-selection");
|
||||||
var metar = getprop( "environment/metar/data" );
|
var metar = getprop( "environment/metar/data" );
|
||||||
var tile = getprop( me.base ~ "/tile");
|
|
||||||
var global_weather_enabled = getprop( me.base ~ "/mode/global-weather");
|
var global_weather_enabled = getprop( me.base ~ "/mode/global-weather");
|
||||||
var local_weather_enabled = getprop( me.base ~ "/mode/local-weather");
|
var local_weather_enabled = getprop( me.base ~ "/mode/local-weather");
|
||||||
var manual_weather_enabled = getprop( me.base ~ "/mode/manual-weather");
|
var manual_weather_enabled = getprop( me.base ~ "/mode/manual-weather");
|
||||||
|
@ -131,7 +132,7 @@
|
||||||
if (manual_weather_enabled == 1) {
|
if (manual_weather_enabled == 1) {
|
||||||
setprop( "/environment/params/metar-updates-environment", 0 );
|
setprop( "/environment/params/metar-updates-environment", 0 );
|
||||||
setprop( "/environment/realwx/enabled", 0 );
|
setprop( "/environment/realwx/enabled", 0 );
|
||||||
setprop( "/environment/config/enabled", 0 );
|
setprop( "/environment/config/enabled", 1 );
|
||||||
metar = "";
|
metar = "";
|
||||||
} else if( scenarioName == "Live data" ) {
|
} else if( scenarioName == "Live data" ) {
|
||||||
setprop( "/environment/params/metar-updates-environment", 1 );
|
setprop( "/environment/params/metar-updates-environment", 1 );
|
||||||
|
@ -149,6 +150,8 @@
|
||||||
metar = getprop( me.base ~ "/metar-string" );
|
metar = getprop( me.base ~ "/metar-string" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setprop("/environment/weather-scenario", scenarioName);
|
||||||
|
|
||||||
if( metar != nil ) {
|
if( metar != nil ) {
|
||||||
setprop( "environment/metar/data", normalize_string(metar) );
|
setprop( "environment/metar/data", normalize_string(metar) );
|
||||||
}
|
}
|
||||||
|
@ -161,20 +164,6 @@
|
||||||
# If Local Weather is enabled, re-initialize with updated
|
# If Local Weather is enabled, re-initialize with updated
|
||||||
# initial tile and tile selection.
|
# initial tile and tile selection.
|
||||||
setprop("/nasal/local_weather/enabled", "true");
|
setprop("/nasal/local_weather/enabled", "true");
|
||||||
setprop("/local-weather/tmp/tile-type", tile);
|
|
||||||
|
|
||||||
if ((scenarioName == "Live data" ) or
|
|
||||||
(scenarioName == "Manual input") ) {
|
|
||||||
# If using Live data, or a manually entered METAR string, the
|
|
||||||
# only sensible tile selection mode is "METAR"
|
|
||||||
setprop("/local-weather/tmp/tile-management", "METAR");
|
|
||||||
} else if (tile != "") {
|
|
||||||
# Use Realistic Weather for defined tiles
|
|
||||||
setprop("/local-weather/tmp/tile-management", "realistic weather");
|
|
||||||
} else {
|
|
||||||
# Otherwise repeat the tile
|
|
||||||
setprop("/local-weather/tmp/tile-management", "repeat-tile");
|
|
||||||
}
|
|
||||||
|
|
||||||
# Re-initialize local weather.
|
# Re-initialize local weather.
|
||||||
local_weather.set_tile();
|
local_weather.set_tile();
|
||||||
|
@ -194,14 +183,15 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
scenarioListener : func( n ) {
|
scenarioListener : func( n ) {
|
||||||
description = "";
|
var description = "";
|
||||||
metar = "nil";
|
var metar = "nil";
|
||||||
tile = "";
|
var local_weather_props = nil;
|
||||||
|
|
||||||
var scenario = me.findScenarioByName( n.getValue() );
|
var scenario = me.findScenarioByName( n.getValue() );
|
||||||
if( scenario != nil ) {
|
if( scenario != nil ) {
|
||||||
description = normalize_string(scenario.getNode("description", 1 ).getValue());
|
description = normalize_string(scenario.getNode("description", 1 ).getValue());
|
||||||
metar = normalize_string(scenario.getNode("metar", 1 ).getValue());
|
metar = normalize_string(scenario.getNode("metar", 1 ).getValue());
|
||||||
tile = normalize_string(scenario.getNode("tile", 1 ).getValue());
|
local_weather_props = scenario.getNode("local-weather");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n.getValue() == "Live data") {
|
if (n.getValue() == "Live data") {
|
||||||
|
@ -214,10 +204,61 @@
|
||||||
var metar = getprop( me.base ~ "/metar-string" );
|
var metar = getprop( me.base ~ "/metar-string" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
setprop(me.base ~ "/description", description );
|
setprop(me.base ~ "/description", description );
|
||||||
setprop(me.base ~ "/metar-string", metar );
|
setprop(me.base ~ "/metar-string", metar );
|
||||||
setprop(me.base ~ "/tile", tile);
|
|
||||||
|
# Set the wind from the METAR string.
|
||||||
|
var result = [];
|
||||||
|
var msplit = split(" ", string.uc(metar));
|
||||||
|
foreach (var word; msplit) {
|
||||||
|
|
||||||
|
if ((size(word) > 6) and string.match(word, "*[0-9][0-9]KT")) {
|
||||||
|
# We've got the wind definition word. Now to split it up.
|
||||||
|
# Format is nnnmmKT or nnnmmGppKT
|
||||||
|
# Direction is easy - the first 3 characters.
|
||||||
|
var dir = chr(word[0]) ~ chr(word[1]) ~ chr(word[2]);
|
||||||
|
|
||||||
|
if (dir == "VRB") {
|
||||||
|
setprop("/local-weather/tmp/tile-orientation-deg", 360.0 * rand());
|
||||||
|
setprop("/local-weather/tmp/gust-angular-variation-deg", 180.0);
|
||||||
|
setprop("/local-weather/tmp/gust-frequency-hz", 0.001);
|
||||||
|
} else {
|
||||||
|
setprop("/local-weather/tmp/tile-orientation-deg", dir);
|
||||||
|
setprop("/local-weather/tmp/gust-angular-variation-deg", 0.0);
|
||||||
|
setprop("/local-weather/tmp/gust-frequency-hz", 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
# Next two are the base wind
|
||||||
|
var spd = chr(word[3]) ~ chr(word[4]);
|
||||||
|
setprop("/local-weather/tmp/windspeed-kt", spd);
|
||||||
|
|
||||||
|
var gst = 0;
|
||||||
|
if ((size(word) > 7) and (chr(word[5]) == 'G')) {
|
||||||
|
# Gusty case
|
||||||
|
gst = chr(word[6]) ~ chr(word[7]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((gst > spd) and (spd > 0)) {
|
||||||
|
setprop("/local-weather/tmp/gust-relative-strength", (gst - spd) / spd);
|
||||||
|
setprop("/local-weather/tmp/gust-frequency-hz", 0.7);
|
||||||
|
} else {
|
||||||
|
setprop("/local-weather/tmp/gust-relative-strength", 0.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (local_weather_props != nil) {
|
||||||
|
# The local weather properties need to be set now, so they can
|
||||||
|
# be configured by the user if they select Advanced Settings
|
||||||
|
props.copy(local_weather_props, props.globals.getNode("/local-weather/tmp", 1));
|
||||||
|
} else {
|
||||||
|
# If no local weather properties have been set, we'll read from the scenario
|
||||||
|
# METAR
|
||||||
|
setprop("/local-weather/tmp/tile-type", "manual");
|
||||||
|
setprop("/local-weather/tmp/tile-management", "METAR");
|
||||||
|
}
|
||||||
|
|
||||||
me.refresh();
|
me.refresh();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -281,6 +281,14 @@
|
||||||
</binding>
|
</binding>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<name>environment-settings</name>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-show</command>
|
||||||
|
<dialog-name>environment-settings</dialog-name>
|
||||||
|
</binding>
|
||||||
|
</item>
|
||||||
|
|
||||||
<item>
|
<item>
|
||||||
<name>time-settings</name>
|
<name>time-settings</name>
|
||||||
<binding>
|
<binding>
|
||||||
|
|
Loading…
Reference in a new issue