Compare commits

18 Commits

Author SHA1 Message Date
J Maverick 16
8b047f4fcb Damage code update 2022-12-07 23:22:16 +01:00
Sky4Viper
a522abc104 New HUD (#1)
* Update HUD.xml

* Update MQ-9-JSBSim-set.xml

* Update MQ-9-JSBSim2-set.xml

* Update Impact.xml

corrected error in explosion path

* Update HUD.xml

Reworked HUD trying to somewhat mimic this image http://2.bp.blogspot.com/--auaTG9wXRY/Vklk-o0yp-I/AAAAAAAAAEM/i2160fejHHc/s1600/HUD.JPG

* Update MQ-9-JSBSim-set.xml

Added control keys to toggle IR, Laser, Lights
Ctrl-O
Ctrl-L
Shift-L
2021-02-22 20:16:32 +01:00
J Maverick 16
d07fe92385 Initial Emesary convertion (incomplete) 2021-01-07 20:47:10 +01:00
J Maverick 16
75d3676be1 Latest damage 2020-03-23 20:28:57 +01:00
J Maverick 16
e7d13b67c3 Mini version 2019-12-19 14:02:51 +01:00
J Maverick 16
cfe84c34c6 Increased MP range 2019-07-01 19:02:39 +02:00
J Maverick 16
0888bb7cb4 Stores: Update GBUs; other fixes 2019-06-27 22:44:16 +02:00
J Maverick 16
61e59ab6ab Updated to latest damage code 2019-03-15 23:37:32 +01:00
J Maverick 16
fd6acd3131 Brimsotne model from FGUK 2018-05-06 16:28:28 +02:00
J Maverick 16
f95eeb9e7d Update damage.nas 2018-05-04 16:22:36 +02:00
JMaverick16
dd592d26c4 New livs by N-SCOT, updated damage 2017-04-25 11:17:58 +02:00
Meir Michanie
3e19ea712b Now bearing and distance get updates every 0.1 sec. 2016-07-08 19:36:36 +03:00
Meir Michanie
4d0f080c22 Minor changes to hud. 2016-07-08 19:07:54 +03:00
Meir Michanie
122079d0d3 Add Tracking Nas code to second model. 2016-07-08 18:49:50 +03:00
Meir Michanie
544d39ae6c Merge pull request #5 from meirm/hud_dev
Added Nas function that calculates distance and bearing to target.
2016-07-08 18:14:54 +03:00
Meir Michanie
092e8471d7 Merge pull request #4 from meirm/hud_dev
Now TGT data on HUD comes from geo.nas, it will print the data from l…
2016-07-08 16:03:30 +03:00
Meir Michanie
56e39e98a1 Merge pull request #3 from meirm/hud_dev
Hud dev
2016-07-08 15:10:35 +03:00
Meir Michanie
63908624b8 Merge pull request #2 from meirm/hud_dev
Hud dev
2016-07-07 23:33:16 +03:00
71 changed files with 179955 additions and 3571 deletions

1852
HUD.xml

File diff suppressed because it is too large Load Diff

View File

@@ -4,15 +4,15 @@
<sim>
<description>General Atomics MQ-9 Reaper bombable</description>
<description>General Atomics MQ-9 Reaper (bombable)</description>
<aircraft-version>1.2</aircraft-version>
<author>Petar Jedvaj</author>
<author>Petar Jedvaj, J Maverick 16</author>
<status>Alpha</status>
<rating>
<FDM type="int">1</FDM>
<systems type="int">1</systems>
<cockpit type="int">1</cockpit>
<model type="int">1</model>
<model type="int">2</model>
</rating>
<flight-model>jsb</flight-model>
<aero>MQ-9-JSBSim</aero>
@@ -20,6 +20,8 @@
<startup>
<splash-texture>Aircraft/MQ-9/Splash.png</splash-texture>
</startup>
<minimum-fg-version>2018.2</minimum-fg-version>
<model>
<path>Aircraft/MQ-9/Models/MQ-9.xml</path>
@@ -89,6 +91,15 @@
<blue type="float">0.22</blue>
</color>
<color n="1">
<alpha type="float">0.85</alpha>
<antialiased type="bool">true</antialiased>
<brightness type="float">0.85</brightness>
<transparent type="bool">true</transparent>
<red type="float">1.0</red>
<green type="float">1.0</green>
<blue type="float">1.0</blue>
</color>
<color n="2">
<alpha type="float">0.85</alpha>
<antialiased type="bool">true</antialiased>
<brightness type="float">0.85</brightness>
@@ -111,7 +122,7 @@
<from-model type="bool">true</from-model>
<from-model-idx type="int">0</from-model-idx>
<ground-level-nearplane-m type="double">0.01f</ground-level-nearplane-m>
<pitch-offset-deg>-28</pitch-offset-deg>
<pitch-offset-deg>-5</pitch-offset-deg>
<x-offset-m archive="y"> 0.0000 </x-offset-m>
<y-offset-m archive="y"> -0.2792 </y-offset-m>
<z-offset-m archive="y"> -4.3564 </z-offset-m>
@@ -190,6 +201,21 @@
<name>d</name>
<desc>Deselect all stations</desc>
</key>
<key>
<name>Ctrl-O</name>
<desc>Toggle IR ON/OFF</desc>
</key>
<key>
<name>Ctrl-L</name>
<desc>Toggle Laser ON/OFF</desc>
</key>
<key>
<name>Shift-L</name>
<desc>Toggle All Lights ON/OFF</desc>
</key>
<key>
<name>f</name>
@@ -205,6 +231,14 @@
</help>
</sim>
<!-- MP Damage -->
<payload>
<armament>
<msg type="bool">true</msg>
</armament>
</payload>
<!-- Armament -->
@@ -244,9 +278,9 @@
<name>1</name>
<desc>Station 1</desc>
<binding>
<command>property-assign</command>
<command>property-toggle</command>
<property>fdm/jsbsim/systems/armament/station1/selected</property>
<value>1</value>
<!-- <value>1</value> -->
</binding>
</key>
@@ -254,9 +288,9 @@
<name>2</name>
<desc>Station 2</desc>
<binding>
<command>property-assign</command>
<command>property-toggle</command>
<property>fdm/jsbsim/systems/armament/station2/selected</property>
<value>1</value>
<!-- <value>1</value> -->
</binding>
</key>
@@ -264,9 +298,9 @@
<name>3</name>
<desc>Station 3</desc>
<binding>
<command>property-assign</command>
<command>property-toggle</command>
<property>fdm/jsbsim/systems/armament/station3/selected</property>
<value>1</value>
<!-- <value>1</value> -->
</binding>
</key>
@@ -274,9 +308,9 @@
<name>4</name>
<desc>Station 4</desc>
<binding>
<command>property-assign</command>
<command>property-toggle</command>
<property>fdm/jsbsim/systems/armament/station4/selected</property>
<value>1</value>
<!-- <value>1</value> -->
</binding>
</key>
@@ -284,9 +318,9 @@
<name>5</name>
<desc>Station 5</desc>
<binding>
<command>property-assign</command>
<command>property-toggle</command>
<property>fdm/jsbsim/systems/armament/station5/selected</property>
<value>1</value>
<!-- <value>1</value> -->
</binding>
</key>
@@ -294,9 +328,9 @@
<name>6</name>
<desc>Station 6</desc>
<binding>
<command>property-assign</command>
<command>property-toggle</command>
<property>fdm/jsbsim/systems/armament/station6/selected</property>
<value>1</value>
<!-- <value>1</value> -->
</binding>
</key>
@@ -337,12 +371,68 @@
</mod-up>
</key>
<!-- <key n="23">
<name>Ctrl-w</name>
<desc>MasterArm</desc>
<binding>
<command>property-toggle</command>
<property>/controls/armament/masterarm</property>
</binding>
</key> -->
<key n="12">
<name>Ctrl-L</name>
<desc>LaserArm</desc>
<binding>
<command>property-toggle</command>
<property>/controls/armament/laserarm</property>
</binding>
</key>
<key n="15">
<name>Ctrl-O</name>
<desc>Toggle IR</desc>
<binding>
<command>property-toggle</command>
<property>/sim/rendering/als-filters/use-filtering</property>
</binding>
<binding>
<command>property-toggle</command>
<property>/sim/rendering/als-filters/use-IR-vision</property>
</binding>
<binding>
<command>property-toggle</command>
<property>/sim/hud/current-color</property>
</binding>
</key>
<key n="76">
<name>Shift-L</name>
<desc>LightsToggle</desc>
<binding>
<command>property-toggle</command>
<property>/controls/lighting/nav-lights-switch</property>
</binding>
<binding>
<command>property-toggle</command>
<property>/controls/lighting/beacon-switch</property>
</binding>
<binding>
<command>property-toggle</command>
<property>/controls/lighting/strobe-switch</property>
</binding>
</key>
</keyboard>
</input>
<!-- Engine -->
<controls>
<armament>
<masterarm type="bool">false</masterarm>
<laserarm type="bool">false</laserarm>
</armament>
<engines>
<run1 type="bool">true</run1>
<start1 type="bool">false</start1>
@@ -494,3 +584,4 @@
</nasal>
</PropertyList>

View File

@@ -20,6 +20,16 @@
<startup>
<splash-texture>Aircraft/MQ-9/Splash2.png</splash-texture>
</startup>
<previews>
<preview>
<type>exterior</type>
<splash type="bool">true</splash>
<path>Aircraft/MQ-9/Preview1.png</path>
</preview>
</previews>
<minimum-fg-version>2018.2</minimum-fg-version>
<model>
<path>Aircraft/MQ-9/Models/MQ-9-2.xml</path>
@@ -84,6 +94,15 @@
<blue type="float">0.22</blue>
</color>
<color n="1">
<alpha type="float">0.85</alpha>
<antialiased type="bool">true</antialiased>
<brightness type="float">0.85</brightness>
<transparent type="bool">true</transparent>
<red type="float">1.0</red>
<green type="float">1.0</green>
<blue type="float">1.0</blue>
</color>
<color n="2">
<alpha type="float">0.85</alpha>
<antialiased type="bool">true</antialiased>
<brightness type="float">0.85</brightness>
@@ -106,7 +125,7 @@
<from-model type="bool">true</from-model>
<from-model-idx type="int">0</from-model-idx>
<ground-level-nearplane-m type="double">0.01f</ground-level-nearplane-m>
<pitch-offset-deg>-28</pitch-offset-deg>
<pitch-offset-deg>-5</pitch-offset-deg>
<x-offset-m archive="y"> 0.0000 </x-offset-m>
<y-offset-m archive="y"> -0.2792 </y-offset-m>
<z-offset-m archive="y"> -4.3564 </z-offset-m>
@@ -317,6 +336,11 @@
<file>Aircraft/MQ-9/Nasal/Crash.nas</file>
</Crash>
<Tracking>
<file>Aircraft/MQ-9/Nasal/Tracking.nas</file>
</Tracking>
<Turret>
<file>Aircraft/MQ-9/Nasal/Turret.nas</file>
</Turret>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 700 B

View File

@@ -0,0 +1,74 @@
<?xml version="1.0"?>
<PropertyList>
<particlesystem>
<name>bombhit-smoke</name>
<texture>smoke.png</texture>
<emissive>false</emissive>
<lighting>false</lighting>
<align>billboard</align>
<attach>world</attach>
<placer>
<type>point</type>
</placer>
<shooter>
<theta-min-deg>30</theta-min-deg>
<theta-max-deg>60</theta-max-deg>
<phi-min-deg>-180</phi-min-deg>
<phi-max-deg> 180</phi-max-deg>
<speed-mps>
<value>5</value>
<spread>5</spread>
</speed-mps>
<rotation-speed>
<x-min-deg-sec>0</x-min-deg-sec>
<y-min-deg-sec>0</y-min-deg-sec>
<z-min-deg-sec>-60</z-min-deg-sec>
<x-max-deg-sec>0</x-max-deg-sec>
<y-max-deg-sec>0</y-max-deg-sec>
<z-max-deg-sec>60</z-max-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<value>3</value>
<spread>5</spread>
</particles-per-sec>
</counter>
<particle>
<start>
<color>
<red><value>0.0</value></red>
<green><value>0.0</value></green>
<blue><value>0.0</value></blue>
<alpha><value>0.2</value></alpha>
</color>
<size>
<value>12.0</value>
</size>
</start>
<end>
<color>
<red><value>0.0</value></red>
<green><value>0.0</value></green>
<blue><value>0.0</value></blue>
<alpha><value>0.05</value></alpha>
</color>
<size>
<value>80.0</value>
</size>
</end>
<life-sec>
<value>120</value>
</life-sec>
<mass-kg>0.025</mass-kg>
<radius-m>0.40</radius-m>
</particle>
<program>
<fluid>air</fluid>
<gravity>true</gravity>
<wind>true</wind>
</program>
</particlesystem>
</PropertyList>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

View File

@@ -0,0 +1,103 @@
<?xml version="1.0"?>
<PropertyList>
<path>crater.ac</path>
<animation>
<type>scale</type>
<object-name>Sphere</object-name>
<x-offset>1.75</x-offset>
<y-offset>1.75</y-offset>
<z-offset>1.25</z-offset>
</animation>
<animation>
<object-name>Sphere</object-name>
<enable-hot type="bool">true</enable-hot>
</animation>
<particlesystem>
<name>explosion-smoke-longterm</name>
<texture>smoke.png</texture>
<emissive type="bool">false</emissive>
<lighting type="bool">false</lighting>
<attach>world</attach>
<placer>
<type>point</type>
</placer>
<shooter>
<theta-min-deg>0</theta-min-deg>
<theta-max-deg>20</theta-max-deg>
<phi-min-deg>-180</phi-min-deg>
<phi-max-deg>180</phi-max-deg>
<speed-mps>
<value>30</value>
<spread>10</spread>
</speed-mps>
<rotation-speed>
<x-min-deg-sec>0</x-min-deg-sec>
<y-min-deg-sec>0</y-min-deg-sec>
<z-min-deg-sec>0</z-min-deg-sec>
<x-max-deg-sec>0</x-max-deg-sec>
<y-max-deg-sec>0</y-max-deg-sec>
<z-max-deg-sec>5</z-max-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<value>2</value>
<spread>0</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red><value> 0.3 </value></red>
<green><value> 0.3 </value></green>
<blue><value> 0.25 </value></blue>
<alpha><value> 0.3 </value></alpha>
</color>
<size>
<value>6</value>
</size>
</start>
<end>
<color>
<red><value> 0.4 </value></red>
<green><value> 0.4 </value></green>
<blue><value> 0.4 </value></blue>
<alpha><value> 0.05 </value></alpha>
</color>
<size>
<value>12</value>
</size>
</end>
<life-sec>
<value>90</value>
</life-sec>
<mass-kg> 4.0 </mass-kg>
<radius-m> 0.4 </radius-m>
</particle>
<program>
<fluid> air </fluid>
<gravity type="bool"> true </gravity>
<wind typ="bool"> true </wind>
</program>
</particlesystem>
</PropertyList>

View File

@@ -0,0 +1,95 @@
<?xml version="1.0"?>
<PropertyList>
<path>crater.ac</path>
<animation>
<object-name>Sphere</object-name>
<enable-hot type="bool">true</enable-hot>
</animation>
<particlesystem>
<name>explosion-smoke-longterm</name>
<texture>smoke.png</texture>
<emissive type="bool">false</emissive>
<lighting type="bool">false</lighting>
<attach>world</attach>
<placer>
<type>point</type>
</placer>
<shooter>
<theta-min-deg>0</theta-min-deg>
<theta-max-deg>20</theta-max-deg>
<phi-min-deg>-180</phi-min-deg>
<phi-max-deg>180</phi-max-deg>
<speed-mps>
<value>30</value>
<spread>10</spread>
</speed-mps>
<rotation-speed>
<x-min-deg-sec>0</x-min-deg-sec>
<y-min-deg-sec>0</y-min-deg-sec>
<z-min-deg-sec>0</z-min-deg-sec>
<x-max-deg-sec>0</x-max-deg-sec>
<y-max-deg-sec>0</y-max-deg-sec>
<z-max-deg-sec>5</z-max-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<value>2</value>
<spread>0</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red><value> 0.3 </value></red>
<green><value> 0.3 </value></green>
<blue><value> 0.25 </value></blue>
<alpha><value> 0.3 </value></alpha>
</color>
<size>
<value>6</value>
</size>
</start>
<end>
<color>
<red><value> 0.4 </value></red>
<green><value> 0.4 </value></green>
<blue><value> 0.4 </value></blue>
<alpha><value> 0.05 </value></alpha>
</color>
<size>
<value>10</value>
</size>
</end>
<life-sec>
<value>50</value>
</life-sec>
<mass-kg> 5.0 </mass-kg>
<radius-m> 0.4 </radius-m>
</particle>
<program>
<fluid> air </fluid>
<gravity type="bool"> true </gravity>
<wind typ="bool"> true </wind>
</program>
</particlesystem>
</PropertyList>

View File

@@ -0,0 +1,87 @@
<PropertyList>
<path>aim-emesary.ac</path>
<particlesystem>
<name>emesary-heavy-smoke</name>
<texture>smoke.png</texture>
<emissive type="bool">false</emissive>
<lighting type="bool">false</lighting>
<attach>world</attach>
<placer>
<type>point</type>
</placer>
<shooter>
<theta-min-deg>-1.5</theta-min-deg>
<theta-max-deg>1.5</theta-max-deg>
<phi-min-deg>-1.5</phi-min-deg>
<phi-max-deg>1.5</phi-max-deg>
<speed-mps>
<value>0</value>
<spread>0</spread>
</speed-mps>
<rotation-speed>
<x-min-deg-sec>0</x-min-deg-sec>
<y-min-deg-sec>0</y-min-deg-sec>
<z-min-deg-sec>0</z-min-deg-sec>
<x-max-deg-sec>0</x-max-deg-sec>
<y-max-deg-sec>0</y-max-deg-sec>
<z-max-deg-sec>0</z-max-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<value>100</value>
<spread>0</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red><value> 0.3 </value></red>
<green><value> 0.3 </value></green>
<blue><value> 0.2 </value></blue>
<alpha><value> 0.5 </value></alpha>
</color>
<size>
<value>9</value>
</size>
</start>
<end>
<color>
<red><value> 0.2 </value></red>
<green><value> 0.2 </value></green>
<blue><value> 0.2 </value></blue>
<alpha><value> 0.1 </value></alpha>
</color>
<size>
<value>15</value>
</size>
</end>
<life-sec>
<value>50</value>
</life-sec>
<mass-kg> 0.5 </mass-kg>
<radius-m> 0.5 </radius-m>
</particle>
<program>
<fluid> air </fluid>
<gravity type="bool"> true </gravity>
<wind typ="bool"> true </wind>
</program>
</particlesystem>
</PropertyList>

View File

@@ -0,0 +1,87 @@
<PropertyList>
<path>aim-emesary.ac</path>
<particlesystem>
<name>emesary-light-smoke</name>
<texture>smoke.png</texture>
<emissive type="bool">false</emissive>
<lighting type="bool">false</lighting>
<attach>world</attach>
<placer>
<type>point</type>
</placer>
<shooter>
<theta-min-deg>-1.5</theta-min-deg>
<theta-max-deg>1.5</theta-max-deg>
<phi-min-deg>-1.5</phi-min-deg>
<phi-max-deg>1.5</phi-max-deg>
<speed-mps>
<value>0</value>
<spread>0</spread>
</speed-mps>
<rotation-speed>
<x-min-deg-sec>0</x-min-deg-sec>
<y-min-deg-sec>0</y-min-deg-sec>
<z-min-deg-sec>0</z-min-deg-sec>
<x-max-deg-sec>0</x-max-deg-sec>
<y-max-deg-sec>0</y-max-deg-sec>
<z-max-deg-sec>0</z-max-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<value>100</value>
<spread>0</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red><value> 1.0 </value></red>
<green><value> 1.0 </value></green>
<blue><value> 0.9 </value></blue>
<alpha><value> 0.5 </value></alpha>
</color>
<size>
<value>1.5</value>
</size>
</start>
<end>
<color>
<red><value> 0.9 </value></red>
<green><value> 0.9 </value></green>
<blue><value> 0.9 </value></blue>
<alpha><value> 0.1 </value></alpha>
</color>
<size>
<value>3</value>
</size>
</end>
<life-sec>
<value>50</value>
</life-sec>
<mass-kg> 0.5 </mass-kg>
<radius-m> 0.5 </radius-m>
</particle>
<program>
<fluid> air </fluid>
<gravity type="bool"> true </gravity>
<wind typ="bool"> true </wind>
</program>
</particlesystem>
</PropertyList>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<PropertyList>
<path>parachutist.ac</path>
<offsets>
<x-m> 0.5</x-m>
<y-m> 0.000</y-m>
<z-m> 1.50</z-m>
</offsets>
</PropertyList>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -0,0 +1,144 @@
<?xml version="1.0"?>
<PropertyList>
<path>Models/Effects/procedural_light.ac</path>
<animation>
<type>scale</type>
<object-name>procedural_light</object-name>
<x-offset>1000</x-offset>
<y-offset>1000</y-offset>
<z-offset>1000</z-offset>
</animation>
<effect>
<inherits-from>Effects/procedural-light</inherits-from>
<object-name>procedural_light</object-name>
<parameters>
<light_color_base_r type="float">0.84</light_color_base_r>
<light_color_base_g type="float">0.55</light_color_base_g>
<light_color_base_b type="float">0.42</light_color_base_b>
<light_color_center_r type="float">1.0</light_color_center_r>
<light_color_center_g type="float">0.9</light_color_center_g>
<light_color_center_b type="float">0.7</light_color_center_b>
<intensity_scale type="float">1.0</intensity_scale>
<is_directional type="bool">false</is_directional>
<is_strobe type="bool">false</is_strobe>
<outer_gain type="float">1</outer_gain>
</parameters>
</effect>
<animation>
<type>dist-scale</type>
<object-name>procedural_light</object-name>
<interpolation>
<entry><ind>0</ind> <dep>0.0075</dep></entry>
<entry><ind>3750</ind> <dep>0.750</dep></entry>
<entry><ind>10000</ind><dep>1.000</dep></entry>
</interpolation>
</animation>
<particlesystem>
<name>flare-smoke</name>
<texture>smoke.png</texture>
<emissive>false</emissive>
<lighting>false</lighting>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<pitch-deg>90</pitch-deg>
<roll-deg>90</roll-deg>
</offsets>
<attach>world</attach>
<placer>
<type>point</type>
</placer>
<shooter>
<theta-min-deg>-5</theta-min-deg>
<theta-max-deg>5</theta-max-deg>
<phi-min-deg>-5</phi-min-deg>
<phi-max-deg>5</phi-max-deg>
<speed-mps>
<value>0</value>
<spread>2</spread>
</speed-mps>
<rotation-speed>
<x-min-deg-sec>10</x-min-deg-sec>
<y-min-deg-sec>10</y-min-deg-sec>
<z-min-deg-sec>10</z-min-deg-sec>
<x-max-deg-sec>40</x-max-deg-sec>
<y-max-deg-sec>40</y-max-deg-sec>
<z-max-deg-sec>40</z-max-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<value>25</value>
<spread>5</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red>
<expression><product><value>0.9</value><property>/rendering/scene/diffuse/red</property></product></expression>
</red>
<green>
<expression><product><value>0.9</value><property>/rendering/scene/diffuse/red</property></product></expression>
</green>
<blue>
<expression><product><value>0.9</value><property>/rendering/scene/diffuse/red</property></product></expression>
</blue>
<alpha>
<value>1</value>
</alpha>
</color>
<size>
<value>0.6</value>
</size>
</start>
<end>
<color>
<red>
<expression><product><value>0.9</value><property>/rendering/scene/diffuse/red</property></product></expression>
</red>
<green>
<expression><product><value>0.9</value><property>/rendering/scene/diffuse/red</property></product></expression>
</green>
<blue>
<expression><product><value>0.9</value><property>/rendering/scene/diffuse/red</property></product></expression>
</blue>
<alpha>
<value>0.05</value>
</alpha>
</color>
<size>
<value>6.0</value>
</size>
</end>
<life-sec>
<value>2.75</value>
</life-sec>
<mass-kg>0.00001</mass-kg>
<radius-m>0.015</radius-m>
</particle>
<program>
<fluid>air</fluid>
<gravity type="bool">false</gravity>
<wind type="bool">true</wind>
</program>
</particlesystem>
</PropertyList>

View File

@@ -99,4 +99,4 @@
</offsets>
</model>
</PropertyList>
</PropertyList>

View File

@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>canopy-reflections</name>
<inherits-from>Effects/glass</inherits-from>
<parameters>
<!-- functional masks -->
<texture n="2">
<image>Aircraft/f16/Models/Effects/glass/canopy.png</image>
<type>2d</type>
<filter>linear-mipmap-linear</filter>
<wrap-s>clamp</wrap-s>
<wrap-t>clamp</wrap-t>
<internal-format>normalized</internal-format>
</texture>
<use-mask type="int">1</use-mask>
<overlay-color type="vec3d" n="0">1.0 1.0 1.0</overlay-color>
<!-- internal cockpit reflection -->
<texture n="3">
<type>cubemap</type>
<images>
<positive-x>Aircraft/f16/Models/Effects/glass/cockpit-cube-front.png</positive-x>
<negative-x>Aircraft/f16/Models/Effects/glass/cockpit-cube-back.png</negative-x>
<positive-y>Aircraft/f16/Models/Effects/glass/cockpit-cube-left.png</positive-y>
<negative-y>Aircraft/f16/Models/Effects/glass/cockpit-cube-right.png</negative-y>
<positive-z>Aircraft/f16/Models/Effects/glass/cockpit-cube-up.png</positive-z>
<negative-z>Aircraft/f16/Models/Effects/glass/cockpit-cube-down.png</negative-z>
</images>
</texture>
<use-reflection type="int">1</use-reflection>
<reflection-strength type="float">0.7</reflection-strength>
</parameters>
<!-- <technique n="1">
<predicate>
<and>
<equal>
<float-property>/old</float-property>
<value type="int">1</value>
</equal>
</and>
</predicate>
<pass>
<lighting>true</lighting>
<depth>
<write-mask type="bool">false</write-mask>
</depth>
<material>
<active>
<use>material/active</use>
</active>
<ambient>
<use>material/ambient</use>
</ambient>
<diffuse>
<use>material/diffuse</use>
</diffuse>
<specular>
<use>material/specular</use>
</specular>
<emissive>
<use>material/emissive</use>
</emissive>
<shininess>
<use>material/shininess</use>
</shininess>
<color-mode>
<use>material/color-mode</use>
</color-mode>
</material>
<blend>
<active>
<use>blend/active</use>
</active>
<source>
<use>blend/source</use>
</source>
<destination>
<use>blend/destination</use>
</destination>
</blend>
<shade-model>
<use>shade-model</use>
</shade-model>
<cull-face>
<use>cull-face</use>
</cull-face>
<render-bin>
<bin-number>111</bin-number>
<bin-name>DepthSortedBin</bin-name>
</render-bin>
<texture-unit>
<unit>0</unit>
<active>
<use>texture[0]/active</use>
</active>
<type>
<use>texture[0]/type</use>
</type>
<image>
<use>texture[0]/image</use>
</image>
<filter>
<use>texture[0]/filter</use>
</filter>
<wrap-s>
<use>texture[0]/wrap-s</use>
</wrap-s>
<wrap-t>
<use>texture[0]/wrap-t</use>
</wrap-t>
<environment>
<mode>modulate</mode>
</environment>
</texture-unit>
</pass>
</technique>-->
</PropertyList>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<PropertyList>
<name>glass</name>
<inherits-from>Effects/model-combined-transparent</inherits-from>
<parameters>
<normalmap-enabled type="int">0</normalmap-enabled>
<lightmap-enabled type="int">0</lightmap-enabled>
<reflection-enabled type="int">1</reflection-enabled>
<reflection-correction type="float">0.5</reflection-correction>
<reflect-map-enabled type="int">0</reflect-map-enabled>
<reflection-fresnel type="float">0.5</reflection-fresnel>
<reflection-rainbow type="float">0.3</reflection-rainbow>
<reflection-noise type="float">0.0</reflection-noise>
<reflection-dynamic type="int">1</reflection-dynamic>
<texture n= "5" >
<type>cubemap</type>
<images>
<positive-x>Aircraft/Generic/Effects/fgfs-sky2/1.png</positive-x>
<negative-x>Aircraft/Generic/Effects/fgfs-sky2/4.png</negative-x>
<positive-y>Aircraft/Generic/Effects/fgfs-sky2/2.png</positive-y>
<negative-y>Aircraft/Generic/Effects/fgfs-sky2/3.png</negative-y>
<positive-z>Aircraft/Generic/Effects/fgfs-sky2/6.png</positive-z>
<negative-z>Aircraft/Generic/Effects/fgfs-sky2/5.png</negative-z>
</images>
</texture>
<ambient-correction type="float">0.2</ambient-correction>
<rendering-hint>transparent</rendering-hint>
<transparent>true</transparent>
<render-bin>
<bin-number>10</bin-number>
<bin-name>DepthSortedBin</bin-name>
</render-bin>
</parameters>
</PropertyList>

0
Models/Liveries/Blur.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

BIN
Models/Liveries/Default.jpg Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 1.2 MiB

16
Models/Liveries/Default.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">Default - USAF 142ATW NY ANG</name>
<texture>Liveries/Default.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

0
Models/Liveries/Disk.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

16
Models/Liveries/FAF_ED1_33.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">French Air Force ED 1/33</name>
<texture>Liveries/FAF_ED1_33.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

BIN
Models/Liveries/FGUK.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

16
Models/Liveries/FGUK.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">FGUK North Theatre OPS</name>
<texture>Liveries/FGUK.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

BIN
Models/Liveries/IAM32St.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

16
Models/Liveries/IAM32St.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">Italian Aeronautica Militare 32 Stormo</name>
<texture>Liveries/IAM32St.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

BIN
Models/Liveries/MQ-9.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

BIN
Models/Liveries/NASA.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

16
Models/Liveries/NASA.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">NASA Ikhana Project</name>
<texture>Liveries/NASA.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

0
Models/Liveries/Paintkit.pdf Normal file → Executable file
View File

BIN
Models/Liveries/RAF13S.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

16
Models/Liveries/RAF13S.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">RAF 13th Sqn</name>
<texture>Liveries/RAF13S.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

BIN
Models/Liveries/RAF39S.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

16
Models/Liveries/RAF39S.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">RAF 39th Sqn</name>
<texture>Liveries/RAF39S.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

BIN
Models/Liveries/RAF54S.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

16
Models/Liveries/RAF54S.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">RAF 54th Sqn</name>
<texture>Liveries/RAF54S.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

16
Models/Liveries/RNLAF306S.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">RNLAF 306 Sqn</name>
<texture>Liveries/RNLAF306S.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

0
Models/Liveries/Test.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1018 KiB

After

Width:  |  Height:  |  Size: 1018 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

16
Models/Liveries/USAF42AS.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">USAF 42 AS</name>
<texture>Liveries/USAF42AS.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

BIN
Models/Liveries/USCBP.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

16
Models/Liveries/USCBP.xml Executable file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<sim>
<model>
<livery>
<name type="string">US Customs and Border Patrol</name>
<texture>Liveries/USCBP.jpg</texture>
</livery>
</model>
</sim>
</PropertyList>

View File

@@ -7,7 +7,7 @@
<model>
<livery>
<name type="string">United States Air Force</name>
<texture>Liveries/Default.jpg</texture>
<texture>Liveries/MQ-9.jpg</texture>
</livery>
</model>

4
Models/MQ-9-2.xml Normal file → Executable file
View File

@@ -360,7 +360,7 @@
<object-name>MQ-9</object-name>
<property-base>sim/model/livery</property-base>
<texture-prop>texture</texture-prop>
<texture>Aircraft/MQ-9/Models/Liveries/Default.jpg</texture>
<texture>Aircraft/MQ-9/Models/Liveries/MQ-9.jpg</texture>
</animation>
<animation>
@@ -511,7 +511,7 @@
<type>rotate</type>
<object-name>Rudder</object-name>
<property>surface-positions/rudder-pos-norm</property>
<factor>20</factor>
<factor>-20</factor>
<axis>
<x1-m> 3.3652</x1-m>
<y1-m> 0.0000</y1-m>

78
Models/MQ-9.ac Normal file → Executable file
View File

@@ -363,7 +363,7 @@ kids 39
OBJECT poly
name "AileronL"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 336
0.40538 -0.427044 6.10711
@@ -2905,7 +2905,7 @@ kids 0
OBJECT poly
name "AileronR"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 336
0.405379 -0.427042 -6.10711
@@ -5447,7 +5447,7 @@ kids 0
OBJECT poly
name "Antennas"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 3539
-0.334625 -0.425939 -7.09598
@@ -33018,7 +33018,7 @@ kids 0
OBJECT poly
name "Blades"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 423
4.25986 -0.137114 -0.153899
@@ -36137,7 +36137,7 @@ kids 0
OBJECT poly
name "ElevatorL"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 340
3.20876 0.948071 2.07554
@@ -38725,7 +38725,7 @@ kids 0
OBJECT poly
name "ElevatorR"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 340
3.20876 0.948071 -2.07554
@@ -41313,7 +41313,7 @@ kids 0
OBJECT poly
name "Engine"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 1689
1.74316 0.225238 0.0032469
@@ -54693,7 +54693,7 @@ kids 0
OBJECT poly
name "FlapL1"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 251
0.383878 -0.198953 1.55702
@@ -56632,7 +56632,7 @@ kids 0
OBJECT poly
name "FlapL2"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 187
0.383878 -0.22759 4.15203
@@ -58059,7 +58059,7 @@ kids 0
OBJECT poly
name "FlapR1"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 251
0.383878 -0.198953 -1.55702
@@ -59998,7 +59998,7 @@ kids 0
OBJECT poly
name "FlapR2"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 187
0.383878 -0.227588 -4.15203
@@ -61425,7 +61425,7 @@ kids 0
OBJECT poly
name "Fuselage"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 7319
0.552877 -0.343002 9.31399
@@ -118292,7 +118292,7 @@ kids 0
OBJECT poly
name "GearBoxB"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 319
2.00264 -0.397682 0.454194
@@ -120517,7 +120517,7 @@ kids 0
OBJECT poly
name "GearBoxF"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 57
-0.549842 -0.742394 -1e-07
@@ -120880,7 +120880,7 @@ kids 0
OBJECT poly
name "HellfirePylonL"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 238
-0.994616 -0.802733 1.94589
@@ -122630,7 +122630,7 @@ kids 0
OBJECT poly
name "HellfirePylonR"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 238
-0.994616 -0.802733 -1.94589
@@ -124380,7 +124380,7 @@ kids 0
OBJECT poly
name "HStabilizerL"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 603
3.20876 0.888774 2.06587
@@ -128911,7 +128911,7 @@ kids 0
OBJECT poly
name "HStabilizerR"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 603
3.20876 0.888774 -2.06587
@@ -133442,7 +133442,7 @@ kids 0
OBJECT poly
name "JawN"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 118
-3.34989 -1.68083 0.104979
@@ -134360,7 +134360,7 @@ kids 0
OBJECT poly
name "Lights"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 183
2.78223 0.669074 -0.0140444
@@ -135775,7 +135775,7 @@ kids 0
OBJECT poly
name "Propeller"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 194
4.71532 0.0583465 -0.0793374
@@ -137441,7 +137441,7 @@ kids 0
OBJECT poly
name "PylonL1"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 405
-0.811794 -0.457006 2.04736
@@ -140542,7 +140542,7 @@ kids 0
OBJECT poly
name "PylonL2"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 405
-0.882646 -0.457006 1.18461
@@ -143643,7 +143643,7 @@ kids 0
OBJECT poly
name "PylonR1"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 405
-0.811795 -0.457006 -2.04736
@@ -146744,7 +146744,7 @@ kids 0
OBJECT poly
name "PylonR2"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 405
-0.882646 -0.457006 -1.18461
@@ -149845,7 +149845,7 @@ kids 0
OBJECT poly
name "Rudder"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 311
3.13551 -1.03335 0.0641197
@@ -152206,7 +152206,7 @@ kids 0
OBJECT poly
name "Scissor1N"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 34
-3.13067 -1.58151 -0.0722363
@@ -152488,7 +152488,7 @@ kids 0
OBJECT poly
name "Scissor2N"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 60
-2.88295 -1.13603 -0.0526668
@@ -153024,7 +153024,7 @@ kids 0
OBJECT poly
name "Sensor"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 2400
-4.57771 -1.03412 -0.0109268
@@ -172384,7 +172384,7 @@ kids 0
OBJECT poly
name "SensorMount1"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 436
-4.37581 -0.72585 0.269207
@@ -175444,7 +175444,7 @@ kids 0
OBJECT poly
name "SensorMount2"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 104
-4.69901 -0.582895 0.0640987
@@ -176284,7 +176284,7 @@ kids 0
OBJECT poly
name "Strut1N"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 304
-3.3214 -1.44725 -0.0344578
@@ -178756,7 +178756,7 @@ kids 0
OBJECT poly
name "Strut2N"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 110
-2.90214 -1.30022 -0.110746
@@ -179690,7 +179690,7 @@ kids 0
OBJECT poly
name "StrutL"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 213
-0.35147 -1.77434 1.55963
@@ -181339,7 +181339,7 @@ kids 0
OBJECT poly
name "StrutR"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 213
-0.35147 -1.77434 -1.55963
@@ -182988,7 +182988,7 @@ kids 0
OBJECT poly
name "VStabilizer"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 465
3.13551 -1.07528 0.107143
@@ -186501,7 +186501,7 @@ kids 0
OBJECT poly
name "WheelL"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 1110
-0.429736 -1.84946 1.73691
@@ -195631,7 +195631,7 @@ kids 0
OBJECT poly
name "WheelN"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 866
-3.20969 -1.88934 0.114236
@@ -202713,7 +202713,7 @@ kids 0
OBJECT poly
name "WheelR"
loc 0.295158 0.778684 -2e-07
texture "Liveries/Default.jpg"
texture "Liveries/MQ-9.jpg"
crease 30.000000
numvert 1110
-0.429736 -1.84946 -1.73691

4
Models/MQ-9.xml Normal file → Executable file
View File

@@ -357,7 +357,7 @@
<object-name>MQ-9</object-name>
<property-base>sim/model/livery</property-base>
<texture-prop>texture</texture-prop>
<texture>Aircraft/MQ-9/Models/Liveries/Default.jpg</texture>
<texture>Aircraft/MQ-9/Models/Liveries/MQ-9.jpg</texture>
</animation>
<animation>
@@ -508,7 +508,7 @@
<type>rotate</type>
<object-name>Rudder</object-name>
<property>surface-positions/rudder-pos-norm</property>
<factor>20</factor>
<factor>-20</factor>
<axis>
<x1-m> 3.3652</x1-m>
<y1-m> 0.0000</y1-m>

74209
Models/Stores/Brimstone/brimstone.ac Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<!-- Type Air-to ground missile
Place of origin United Kingdom
Service history
In service 2005
Used by RAF, RSAF
Wars Operation Telic (Iraq)
Operation Herrick (Afghanistan)
Operation Ellamy (Libya)
Production history
Designer GEC-Marconi
Designed 1996
Manufacturer MBDA (UK) Ltd, Lostock
Unit cost (Dual Mode Variant)
£105,000/unit[1]
£175,000 inc development[2]
Produced 1999
Specifications
Weight 48.5 kg
Length 1.8 m
Diameter 17.8 cm
Warhead HEAT tandem warhead Detonation
mechanism Crush fuze
Engine Solid fuel rocket
Operationalrange 12 kilometres (7.5 mi)
Speed Supersonic
Guidance system 94 GHz millimetric wave radar and INS autopilot, dual-mode adds laser guidance
Steering system Aerodynamic surfaces
Launch platform
Tornado GR4
Typhoon (planned)
-->
<path>brimstone.ac</path>
<animation>
<object-name>Brimstone</object-name>
</animation>
</PropertyList>

View File

@@ -6,16 +6,43 @@
<enable-hot type="bool">false</enable-hot>
</animation>
<effect>
<inherits-from>Aircraft/MQ-9/Models/Effects/glass/glassIR</inherits-from>
<object-name>GBU-12_Glass</object-name>
</effect>
<animation>
<type>select</type>
<object-name>GBU-12_Glass</object-name>
<object-name>GBU-12</object-name>
<object-name>GBU-12_Hooks</object-name>
<object-name>GBU-12_Tail</object-name>
<object-name>GBU-12_FrontWing</object-name>
<object-name>GBU-12_Wing.001</object-name>
<object-name>GBU-12_Wing.002</object-name>
<object-name>GBU-12_Wing.003</object-name>
<object-name>GBU-12_Wing.004</object-name>
<condition>
<not>
<property>fdm/jsbsim/systems/armament/station3/released</property>
<property>fdm/jsbsim/systems/armament/station4/released</property>
</not>
</condition>
</animation>
<animation>
<type>select</type>
<object-name>GBU-12_Wing.001</object-name>
<object-name>GBU-12_Wing.002</object-name>
<object-name>GBU-12_Wing.003</object-name>
<object-name>GBU-12_Wing.004</object-name>
<condition>
<equals>
<value>0</value>
<value>1</value>
</equals>
</condition>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>

View File

@@ -5,10 +5,23 @@
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<effect>
<inherits-from>Aircraft/MQ-9/Models/Effects/glass/glassIR</inherits-from>
<object-name>GBU-12_Glass</object-name>
</effect>
<animation>
<type>select</type>
<object-name>GBU-12_Glass</object-name>
<object-name>GBU-12</object-name>
<object-name>GBU-12_Hooks</object-name>
<object-name>GBU-12_Tail</object-name>
<object-name>GBU-12_FrontWing</object-name>
<object-name>GBU-12_Wing.001</object-name>
<object-name>GBU-12_Wing.002</object-name>
<object-name>GBU-12_Wing.003</object-name>
<object-name>GBU-12_Wing.004</object-name>
<condition>
<not>
<property>fdm/jsbsim/systems/armament/station4/released</property>
@@ -16,6 +29,20 @@
</condition>
</animation>
<animation>
<type>select</type>
<object-name>GBU-12_Wing.001</object-name>
<object-name>GBU-12_Wing.002</object-name>
<object-name>GBU-12_Wing.003</object-name>
<object-name>GBU-12_Wing.004</object-name>
<condition>
<equals>
<value>0</value>
<value>1</value>
</equals>
</condition>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>

File diff suppressed because it is too large Load Diff

BIN
Models/Stores/GBU-12/GBU-12.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,31 @@
<PropertyList>
<path>GBU-54.ac</path>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<animation>
<type>select</type>
<object-name>GBU-54</object-name>
<object-name>LJDAM_belly</object-name>
<object-name>LJDAM_tip</object-name>
<object-name>LJDAM_seeker</object-name>
<object-name>LJDAM_wings</object-name>
<object-name>LJDAM_body</object-name>
<object-name>LJDAM_top</object-name>
<condition>
<not>
<property>fdm/jsbsim/systems/armament/station4/released</property>
</not>
</condition>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>12000</max-m>
</animation>
</PropertyList>

View File

@@ -0,0 +1,31 @@
<PropertyList>
<path>GBU-54.ac</path>
<animation>
<enable-hot type="bool">false</enable-hot>
</animation>
<animation>
<type>select</type>
<object-name>GBU-54</object-name>
<object-name>LJDAM_belly</object-name>
<object-name>LJDAM_tip</object-name>
<object-name>LJDAM_seeker</object-name>
<object-name>LJDAM_wings</object-name>
<object-name>LJDAM_body</object-name>
<object-name>LJDAM_top</object-name>
<condition>
<not>
<property>fdm/jsbsim/systems/armament/station4/released</property>
</not>
</condition>
</animation>
<animation>
<type>range</type>
<min-m>0</min-m>
<max-m>12000</max-m>
</animation>
</PropertyList>

21424
Models/Stores/GBU-54/GBU-54.ac Normal file

File diff suppressed because it is too large Load Diff

BIN
Models/Stores/GBU-54/GBU-54.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@@ -45,7 +45,7 @@
<offsets>
<x-m>-0.6217</x-m>
<y-m>-1.2284</y-m>
<z-m> 0.0517</z-m>
<z-m>-0.043</z-m>
<pitch-deg>0</pitch-deg>
</offsets>
</model>
@@ -55,9 +55,29 @@
<offsets>
<x-m>-0.6217</x-m>
<y-m> 1.2284</y-m>
<z-m> 0.0517</z-m>
<z-m>-0.043</z-m>
<pitch-deg>0</pitch-deg>
</offsets>
</model>
<!--model>
<path>Aircraft/MQ-9/Models/Stores/GBU-54/GBU-54-3.xml</path>
<offsets>
<x-m>-0.1817</x-m>
<y-m>-1.2284</y-m>
<z-m>-0.0425</z-m>
<pitch-deg>0</pitch-deg>
</offsets>
</model>
<model>
<path>Aircraft/MQ-9/Models/Stores/GBU-54/GBU-54-4.xml</path>
<offsets>
<x-m>-0.1817</x-m>
<y-m> 1.2284</y-m>
<z-m>-0.0425</z-m>
<pitch-deg>0</pitch-deg>
</offsets>
</model-->
</PropertyList>

View File

@@ -148,4 +148,70 @@
<submodel-path>Aircraft/MQ-9/Models/Effects/Bomb/Bomb-Submodel.xml</submodel-path>
</submodel>
<submodel>
<name>GBU-12-3</name>
<model>Aircraft/MQ-9/Models/Stores/GBU-12/GBU-12-3.xml</model>
<trigger>fdm/jsbsim/systems/armament/station3/released</trigger>
<trigger-once>true</trigger-once>
<speed>0.0</speed>
<count>1</count>
<x-offset>0</x-offset>
<y-offset>-1.2308</y-offset>
<z-offset>-1</z-offset>
<yaw-offset>0.0</yaw-offset>
<pitch-offset>-4.0</pitch-offset>
<eda>1.0</eda>
<weight>520.0</weight>
<cd>0.3</cd>
<collision>true</collision>
<collision-report>sim/ai/aircraft/collision/cannon</collision-report>
<impact>true</impact>
<impact-report>sim/ai/aircraft/impact/bomb</impact-report>
<submodel-path>Aircraft/MQ-9/Models/Effects/Bomb/Bomb-Submodel.xml</submodel-path>
</submodel>
<!--submodel>
<name>GBU-54-4</name>
<model>Aircraft/MQ-9/Models/Stores/GBU-54/GBU-54-4.xml</model>
<trigger>fdm/jsbsim/systems/armament/station4/released</trigger>
<trigger-once>true</trigger-once>
<speed>0.0</speed>
<count>1</count>
<x-offset>0</x-offset>
<y-offset>1.2308</y-offset>
<z-offset>-1</z-offset>
<yaw-offset>0.0</yaw-offset>
<pitch-offset>-4.0</pitch-offset>
<eda>1.0</eda>
<weight>520.0</weight>
<cd>0.3</cd>
<collision>true</collision>
<collision-report>sim/ai/aircraft/collision/cannon</collision-report>
<impact>true</impact>
<impact-report>sim/ai/aircraft/impact/bomb</impact-report>
<submodel-path>Aircraft/MQ-9/Models/Effects/Bomb/Bomb-Submodel.xml</submodel-path>
</submodel>
<submodel>
<name>GBU-54-3</name>
<model>Aircraft/MQ-9/Models/Stores/GBU-54/GBU-54-3.xml</model>
<trigger>fdm/jsbsim/systems/armament/station3/released</trigger>
<trigger-once>true</trigger-once>
<speed>0.0</speed>
<count>1</count>
<x-offset>0</x-offset>
<y-offset>-1.2308</y-offset>
<z-offset>-1</z-offset>
<yaw-offset>0.0</yaw-offset>
<pitch-offset>-4.0</pitch-offset>
<eda>1.0</eda>
<weight>520.0</weight>
<cd>0.3</cd>
<collision>true</collision>
<collision-report>sim/ai/aircraft/collision/cannon</collision-report>
<impact>true</impact>
<impact-report>sim/ai/aircraft/impact/bomb</impact-report>
<submodel-path>Aircraft/MQ-9/Models/Effects/Bomb/Bomb-Submodel.xml</submodel-path>
</submodel-->
</PropertyList>

View File

@@ -0,0 +1,260 @@
#
#
# Use to transmit events that happen at a specific place; can be used to make
# models that are simulated locally (e.g. tankers) appear on other player's MP sessions.
var ArmamentNotification_Id = 19;
var ArmamentNotification =
{
# new:
# _ident - the identifier for the notification. not bridged.
# _name - name of the notification, bridged.
# _kind - created, moved, deleted, impact (see notifications.nas)
# _secondary_kind - This is the entity on which the activity is being performed. See below for predefined types.
##
new: func(_ident="none", _kind=0, _secondary_kind=0)
{
var new_class = emesary.Notification.new("ArmamentNotification", _ident, ArmamentNotification_Id);
new_class.Kind = _kind;
new_class.SecondaryKind = _secondary_kind;
new_class.RelativeAltitude = 0;
new_class.IsDistinct = 0;
new_class.Distance = 0;
new_class.Bearing = 0;
new_class.RemoteCallsign = ""; # associated remote callsign.
new_class.bridgeProperties = func
{
return
[
{
getValue:func{return emesary.TransferByte.encode(new_class.Kind);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.Kind=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.SecondaryKind);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.SecondaryKind=dv.value;return dv},
},
{
getValue:func{return emesary.TransferFixedDouble.encode(new_class.RelativeAltitude,2,1/10);},
setValue:func(v,root,pos){var dv=emesary.TransferFixedDouble.decode(v,2,1/10,pos);new_class.RelativeAltitude=dv.value;return dv},
},
{
getValue:func{return emesary.TransferFixedDouble.encode(new_class.Distance,2,1/10);},
setValue:func(v,root,pos){var dv=emesary.TransferFixedDouble.decode(v,2,1/10,pos);new_class.Distance=dv.value;return dv},
},
{
getValue:func{return emesary.TransferFixedDouble.encode(geo.normdeg180(new_class.Bearing),1,1.54);},
setValue:func(v,root,pos){var dv=emesary.TransferFixedDouble.decode(v,1,1.54,pos);new_class.Bearing=geo.normdeg(dv.value);return dv},
},
{
getValue:func{return emesary.TransferString.encode(new_class.RemoteCallsign);},
setValue:func(v,root,pos){var dv=emesary.TransferString.decode(v,pos);new_class.RemoteCallsign=dv.value;return dv},
},
];
};
return new_class;
},
};
var ArmamentInFlightNotification_Id = 21;
var ArmamentInFlightNotification =
{
# new:
# _ident - the identifier for the notification. not bridged.
# _name - name of the notification, bridged.
# _kind - created, moved, deleted (see below). This is the activity that the notification represents, called kind to avoid confusion with notification type.
# _secondary_kind - This is the entity on which the activity is being performed. See below for predefined types.
#
# UniqueIdentity - an identity that is unique to the sending instance of FG. Can be combined with the callsign to create an MP unique ID.
##
new: func(_ident="none", _unique=0, _kind=0, _secondary_kind=0)
{
var new_class = emesary.Notification.new("ArmamentInFlightNotification", _ident, ArmamentInFlightNotification_Id);
new_class.Kind = _kind;
new_class.SecondaryKind = _secondary_kind;
new_class.Position = geo.aircraft_position();
new_class.UniqueIndex = 0;
new_class.Heading = 360;
new_class.Pitch = 90;
new_class.u_fps = 0;
new_class.IsDistinct = 0;
new_class.Callsign = nil; # populated automatically by the incoming bridge when routed
new_class.RemoteCallsign = ""; # associated remote callsign.
new_class.Flags = 0; # 8 bits for whatever.
new_class.UniqueIdentity = _unique;
new_class.GetBridgeMessageNotificationTypeKey = func {
return new_class.NotificationType~"."~new_class.Ident~"."~new_class.UniqueIndex;
};
new_class.bridgeProperties = func
{
return
[
{
getValue:func{return emesary.TransferCoord.encode(new_class.Position);},
setValue:func(v,root,pos){var dv=emesary.TransferCoord.decode(v, pos);new_class.Position=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.Kind);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.Kind=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.SecondaryKind);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.SecondaryKind=dv.value;return dv},
},
{
#0..6696 fps (3967kts), mach 6.1 (SL) - factor 0.03703
getValue:func{return emesary.TransferFixedDouble.encode(new_class.u_fps-3348,1,1/0.03703);},
setValue:func(v,root,pos){var dv=emesary.TransferFixedDouble.decode(v,1,1/0.03703,pos);new_class.u_fps=dv.value+3348;return dv},
},
{
getValue:func{return emesary.TransferFixedDouble.encode(geo.normdeg180(new_class.Heading),1,1.54);},#1.0/0.65
setValue:func(v,root,pos){var dv=emesary.TransferFixedDouble.decode(v,1,1.54,pos);new_class.Heading=geo.normdeg(dv.value);return dv},
},
{
getValue:func{return emesary.TransferFixedDouble.encode(new_class.Pitch, 1, 1/1.38);},
setValue:func(v,root,pos){var dv=emesary.TransferFixedDouble.decode(v,1, 1/1.38, pos);new_class.Pitch=dv.value;return dv},
},
{
getValue:func{return emesary.TransferString.encode(new_class.RemoteCallsign);},
setValue:func(v,root,pos){var dv=emesary.TransferString.decode(v,pos);new_class.RemoteCallsign=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.Flags);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.Flags=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.UniqueIdentity);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.UniqueIdentity=dv.value;return dv},
},
];
};
return new_class;
},
};
var StaticNotification_Id = 25;
var StaticNotification =
{
# new:
# _ident - the identifier for the notification. not bridged.
# _kind - created, moved, deleted (see below). This is the activity that the notification represents, called kind to avoid confusion with notification type.
# _secondary_kind - This is the entity on which the activity is being performed. See below for predefined types.
#
# UniqueIdentity - an identity that is unique to the sending instance of FG. Can be combined with the callsign to create an MP unique ID.
##
new: func(_ident="stat", _unique=0, _kind=0, _secondary_kind=0)
{
var new_class = emesary.Notification.new("StaticNotification", _ident, StaticNotification_Id);
# _ident -> "stat"
new_class.UniqueIdentity = _unique; # random from 0 to 15000000 that identifies each static object
new_class.Kind = _kind; # 1=create, 2=move, 3=delete, 4=request_all
new_class.SecondaryKind = _secondary_kind; # 0 = small crater, 1 = big crater, 2 = smoke
new_class.IsDistinct = 0; # keep it 0
new_class.Callsign = nil; # populated automatically by the incoming bridge when routed
new_class.Position = geo.aircraft_position(); # position
new_class.Heading = 360; # heading
new_class.Flags1 = 0; # 7 bits for whatever.
new_class.Flags2 = 0; # 7 bits for whatever.
new_class.GetBridgeMessageNotificationTypeKey = func {
return new_class.NotificationType~"."~new_class.Ident~"."~new_class.UniqueIdentity;
};
new_class.bridgeProperties = func
{
return
[
{
getValue:func{return emesary.TransferCoord.encode(new_class.Position);},
setValue:func(v,root,pos){var dv=emesary.TransferCoord.decode(v, pos);new_class.Position=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.Kind);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.Kind=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.SecondaryKind);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.SecondaryKind=dv.value;return dv},
},
{
getValue:func{return emesary.TransferFixedDouble.encode(geo.normdeg180(new_class.Heading),1,1.54);},#1.0/0.65
setValue:func(v,root,pos){var dv=emesary.TransferFixedDouble.decode(v,1,1.54,pos);new_class.Heading=geo.normdeg(dv.value);return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.Flags1);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.Flags1=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.Flags2);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.Flags2=dv.value;return dv},
},
{
getValue:func{return emesary.TransferInt.encode(new_class.UniqueIdentity,3);},
setValue:func(v,root,pos){var dv=emesary.TransferInt.decode(v,3,pos);new_class.UniqueIdentity=dv.value;return dv},
},
];
};
return new_class;
},
};
var ObjectInFlightNotification_Id = 22;
var ObjectInFlightNotification =
{
# new:
# _ident - the identifier for the notification. not bridged.
# _name - name of the notification, bridged.
# _kind - created, moved, deleted (see below). This is the activity that the notification represents, called kind to avoid confusion with notification type.
# _secondary_kind - This is the entity on which the activity is being performed. See below for predefined types.
#
# UniqueIdentity - an identity that is unique to the sending instance of FG. Can be combined with the callsign to create an MP unique ID.
##
new: func(_ident="none", _unique=0, _kind=0, _secondary_kind=0)
{
var new_class = emesary.Notification.new("ObjectInFlightNotification", _ident, ObjectInFlightNotification_Id);
new_class.Kind = _kind;
new_class.SecondaryKind = _secondary_kind;
new_class.Position = geo.aircraft_position();
new_class.UniqueIndex = 0;
new_class.IsDistinct = 1;
new_class.Callsign = nil; # populated automatically by the incoming bridge when routed
new_class.UniqueIdentity = _unique;
new_class.GetBridgeMessageNotificationTypeKey = func {
return new_class.NotificationType~"."~new_class.Ident~"."~new_class.UniqueIndex;
};
new_class.bridgeProperties = func
{
return
[
{
getValue:func{return emesary.TransferCoord.encode(new_class.Position);},
setValue:func(v,root,pos){var dv=emesary.TransferCoord.decode(v, pos);new_class.Position=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.Kind);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.Kind=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.SecondaryKind);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.SecondaryKind=dv.value;return dv},
},
{
getValue:func{return emesary.TransferByte.encode(new_class.UniqueIdentity);},
setValue:func(v,root,pos){var dv=emesary.TransferByte.decode(v,pos);new_class.UniqueIdentity=dv.value;return dv},
},
];
};
return new_class;
},
};

