1
0
Fork 0

Merge next

Signed-off-by: fly <merspieler@airmail.cc>
This commit is contained in:
fly 2021-02-18 06:24:04 +11:00
commit f9285759d2
461 changed files with 135967 additions and 89290 deletions
AI
Aircraft
Compositor/Classic
Docs
Effects

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="738-main.xml">
<texture-path>Textures/SolaseedAir</texture-path>
</PropertyList>

View file

@ -0,0 +1,8 @@
<?xml version="1.0"?>
<PropertyList include="738-main.xml">
<texture-path>Textures/AmazonAir</texture-path>
</PropertyList>

Binary file not shown.

After

(image error) Size: 81 KiB

Binary file not shown.

After

(image error) Size: 83 KiB

View file

@ -0,0 +1,31 @@
<?xml version="1.0"?>
<PropertyList>
<description>B757-200</description>
<author>Unknown, modified by Brett Harrison</author>
<path>Models/757-200.ac</path>
<texture-path>Textures/ATI</texture-path>
<animation>
<type>select</type>
<object-name>winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>1</value>
</equals>
</condition>
</animation>
<animation>
<type>select</type>
<object-name>gear</object-name>
<condition>
<less-than>
<property>velocities/true-airspeed-kt</property>
<value>170</value>
</less-than>
</condition>
</animation>
</PropertyList>

Binary file not shown.

After

(image error) Size: 81 KiB

View file

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/ATI</texture-path>
<!-- Show Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>1</value>
</equals>
</condition>
</animation>
</PropertyList>

View file

@ -1,9 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/AeroUnion</texture-path>
<!-- Hide Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>0</value>
</equals>
</condition>
</animation>
</PropertyList>

View file

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/AmazonAir</texture-path>
<!-- Show Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>1</value>
</equals>
</condition>
</animation>
</PropertyList>

View file

@ -1,9 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/Amerijet</texture-path>
<!-- Hide Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>0</value>
</equals>
</condition>
</animation>
</PropertyList>

View file

@ -1,9 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/Asiana</texture-path>
<!-- Hide Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>0</value>
</equals>
</condition>
</animation>
</PropertyList>

View file

@ -1,9 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/NorthernAirCargo</texture-path>
<!-- Show Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>1</value>
</equals>
</condition>
</animation>
</PropertyList>

View file

@ -1,9 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/PolarAirCargo</texture-path>
<!-- Hide Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>0</value>
</equals>
</condition>
</animation>
</PropertyList>

View file

@ -1,9 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/Qantas</texture-path>
<!-- Hide Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>0</value>
</equals>
</condition>
</animation>
</PropertyList>

View file

@ -1,9 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/RoyalAirMaroc</texture-path>
<!-- Hide Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>0</value>
</equals>
</condition>
</animation>
</PropertyList>

View file

@ -1,9 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/TasmanCargo</texture-path>
<!-- Show Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>1</value>
</equals>
</condition>
</animation>
</PropertyList>

View file

@ -1,9 +1,15 @@
<?xml version="1.0"?>
<PropertyList include="76Y-main.xml">
<texture-path>Textures/UPS</texture-path>
<!-- Show Winglets -->
<animation>
<type>select</type>
<object-name>Winglets</object-name>
<condition>
<equals>
<property>/sim/signals/fdm-initialized</property>
<value>1</value>
</equals>
</condition>
</animation>
</PropertyList>

File diff suppressed because it is too large Load diff

Binary file not shown.

After

(image error) Size: 64 KiB

Binary file not shown.

After

(image error) Size: 53 KiB

Binary file not shown.

Before

(image error) Size: 34 KiB

After

(image error) Size: 40 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="77F-main.xml">
<texture-path>Textures/SouthernAir</texture-path>
</PropertyList>

Binary file not shown.

After

(image error) Size: 37 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="A321-main.xml">
<texture-path>Textures/UNIAir</texture-path>
</PropertyList>

Binary file not shown.

After

(image error) Size: 69 KiB

View file

@ -0,0 +1,7 @@
<?xml version="1.0"?>
<PropertyList include="A33X-main.xml">
<texture-path>Textures/DHL</texture-path>
</PropertyList>

Binary file not shown.

After

(image error) Size: 54 KiB

View file

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<PropertyList include="AT7-main.xml">
<texture-path>Textures/UNIAir</texture-path>
</PropertyList>

Binary file not shown.

After

(image error) Size: 54 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="CR7-main.xml">
<texture-path>Textures/IbexAirlines</texture-path>
</PropertyList>

Binary file not shown.

After

(image error) Size: 52 KiB

View file

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<PropertyList include="DH4-main.xml">
<texture-path>Textures/ANAWings</texture-path>
</PropertyList>

Binary file not shown.

After

(image error) Size: 44 KiB

0
AI/Aircraft/SpaceShuttle/Effects/shuttle-main.eff Executable file → Normal file
View file

0
AI/Aircraft/SpaceShuttle/OMSPods.ac Executable file → Normal file
View file

4
AI/Aircraft/SpaceShuttle/OMSPods.xml Executable file → Normal file
View file

@ -2,10 +2,10 @@
<PropertyList>
<path>Aircraft/SpaceShuttle/Models/OMSPods.ac</path>
<path>OMSPods.ac</path>
<effect>
<inherits-from>Aircraft/SpaceShuttle/Models/Effects/shuttle-main</inherits-from>
<inherits-from>Effects/shuttle-main</inherits-from>
<object-name>omsLeftBase</object-name>
<object-name>omsLeft.001</object-name>
<object-name>omsLeft</object-name>

0
AI/Aircraft/SpaceShuttle/SSME.ac Executable file → Normal file
View file

2
AI/Aircraft/SpaceShuttle/SSME1.xml Executable file → Normal file
View file

@ -4,7 +4,7 @@
<path>SSME.ac</path>
<effect>
<inherits-from>Aircraft/SpaceShuttle/Models/Effects/shuttle-main</inherits-from>
<inherits-from>Effects/shuttle-main</inherits-from>
<object-name>SSME</object-name>
</effect>

2
AI/Aircraft/SpaceShuttle/SSME2.xml Executable file → Normal file
View file

@ -4,7 +4,7 @@
<path>SSME.ac</path>
<effect>
<inherits-from>Aircraft/SpaceShuttle/Models/Effects/shuttle-main</inherits-from>
<inherits-from>Effects/shuttle-main</inherits-from>
<object-name>SSME</object-name>
</effect>

