Merge branch 'master' of git://gitorious.org/fg/fgdata
This commit is contained in:
commit
1dd4b8defe
18 changed files with 639 additions and 99 deletions
27
Aircraft/Generic/Formations/formation_1.xml
Normal file
27
Aircraft/Generic/Formations/formation_1.xml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<PropertyList>
|
||||||
|
<sim>
|
||||||
|
<model>
|
||||||
|
<formation>
|
||||||
|
<variant type="string">Echelon Stbd</variant>
|
||||||
|
<index type="int">2</index>
|
||||||
|
<position>
|
||||||
|
<x-offset>-75</x-offset>
|
||||||
|
<y-offset>75</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-150</x-offset>
|
||||||
|
<y-offset>150</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-75</x-offset>
|
||||||
|
<y-offset>75</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
</formation>
|
||||||
|
</model>
|
||||||
|
</sim>
|
||||||
|
</PropertyList>
|
27
Aircraft/Generic/Formations/formation_2.xml
Normal file
27
Aircraft/Generic/Formations/formation_2.xml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<PropertyList>
|
||||||
|
<sim>
|
||||||
|
<model>
|
||||||
|
<formation>
|
||||||
|
<variant type="string">Echelon Port</variant>
|
||||||
|
<index type="int">3</index>
|
||||||
|
<position>
|
||||||
|
<x-offset>-75</x-offset>
|
||||||
|
<y-offset>-75</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-150</x-offset>
|
||||||
|
<y-offset>-150</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-75</x-offset>
|
||||||
|
<y-offset>-75</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
</formation>
|
||||||
|
</model>
|
||||||
|
</sim>
|
||||||
|
</PropertyList>
|
27
Aircraft/Generic/Formations/formation_3.xml
Normal file
27
Aircraft/Generic/Formations/formation_3.xml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<PropertyList>
|
||||||
|
<sim>
|
||||||
|
<model>
|
||||||
|
<formation>
|
||||||
|
<variant type="string">Diamond</variant>
|
||||||
|
<index type="int">4</index>
|
||||||
|
<position>
|
||||||
|
<x-offset>-75</x-offset>
|
||||||
|
<y-offset>-75</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-75</x-offset>
|
||||||
|
<y-offset>75</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-75</x-offset>
|
||||||
|
<y-offset>-75</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
</formation>
|
||||||
|
</model>
|
||||||
|
</sim>
|
||||||
|
</PropertyList>
|
27
Aircraft/Generic/Formations/formation_4.xml
Normal file
27
Aircraft/Generic/Formations/formation_4.xml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<PropertyList>
|
||||||
|
<sim>
|
||||||
|
<model>
|
||||||
|
<formation>
|
||||||
|
<variant type="string">Finger</variant>
|
||||||
|
<index type="int">5</index>
|
||||||
|
<position>
|
||||||
|
<x-offset>-100</x-offset>
|
||||||
|
<y-offset>-100</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-100</x-offset>
|
||||||
|
<y-offset>100</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-100</x-offset>
|
||||||
|
<y-offset>100</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
</formation>
|
||||||
|
</model>
|
||||||
|
</sim>
|
||||||
|
</PropertyList>
|
27
Aircraft/Generic/Formations/formation_5.xml
Normal file
27
Aircraft/Generic/Formations/formation_5.xml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<PropertyList>
|
||||||
|
<sim>
|
||||||
|
<model>
|
||||||
|
<formation>
|
||||||
|
<variant type="string">Echelon Stbd Step Up</variant>
|
||||||
|
<index type="int">6</index>
|
||||||
|
<position>
|
||||||
|
<x-offset>-75</x-offset>
|
||||||
|
<y-offset>75</y-offset>
|
||||||
|
<z-offset>30</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-150</x-offset>
|
||||||
|
<y-offset>150</y-offset>
|
||||||
|
<z-offset>60</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-75</x-offset>
|
||||||
|
<y-offset>75</y-offset>
|
||||||
|
<z-offset>30</z-offset>
|
||||||
|
</position>
|
||||||
|
</formation>
|
||||||
|
</model>
|
||||||
|
</sim>
|
||||||
|
</PropertyList>
|
27
Aircraft/Generic/Formations/formation_6.xml
Normal file
27
Aircraft/Generic/Formations/formation_6.xml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<PropertyList>
|
||||||
|
<sim>
|
||||||
|
<model>
|
||||||
|
<formation>
|
||||||
|
<variant type="string">Take Off</variant>
|
||||||
|
<index type="int">7</index>
|
||||||
|
<position>
|
||||||
|
<x-offset>-50</x-offset>
|
||||||
|
<y-offset>-50</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-300</x-offset>
|
||||||
|
<y-offset>0</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-50</x-offset>
|
||||||
|
<y-offset>-50</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
</formation>
|
||||||
|
</model>
|
||||||
|
</sim>
|
||||||
|
</PropertyList>
|
27
Aircraft/Generic/Formations/formation_7.xml
Normal file
27
Aircraft/Generic/Formations/formation_7.xml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<PropertyList>
|
||||||
|
<sim>
|
||||||
|
<model>
|
||||||
|
<formation>
|
||||||
|
<variant type="string">Carrier Launch</variant>
|
||||||
|
<index type="int">1</index>
|
||||||
|
<position>
|
||||||
|
<x-offset>-15</x-offset>
|
||||||
|
<y-offset>-65</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-200</x-offset>
|
||||||
|
<y-offset>0</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-15</x-offset>
|
||||||
|
<y-offset>-63</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
</formation>
|
||||||
|
</model>
|
||||||
|
</sim>
|
||||||
|
</PropertyList>
|
27
Aircraft/Generic/Formations/formation_8.xml
Normal file
27
Aircraft/Generic/Formations/formation_8.xml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<PropertyList>
|
||||||
|
<sim>
|
||||||
|
<model>
|
||||||
|
<formation>
|
||||||
|
<variant type="string">Swan</variant>
|
||||||
|
<index type="int">6</index>
|
||||||
|
<position>
|
||||||
|
<x-offset>-225</x-offset>
|
||||||
|
<y-offset>-75</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-150</x-offset>
|
||||||
|
<y-offset></y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
<position>
|
||||||
|
<x-offset>-75</x-offset>
|
||||||
|
<y-offset>75</y-offset>
|
||||||
|
<z-offset>0</z-offset>
|
||||||
|
</position>
|
||||||
|
</formation>
|
||||||
|
</model>
|
||||||
|
</sim>
|
||||||
|
</PropertyList>
|
96
Aircraft/Generic/formation.nas
Normal file
96
Aircraft/Generic/formation.nas
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
#####################################################################################
|
||||||
|
# #
|
||||||
|
# this script runs the foramation selection utility #
|
||||||
|
# #
|
||||||
|
#####################################################################################
|
||||||
|
|
||||||
|
# ================================ Initalize ======================================
|
||||||
|
# Make sure all needed properties are present and accounted
|
||||||
|
# for, and that they have sane default values.
|
||||||
|
|
||||||
|
|
||||||
|
for(var i = 0; i < 3; i = i + 1){
|
||||||
|
setprop("/sim/model/formation/position[" ~ i ~ "]/x-offset", 0);
|
||||||
|
setprop("/sim/model/formation/position[" ~ i ~ "]/y-offset", 0);
|
||||||
|
setprop("/sim/model/formation/position[" ~ i ~ "]/z-offset", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
formation_variant_Node = props.globals.getNode("sim/formation/variant", 1);
|
||||||
|
formation_variant_Node.setIntValue(0);
|
||||||
|
|
||||||
|
formation_index_Node = props.globals.getNode("sim/formation/index", 1);
|
||||||
|
formation_index_Node.setIntValue(0);
|
||||||
|
|
||||||
|
tgt_x_offset_Node = props.globals.getNode("ai/models/wingman/position/tgt-x-offset",1);
|
||||||
|
tgt_y_offset_Node = props.globals.getNode("ai/models/wingman/position/tgt-y-offset",1);
|
||||||
|
tgt_z_offset_Node = props.globals.getNode("ai/models/wingman/position/tgt-z-offset",1);
|
||||||
|
tgt_x_offset_1_Node = props.globals.getNode("ai/models/wingman[1]/position/tgt-x-offset",1);
|
||||||
|
tgt_y_offset_1_Node = props.globals.getNode("ai/models/wingman[1]/position/tgt-y-offset",1);
|
||||||
|
tgt_z_offset_1_Node = props.globals.getNode("ai/models/wingman[1]/position/tgt-z-offset",1);
|
||||||
|
tgt_x_offset_2_Node = props.globals.getNode("ai/models/wingman[2]/position/tgt-x-offset",1);
|
||||||
|
tgt_y_offset_2_Node = props.globals.getNode("ai/models/wingman[2]/position/tgt-y-offset",1);
|
||||||
|
tgt_z_offset_2_Node = props.globals.getNode("ai/models/wingman[2]/position/tgt-z-offset",1);
|
||||||
|
|
||||||
|
props.globals.getNode("/sim/model/formation/position/x-offset",1);
|
||||||
|
|
||||||
|
var formation_dialog = nil;
|
||||||
|
|
||||||
|
initialize = func {
|
||||||
|
|
||||||
|
print("Initializing formation ...");
|
||||||
|
|
||||||
|
# initialise dialogs
|
||||||
|
aircraft.data.add("sim/model/formation/variant");
|
||||||
|
formation_dialog = gui.OverlaySelector.new("Select Formation",
|
||||||
|
"Aircraft/Generic/Formations",
|
||||||
|
"sim/model/formation/variant", nil, func(no) {
|
||||||
|
formation_variant_Node.setIntValue(no);
|
||||||
|
tgt_x_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/x-offset"));
|
||||||
|
tgt_y_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/y-offset"));
|
||||||
|
tgt_z_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/z-offset"));
|
||||||
|
tgt_x_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/x-offset"));
|
||||||
|
tgt_y_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/y-offset"));
|
||||||
|
tgt_z_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/z-offset"));
|
||||||
|
tgt_x_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/x-offset"));
|
||||||
|
tgt_y_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/y-offset"));
|
||||||
|
tgt_z_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/z-offset"));
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
#set listeners
|
||||||
|
|
||||||
|
setlistener("/sim/model/formation/variant", func {
|
||||||
|
print("formation listener: ", getprop("/sim/model/formation/position/x-offset"));
|
||||||
|
if (tgt_x_offset_Node != nil){
|
||||||
|
print("formation listener getting", getprop("/sim/model/formation/position/x-offset"));
|
||||||
|
tgt_x_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/x-offset"));
|
||||||
|
tgt_y_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/y-offset"));
|
||||||
|
tgt_z_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/z-offset"));
|
||||||
|
}
|
||||||
|
if (tgt_x_offset_1_Node != nil){
|
||||||
|
tgt_x_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/x-offset"));
|
||||||
|
tgt_y_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/y-offset"));
|
||||||
|
tgt_z_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/z-offset"));
|
||||||
|
}
|
||||||
|
if (tgt_x_offset_2_Node != nil){
|
||||||
|
tgt_x_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/x-offset"));
|
||||||
|
tgt_y_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/y-offset"));
|
||||||
|
tgt_z_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/z-offset"));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
0,
|
||||||
|
1);
|
||||||
|
|
||||||
|
} # end func
|
||||||
|
|
||||||
|
###
|
||||||
|
# ====================== end Initialization ========================================
|
||||||
|
###
|
||||||
|
|
||||||
|
|
||||||
|
# Fire it up
|
||||||
|
|
||||||
|
setlistener("sim/signals/fdm-initialized", initialize);
|
||||||
|
|
||||||
|
# end
|
|
@ -10,13 +10,6 @@
|
||||||
<wrap-t>repeat</wrap-t>
|
<wrap-t>repeat</wrap-t>
|
||||||
<internal-format>normalized</internal-format>
|
<internal-format>normalized</internal-format>
|
||||||
</texture>
|
</texture>
|
||||||
<texture n="1">
|
|
||||||
<image>Textures/Water/water-refraction.png</image>
|
|
||||||
<filter>linear-mipmap-linear</filter>
|
|
||||||
<wrap-s>repeat</wrap-s>
|
|
||||||
<wrap-t>repeat</wrap-t>
|
|
||||||
<internal-format>normalized</internal-format>
|
|
||||||
</texture>
|
|
||||||
<texture n="2">
|
<texture n="2">
|
||||||
<image>Textures/Water/water-normalmap.png</image>
|
<image>Textures/Water/water-normalmap.png</image>
|
||||||
<filter>linear-mipmap-linear</filter>
|
<filter>linear-mipmap-linear</filter>
|
||||||
|
@ -84,16 +77,6 @@
|
||||||
<use>texture[0]/internal-format</use>
|
<use>texture[0]/internal-format</use>
|
||||||
</internal-format>
|
</internal-format>
|
||||||
</texture-unit>
|
</texture-unit>
|
||||||
<texture-unit>
|
|
||||||
<unit>1</unit>
|
|
||||||
<image><use>texture[1]/image</use></image>
|
|
||||||
<filter><use>texture[1]/filter</use></filter>
|
|
||||||
<wrap-s><use>texture[1]/wrap-s</use></wrap-s>
|
|
||||||
<wrap-t><use>texture[1]/wrap-t</use></wrap-t>
|
|
||||||
<internal-format>
|
|
||||||
<use>texture[1]/internal-format</use>
|
|
||||||
</internal-format>
|
|
||||||
</texture-unit>
|
|
||||||
<texture-unit>
|
<texture-unit>
|
||||||
<unit>2</unit>
|
<unit>2</unit>
|
||||||
<image><use>texture[2]/image</use></image>
|
<image><use>texture[2]/image</use></image>
|
||||||
|
@ -122,11 +105,6 @@
|
||||||
<name>water_reflection</name>
|
<name>water_reflection</name>
|
||||||
<type>sampler-2d</type>
|
<type>sampler-2d</type>
|
||||||
<value type="int">0</value>
|
<value type="int">0</value>
|
||||||
</uniform>
|
|
||||||
<uniform>
|
|
||||||
<name>water_refraction</name>
|
|
||||||
<type>sampler-2d</type>
|
|
||||||
<value type="int">1</value>
|
|
||||||
</uniform>
|
</uniform>
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>water_normalmap</name>
|
<name>water_normalmap</name>
|
||||||
|
|
|
@ -26,8 +26,8 @@ updateContrail = func{
|
||||||
|
|
||||||
### Contrail
|
### Contrail
|
||||||
|
|
||||||
print ("init contrail");
|
|
||||||
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
|
printlog ("debug", "init contrail");
|
||||||
props.globals.initNode("environment/pressure-inhg", 1, "DOUBLE");
|
props.globals.initNode("environment/pressure-inhg", 1, "DOUBLE");
|
||||||
props.globals.initNode("environment/temperature-degc", 1, "DOUBLE");
|
props.globals.initNode("environment/temperature-degc", 1, "DOUBLE");
|
||||||
props.globals.initNode("environment/contrail", 1, "BOOL");
|
props.globals.initNode("environment/contrail", 1, "BOOL");
|
||||||
|
|
|
@ -178,6 +178,7 @@ var dialog = {
|
||||||
{ type: "checkbox", property: "controls/invisible", callback: "multiplayer.dialog.toggle_ignore",
|
{ type: "checkbox", property: "controls/invisible", callback: "multiplayer.dialog.toggle_ignore",
|
||||||
argprop: "callsign", label: "---------", halign: "right", font: font },
|
argprop: "callsign", label: "---------", halign: "right", font: font },
|
||||||
];
|
];
|
||||||
|
me.cs_warnings = {};
|
||||||
me.name = "who-is-online";
|
me.name = "who-is-online";
|
||||||
me.dialog = nil;
|
me.dialog = nil;
|
||||||
me.loopid = 0;
|
me.loopid = 0;
|
||||||
|
@ -275,12 +276,20 @@ var dialog = {
|
||||||
var ac = geo.Coord.new().set_xyz(x, y, z);
|
var ac = geo.Coord.new().set_xyz(x, y, z);
|
||||||
var distance = nil;
|
var distance = nil;
|
||||||
call(func distance = self.distance_to(ac), nil, var err = []);
|
call(func distance = self.distance_to(ac), nil, var err = []);
|
||||||
if (size(err)) {
|
if ((size(err))or(distance==nil)) {
|
||||||
|
# Oops, have errors. Bogus position data (and distance==nil).
|
||||||
|
if (me.cs_warnings[mp.callsign]!=1) {
|
||||||
|
# report each callsign once only (avoid cluttering)
|
||||||
|
me.cs_warnings[mp.callsign] = 1;
|
||||||
|
print("Received invalid position data: " ~ debug._error(mp.callsign));
|
||||||
|
}
|
||||||
# debug.printerror(err);
|
# debug.printerror(err);
|
||||||
# debug.dump(self, ac, mp);
|
# debug.dump(self, ac, mp);
|
||||||
# debug.tree(mp.node);
|
# debug.tree(mp.node);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
# Node with valid position data (and "distance!=nil").
|
||||||
n.setValues({
|
n.setValues({
|
||||||
"model-short": mp.available ? mp.model : "[" ~ mp.model ~ "]",
|
"model-short": mp.available ? mp.model : "[" ~ mp.model ~ "]",
|
||||||
"bearing-to": self.course_to(ac),
|
"bearing-to": self.course_to(ac),
|
||||||
|
@ -290,6 +299,7 @@ var dialog = {
|
||||||
"controls/invisible": contains(ignore, mp.callsign),
|
"controls/invisible": contains(ignore, mp.callsign),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (PILOTSDLG_RUNNING)
|
if (PILOTSDLG_RUNNING)
|
||||||
settimer(func me.update(id), 1, 1);
|
settimer(func me.update(id), 1, 1);
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
|
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
_setlistener("/sim/presets/latitude-deg", func {
|
_setlistener("/sim/presets/latitude-deg", func {
|
||||||
print("*** NEW LOCATION ***");
|
printlog("info", "*** NEW LOCATION ***");
|
||||||
settimer(func {
|
settimer(func {
|
||||||
var typ = getprop("/sim/type");
|
var typ = getprop("/sim/type");
|
||||||
var lat = getprop("/position/latitude-deg");
|
var lat = getprop("/position/latitude-deg");
|
||||||
|
@ -9,3 +10,4 @@ _setlistener("/sim/presets/latitude-deg", func {
|
||||||
fgcommand("dialog-show", props.Node.new({ "dialog-name": "seaport" }));
|
fgcommand("dialog-show", props.Node.new({ "dialog-name": "seaport" }));
|
||||||
}, 8);
|
}, 8);
|
||||||
}, 1);
|
}, 1);
|
||||||
|
});
|
||||||
|
|
|
@ -156,15 +156,8 @@
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<group>
|
<group>
|
||||||
<layout>hbox</layout>
|
<layout>hbox</layout>
|
||||||
|
|
||||||
|
@ -182,6 +175,26 @@
|
||||||
</text>
|
</text>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
<group>
|
||||||
|
<layout>hbox</layout>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<halign>left</halign>
|
||||||
|
<label>Set Formation</label>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<x>40</x>
|
||||||
|
<y>10</y>
|
||||||
|
<legend>Open/Close</legend>
|
||||||
|
<binding>
|
||||||
|
<command>nasal</command>
|
||||||
|
<script>formation.formation_dialog.toggle()</script>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</group>
|
||||||
|
|
||||||
<empty>
|
<empty>
|
||||||
<stretch>true</stretch>
|
<stretch>true</stretch>
|
||||||
</empty>
|
</empty>
|
||||||
|
|
|
@ -260,6 +260,8 @@
|
||||||
<binding>
|
<binding>
|
||||||
<command>nasal</command>
|
<command>nasal</command>
|
||||||
<script>
|
<script>
|
||||||
|
setprop("/sim/presets/parkpos", "");
|
||||||
|
|
||||||
if (!mode.airport.getBoolValue()) {
|
if (!mode.airport.getBoolValue()) {
|
||||||
setprop("/sim/presets/airport-id", "");
|
setprop("/sim/presets/airport-id", "");
|
||||||
setprop("/sim/presets/runway", "");
|
setprop("/sim/presets/runway", "");
|
||||||
|
|
90
gui/dialogs/model-cockpit-view.xml
Normal file
90
gui/dialogs/model-cockpit-view.xml
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<PropertyList>
|
||||||
|
<name>model-cockpit-view</name>
|
||||||
|
<x>5</x>
|
||||||
|
<y>3</y>
|
||||||
|
<layout>hbox</layout>
|
||||||
|
<default-padding>0</default-padding>
|
||||||
|
|
||||||
|
<color>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
<red>0</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
<alpha>0</alpha>
|
||||||
|
</color>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<legend><</legend>
|
||||||
|
<pref-width>20</pref-width>
|
||||||
|
<pref-height>20</pref-height>
|
||||||
|
<color>
|
||||||
|
<red>0.5</red>
|
||||||
|
<green>0.5</green>
|
||||||
|
<blue>0.5</blue>
|
||||||
|
<alpha>0.3</alpha>
|
||||||
|
</color>
|
||||||
|
<binding>
|
||||||
|
<command>nasal</command>
|
||||||
|
<script>model_cockpit_view.model_cockpit_view_handler.next(-1)</script>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<legend>></legend>
|
||||||
|
<pref-width>20</pref-width>
|
||||||
|
<pref-height>20</pref-height>
|
||||||
|
<color>
|
||||||
|
<red>0.5</red>
|
||||||
|
<green>0.5</green>
|
||||||
|
<blue>0.5</blue>
|
||||||
|
<alpha>0.3</alpha>
|
||||||
|
</color>
|
||||||
|
<binding>
|
||||||
|
<command>nasal</command>
|
||||||
|
<script>model_cockpit_view.model_cockpit_view_handler.next(1)</script>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<whatever>
|
||||||
|
<pref-width>6</pref-width>
|
||||||
|
</whatever>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<pref-width>0</pref-width>
|
||||||
|
<live>1</live>
|
||||||
|
<property>/sim/current-view/model-cockpit-view</property>
|
||||||
|
<color>
|
||||||
|
<red>1</red>
|
||||||
|
<green>1</green>
|
||||||
|
<blue>1</blue>
|
||||||
|
<alpha>1</alpha>
|
||||||
|
</color>
|
||||||
|
<font>
|
||||||
|
<name>HELVETICA_14</name>
|
||||||
|
</font>
|
||||||
|
</text>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<legend/>
|
||||||
|
<pref-width>200</pref-width>
|
||||||
|
<border>0</border>
|
||||||
|
<color>
|
||||||
|
<red>1</red>
|
||||||
|
<green>1</green>
|
||||||
|
<blue>1</blue>
|
||||||
|
<alpha>0</alpha>
|
||||||
|
</color>
|
||||||
|
<binding>
|
||||||
|
<command>nasal</command>
|
||||||
|
<script>
|
||||||
|
if (size(lsoview.model_cockpit_view_handler.list) <= 1)
|
||||||
|
return;
|
||||||
|
var isopen = !!getprop("sim/gui/dialogs/model-cockpit-view/open");
|
||||||
|
var toggle = isopen ? "dialog-close" : "dialog-show";
|
||||||
|
fgcommand(toggle, props.Node.new({ "dialog-name": "model-cockpit-view" }));
|
||||||
|
</script>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
|
</PropertyList>
|
|
@ -30,6 +30,8 @@ command interface /autopilot/route-manager/input:
|
||||||
var list = cmdarg().getNode("list");
|
var list = cmdarg().getNode("list");
|
||||||
var cmd = routem.getNode("input", 1);
|
var cmd = routem.getNode("input", 1);
|
||||||
var route = routem.getNode("route", 1);
|
var route = routem.getNode("route", 1);
|
||||||
|
var dep = routem.getNode("departure", 1);
|
||||||
|
var dest = routem.getNode("destination", 1);
|
||||||
|
|
||||||
var sel_index = func {
|
var sel_index = func {
|
||||||
return int(selection.getValue());
|
return int(selection.getValue());
|
||||||
|
@ -59,8 +61,8 @@ command interface /autopilot/route-manager/input:
|
||||||
cmd.setValue("@delete" ~ sel_index());
|
cmd.setValue("@delete" ~ sel_index());
|
||||||
}
|
}
|
||||||
|
|
||||||
var auto_route = func {
|
var route = func {
|
||||||
cmd.setValue();
|
cmd.setValue("@route" ~ sel_index());
|
||||||
}
|
}
|
||||||
|
|
||||||
var jump_to = func {
|
var jump_to = func {
|
||||||
|
@ -88,22 +90,36 @@ command interface /autopilot/route-manager/input:
|
||||||
|
|
||||||
var departureRunways = dlg.getNode("departure-runways", 1);
|
var departureRunways = dlg.getNode("departure-runways", 1);
|
||||||
var destRunways = dlg.getNode("destination-runways", 1);
|
var destRunways = dlg.getNode("destination-runways", 1);
|
||||||
|
var sids = dlg.getNode("sids", 1);
|
||||||
|
var stars = dlg.getNode("stars", 1);
|
||||||
|
|
||||||
var updateRunways = func {
|
var updateRunways = func {
|
||||||
var depIcao = routem.getNode("departure").getNode("airport").getValue();
|
var depIcao = dep.getNode("airport").getValue();
|
||||||
departureRunways.removeChildren("value");
|
departureRunways.removeChildren("value");
|
||||||
|
|
||||||
|
var currentRunway = dep.getNode("runway").getValue();
|
||||||
|
var foundCurrent = 0;
|
||||||
|
|
||||||
var apt = airportinfo(depIcao);
|
var apt = airportinfo(depIcao);
|
||||||
if (apt != nil) {
|
if (apt != nil) {
|
||||||
var i=0;
|
var i=0;
|
||||||
foreach (var rwy; keys(apt.runways)) {
|
foreach (var rwy; keys(apt.runways)) {
|
||||||
departureRunways.getNode("value[" ~ i ~ "]", 1).setValue(rwy);
|
departureRunways.getNode("value[" ~ i ~ "]", 1).setValue(rwy);
|
||||||
i += 1;
|
i += 1;
|
||||||
|
if (rwy == currentRunway) {
|
||||||
|
foundCurrent = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var destIcao = routem.getNode("destination").getNode("airport").getValue();
|
if (!foundCurrent) {
|
||||||
|
dep.getNode("runway").clearValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
var destIcao = dest.getNode("airport").getValue();
|
||||||
destRunways.removeChildren("value");
|
destRunways.removeChildren("value");
|
||||||
|
currentRunway = dest.getNode("runway").getValue();
|
||||||
|
foundCurrent = 0;
|
||||||
|
|
||||||
var apt = airportinfo(destIcao);
|
var apt = airportinfo(destIcao);
|
||||||
if (apt != nil) {
|
if (apt != nil) {
|
||||||
|
@ -111,11 +127,68 @@ command interface /autopilot/route-manager/input:
|
||||||
foreach (var rwy; keys(apt.runways)) {
|
foreach (var rwy; keys(apt.runways)) {
|
||||||
destRunways.getNode("value[" ~ i ~ "]", 1).setValue(rwy);
|
destRunways.getNode("value[" ~ i ~ "]", 1).setValue(rwy);
|
||||||
i += 1;
|
i += 1;
|
||||||
|
if (rwy == currentRunway) {
|
||||||
|
foundCurrent = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!foundCurrent) {
|
||||||
|
dest.getNode("runway").clearValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
print("updated runways");
|
||||||
gui.dialog_update("route-manager");
|
gui.dialog_update("route-manager");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var updateSIDs = func {
|
||||||
|
sids.removeChildren("value");
|
||||||
|
var depIcao = dep.getNode("airport").getValue();
|
||||||
|
var rwy = dep.getNode("runway").getValue();
|
||||||
|
var apt = airportinfo(depIcao);
|
||||||
|
if (apt == nil or apt.runways[rwy] == nil) {
|
||||||
|
dep.getNode("sid").clearValue();
|
||||||
|
gui.dialog_update("route-manager", "sid");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sids.getNode("value[0]", 1).setValue("(none)");
|
||||||
|
var i=1;
|
||||||
|
foreach (var s; apt.runways[rwy].sids) {
|
||||||
|
sids.getNode("value[" ~ i ~ "]", 1).setValue(s);
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
gui.dialog_update("route-manager", "sid");
|
||||||
|
}
|
||||||
|
|
||||||
|
var updateSTARs = func {
|
||||||
|
stars.removeChildren("value");
|
||||||
|
var icao = dest.getNode("airport").getValue();
|
||||||
|
var rwy = dest.getNode("runway").getValue();
|
||||||
|
var apt = airportinfo(icao);
|
||||||
|
if (apt == nil or apt.runways[rwy] == nil) {
|
||||||
|
dest.getNode("star").clearValue();
|
||||||
|
gui.dialog_update("route-manager", "star");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var i=1;
|
||||||
|
stars.getNode("value[0]", 1).setValue("(none)");
|
||||||
|
foreach (var s; apt.runways[rwy].stars) {
|
||||||
|
stars.getNode("value[" ~ i ~ "]", 1).setValue(s);
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
gui.dialog_update("route-manager", "star");
|
||||||
|
}
|
||||||
|
|
||||||
|
# initialise departure values based on current position
|
||||||
|
cmd.setValue("@posinit");
|
||||||
|
|
||||||
|
updateRunways();
|
||||||
|
updateSIDs();
|
||||||
|
updateSTARs();
|
||||||
</open>
|
</open>
|
||||||
|
|
||||||
<close>
|
<close>
|
||||||
|
@ -189,6 +262,31 @@ command interface /autopilot/route-manager/input:
|
||||||
<property>/autopilot/route-manager/departure/runway</property>
|
<property>/autopilot/route-manager/departure/runway</property>
|
||||||
<editable>false</editable>
|
<editable>false</editable>
|
||||||
<properties>/sim/gui/dialogs/route-manager/departure-runways</properties>
|
<properties>/sim/gui/dialogs/route-manager/departure-runways</properties>
|
||||||
|
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
<object-name>departure-runway</object-name>
|
||||||
|
</binding>
|
||||||
|
<binding>
|
||||||
|
<command>nasal</command>
|
||||||
|
<script>updateSIDs();</script>
|
||||||
|
</binding>
|
||||||
|
</combo>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>SID:</label>
|
||||||
|
</text>
|
||||||
|
<combo>
|
||||||
|
<name>sid</name>
|
||||||
|
<pref-width>100</pref-width>
|
||||||
|
<property>/autopilot/route-manager/departure/sid</property>
|
||||||
|
<editable>false</editable>
|
||||||
|
<properties>/sim/gui/dialogs/route-manager/sids</properties>
|
||||||
|
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
<object-name>sid</object-name>
|
||||||
|
</binding>
|
||||||
</combo>
|
</combo>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
@ -229,6 +327,32 @@ command interface /autopilot/route-manager/input:
|
||||||
<property>/autopilot/route-manager/destination/runway</property>
|
<property>/autopilot/route-manager/destination/runway</property>
|
||||||
<editable>false</editable>
|
<editable>false</editable>
|
||||||
<properties>/sim/gui/dialogs/route-manager/destination-runways</properties>
|
<properties>/sim/gui/dialogs/route-manager/destination-runways</properties>
|
||||||
|
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
<object-name>destination-runway</object-name>
|
||||||
|
</binding>
|
||||||
|
|
||||||
|
<binding>
|
||||||
|
<command>nasal</command>
|
||||||
|
<script>updateSTARs();</script>
|
||||||
|
</binding>
|
||||||
|
</combo>
|
||||||
|
|
||||||
|
<text>
|
||||||
|
<label>STAR:</label>
|
||||||
|
</text>
|
||||||
|
<combo>
|
||||||
|
<name>star</name>
|
||||||
|
<pref-width>100</pref-width>
|
||||||
|
<property>/autopilot/route-manager/destination/star</property>
|
||||||
|
<editable>false</editable>
|
||||||
|
<properties>/sim/gui/dialogs/route-manager/stars</properties>
|
||||||
|
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
<object-name>star</object-name>
|
||||||
|
</binding>
|
||||||
</combo>
|
</combo>
|
||||||
</group>
|
</group>
|
||||||
<!--
|
<!--
|
||||||
|
@ -341,6 +465,7 @@ command interface /autopilot/route-manager/input:
|
||||||
<pref-width>70</pref-width>
|
<pref-width>70</pref-width>
|
||||||
<binding>
|
<binding>
|
||||||
<command>dialog-apply</command>
|
<command>dialog-apply</command>
|
||||||
|
<object-name>input</object-name>
|
||||||
</binding>
|
</binding>
|
||||||
<binding>
|
<binding>
|
||||||
<command>nasal</command>
|
<command>nasal</command>
|
||||||
|
@ -389,6 +514,14 @@ command interface /autopilot/route-manager/input:
|
||||||
<script>remove()</script>
|
<script>remove()</script>
|
||||||
</binding>
|
</binding>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
<button>
|
||||||
|
<legend>Route</legend>
|
||||||
|
<binding>
|
||||||
|
<command>nasal</command>
|
||||||
|
<script>route()</script>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
<!--
|
<!--
|
||||||
<button>
|
<button>
|
||||||
<legend>Auto-route</legend>
|
<legend>Auto-route</legend>
|
||||||
|
|
|
@ -1313,9 +1313,9 @@ Shared parameters for various materials.
|
||||||
<path>Models/Buildings/red-barn.ac</path>
|
<path>Models/Buildings/red-barn.ac</path>
|
||||||
<path>Models/Buildings/horse-stable.ac</path>
|
<path>Models/Buildings/horse-stable.ac</path>
|
||||||
<path>Models/Buildings/cow-stable.ac</path>
|
<path>Models/Buildings/cow-stable.ac</path>
|
||||||
<path>Models/Buildings/farmhouse1.ac</path>
|
<path>Models/Agriculture/farmhouse1.ac</path>
|
||||||
<path>Models/Buildings/farmhouse2.ac</path>
|
<path>Models/Agriculture/farmhouse2.ac</path>
|
||||||
<path>Models/Buildings/farmhouse3.ac</path>
|
<path>Models/Agriculture/farmhouse3.ac</path>
|
||||||
<coverage-m2>750000</coverage-m2>
|
<coverage-m2>750000</coverage-m2>
|
||||||
<heading-type>random</heading-type>
|
<heading-type>random</heading-type>
|
||||||
</object>
|
</object>
|
||||||
|
@ -1376,9 +1376,9 @@ Shared parameters for various materials.
|
||||||
<path>Models/Buildings/red-barn.ac</path>
|
<path>Models/Buildings/red-barn.ac</path>
|
||||||
<path>Models/Buildings/horse-stable.ac</path>
|
<path>Models/Buildings/horse-stable.ac</path>
|
||||||
<path>Models/Buildings/cow-stable.ac</path>
|
<path>Models/Buildings/cow-stable.ac</path>
|
||||||
<path>Models/Buildings/farmhouse1.ac</path>
|
<path>Models/Agriculture/farmhouse1.ac</path>
|
||||||
<path>Models/Buildings/farmhouse2.ac</path>
|
<path>Models/Agriculture/farmhouse2.ac</path>
|
||||||
<path>Models/Buildings/farmhouse3.ac</path>
|
<path>Models/Agriculture/farmhouse3.ac</path>
|
||||||
<coverage-m2>750000</coverage-m2>
|
<coverage-m2>750000</coverage-m2>
|
||||||
<heading-type>random</heading-type>
|
<heading-type>random</heading-type>
|
||||||
</object>
|
</object>
|
||||||
|
@ -1437,9 +1437,9 @@ Shared parameters for various materials.
|
||||||
<path>Models/Buildings/red-barn.ac</path>
|
<path>Models/Buildings/red-barn.ac</path>
|
||||||
<path>Models/Buildings/horse-stable.ac</path>
|
<path>Models/Buildings/horse-stable.ac</path>
|
||||||
<path>Models/Buildings/cow-stable.ac</path>
|
<path>Models/Buildings/cow-stable.ac</path>
|
||||||
<path>Models/Buildings/farmhouse1.ac</path>
|
<path>Models/Agriculture/farmhouse1.ac</path>
|
||||||
<path>Models/Buildings/farmhouse2.ac</path>
|
<path>Models/Agriculture/farmhouse2.ac</path>
|
||||||
<path>Models/Buildings/farmhouse3.ac</path>
|
<path>Models/Agriculture/farmhouse3.ac</path>
|
||||||
<coverage-m2>750000</coverage-m2>
|
<coverage-m2>750000</coverage-m2>
|
||||||
<heading-type>random</heading-type>
|
<heading-type>random</heading-type>
|
||||||
</object>
|
</object>
|
||||||
|
@ -2133,9 +2133,9 @@ Shared parameters for various materials.
|
||||||
<path>Models/Buildings/red-barn.ac</path>
|
<path>Models/Buildings/red-barn.ac</path>
|
||||||
<path>Models/Buildings/horse-stable.ac</path>
|
<path>Models/Buildings/horse-stable.ac</path>
|
||||||
<path>Models/Buildings/cow-stable.ac</path>
|
<path>Models/Buildings/cow-stable.ac</path>
|
||||||
<path>Models/Buildings/farmhouse1.ac</path>
|
<path>Models/Agriculture/farmhouse1.ac</path>
|
||||||
<path>Models/Buildings/farmhouse2.ac</path>
|
<path>Models/Agriculture/farmhouse2.ac</path>
|
||||||
<path>Models/Buildings/farmhouse3.ac</path>
|
<path>Models/Agriculture/farmhouse3.ac</path>
|
||||||
<coverage-m2>750000</coverage-m2>
|
<coverage-m2>750000</coverage-m2>
|
||||||
<heading-type>random</heading-type>
|
<heading-type>random</heading-type>
|
||||||
</object>
|
</object>
|
||||||
|
@ -2195,9 +2195,9 @@ Shared parameters for various materials.
|
||||||
<path>Models/Buildings/red-barn.ac</path>
|
<path>Models/Buildings/red-barn.ac</path>
|
||||||
<path>Models/Buildings/horse-stable.ac</path>
|
<path>Models/Buildings/horse-stable.ac</path>
|
||||||
<path>Models/Buildings/cow-stable.ac</path>
|
<path>Models/Buildings/cow-stable.ac</path>
|
||||||
<path>Models/Buildings/farmhouse1.ac</path>
|
<path>Models/Agriculture/farmhouse1.ac</path>
|
||||||
<path>Models/Buildings/farmhouse2.ac</path>
|
<path>Models/Agriculture/farmhouse2.ac</path>
|
||||||
<path>Models/Buildings/farmhouse3.ac</path>
|
<path>Models/Agriculture/farmhouse3.ac</path>
|
||||||
<coverage-m2>750000</coverage-m2>
|
<coverage-m2>750000</coverage-m2>
|
||||||
<heading-type>random</heading-type>
|
<heading-type>random</heading-type>
|
||||||
</object>
|
</object>
|
||||||
|
@ -2257,9 +2257,9 @@ Shared parameters for various materials.
|
||||||
<path>Models/Buildings/red-barn.ac</path>
|
<path>Models/Buildings/red-barn.ac</path>
|
||||||
<path>Models/Buildings/horse-stable.ac</path>
|
<path>Models/Buildings/horse-stable.ac</path>
|
||||||
<path>Models/Buildings/cow-stable.ac</path>
|
<path>Models/Buildings/cow-stable.ac</path>
|
||||||
<path>Models/Buildings/farmhouse1.ac</path>
|
<path>Models/Agriculture/farmhouse1.ac</path>
|
||||||
<path>Models/Buildings/farmhouse2.ac</path>
|
<path>Models/Agriculture/farmhouse2.ac</path>
|
||||||
<path>Models/Buildings/farmhouse3.ac</path>
|
<path>Models/Agriculture/farmhouse3.ac</path>
|
||||||
<coverage-m2>750000</coverage-m2>
|
<coverage-m2>750000</coverage-m2>
|
||||||
<heading-type>random</heading-type>
|
<heading-type>random</heading-type>
|
||||||
</object>
|
</object>
|
||||||
|
|
Loading…
Add table
Reference in a new issue