View File

@@ -0,0 +1,84 @@
# Emesary bridged transmitter for armament notifications.
#
# Richard Harrison 2017
#
# NOTES:
# 1.The incoming bridges that is defined here will apply to all models that
# are loaded over MP; it is better to create the bridges here rather than in the model.xml
# So given that we don't want a bridge on all MP models only those that are on OPRF
# aircraft that want to receive notifications we will create the incoming bridge here
# and thus only an OPRF model will receive notifications from another OPRF model.
#
# 2. The Emesary MP bridge requires two sides; the outgoing and incoming.
# - The outgoing aircraft will forwards all received notifications via MP;
# and these will be received by a similarly equipped craft.
# - The receiving aircraft will receive all notifications from other MP craft via
# the globalTransmitter - which is bridged via property #18 /sim/multiplay/emesary/bridge[18]
#------------------------------------------------------------------------------------------
# Setup the bridge
# armament notification 24 bytes
# geoEventNotification - 34 bytes + the length of the RemoteCallsign and Name fields.
#NOTE: due to bug in Emesary MP Bridge (fixed in 2019.2 after 24/3/2020) we can only
# reliably send one message type per bridge - so for the maximum compatibility
# we will use two bridges.
# If at some point in the future we target 2019.2 as a min ver we can use a single
# bridge and setup the notification list to contain all of the armament hit/flying notifications
#i.e. change to [notifications.ArmamentInFlightNotification.new(nil), notifications.ArmamentNotification.new(nil)];
var geoRoutedNotifications = [notifications.ArmamentInFlightNotification.new()];
var geoBridgedTransmitter = emesary.Transmitter.new("geoOutgoingBridge");
var geooutgoingBridge = emesary_mp_bridge.OutgoingMPBridge.new("f16mp.geo",geoRoutedNotifications, 18, "", geoBridgedTransmitter);
# bridge should be tuned to be around 90% of the packet size full.
geooutgoingBridge.TransmitFrequencySeconds = 0.75;
geooutgoingBridge.MPStringMaxLen = 150;
emesary_mp_bridge.IncomingMPBridge.startMPBridge(geoRoutedNotifications, 18, emesary.GlobalTransmitter);
#----- bridge hit (armament) notifications
var hitRoutedNotifications = [notifications.ArmamentNotification.new(),notifications.StaticNotification.new()];
var hitBridgedTransmitter = emesary.Transmitter.new("armamentNotificationBridge");
var hitoutgoingBridge = emesary_mp_bridge.OutgoingMPBridge.new("f16mp.hit",hitRoutedNotifications, 19, "", hitBridgedTransmitter);
hitoutgoingBridge.TransmitFrequencySeconds = 1.5;
hitoutgoingBridge.MPStringMaxLen = 120;
emesary_mp_bridge.IncomingMPBridge.startMPBridge(hitRoutedNotifications, 19, emesary.GlobalTransmitter);
#----- bridge object notifications
var objectRoutedNotifications = [notifications.ObjectInFlightNotification.new()];
var objectBridgedTransmitter = emesary.Transmitter.new("objectNotificationBridge");
var objectoutgoingBridge = emesary_mp_bridge.OutgoingMPBridge.new("f16mp.object",objectRoutedNotifications, 17, "", objectBridgedTransmitter);
objectoutgoingBridge.TransmitFrequencySeconds = 0.2;
objectoutgoingBridge.MessageLifeTime = 1;
objectoutgoingBridge.MPStringMaxLen = 150;
emesary_mp_bridge.IncomingMPBridge.startMPBridge(objectRoutedNotifications, 17, emesary.GlobalTransmitter);
#
# debug all messages - this can be removed when testing isn't required.
var debugRecipient = emesary.Recipient.new("Debug");
debugRecipient.Receive = func(notification)
{
if (notification.NotificationType != "FrameNotification") {
print ("recv(0): type=",notification.NotificationType, " fromIncoming=",notification.FromIncomingBridge);
if (notification.NotificationType == "ArmamentInFlightNotification") {
print("recv(1): ",notification.NotificationType, " ", notification.Ident);
debug.dump(notification);
} else if (notification.NotificationType == "ArmamentNotification") {
if (notification.FromIncomingBridge) {
print("recv(2): ",notification.NotificationType, " ", notification.Ident,
" Kind=",notification.Kind,
" SecondaryKind=",notification.SecondaryKind,
" RelativeAltitude=",notification.RelativeAltitude,
" Distance=",notification.Distance,
" Bearing=",notification.Bearing,
" RemoteCallsign=",notification.RemoteCallsign);
debug.dump(notification);
}
}
}
return emesary.Transmitter.ReceiptStatus_NotProcessed; # we're not processing it, just looking
}
# uncomment next line to activate debug recipient.
#emesary.GlobalTransmitter.Register(debugRecipient);