2
AI/Aircraft/SpaceShuttle/SSME3.xml Executable file → Normal file
View file

@ -4,7 +4,7 @@
<path>SSME.ac</path>
<effect>
<inherits-from>Aircraft/SpaceShuttle/Models/Effects/shuttle-main</inherits-from>
<inherits-from>Effects/shuttle-main</inherits-from>
<object-name>SSME</object-name>
</effect>

0
AI/Aircraft/SpaceShuttle/SpaceShuttle.ac Executable file → Normal file
View file

2
AI/Aircraft/SpaceShuttle/SpaceShuttle.xml Executable file → Normal file
View file

@ -12,7 +12,7 @@
<effect>
<inherits-from>Aircraft/SpaceShuttle/Models/Effects/shuttle-main</inherits-from>
<inherits-from>Effects/shuttle-main</inherits-from>
<object-name>spaceshutt_spstob_3</object-name>
<object-name>spaceshutt_spstob_eal</object-name>
<object-name>SpeedBrakeL</object-name>

0
AI/Aircraft/SpaceShuttle/spstob_1.png Executable file → Normal file
View file

Before

(image error) Size: 1.6 MiB

After

(image error) Size: 1.6 MiB

0
AI/Aircraft/SpaceShuttle/spstob_3.png Executable file → Normal file
View file

Before

(image error) Size: 703 B

After

(image error) Size: 703 B

0
AI/Aircraft/SpaceShuttle/spstob_4.png Executable file → Normal file
View file

Before

(image error) Size: 291 B

After

(image error) Size: 291 B

0
AI/Aircraft/SpaceShuttle/spstob_e.png Executable file → Normal file
View file

Before

(image error) Size: 276 B

After

(image error) Size: 276 B

2841
AI/Traffic/A/AHK.xml Normal file

File diff suppressed because it is too large Load diff

3152
AI/Traffic/A/AKX.xml Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

6150
AI/Traffic/A/ATN.xml Normal file

File diff suppressed because it is too large Load diff

6472
AI/Traffic/B/BCS.xml Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<trafficlist xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="traffic.xsd">
<!-- Fair\u0020Isle=EGEF Lerwick=EGET Shetland Island=EGPB Foula = EG42
Papa Stour = EG79 -->
<?xml version="1.0"?>
<!-- Updated 29NOV20 to remove EGEL flights as no runway defined in FG -->
<trafficlist>
<aircraft>
<model>Aircraft/BN-2/BN-2-Hebridean.xml</model>
<livery>HBR</livery>
@ -182,111 +179,6 @@
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1010</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEO</port>
<time>2/08:40:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEL</port>
<time>2/09:10:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1011</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEO</port>
<time>2/14:00:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEL</port>
<time>2/15:05:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1012</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEO</port>
<time>4/08:40:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEL</port>
<time>4/09:10:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1013</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEO</port>
<time>4/14:00:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEL</port>
<time>4/15:05:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1014</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEO</port>
<time>6/08:25:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEL</port>
<time>6/08:55:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1015</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEO</port>
<time>0/13:40:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEL</port>
<time>0/14:10:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1016</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEO</port>
<time>2/08:40:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGPU</port>
<time>2/09:35:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1017</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
@ -452,126 +344,6 @@
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1028</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEL</port>
<time>1/09:20:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGPU</port>
<time>1/09:35:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1029</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEL</port>
<time>3/09:20:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGPU</port>
<time>3/09:35:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1030</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEL</port>
<time>1/09:20:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEO</port>
<time>1/10:25:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1031</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEL</port>
<time>3/09:20:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEO</port>
<time>3/10:25:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1032</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEL</port>
<time>1/15:20:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEO</port>
<time>1/15:50:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1033</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEL</port>
<time>3/15:20:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEO</port>
<time>3/15:50:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1034</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEL</port>
<time>6/09:05:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEO</port>
<time>6/09:35:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1035</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGEL</port>
<time>0/14:20:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEO</port>
<time>0/14:50:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1036</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
@ -662,36 +434,6 @@
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1042</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGPU</port>
<time>2/14:50:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEL</port>
<time>2/15:05:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1043</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>
<fltrules>VFR</fltrules>
<departure>
<port>EGPU</port>
<time>4/14:50:00</time>
</departure>
<cruise-alt>50</cruise-alt>
<arrival>
<port>EGEL</port>
<time>4/15:05:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>Hebridean_1044</callsign>
<required-aircraft>HBR_BN_2</required-aircraft>

1047
AI/Traffic/I/IBX.xml Normal file

File diff suppressed because it is too large Load diff

3557
AI/Traffic/S/SOO.xml Normal file

File diff suppressed because it is too large Load diff

1250
AI/Traffic/SNJ.xml Normal file

File diff suppressed because it is too large Load diff

2522
AI/Traffic/U/UIA.xml Normal file

File diff suppressed because it is too large Load diff

View file

@ -4,9 +4,9 @@
<scenario>
<name>Space Shuttle landing</name>
<name>Space Shuttle landing at KEDW</name>
<description>
The Space Shuttle returns from entry interface to a landing
The Space Shuttle returns from entry interface to a landing at KEDW
</description>
<entry>

0
AI/truman_demo.xml Executable file → Normal file
View file

View file

@ -4,12 +4,13 @@
## ##
## Improved redout/blackout system for Flightgear ##
## ##
## Author: Nikolai V. Chr. (property rules), Thorsten Renk (shaders) ##
## Author: Nikolai V. Chr. (property rules), Thorsten Renk (shaders), ##
## Benedikt Hallinger (groundshake effect) ##
## ##
## ##
## ##
## ##
## Version 2.05 License: GPL 2.0 ##
## Version 2.10 License: GPL 2.0 ##
## ##
###################################################################################
-->
@ -49,6 +50,24 @@
<tunnel>sim/rendering/als-filters/black-factor</tunnel>
<als>sim/rendering/shaders/skydome</als>
<filters>sim/rendering/als-filters/use-filtering</filters>
<groundshake>
<!-- inputs -->
<effect-factor>sim/rendering/headshake/groundshake/effect-factor</effect-factor>
<aircraft-scale-prop>sim/rendering/headshake/groundshake/custom-aircraft-scaler</aircraft-scale-prop>
<default-aircraft-scaler-minkts>sim/rendering/headshake/groundshake/default-aircraft-scaler-min-knots</default-aircraft-scaler-minkts>
<default-aircraft-scaler-maxkts>sim/rendering/headshake/groundshake/default-aircraft-scaler-max-knots</default-aircraft-scaler-maxkts>
<default-aircraft-scaler-factor>sim/rendering/headshake/groundshake/default-aircraft-scaler-factor</default-aircraft-scaler-factor>
<!-- internal -->
<rng-source>sim/rendering/headshake/groundshake/internal/groundbump</rng-source>
<terrain-bumpiness>/fdm/jsbsim/ground/bumpiness</terrain-bumpiness>
<has-ground-contact>sim/rendering/headshake/groundshake/internal/ground-contact</has-ground-contact>
<is-moving>sim/rendering/headshake/groundshake/internal/is-moving</is-moving>
<default-aircraft-scaler>sim/rendering/headshake/groundshake/internal/default-aircraft-scaler</default-aircraft-scaler>
<!-- outputs -->
<result>sim/rendering/headshake/groundshake/result-g</result>
</groundshake>
</params>
<filter><!-- check for NaN -->
@ -227,10 +246,13 @@
</enable>
<input>
<expression>
<sum>
<div>
<property>accelerations/pilot/z-accel-fps_sec</property>
<value>32.174</value>
</div>
<property alias="/params/groundshake/result" />
</sum>
</expression>
</input>
<output alias="/params/g-force"/>
@ -1010,4 +1032,164 @@
<output alias="/params/greyout"/>
</filter>
<!-- Ground shake effect
The ground shake effect simulates the roughness of the terrain and the
resulting forces onto the pilot when moving over it.
This is achieved by generating random g-forces depending on the current terrain bumpyness.
The force is then applied to the pilot depending on movement speed of the aircraft.
Adjustments reside in sim/rendering/headshake/groundshake and can be done with this properties:
- effect-factor: Overall effect scaling/enabling, so users can disable/adjust in cockpit-gui
- default-aircraft-scaler-factor: allows to adjust the default aircraft effect output.
To be overwritten from aircraft for which the default table is OK but the effect to small/big.
Set to zero in case a separate scaler is provided
- default-aircraft-scaler-min-knots: at this speed the effect starts
- default-aircraft-scaler-max-knots: at this speed the effect reaches its maximum
- custom-aircraft-scaler: aircraft devs calculate their own scaling algorythm result here.
Most probably this is based on speed etc.
Set default-aircraft-scaler-factor to zero, because otherwise the
default still applies (default+custom effects are added)!
-->
<filter>
<name>groundshake-terrain-g</name>
<debug>false</debug>
<type>gain</type>
<gain><property alias="/params/groundshake/effect-factor"/></gain>
<input>
<condition>
<!-- only act when having ground contact -->
<property alias="/params/groundshake/has-ground-contact"/>
<property alias="/params/groundshake/is-moving"/>
</condition>
<expression>
<product>
<!-- defines bumps of surface -->
<property alias="/params/groundshake/rng-source"/>
<!-- apply bumpiness of terrain -->
<product>
<value>1</value>
<sum>
<value>0.1</value> <!-- so we have a effect even on taxiway/runway -->
<property alias="/params/groundshake/terrain-bumpiness"/>
</sum>
</product>
<sum>
<!-- apply the default aircraft scaling -->
<!-- note: in case the aircraft dev wants his own model, he should deactivate the internal one -->
<!-- this can be done by setting the deafualt-aircraft-factor to zero -->
<property alias="/params/groundshake/default-aircraft-scaler" />
<!-- apply aircraft specific scaling -->
<!-- (this is intended to model gear damping based on speed etc) -->
<property alias="/params/groundshake/aircraft-scale-prop"/>
</sum>
</product>
</expression>
</input>
<input><value>0.0</value></input> <!-- in-air: no ground forces -->
<output alias="/params/groundshake/result" />
</filter>
<filter>
<name>Ground bumps</name>
<!-- calculate the ground bump number: The rate and ammount of change simulates bumps in the surface -->
<type>coherent-noise</type>
<debug>false</debug>
<enable>
<condition>
<property alias="/params/groundshake/has-ground-contact"/>
<property alias="/params/groundshake/is-moving"/>
</condition>
</enable>
<input>
<!-- depending on position: the faster we go, the faster the prop changes, the faster the bumps come in -->
<expression>
<product>
<sum>
<property>/position/latitude-deg</property>
<property>/position/longitude-deg</property>
</sum>
<value>50</value>
</product>
</expression>
</input>
<output><property alias="/params/groundshake/rng-source"/></output>
<amplitude>0.5</amplitude>
<absolute type="bool">false</absolute>
<discrete-resolution>1024</discrete-resolution> <!-- frequency of the changes/bumps: the smaller, the more wide the bumps are -->
</filter>
<logic>
<name>Aircraft has ground contact</name>
<input>
<or>
<property>/gear/gear[0]/wow</property>
<property>/gear/gear[1]/wow</property>
<property>/gear/gear[2]/wow</property>
<property>/gear/gear[3]/wow</property>
</or>
</input>
<output>
<property alias="/params/groundshake/has-ground-contact"/>
</output>
</logic>
<logic>
<name>Aircraft is moving</name>
<input>
<greater-than>
<property>/velocities/groundspeed-kt</property>
<value>1</value>
</greater-than>
</input>
<output>
<property alias="/params/groundshake/is-moving"/>
</output>
</logic>
<filter>
<name>Default aircraft scaling by speed</name>
<!-- This filter defines a table for applying the scaled effect by airspeed to
simulate basic damping of the gear. It allows for defining dynamic min/max knots
ranges and scales linearly bin between -->
<debug>false</debug>
<type>gain</type>
<gain> <property alias="/params/groundshake/default-aircraft-scaler-factor"/> </gain>
<input>
<!-- Formula: (1/(max-min))*speed-(min/(max-min)) lets us scale linearly with given min/max values -->
<expression>
<difference>
<prod>
<div>
<value>1</value>
<difference>
<property alias="/params/groundshake/default-aircraft-scaler-maxkts"/>
<property alias="/params/groundshake/default-aircraft-scaler-minkts"/>
</difference>
</div>
<property>/velocities/groundspeed-kt</property>
</prod>
<div>
<property alias="/params/groundshake/default-aircraft-scaler-minkts"/>
<difference>
<property alias="/params/groundshake/default-aircraft-scaler-maxkts"/>
<property alias="/params/groundshake/default-aircraft-scaler-minkts"/>
</difference>
</div>
</difference>
</expression>
<min>0.0</min>
<max>1.0</max>
</input>
<output>
<property alias="/params/groundshake/default-aircraft-scaler" />
</output>
</filter>
</PropertyList>