View File

@@ -1,2 +1,12 @@
# turn off hud in views
setlistener("/sim/current-view/view-number", func(n) { setprop("/sim/hud/visibility[1]", n.getValue() == 8) },1);
#var fast_loop = func {
# var viewName = getprop("/sim/current-view/name");
# if (viewName == "Sensor View") {
# setprop("aircraft/flir/target/view-enabled", viewName == "Sensor Vew");
# setprop("sim/rendering/als-filters/use-filtering", 1);
# setprop("sim/rendering/als-filters/use-IR-vision", 1);
# setprop("sim/rendering/als-filters/use-night-vision", 1);
# }
#}

View File

@@ -19,6 +19,7 @@ MPleave= func(n) {
setprop("instrumentation/radar",n.getValue(),"joined",0);
}
setprop("sim/multiplay/visibility-range-nm", 115);
#need to copy the properties so that we never try to access a non-existent property in XML
MPradarProperties = func {

View File

@@ -1,37 +1,23 @@
#Place holder
var getTrackData = func {
# me.ac = geo.aircraft_position();
# me.distance = me.ac.distance_to(me.coord);
# me.bearing = me.ac.course_to(me.coord);
# var dalt = alt - me.ac.alt();
# var ac_hdg = getprop("/orientation/heading-deg");
# var ac_pitch = getprop("/orientation/pitch-deg");
# var ac_contact_dist = getprop("/systems/refuel/contact-radius-m");
# var elev = math.atan2(dalt, me.distance) * R2D;
#
# print("My test module got loaded!");
#var broken = func {
var rngM=110000.0;
var brg=0.0;
#
var tgt=geo.click_position();
if (tgt != nil){
#print ("ping");
var ac=geo.aircraft_position();
var distance = ac.distance_to(tgt);
var bearing =ac.course_to(tgt);
#setprop("/tracking/test",tgt.lat());
rngM=distance;
brg=bearing;
settimer(getTrackData, 0.1);
}
#
# # finally, write the result to the property tree using the setprop() call
#setprop("tracking/engine[0]/egt-degc", degC);
setprop("/tracking/rng-km", rngM * 0.001);
setprop("/tracking/rng-nml", rngM * 0.000539957);
setprop("/tracking/bearing",brg);
}
setlistener("sim/signals/click", getTrackData,1);
#settimer(getTrackData, 0.1);

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,7 @@ Author: Petar Jedvaj (pjedvaj)
Date: 3 Jul 2016
License: GNU General Public License
FDM: JSBSim
Addons: Bombable, Walker
Addons: Bombable, Walker, MP damage code.
**************** Splash screen and thumbnail photos are downloaded from Wikimedia Commons ***************
***************************** Data used for devlopment are taken from Wikipedia *************************

97
gui/dialogs/event-log.xml Normal file
View File

@@ -0,0 +1,97 @@
<?xml version="1.0"?>
<PropertyList>
<name>flightlog</name>
<modal>false</modal>
<layout>vbox</layout>
<draggable>true</draggable>
<resizable>true</resizable>
<group>
<layout>hbox</layout>
<empty><stretch>1</stretch></empty>
<text>
<label>Combat event log</label>
</text>
<empty><stretch>1</stretch></empty>
<button>
<pref-width>16</pref-width>
<pref-height>16</pref-height>
<legend></legend>
<default>1</default>
<keynum>27</keynum>
<border>2</border>
<binding>
<command>dialog-close</command>
</binding>
<binding>
<command>dialog-apply</command>
</binding>
</button>
</group>
<hrule/>
<nasal>
<open>
<![CDATA[
setprop("sim/model/mig21/event-log", "Click refresh to see the combat event log..");
]]>
</open>
<close>
<![CDATA[
setprop("sim/model/mig21/event-log", "");
]]>
</close>
</nasal>
<button>
<!--<x>0</x>
<y>0</y>-->
<halign>centre</halign>
<legend>Refresh</legend>
<binding>
<command>nasal</command>
<script><![CDATA[
var str = "";
if (getprop("velocities/groundspeed-kt") < 10) {
var buffer = damage.damageLog.get_buffer();
foreach(entry; buffer) {
str = str~""~entry.time~" "~entry.message~"\n";
}
} else {
str = "The aircraft must be still to read the combat event log.";
}
setprop("sim/model/mig21/event-log", str);
]]></script>
</binding>
</button>
<text>
<halign>left</halign>
<label>Event log:</label>
</text>
<textbox>
<!-- position -->
<!--<x>100</x>
<y>100</y>-->
<!-- dimensions -->
<pref-width>500</pref-width>
<pref-height>500</pref-height>
<property>/sim/model/mig21/event-log</property>
<live>true</live>
<slider>15</slider> <!--width for slider -->
<wrap>false</wrap> <!-- don't wrap text; default: true -->
<top-line>0</top-line> <!-- line to show at top, -ve numbers show last line -->
<editable>false</editable> <!-- if the puLargeInput is supposed to be editable -->
</textbox>
<empty><stretch>1</stretch></empty>
</PropertyList>