View file

@ -94,6 +94,8 @@ var propFlightControls = props.globals.getNode(flightControls, 0);
var elevatorControl = propFlightControls.getNode("elevator", 0);
var elevatorTrimControl = propFlightControls.getNode("elevator-trim", 0);
var navHeadingValid = "/instrumentation/nav/in-range";
var navGSValid = "/instrumentation/nav/gs-in-range";
var headingNeedleDeflection = "/instrumentation/nav/heading-needle-deflection";
var gsNeedleDeflection = "/instrumentation/nav/gs-needle-deflection-norm";
var staticPressure = "systems/static/pressure-inhg";
@ -457,6 +459,9 @@ var hdgButton = func {
annunciatorNav.setBoolValue(0);
annunciatorRol.setBoolValue(0);
annunciatorRev.setBoolValue(0);
annunciatorNavArm.setBoolValue(0);
annunciatorAprArm.setBoolValue(0);
annunciatorRevArm.setBoolValue(0);
settingTargetInterceptAngle.setDoubleValue(0.0);
}
@ -485,6 +490,8 @@ var hdgButton = func {
annunciatorRol.setBoolValue(0);
annunciatorRev.setBoolValue(0);
annunciatorNavArm.setBoolValue(0);
annunciatorAprArm.setBoolValue(0);
annunciatorRevArm.setBoolValue(0);
settingTargetInterceptAngle.setDoubleValue(0.0);
}
@ -578,10 +585,16 @@ var navButton = func {
# Disable button if too little power
if (getprop(power) < minVoltageLimit) { return; }
if (lockPitchArm.getValue() == pitchArmModes["GS"]) {
lockPitchArm.setIntValue(pitchArmModes["OFF"]);
}
##
# If we are in HDG mode we switch to the 45 degree angle intercept NAV mode
# If we are in HDG (or radial) mode we switch to the 45 degree angle intercept NAV mode
##
if (lockRollMode.getValue() == rollModes["HDG"])
if (lockRollMode.getValue() == rollModes["HDG"]
or lockRollMode.getValue() == rollModes["APR"]
or lockRollMode.getValue() == rollModes["REV"])
{
hdgFlasher.blink(8, 1).switch(0).switch(1);
@ -595,6 +608,14 @@ var navButton = func {
lockRollMode.setIntValue(rollModes["NAV"]);
annunciatorNavArm.setBoolValue(1);
annunciatorAprArm.setBoolValue(0);
annunciatorRevArm.setBoolValue(0);
annunciatorGsArm.setBoolValue(0);
annunciatorNav.setBoolValue(0);
annunciatorRol.setBoolValue(0);
annunciatorRev.setBoolValue(0);
annunciatorApr.setBoolValue(0);
annunciatorGs.setBoolValue(0);
navArmFromHdg();
}
@ -615,6 +636,14 @@ var navButton = func {
lockRollMode.setIntValue(rollModes["NAV"]);
annunciatorNavArm.setBoolValue(1);
annunciatorAprArm.setBoolValue(0);
annunciatorRevArm.setBoolValue(0);
annunciatorGsArm.setBoolValue(0);
annunciatorNav.setBoolValue(0);
annunciatorRol.setBoolValue(0);
annunciatorRev.setBoolValue(0);
annunciatorApr.setBoolValue(0);
annunciatorGs.setBoolValue(0);
navArmFromRol();
}
@ -652,10 +681,11 @@ var navArmFromHdg = func
##
lockNavHold.setBoolValue(1);
deviation = getprop(headingNeedleDeflection);
var deviationValid = getprop(navHeadingValid);
##
# If the deflection is more than 3 degrees wait 5 seconds and check again.
##
if (abs(deviation) > 3.0)
if (!deviationValid or abs(deviation) > 3.0)
{
#print("deviation");
settimer(navArmFromHdg, 5);
@ -704,10 +734,11 @@ var navArmFromRol = func
lockRollAxis.setBoolValue(1);
settingTargetTurnRate.setDoubleValue(0.0);
var deviation = getprop(headingNeedleDeflection);
var deviationValid = getprop(navHeadingValid);
##
# If the deflection is more than 3 degrees wait 5 seconds and check again.
##
if (abs(deviation) > 3.0)
if (!deviationValid or abs(deviation) > 3.0)
{
#print("deviation");
settimer(navArmFromRol, 5);
@ -740,10 +771,16 @@ var aprButton = func {
# Disable button if too little power
if (getprop(power) < minVoltageLimit) { return; }
if (lockPitchArm.getValue() == pitchArmModes["GS"]) {
lockPitchArm.setIntValue(pitchArmModes["OFF"]);
}
##
# If we are in HDG mode we switch to the 45 degree intercept angle APR mode
# If we are in HDG (or radial) mode we switch to the 45 degree intercept angle APR mode
##
if (lockRollMode.getValue() == rollModes["HDG"])
if (lockRollMode.getValue() == rollModes["HDG"]
or lockRollMode.getValue() == rollModes["NAV"]
or lockRollMode.getValue() == rollModes["REV"])
{
hdgFlasher.blink(8, 1).switch(0).switch(1);
@ -756,7 +793,15 @@ var aprButton = func {
lockRollArm.setIntValue(rollArmModes["APR"]);
lockRollMode.setIntValue(rollModes["APR"]);
annunciatorNavArm.setBoolValue(0);
annunciatorAprArm.setBoolValue(1);
annunciatorRevArm.setBoolValue(0);
annunciatorGsArm.setBoolValue(0);
annunciatorNav.setBoolValue(0);
annunciatorRol.setBoolValue(0);
annunciatorRev.setBoolValue(0);
annunciatorApr.setBoolValue(0);
annunciatorGs.setBoolValue(0);
aprArmFromHdg();
}
@ -773,7 +818,15 @@ var aprButton = func {
lockRollArm.setIntValue(rollArmModes["APR"]);
lockRollMode.setIntValue(rollModes["APR"]);
annunciatorNavArm.setBoolValue(0);
annunciatorAprArm.setBoolValue(1);
annunciatorRevArm.setBoolValue(0);
annunciatorGsArm.setBoolValue(0);
annunciatorNav.setBoolValue(0);
annunciatorRol.setBoolValue(0);
annunciatorRev.setBoolValue(0);
annunciatorApr.setBoolValue(0);
annunciatorGs.setBoolValue(0);
aprArmFromRol();
}
@ -806,10 +859,11 @@ var aprArmFromHdg = func
##
lockAprHold.setBoolValue(1);
var deviation = getprop(headingNeedleDeflection);
var deviationValid = getprop(navHeadingValid);
##
# If the deflection is more than 3 degrees wait 5 seconds and check again.
##
if (abs(deviation) > 3.0)
if (!deviationValid or abs(deviation) > 3.0)
{
#print("deviation");
settimer(aprArmFromHdg, 5);
@ -862,10 +916,11 @@ var aprArmFromRol = func
lockRollAxis.setBoolValue(1);
settingTargetTurnRate.setDoubleValue(0.0);
var deviation = getprop(headingNeedleDeflection);
var deviationValid = getprop(navHeadingValid);
##
# If the deflection is more than 3 degrees wait 5 seconds and check again.
##
if (abs(deviation) > 3.0)
if (!deviationValid or abs(deviation) > 3.0)
{
#print("deviation");
settimer(aprArmFromRol, 5);
@ -911,10 +966,11 @@ var gsArm = func {
annunciatorGsArm.setBoolValue(1);
var deviation = getprop(gsNeedleDeflection);
var deviationValid = getprop(navGSValid);
##
# If the deflection is more than 50% (manual says '2 to 3 dots')
##
if (abs(deviation) > 0.5)
if (!deviationValid or abs(deviation) > 0.5)
{
#print("deviation");
settimer(gsArm, 5);
@ -947,10 +1003,16 @@ var revButton = func {
# Disable button if too little power
if (getprop(power) < minVoltageLimit) { return; }
if (lockPitchArm.getValue() == pitchArmModes["GS"]) {
lockPitchArm.setIntValue(pitchArmModes["OFF"]);
}
##
# If we are in HDG mode we switch to the 45 degree intercept angle REV mode
# If we are in HDG (or radial) mode we switch to the 45 degree intercept angle REV mode
##
if (lockRollMode.getValue() == rollModes["HDG"])
if (lockRollMode.getValue() == rollModes["HDG"]
or lockRollMode.getValue() == rollModes["NAV"]
or lockRollMode.getValue() == rollModes["APR"])
{
hdgFlasher.blink(8, 1).switch(0).switch(1);
@ -962,7 +1024,15 @@ var revButton = func {
lockRollAxis.setBoolValue(1);
lockRollArm.setIntValue(rollArmModes["REV"]);
annunciatorNavArm.setBoolValue(0);
annunciatorAprArm.setBoolValue(0);
annunciatorRevArm.setBoolValue(1);
annunciatorGsArm.setBoolValue(0);
annunciatorNav.setBoolValue(0);
annunciatorRol.setBoolValue(0);
annunciatorRev.setBoolValue(0);
annunciatorApr.setBoolValue(0);
annunciatorGs.setBoolValue(0);
revArmFromHdg();
}
@ -978,7 +1048,15 @@ var revButton = func {
lockRollAxis.setBoolValue(1);
lockRollArm.setIntValue(rollArmModes["REV"]);
annunciatorNavArm.setBoolValue(0);
annunciatorAprArm.setBoolValue(0);
annunciatorRevArm.setBoolValue(1);
annunciatorGsArm.setBoolValue(0);
annunciatorNav.setBoolValue(0);
annunciatorRol.setBoolValue(0);
annunciatorRev.setBoolValue(0);
annunciatorApr.setBoolValue(0);
annunciatorGs.setBoolValue(0);
revArmFromRol();
}
@ -1012,10 +1090,11 @@ var revArmFromHdg = func
##
lockRevHold.setBoolValue(1);
var deviation = getprop(headingNeedleDeflection);
var deviationValid = getprop(navHeadingValid);
##
# If the deflection is more than 3 degrees wait 5 seconds and check again.
##
if (abs(deviation) > 3.0)
if (!deviationValid or abs(deviation) > 3.0)
{
#print("deviation");
settimer(revArmFromHdg, 5);
@ -1078,10 +1157,11 @@ var revArmFromRol = func
lockRollAxis.setBoolValue(1);
settingTargetTurnRate.setDoubleValue(0.0);
var deviation = getprop(headingNeedleDeflection);
var deviationValid = getprop(navHeadingValid);
##
# If the deflection is more than 3 degrees wait 5 seconds and check again.
##
if (abs(deviation) > 3.0)
if (!deviationValid or abs(deviation) > 3.0)
{
#print("deviation");
settimer(revArmFromRol, 5);
@ -1257,6 +1337,12 @@ var armButton = func {
# Disable button if too little power
if (getprop(power) < minVoltageLimit) { return; }
# Do nothing if the AP is not turned on
if (lockPitchMode.getValue() == pitchModes["OFF"]) {
lockPitchMode.setIntValue(pitchArmModes["OFF"]);
return;
}
var pitchArm = lockPitchArm.getValue();
if (pitchArm == pitchArmModes["OFF"])

View file

@ -19,33 +19,23 @@
var nasal_dir = getprop("/sim/fg-root") ~ "/Aircraft/Instruments-3d/FG1000/Nasal/";
io.load_nasal(nasal_dir ~ 'Interfaces/PropertyPublisher.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/PropertyUpdater.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/NavDataInterface.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/GenericEISPublisher.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/GenericNavComPublisher.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/GenericNavComUpdater.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/GenericFMSPublisher.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/GenericFMSUpdater.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/GenericADCPublisher.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/GenericFuelInterface.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/GenericFuelPublisher.nas', "fg1000");
io.load_nasal(nasal_dir ~ 'Interfaces/GFC700Interface.nas', "fg1000");
var GenericInterfaceController = {
_instance : nil,
INTERFACE_LIST : [
"NavDataInterface",
"GenericEISPublisher",
"GenericNavComPublisher",
"GenericNavComUpdater",
"GenericFMSPublisher",
"GenericFMSUpdater",
"GenericADCPublisher",
"GenericFuelInterface",
"GenericFuelPublisher",
"GFC700Publisher",
"GFC700Interface",
{ id:"NavDataInterface", path: nasal_dir ~ 'Interfaces/NavDataInterface.nas' },
{ id:"GenericEISPublisher", path: nasal_dir ~ 'Interfaces/GenericEISPublisher.nas' },
{ id:"GenericNavComPublisher", path: nasal_dir ~ 'Interfaces/GenericNavComPublisher.nas' },
{ id:"GenericNavComUpdater", path: nasal_dir ~ 'Interfaces/GenericNavComUpdater.nas' },
{ id:"GenericFMSPublisher", path: nasal_dir ~ 'Interfaces/GenericFMSPublisher.nas' },
{ id:"GenericFMSUpdater", path: nasal_dir ~ 'Interfaces/GenericFMSUpdater.nas' },
{ id:"GenericADCPublisher", path: nasal_dir ~ 'Interfaces/GenericADCPublisher.nas' },
{ id:"GenericFuelInterface", path: nasal_dir ~ 'Interfaces/GenericFuelInterface.nas' },
{ id:"GenericFuelPublisher", path: nasal_dir ~ 'Interfaces/GenericFuelPublisher.nas' },
{ id:"GFC700Interface", path: nasal_dir ~ 'Interfaces/GFC700Interface.nas' },
{ id:"GFC700Publisher", path: nasal_dir ~ 'Interfaces/GFC700Publisher.nas' }
],
# Factory method
@ -69,18 +59,15 @@ var GenericInterfaceController = {
start : func() {
if (me.running) return;
# Reload the interfaces afresh to make development easier. In normal
# usage this interface will only be started once anyway.
foreach (var interface; GenericInterfaceController.INTERFACE_LIST) {
io.load_nasal(nasal_dir ~ 'Interfaces/' ~ interface ~ '.nas', "fg1000");
var code = sprintf("me.%sInstance = fg1000.%s.new();", interface, interface);
io.load_nasal(interface.path, "fg1000");
var code = sprintf("me.%sInstance = fg1000.%s.new();", interface.id, interface.id);
var instantiate = compile(code);
instantiate();
}
foreach (var interface; GenericInterfaceController.INTERFACE_LIST) {
io.load_nasal(nasal_dir ~ 'Interfaces/' ~ interface ~ '.nas', "fg1000");
var code = 'me.' ~ interface ~ 'Instance.start();';
var code = 'me.' ~ interface.id ~ 'Instance.start();';
var start_interface = compile(code);
start_interface();
}
@ -92,11 +79,13 @@ var GenericInterfaceController = {
if (me.running == 0) return;
foreach (var interface; GenericInterfaceController.INTERFACE_LIST) {
io.load_nasal(nasal_dir ~ 'Interfaces/' ~ interface ~ '.nas', "fg1000");
var code = 'me.' ~ interface ~ 'Instance.stop();';
io.load_nasal(interface.path, "fg1000");
var code = 'me.' ~ interface.id ~ 'Instance.stop();';
var stop_interface = compile(code);
stop_interface();
}
me.running = 0;
},
restart : func() {

View file

@ -152,7 +152,6 @@ var MFDDisplay =
# Display the Surround, EIS and NavMap and the appropriate top level on startup.
obj.Surround.setVisible(1);
obj.EIS.setVisible(1);
obj.EIS.ondisplay();
obj._MFDDevice.selectPage(obj.NavigationMap);
return obj;

Binary file not shown.

After

(image error) Size: 856 B

File diff suppressed because it is too large Load diff

Binary file not shown.

After

(image error) Size: 648 B

View file

@ -0,0 +1,37 @@
<?xml version="1.0"?>
<PropertyList>
<path>wool-thread.ac</path>
<animation>
<type>noshadow</type>
<object-name>wool-thread</object-name>
<object-name>adhesive</object-name>
</animation>
<params>
<use-prop type="string">instrumentation/yawstring</use-prop>
</params>
<animation>
<type>texrotate</type>
<object-name>wool-thread</object-name>
<property alias="../../params/use-prop"/>
<factor>1</factor>
<center>
<x>0.5</x>
<y>0.5</y>
<z>0.5</z>
</center>
<axis>
<x>0</x>
<y>0</y>
<z>1</z>
</axis>
</animation>
</PropertyList>

View file

@ -58,6 +58,7 @@
<marker-beacon>
<name>marker-beacon</name>
<number>0</number>
<blink-mode>standard</blink-mode>
</marker-beacon>
<heading-indicator-fg>

View file

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<params>
<power-source>/controls/lighting/nav-light</power-source>
<name>UfoLight</name>
<r>0.5</r>
<g>0.5</g>
<b>0.5</b>
<x-m/>
<y-m/>
<z-m/>
<heading-deg/>
</params>
<!-- search lights -->
<animation>
<type>select</type>
<object-name alias="/params/name"/>
<condition>
<property alias="/params/power-source"/>
</condition>
</animation>
<light>
<name alias="/params/name"/>
<type>point</type>
<position>
<x alias="/params/x-m"/>
<y alias="/params/y-m"/>
<z alias="/params/z-m"/>
</position>
<ambient>
<r alias="/params/r"/>
<g alias="/params/g"/>
<b alias="/params/b"/>
<a>1.0</a>
</ambient>
<diffuse>
<r>1.0</r>
<g>0.9</g>
<b>0.7</b>
<a>1.0</a>
</diffuse>
<specular>
<r>0.99</r>
<g>0.9</g>
<b>0.7</b>
<a>1.0</a>
</specular>
<debug-color>
<r>0.5</r>
<g>0.5</g>
<b>0</b>
<a>1.0</a>
</debug-color>
<attenuation>
<c>1.0</c>
<l>0.35</l>
<q>0.44</q>
</attenuation>
<range-m>13</range-m>
</light>
</PropertyList>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<params>
<power-source>/controls/lighting/taxi-light</power-source>
<name>UfoLight</name>
<r>0.5</r>
<g>0.5</g>
<b>0.5</b>
<x-m/>
<y-m/>
<z-m/>
<heading-deg/>
</params>
<!-- search lights -->
<animation>
<type>select</type>
<object-name alias="/params/name"/>
<condition>
<property alias="/params/power-source"/>
</condition>
</animation>
<light>
<name alias="/params/name"/>
<type>spot</type>
<position>
<x alias="/params/x-m"/>
<y alias="/params/y-m"/>
<z alias="/params/z-m"/>
</position>
<direction>
<pitch-deg>62.1</pitch-deg>
<roll-deg>0</roll-deg>
<heading-deg alias="/params/heading-deg"/>
</direction>
<ambient>
<r alias="/params/r"/>
<g alias="/params/g"/>
<b alias="/params/b"/>
<a>1.0</a>
</ambient>
<diffuse>
<r>1.0</r>
<g>0.9</g>
<b>0.7</b>
<a>1.0</a>
</diffuse>
<specular>
<r>0.99</r>
<g>0.9</g>
<b>0.7</b>
<a>1.0</a>
</specular>
<debug-color>
<r>0.5</r>
<g>0</g>
<b>1</b>
<a>1.0</a>
</debug-color>
<attenuation>
<c>1.0</c>
<l>0.09</l>
<q>0.0032</q>
</attenuation>
<spot-exponent>1</spot-exponent>
<spot-cutoff>20.5</spot-cutoff>
<range-m>50</range-m>
</light>
</PropertyList>

View file

@ -58,5 +58,114 @@
<z>1</z>
</axis>
</animation>
<model>
<name>Port nav</name>
<path>ufo-pointlight.xml</path>
<overlay>
<params>
<name>Ufo port nav light</name>
<power-source>/controls/lighting/nav-lights</power-source>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<heading-deg>0</heading-deg>
<r>0.95</r>
<g>0.5</g>
<b>0.5</b>
<a>1.0</a>
</params>
</overlay>
<offsets>
<x-m>0.0</x-m>
<y-m>-3.3</y-m>
<z-m>-0.45</z-m>
</offsets>
</model>
<model>
<name>Starboard nav</name>
<path>ufo-pointlight.xml</path>
<overlay>
<params>
<name>Ufo starboard nav light</name>
<power-source>/controls/lighting/nav-lights</power-source>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<r>0.5</r>
<g>0.95</g>
<b>0.5</b>
<a>1.0</a>
<heading-deg>0</heading-deg>
</params>
</overlay>
<offsets>
<x-m>0</x-m>
<y-m>3.3</y-m>
<z-m>-0.45</z-m>
</offsets>
</model>
<model>
<name>Port light</name>
<path>ufo-spotlight.xml</path>
<overlay>
<params>
<name>Ufo port light</name>
<power-source>/controls/lighting/landing-lights</power-source>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<heading-deg>22</heading-deg>
<r>0.95</r>
<g>0.5</g>
<b>0.5</b>
<a>1.0</a>
</params>
</overlay>
<offsets>
<x-m>-0.50</x-m>
<y-m>-2.5</y-m>
<z-m>-0.45</z-m>
</offsets>
</model>
<model>
<name>Starboard light</name>
<path>ufo-spotlight.xml</path>
<overlay>
<params>
<name>Ufo starboard light</name>
<power-source>/controls/lighting/landing-lights</power-source>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<r>0.5</r>
<g>0.95</g>
<b>0.5</b>
<a>1.0</a>
<heading-deg>-22</heading-deg>
</params>
</overlay>
<offsets>
<x-m>-0.50</x-m>
<y-m>2.5</y-m>
<z-m>-0.45</z-m>
</offsets>
</model>
<model>
<name>Nose light</name>
<path>ufo-spotlight.xml</path>
<overlay>
<params>
<name>Ufo nose light</name>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<heading-deg>0</heading-deg>
</params>
</overlay>
<offsets>
<x-m>-2.8</x-m>
<y-m>0</y-m>
<z-m>-0.45</z-m>
</offsets>
</model>
</PropertyList>

View file

@ -249,7 +249,13 @@
<line>makes slider effects coarser/finer.</line>
</help>
</sim>
<controls>
<lighting>
<landing-lights>0</landing-lights>
<taxi-light>0</taxi-light>
<nav-lights>0</nav-lights>
</lighting>
</controls>
<input>
<keyboard>
<key n="8">

View file

@ -12,7 +12,7 @@ controls.gearDown = func(x) gear_key_down = x != 0;
# maximum speed -----------------------------------------------------------------------------------
var maxspeed = props.globals.getNode("engines/engine/speed-max-mps");
var speed = [10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000];
var speed = [10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 500000, 1000000];
var current = 7;
@ -26,6 +26,9 @@ controls.flapsDown = func(x) {
var s = speed[current];
maxspeed.setDoubleValue(s);
if (s >= 1000)
gui.popupTip("Max. Speed " ~ s/1000.0 ~ " km/s");
else
gui.popupTip("Max. Speed " ~ s ~ " m/s");
}

View file

@ -16,7 +16,7 @@
<type>2d</type>
<width><property>/sim/rendering/shadows/sun-atlas-size</property></width>
<height><property>/sim/rendering/shadows/sun-atlas-size</property></height>
<format>depth24</format>
<format>depth16</format>
<wrap-s>clamp-to-border</wrap-s>
<wrap-t>clamp-to-border</wrap-t>
<wrap-r>clamp-to-border</wrap-r>
@ -43,7 +43,7 @@
<pass n="1" include="csm-pass.xml">
<name>csm1</name>
<near-m>3.0</near-m>
<far-m>50.0</far-m>
<far-m>70.0</far-m>
<viewport>
<x>0.5</x>
<y>0.0</y>
@ -53,8 +53,8 @@
</pass>
<pass n="2" include="csm-pass.xml">
<name>csm2</name>
<near-m>50.0</near-m>
<far-m>150.0</far-m>
<near-m>70.0</near-m>
<far-m>300.0</far-m>
<viewport>
<x>0.0</x>
<y>0.5</y>
@ -64,8 +64,8 @@
</pass>
<pass n="3" include="csm-pass.xml">
<name>csm3</name>
<near-m>150.0</near-m>
<far-m>1500.0</far-m>
<near-m>300.0</near-m>
<far-m>1000.0</far-m>
<viewport>
<x>0.5</x>
<y>0.5</y>

View file

@ -6,6 +6,11 @@
<use-shadow-pass>csm1</use-shadow-pass>
<use-shadow-pass>csm2</use-shadow-pass>
<use-shadow-pass>csm3</use-shadow-pass>
<clustered-shading>
<tile-size>128</tile-size>
<depth-slices>1</depth-slices>
<num-threads>1</num-threads>
</clustered-shading>
<binding>
<buffer>sun-shadowmap-atlas</buffer>
<unit>10</unit>

View file

@ -388,36 +388,21 @@ There are a large number of techniques used by the models, with complex
inheritance. Here is a handy list of the techniques, what they are for, and
where the base technique is defined
Non-Compositor
Model
# Where Defined Summary
4 model-combined.xml ALS, quality>0, model>0
5 model-defaults.xml Base ALS
7 model-combined-deferred.xml Rembrandt, model>0
9 model-combined.xml quality>0, model>0
10 model-defaults.xml Base Rembrandt
11 model-defaults.xml Generic shaders, quality>0
13 model-defaults.xml Fallback - no predicate
5 model-default.xml ALS, basic
7 model-combined.xml quality>0, model>0
11 model-default.xml generic>0, quality>0
13 model-default.xml Fallback - no predicate
Compositor
# Where Defined Summary
4 model-combined.xml quality>0, model>0
7 model-combined.xml ALS, quality>0, model>0
8 model-default.xml generic>0, quality>0
9 model-default.xml Fallback - no predicate
19 model-default.xml ALS, basic
Scenery Hierarchy
-----------------
Compositor
Scenery
# Where defined Summary
8 terrain-default.xml quality>0, generic>0
9 terrain-default.xml Fallback - no predicate
17 terrain-default.xml ALS, landmass=6, transition=6
18 terrain-default.xml ALS, landmass>3, transition>2
19 terrain-default.xml ALS, basic
3 terrain-default.xml ALS, landmass=6, transition=6
4 terrain-default.xml ALS, landmass>3, transition>2
5 terrain-default.xml ALS, basic
11 terrain-default.xml Photoscenery, quality>0, generic>0
12 terrain-default.xml Fallback - no predicate

View file

@ -252,6 +252,7 @@
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>grain_strength</name>

View file

@ -147,6 +147,7 @@
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>orthophotoTexCoord</name>
<index>14</index>

View file

@ -81,6 +81,7 @@
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>visibility</name>

View file

@ -97,6 +97,7 @@
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>intrinsic_wetness</name>

View file

@ -93,6 +93,7 @@
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
<fragment-shader n="1">Shaders/crop.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>NoiseTex</name>

View file

@ -148,6 +148,7 @@
<fragment-shader n="4">Shaders/secondary_lights.frag</fragment-shader>
<fragment-shader n="5">Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader n="6">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="7">Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>visibility</name>

View file

@ -151,6 +151,7 @@
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>colorMode</name>
@ -433,6 +434,7 @@
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
<fragment-shader n="1">Shaders/default.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
</program>
<!--<uniform>
<name>texture</name>

View file

@ -166,6 +166,7 @@
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
<fragment-shader n="1">Shaders/forest.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>tangent</name>
<index>6</index>

View file

@ -162,6 +162,7 @@
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
<fragment-shader n="1">Shaders/forest.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>tangent</name>
<index>6</index>

View file

@ -140,6 +140,7 @@
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>orthophotoTexCoord</name>
<index>14</index>

View file

@ -162,6 +162,7 @@
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
<fragment-shader n="1">Shaders/forest.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>tangent</name>
<index>6</index>

View file

@ -88,8 +88,16 @@
</environment>
</texture-unit>
<polygon-offset>
<factor>-0.5</factor>
<units>-2.0</units>
<factor>-2.0</factor>
<units>-5.0</units>
</polygon-offset>
</pass>
</technique>
<technique n="5">
<pass n="0">
<polygon-offset>
<factor>-2.0</factor>
<units>-5.0</units>
</polygon-offset>
</pass>
</technique>

View file

@ -450,6 +450,7 @@ please see Docs/README.model-combined.eff for documentation
<fragment-shader n="4">Shaders/noise.frag</fragment-shader>
<fragment-shader n="5">Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader n="6">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="7">Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
@ -1519,6 +1520,7 @@ please see Docs/README.model-combined.eff for documentation
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
<fragment-shader n="1">Shaders/ubershader.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
@ -2114,6 +2116,7 @@ please see Docs/README.model-combined.eff for documentation
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
<fragment-shader n="1">Shaders/ubershader.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>

View file

@ -137,6 +137,7 @@
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>visibility</name>
@ -488,6 +489,7 @@
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader> <!--fog include-->
<fragment-shader n="1">Shaders/default.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
</program>
<!-- BEGIN fog include -->
<uniform>

View file

@ -109,6 +109,7 @@
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>visibility</name>

View file

@ -148,6 +148,7 @@
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>visibility</name>
@ -565,6 +566,7 @@
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>visibility</name>

View file

@ -457,6 +457,7 @@
<fragment-shader n="5">Shaders/noise.frag</fragment-shader>
<fragment-shader n="6">Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader n="7">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="8">Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
@ -1550,6 +1551,7 @@
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
<fragment-shader n="1">Shaders/ubershader.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>

View file

@ -315,6 +315,7 @@
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>tangent</name>
<index>6</index>

View file

@ -97,6 +97,7 @@
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>intrinsic_wetness</name>

View file

@ -213,6 +213,7 @@
<fragment-shader n="5">Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader n="6">Shaders/lightspot-ALS.frag</fragment-shader>
<fragment-shader n="7">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="8">Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>
<name>visibility</name>
@ -1046,6 +1047,7 @@
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
<fragment-shader n="1">Shaders/runway.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>tangent</name>
<index>6</index>

View file

@ -330,6 +330,7 @@
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>orthophotoTexCoord</name>
<index>14</index>
@ -982,6 +983,7 @@
<fragment-shader>Shaders/hazes.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>orthophotoTexCoord</name>
<index>14</index>
@ -1300,6 +1302,7 @@
<fragment-shader>Shaders/noise.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>orthophotoTexCoord</name>
<index>14</index>
@ -1561,6 +1564,7 @@
<fragment-shader>Shaders/default.frag</fragment-shader>
<fragment-shader>Shaders/include_fog.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>orthophotoTexCoord</name>
<index>14</index>

View file

@ -160,6 +160,7 @@
<fragment-shader>Shaders/secondary_lights.frag</fragment-shader>
<fragment-shader>Shaders/filters-ALS.frag</fragment-shader>
<fragment-shader>Shaders/shadows-include.frag</fragment-shader>
<fragment-shader>Shaders/clustered-include.frag</fragment-shader>
<attribute>
<name>orthophotoTexCoord</name>
<index>14</index>

View file

@ -251,6 +251,7 @@ parameters :
<fragment-shader n="0">Shaders/include_fog.frag</fragment-shader>
<fragment-shader n="1">Shaders/transition.frag</fragment-shader>
<fragment-shader n="2">Shaders/shadows-include.frag</fragment-shader>
<fragment-shader n="3">Shaders/clustered-include.frag</fragment-shader>
</program>
<uniform>

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more