Merge branch 'master' of \New Git\fgdata
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 746 KiB After Width: | Height: | Size: 438 KiB |
Before Width: | Height: | Size: 492 KiB After Width: | Height: | Size: 373 KiB |
Before Width: | Height: | Size: 701 KiB After Width: | Height: | Size: 448 KiB |
Before Width: | Height: | Size: 840 KiB After Width: | Height: | Size: 507 KiB |
Before Width: | Height: | Size: 743 KiB After Width: | Height: | Size: 541 KiB |
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 174 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 24 KiB |
|
@ -152,7 +152,10 @@ var update_loop = func {
|
|||
|
||||
setprop("/consumables/fuel/total-fuel-gals", gals);
|
||||
setprop("/consumables/fuel/total-fuel-lbs", lbs);
|
||||
setprop("/consumables/fuel/total-fuel-norm", gals / cap);
|
||||
if (cap == 0)
|
||||
setprop("/consumables/fuel/total-fuel-norm", 0);
|
||||
else
|
||||
setprop("/consumables/fuel/total-fuel-norm", gals / cap);
|
||||
|
||||
foreach (var e; engines)
|
||||
e.getNode("out-of-fuel", 1).setBoolValue(out_of_fuel);
|
||||
|
|
52
Aircraft/Instruments-3d/cdu/README
Normal file
|
@ -0,0 +1,52 @@
|
|||
## Control Display Unit (CDU) for FlightGear Flight Simulator
|
||||
|
||||
# AUTHORS
|
||||
|
||||
Gijs de Rooy - Nasal and XML
|
||||
Syd Adams - Boeing model and texture
|
||||
|
||||
# WIKI
|
||||
|
||||
The FlightGear wiki hosts additional information: http://wiki.flightgear.org/index.php/Control_Display_Unit
|
||||
|
||||
# IMPLEMENTATION
|
||||
|
||||
Add the following tags below the </sim> tag of your aircraft's -set.xml file.
|
||||
|
||||
<instrumentation>
|
||||
...
|
||||
|
||||
<cdu>
|
||||
<config>
|
||||
<texture>boeing_brown.png</texture>
|
||||
</config>
|
||||
<display>IDENT</display>
|
||||
<ident>
|
||||
<model>747-400</model>
|
||||
<engines>-80C2B1F</engines>
|
||||
</ident>
|
||||
<input type="string"/>
|
||||
<serviceable>true</serviceable>
|
||||
</cdu>
|
||||
|
||||
...
|
||||
</instrumentation>
|
||||
|
||||
Each single CDU unit must be set in your aircraft's model .xml file, like:
|
||||
|
||||
<model>
|
||||
<path>Aircraft/Instruments-3d/cdu/boeing.xml</path>
|
||||
<offsets>
|
||||
<x-m> 0.858</x-m>
|
||||
<y-m> 0.186</y-m>
|
||||
<z-m> 0.489</z-m>
|
||||
<pitch-deg>-75</pitch-deg>
|
||||
</offsets>
|
||||
<overlay>
|
||||
<texture>boeing_brown.png</texture>
|
||||
</overlay>
|
||||
</model>
|
||||
|
||||
Currently there are two textures to choose from:
|
||||
- boeing_brown.png
|
||||
- boeing_grey.png
|
7162
Aircraft/Instruments-3d/cdu/boeing.ac
Normal file
362
Aircraft/Instruments-3d/cdu/boeing.nas
Normal file
|
@ -0,0 +1,362 @@
|
|||
var input = func(v) {
|
||||
setprop("/instrumentation/cdu/input",getprop("/instrumentation/cdu/input")~v);
|
||||
}
|
||||
|
||||
var delete = func {
|
||||
var length = size(getprop("/instrumentation/cdu/input")) - 1;
|
||||
setprop("/instrumentation/cdu/input",substr(getprop("/instrumentation/cdu/input"),0,length));
|
||||
}
|
||||
|
||||
var i = 0;
|
||||
|
||||
var plusminus = func {
|
||||
var end = size(getprop("/instrumentation/cdu/input"));
|
||||
var start = end - 1;
|
||||
var lastchar = substr(getprop("/instrumentation/cdu/input"),start,end);
|
||||
if (lastchar == "+"){
|
||||
me.delete();
|
||||
me.input('-');
|
||||
}
|
||||
if (lastchar == "-"){
|
||||
me.delete();
|
||||
me.input('+');
|
||||
}
|
||||
if ((lastchar != "-") and (lastchar != "+")){
|
||||
me.input('+');
|
||||
}
|
||||
}
|
||||
|
||||
var cdu = func{
|
||||
|
||||
var display = getprop("/instrumentation/cdu/display");
|
||||
var serviceable = getprop("/instrumentation/cdu/serviceable");
|
||||
title = ""; page = "";
|
||||
line1l = ""; line2l = ""; line3l = ""; line4l = ""; line5l = ""; line6l = "";
|
||||
line1lt = ""; line2lt = ""; line3lt = ""; line4lt = ""; line5lt = ""; line6lt = "";
|
||||
line1c = ""; line2c = ""; line3c = ""; line4c = ""; line5c = ""; line6c = "";
|
||||
line1ct = ""; line2ct = ""; line3ct = ""; line4ct = ""; line5ct = ""; line6ct = "";
|
||||
line1r = ""; line2r = ""; line3r = ""; line4r = ""; line5r = ""; line6r = "";
|
||||
line1rt = ""; line2rt = ""; line3rt = ""; line4rt = ""; line5rt = ""; line6rt = "";
|
||||
|
||||
if (display == "MENU") {
|
||||
title = "MENU";
|
||||
line1l = "<FMC";
|
||||
line1r = "SELECT>";
|
||||
line2l = "<ACARS";
|
||||
line2r = "SELECT>";
|
||||
line6l = "<ACMS";
|
||||
line6r = "CMC>";
|
||||
}
|
||||
if (display == "ALTN_NAV_RAD") {
|
||||
title = "ALTN NAV RADIO";
|
||||
}
|
||||
if (display == "APP_REF") {
|
||||
title = "APPROACH REF";
|
||||
line1lt = "GROSS WT";
|
||||
line1rt = "FLAPS VREF";
|
||||
line1l = getprop("/instrumentation/fmc/vspeeds/Vref");
|
||||
line4lt = getprop("/autopilot/route-manager/destination/airport");
|
||||
line6l = "<INDEX";
|
||||
line6r = "THRUST LIM>";
|
||||
}
|
||||
if (display == "DEP_ARR_INDEX") {
|
||||
title = "DEP/ARR INDEX";
|
||||
line1l = "<DEP";
|
||||
line1ct = "RTE 1";
|
||||
line1c = getprop("/autopilot/route-manager/departure/airport");
|
||||
line1r = "ARR>";
|
||||
line2c = getprop("/autopilot/route-manager/destination/airport");
|
||||
line2r = "ARR>";
|
||||
line3l = "<DEP";
|
||||
line3r = "ARR>";
|
||||
line4r = "ARR>";
|
||||
line6lt ="DEP";
|
||||
line6l = "<----";
|
||||
line6c = "OTHER";
|
||||
line6rt ="ARR";
|
||||
line6r = "---->";
|
||||
}
|
||||
if (display == "EICAS_MODES") {
|
||||
title = "EICAS MODES";
|
||||
line1l = "<ENG";
|
||||
line1r = "FUEL>";
|
||||
line2l = "<STAT";
|
||||
line2r = "GEAR>";
|
||||
line5l = "<CANC";
|
||||
line5r = "RCL>";
|
||||
line6r = "SYNOPTICS>";
|
||||
}
|
||||
if (display == "EICAS_SYN") {
|
||||
title = "EICAS SYNOPTICS";
|
||||
line1l = "<ELEC";
|
||||
line1r = "HYD>";
|
||||
line2l = "<ECS";
|
||||
line2r = "DOORS>";
|
||||
line5l = "<CANC";
|
||||
line5r = "RCL>";
|
||||
line6r = "MODES>";
|
||||
}
|
||||
if (display == "FIX_INFO") {
|
||||
title = "FIX INFO";
|
||||
line1l = sprintf("%3.2f", getprop("/instrumentation/nav[0]/frequencies/selected-mhz-fmt"));
|
||||
line1r = sprintf("%3.2f", getprop("/instrumentation/nav[1]/frequencies/selected-mhz-fmt"));
|
||||
line2l = sprintf("%3.2f", getprop("/instrumentation/nav[0]/radials/selected-deg"));
|
||||
line2r = sprintf("%3.2f", getprop("/instrumentation/nav[1]/radials/selected-deg"));
|
||||
line6l = "<ERASE FIX";
|
||||
}
|
||||
if (display == "IDENT") {
|
||||
title = "IDENT";
|
||||
line1lt = "MODEL";
|
||||
line1l = getprop("/instrumentation/cdu/ident/model");
|
||||
line1rt = "ENGINES";
|
||||
line2lt = "NAV DATA";
|
||||
line1r = getprop("/instrumentation/cdu/ident/engines");
|
||||
line6l = "<INDEX";
|
||||
line6r = "POS INIT>";
|
||||
}
|
||||
if (display == "INIT_REF") {
|
||||
title = "INIT/REF INDEX";
|
||||
line1l = "<IDENT";
|
||||
line1r = "NAV DATA>";
|
||||
line2l = "<POS";
|
||||
line3l = "<PERF";
|
||||
line4l = "<THRUST LIM";
|
||||
line5l = "<TAKEOFF";
|
||||
line6l = "<APPROACH";
|
||||
line6r = "MAINT>";
|
||||
}
|
||||
if (display == "NAV_RAD") {
|
||||
title = "NAV RADIO";
|
||||
line1lt = "VOR L";
|
||||
line1l = sprintf("%3.2f", getprop("/instrumentation/nav[0]/frequencies/selected-mhz-fmt"));
|
||||
line1rt = "VOR R";
|
||||
line1r = sprintf("%3.2f", getprop("/instrumentation/nav[1]/frequencies/selected-mhz-fmt"));
|
||||
line2lt = "CRS";
|
||||
line2ct = "RADIAL";
|
||||
line2c = sprintf("%3.2f", getprop("/instrumentation/nav[0]/radials/selected-deg"))~" "~sprintf("%3.2f", getprop("/instrumentation/nav[1]/radials/selected-deg"));
|
||||
line2rt = "CRS";
|
||||
line3lt = "ADF L";
|
||||
line3l = sprintf("%3.2f", getprop("/instrumentation/adf[0]/frequencies/selected-khz"));
|
||||
line3rt = "ADF R";
|
||||
}
|
||||
if (display == "PERF_INIT") {
|
||||
title = "PERF INIT";
|
||||
line1lt = "GR WT";
|
||||
line1rt = "CRZ ALT";
|
||||
line1r = getprop("/autopilot/route-manager/cruise/altitude-ft");
|
||||
line2lt = "FUEL";
|
||||
line3lt = "ZFW";
|
||||
line4lt = "RESERVES";
|
||||
line4rt = "CRZ CG";
|
||||
line5lt = "COST INDEX";
|
||||
line5rt = "STEP SIZE";
|
||||
line6l = "<INDEX";
|
||||
line6r = "THRUST LIM>";
|
||||
if (getprop("/sim/flight-model") == "jsb") {
|
||||
line1l = sprintf("%3.1f", (getprop("/fdm/jsbsim/inertia/weight-lbs")/1000));
|
||||
line2l = sprintf("%3.1f", (getprop("/fdm/jsbsim/propulsion/total-fuel-lbs")/1000));
|
||||
line3l = sprintf("%3.1f", (getprop("/fdm/jsbsim/inertia/empty-weight-lbs")/1000));
|
||||
}
|
||||
elsif (getprop("/sim/flight-model") == "yasim") {
|
||||
line1l = sprintf("%3.1f", (getprop("/yasim/gross-weight-lbs")/1000));
|
||||
line2l = sprintf("%3.1f", (getprop("/consumables/fuel/total-fuel-lbs")/1000));
|
||||
|
||||
yasim_emptyweight = getprop("/yasim/gross-weight-lbs");
|
||||
yasim_emptyweight -= getprop("/consumables/fuel/total-fuel-lbs");
|
||||
yasim_weights = props.globals.getNode("/sim").getChildren("weight");
|
||||
for (i = 0; i < size(yasim_weights); i += 1) {
|
||||
yasim_emptyweight -= yasim_weights[i].getChild("weight-lb").getValue();
|
||||
}
|
||||
|
||||
line3l = sprintf("%3.1f", yasim_emptyweight/1000);
|
||||
}
|
||||
}
|
||||
if (display == "POS_INIT") {
|
||||
title = "POS INIT";
|
||||
line6l = "<INDEX";
|
||||
line6r = "ROUTE>";
|
||||
}
|
||||
if (display == "POS_REF") {
|
||||
title = "POS REF";
|
||||
line1lt = "FMC POST";
|
||||
line1l = getprop("/position/latitude-string")~" "~getprop("/position/longitude-string");
|
||||
line1rt = "GS";
|
||||
line1r = sprintf("%3.0f", getprop("/velocities/groundspeed-kt"));
|
||||
line5l = "<PURGE";
|
||||
line5r = "INHIBIT>";
|
||||
line6l = "<INDEX";
|
||||
line6r = "BRG/DIST>";
|
||||
}
|
||||
if (display == "RTE1_1") {
|
||||
title = "RTE 1";
|
||||
page = "1/2";
|
||||
line1lt = "ORIGIN";
|
||||
line1l = getprop("/autopilot/route-manager/departure/airport");
|
||||
line1rt = "DEST";
|
||||
line1r = getprop("/autopilot/route-manager/destination/airport");
|
||||
line2lt = "RUNWAY";
|
||||
line2l = getprop("/autopilot/route-manager/departure/runway");
|
||||
line2rt = "FLT NO";
|
||||
line3rt = "CO ROUTE";
|
||||
line5l = "<RTE COPY";
|
||||
line6l = "<RTE 2";
|
||||
if (getprop("/autopilot/route-manager/active") == 1){
|
||||
line6r = "ACTIVATE>";
|
||||
}
|
||||
else {
|
||||
line6r = "PERF INIT>";
|
||||
}
|
||||
}
|
||||
if (display == "RTE1_2") {
|
||||
title = "RTE 1";
|
||||
page = "2/2";
|
||||
line1lt = "VIA";
|
||||
line1rt = "TO";
|
||||
if (getprop("/autopilot/route-manager/route/wp[1]/id") != nil){
|
||||
line1r = getprop("/autopilot/route-manager/route/wp[1]/id");
|
||||
}
|
||||
if (getprop("/autopilot/route-manager/route/wp[2]/id") != nil){
|
||||
line2r = getprop("/autopilot/route-manager/route/wp[2]/id");
|
||||
}
|
||||
if (getprop("/autopilot/route-manager/route/wp[3]/id") != nil){
|
||||
line3r = getprop("/autopilot/route-manager/route/wp[3]/id");
|
||||
}
|
||||
if (getprop("/autopilot/route-manager/route/wp[4]/id") != nil){
|
||||
line4r = getprop("/autopilot/route-manager/route/wp[4]/id");
|
||||
}
|
||||
if (getprop("/autopilot/route-manager/route/wp[5]/id") != nil){
|
||||
line5r = getprop("/autopilot/route-manager/route/wp[5]/id");
|
||||
}
|
||||
line6l = "<RTE 2";
|
||||
line6r = "ACTIVATE>";
|
||||
}
|
||||
if (display == "RTE1_ARR") {
|
||||
title = getprop("/autopilot/route-manager/destination/airport")~" ARRIVALS";
|
||||
line1lt = "STARS";
|
||||
line1rt = "APPROACHES";
|
||||
line1r = getprop("/autopilot/route-manager/destination/runway");
|
||||
line2lt = "TRANS";
|
||||
line3rt = "RUNWAYS";
|
||||
line6l = "<INDEX";
|
||||
line6r = "ROUTE>";
|
||||
}
|
||||
if (display == "RTE1_DEP") {
|
||||
title = getprop("/autopilot/route-manager/departure/airport")~" DEPARTURES";
|
||||
line1lt = "SIDS";
|
||||
line1rt = "RUNWAYS";
|
||||
line1r = getprop("/autopilot/route-manager/departure/runway");
|
||||
line2lt = "TRANS";
|
||||
line6l = "<ERASE";
|
||||
line6r = "ROUTE>";
|
||||
}
|
||||
if (display == "RTE1_LEGS") {
|
||||
if (getprop("/autopilot/route-manager/active") == 1){
|
||||
title = "ACT RTE 1 LEGS";
|
||||
}
|
||||
else {
|
||||
title = "RTE 1 LEGS";
|
||||
}
|
||||
if (getprop("/autopilot/route-manager/route/wp[1]/id") != nil){
|
||||
line1l = getprop("/autopilot/route-manager/route/wp[1]/id");
|
||||
}
|
||||
if (getprop("/autopilot/route-manager/route/wp[2]/id") != nil){
|
||||
line2l = getprop("/autopilot/route-manager/route/wp[2]/id");
|
||||
}
|
||||
if (getprop("/autopilot/route-manager/route/wp[3]/id") != nil){
|
||||
line3l = getprop("/autopilot/route-manager/route/wp[3]/id");
|
||||
}
|
||||
if (getprop("/autopilot/route-manager/route/wp[4]/id") != nil){
|
||||
line4l = getprop("/autopilot/route-manager/route/wp[4]/id");
|
||||
}
|
||||
if (getprop("/autopilot/route-manager/route/wp[5]/id") != nil){
|
||||
line5l = getprop("/autopilot/route-manager/route/wp[5]/id");
|
||||
}
|
||||
line6l = "<RTE 2 LEGS";
|
||||
line6r = "RTE DATA>";
|
||||
}
|
||||
if (display == "THR_LIM") {
|
||||
title = "THRUST LIM";
|
||||
line1lt = "SEL";
|
||||
line1ct = "OAT";
|
||||
line1c = sprintf("%2.0f", getprop("/environment/temperature-degc"))~" °C";
|
||||
line1rt = "TO 1 N1";
|
||||
line2l = "<TO";
|
||||
line2r = "CLB>";
|
||||
line3lt = "TO 1";
|
||||
line3c = "<SEL> <ARM>";
|
||||
line3r = "CLB 1>";
|
||||
line4lt = "TO 2";
|
||||
line4r = "CLB 2>";
|
||||
line6l = "<INDEX";
|
||||
line6r = "TAKEOFF>";
|
||||
}
|
||||
if (display == "TO_REF") {
|
||||
title = "TAKEOFF REF";
|
||||
line1lt = "FLAP/ACCEL HT";
|
||||
line1l = getprop("/instrumentation/fmc/to-flap");
|
||||
line1rt = "REF V1";
|
||||
line1r = sprintf("%3.0f", getprop("/instrumentation/fmc/vspeeds/V1"));
|
||||
line2lt = "E/O ACCEL HT";
|
||||
line2rt = "REF VR";
|
||||
line2r = sprintf("%3.0f", getprop("/instrumentation/fmc/vspeeds/VR"));
|
||||
line3lt = "THR REDUCTION";
|
||||
line3rt = "REF V2";
|
||||
line3r = sprintf("%3.0f", getprop("/instrumentation/fmc/vspeeds/V2"));
|
||||
line4lt = "WIND/SLOPE";
|
||||
line4rt = "TRIM CG";
|
||||
line5rt = "POS SHIFT";
|
||||
line6l = "<INDEX";
|
||||
line6r = "POS INIT>";
|
||||
}
|
||||
|
||||
if (serviceable != 1){
|
||||
title = ""; page = "";
|
||||
line1l = ""; line2l = ""; line3l = ""; line4l = ""; line5l = ""; line6l = "";
|
||||
line1lt = ""; line2lt = ""; line3lt = ""; line4lt = ""; line5lt = ""; line6lt = "";
|
||||
line1c = ""; line2c = ""; line3c = ""; line4c = ""; line5c = ""; line6c = "";
|
||||
line1ct = ""; line2ct = ""; line3ct = ""; line4ct = ""; line5ct = ""; line6ct = "";
|
||||
line1r = ""; line2r = ""; line3r = ""; line4r = ""; line5r = ""; line6r = "";
|
||||
line1rt = ""; line2rt = ""; line3rt = ""; line4rt = ""; line5rt = ""; line6rt = "";
|
||||
}
|
||||
|
||||
setprop("/instrumentation/cdu/output/title",title);
|
||||
setprop("/instrumentation/cdu/output/page",page);
|
||||
setprop("/instrumentation/cdu/output/line1/left",line1l);
|
||||
setprop("/instrumentation/cdu/output/line2/left",line2l);
|
||||
setprop("/instrumentation/cdu/output/line3/left",line3l);
|
||||
setprop("/instrumentation/cdu/output/line4/left",line4l);
|
||||
setprop("/instrumentation/cdu/output/line5/left",line5l);
|
||||
setprop("/instrumentation/cdu/output/line6/left",line6l);
|
||||
setprop("/instrumentation/cdu/output/line1/left-title",line1lt);
|
||||
setprop("/instrumentation/cdu/output/line2/left-title",line2lt);
|
||||
setprop("/instrumentation/cdu/output/line3/left-title",line3lt);
|
||||
setprop("/instrumentation/cdu/output/line4/left-title",line4lt);
|
||||
setprop("/instrumentation/cdu/output/line5/left-title",line5lt);
|
||||
setprop("/instrumentation/cdu/output/line6/left-title",line6lt);
|
||||
setprop("/instrumentation/cdu/output/line1/center",line1c);
|
||||
setprop("/instrumentation/cdu/output/line2/center",line2c);
|
||||
setprop("/instrumentation/cdu/output/line3/center",line3c);
|
||||
setprop("/instrumentation/cdu/output/line4/center",line4c);
|
||||
setprop("/instrumentation/cdu/output/line5/center",line5c);
|
||||
setprop("/instrumentation/cdu/output/line6/center",line6c);
|
||||
setprop("/instrumentation/cdu/output/line1/center-title",line1ct);
|
||||
setprop("/instrumentation/cdu/output/line2/center-title",line2ct);
|
||||
setprop("/instrumentation/cdu/output/line3/center-title",line3ct);
|
||||
setprop("/instrumentation/cdu/output/line4/center-title",line4ct);
|
||||
setprop("/instrumentation/cdu/output/line5/center-title",line5ct);
|
||||
setprop("/instrumentation/cdu/output/line6/center-title",line6ct);
|
||||
setprop("/instrumentation/cdu/output/line1/right",line1r);
|
||||
setprop("/instrumentation/cdu/output/line2/right",line2r);
|
||||
setprop("/instrumentation/cdu/output/line3/right",line3r);
|
||||
setprop("/instrumentation/cdu/output/line4/right",line4r);
|
||||
setprop("/instrumentation/cdu/output/line5/right",line5r);
|
||||
setprop("/instrumentation/cdu/output/line6/right",line6r);
|
||||
setprop("/instrumentation/cdu/output/line1/right-title",line1rt);
|
||||
setprop("/instrumentation/cdu/output/line2/right-title",line2rt);
|
||||
setprop("/instrumentation/cdu/output/line3/right-title",line3rt);
|
||||
setprop("/instrumentation/cdu/output/line4/right-title",line4rt);
|
||||
setprop("/instrumentation/cdu/output/line5/right-title",line5rt);
|
||||
setprop("/instrumentation/cdu/output/line6/right-title",line6rt);
|
||||
settimer(cdu,0.2);
|
||||
}
|
||||
_setlistener("/sim/signals/fdm-initialized", cdu);
|
2051
Aircraft/Instruments-3d/cdu/boeing.xml
Normal file
BIN
Aircraft/Instruments-3d/cdu/boeing_brown.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
Aircraft/Instruments-3d/cdu/boeing_grey.png
Normal file
After Width: | Height: | Size: 72 KiB |
58
Aircraft/Instruments-3d/cdu/display-text-value.xml
Normal file
|
@ -0,0 +1,58 @@
|
|||
<!-- $Id: display-text.xml,v 1.2 2009/11/02 16:31:26 vmmeazza Exp $ -->
|
||||
<!--
|
||||
Zeppelin NT07 airship.
|
||||
|
||||
Copyright (C) 2009 Anders Gidenstam (anders(at)gidenstam.org)
|
||||
This file is licensed under the GPL license v2 or later.
|
||||
-->
|
||||
<PropertyList>
|
||||
|
||||
<params>
|
||||
<property type="string">engines/engine[0]/mp-inhg</property>
|
||||
<factor type="double">1.0</factor>
|
||||
<offset type="double">0.0</offset>
|
||||
<format type="string">%2.1f</format>
|
||||
<color>
|
||||
<red type="double">0.0</red>
|
||||
<green type="double">1.0</green>
|
||||
<blue type="double">0.0</blue>
|
||||
</color>
|
||||
</params>
|
||||
|
||||
<text>
|
||||
<name>text</name>
|
||||
<axis-alignment>yz-plane</axis-alignment>
|
||||
<type type="string">text-value</type>
|
||||
<property alias="../../params/property"/>
|
||||
<scale alias="../../params/factor"/>
|
||||
<offset alias="../../params/offset"/>
|
||||
<format>%s</format>
|
||||
<truncate type="bool">false</truncate>
|
||||
<font type="string">Helvetica.txf</font>
|
||||
<draw-text type="bool">true</draw-text>
|
||||
<draw-alignment type="bool">false</draw-alignment>
|
||||
<draw-boundingbox type="bool">false</draw-boundingbox>
|
||||
<alignment alias="../../params/alignment"/>
|
||||
<character-size alias="../../params/character-size"/>
|
||||
</text>
|
||||
|
||||
<animation>
|
||||
<type>material</type>
|
||||
<diffuse>
|
||||
<red alias="../../../params/color/red"/>
|
||||
<green alias="../../../params/color/green"/>
|
||||
<blue alias="../../../params/color/blue"/>
|
||||
</diffuse>
|
||||
<ambient>
|
||||
<red alias="../../../params/color/red"/>
|
||||
<green alias="../../../params/color/green"/>
|
||||
<blue alias="../../../params/color/blue"/>
|
||||
</ambient>
|
||||
<emission>
|
||||
<red alias="../../../params/color/red"/>
|
||||
<green alias="../../../params/color/green"/>
|
||||
<blue alias="../../../params/color/blue"/>
|
||||
</emission>
|
||||
</animation>
|
||||
|
||||
</PropertyList>
|
BIN
Aircraft/Instruments-3d/magneto-switch/key0.png
Normal file
After Width: | Height: | Size: 25 KiB |
|
@ -1,23 +1,22 @@
|
|||
AC3Db
|
||||
MATERIAL "ac3dmat1" rgb 1 1 1 amb 0.2 0.2 0.2 emis 0 0 0 spec 0.2 0.2 0.2 shi 128 trans 0
|
||||
MATERIAL "ac3dmat13" rgb 0.533 0.533 0.533 amb 0.533 0.533 0.533 emis 0 0 0 spec 0 0 0 shi 128 trans 0
|
||||
MATERIAL "ac3dmat1" rgb 1 1 1 amb 0.745 0.745 0.745 emis 0 0 0 spec 0 0 0 shi 10 trans 0
|
||||
MATERIAL "ac3dmat6" rgb 0 1 0 amb 0.2 0.2 0.2 emis 0 0 0 spec 0 0 0 shi 10 trans 1
|
||||
OBJECT world
|
||||
kids 7
|
||||
OBJECT poly
|
||||
name "magsw"
|
||||
loc 0.000157679 -0.000165235 -7.60364e-005
|
||||
loc 0.000157679 -0.000165235 -7.60364e-05
|
||||
texture "mag_switch.png"
|
||||
crease 45.000000
|
||||
numvert 4
|
||||
0 0.0249262 -0.0224353
|
||||
-3.72529e-009 0.0249262 0.0254597
|
||||
-3.72529e-09 0.0249262 0.0254597
|
||||
0 -0.0229099 0.0254597
|
||||
3.72529e-009 -0.0229099 -0.0224353
|
||||
3.72529e-09 -0.0229099 -0.0224353
|
||||
numsurf 1
|
||||
SURF 0x20
|
||||
mat 2
|
||||
mat 1
|
||||
refs 4
|
||||
0 1 1
|
||||
1 0 1
|
||||
|
@ -27,14 +26,14 @@ kids 0
|
|||
OBJECT poly
|
||||
name "key"
|
||||
loc 0.0153587 -0.00244115 -0.00120589
|
||||
texture "mag_switch.png"
|
||||
texture "key0.png"
|
||||
crease 45.000000
|
||||
numvert 32
|
||||
-0.0130396 0.00629044 0.00605398
|
||||
-0.00955094 0.00800882 0.0107752
|
||||
-0.0044108 0.00907083 0.013693
|
||||
0.001492 0.00929285 0.014303
|
||||
0.00713683 0.00863649 0.0124997
|
||||
-0.00957502 0.00800882 0.0107752
|
||||
-0.00447036 0.00907083 0.013693
|
||||
0.00139169 0.00929285 0.014303
|
||||
0.00699756 0.00863649 0.0124997
|
||||
0.0115476 0.00721524 0.00859484
|
||||
0.0139617 0.00527484 0.00326365
|
||||
0.0139617 0.00315082 -0.00257207
|
||||
|
@ -47,13 +46,13 @@ numvert 32
|
|||
-0.0130396 0.00213522 -0.00536241
|
||||
-0.0142737 0.00100813 0.0015122
|
||||
-0.0130396 0.00308575 0.00722039
|
||||
-0.00955094 0.00480413 0.0119416
|
||||
-0.0044108 0.00586614 0.0148594
|
||||
0.001492 0.00608816 0.0154694
|
||||
0.00713683 0.0054318 0.0136661
|
||||
-0.00957502 0.00480413 0.0119416
|
||||
-0.00447036 0.00586614 0.0148594
|
||||
0.00139169 0.00608816 0.0154694
|
||||
0.00699756 0.0054318 0.0136661
|
||||
0.0115476 0.00401055 0.00976125
|
||||
0.0139617 0.00207015 0.00443006
|
||||
0.0139617 -5.3874e-005 -0.00140566
|
||||
0.0139617 -5.3874e-05 -0.00140566
|
||||
0.0115476 -0.00199427 -0.00673684
|
||||
0.00713683 -0.00341552 -0.0106417
|
||||
0.001492 -0.00407188 -0.012445
|
||||
|
@ -66,293 +65,293 @@ numsurf 45
|
|||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
13 0.787042 0.460485
|
||||
0 0.76391 0.566745
|
||||
31 0.519483 0.460485
|
||||
13 0.500002 0.00958884
|
||||
0 0.700568 0.0521011
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
0 0.76391 0.566745
|
||||
1 0.698515 0.654632
|
||||
31 0.519483 0.460485
|
||||
0 0.700568 0.0521011
|
||||
1 0.866456 0.171449
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
1 0.698515 0.654632
|
||||
2 0.602163 0.708949
|
||||
31 0.519483 0.460485
|
||||
1 0.866456 0.171449
|
||||
2 0.968978 0.347295
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
2 0.602163 0.708949
|
||||
3 0.491515 0.720305
|
||||
31 0.519483 0.460485
|
||||
2 0.968978 0.347295
|
||||
3 0.990411 0.549232
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
3 0.491515 0.720305
|
||||
4 0.385704 0.686735
|
||||
31 0.519483 0.460485
|
||||
3 0.990411 0.549232
|
||||
4 0.927049 0.742344
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
4 0.385704 0.686735
|
||||
5 0.303023 0.614044
|
||||
31 0.519483 0.460485
|
||||
4 0.927049 0.742344
|
||||
5 0.789846 0.899084
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
5 0.303023 0.614044
|
||||
6 0.257771 0.514802
|
||||
31 0.519483 0.460485
|
||||
5 0.789846 0.899084
|
||||
6 0.602525 0.982245
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
6 0.257771 0.514802
|
||||
7 0.257771 0.406168
|
||||
31 0.519483 0.460485
|
||||
6 0.602525 0.982245
|
||||
7 0.397478 0.982245
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
7 0.257771 0.406168
|
||||
8 0.303023 0.306925
|
||||
31 0.519483 0.460485
|
||||
7 0.397478 0.982245
|
||||
8 0.210157 0.899084
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
8 0.303023 0.306925
|
||||
9 0.385704 0.234234
|
||||
31 0.519483 0.460485
|
||||
8 0.210157 0.899084
|
||||
9 0.0729544 0.747141
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
9 0.385704 0.234234
|
||||
10 0.491515 0.200665
|
||||
31 0.519483 0.460485
|
||||
9 0.0729544 0.747141
|
||||
10 0.00958884 0.552687
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
10 0.491515 0.200665
|
||||
11 0.602163 0.21202
|
||||
31 0.519483 0.460485
|
||||
10 0.00958884 0.552687
|
||||
11 0.0310223 0.349347
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
11 0.602163 0.21202
|
||||
12 0.698515 0.266337
|
||||
31 0.519483 0.460485
|
||||
11 0.0310223 0.349347
|
||||
12 0.133547 0.172279
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
12 0.698515 0.266337
|
||||
14 0.76391 0.354224
|
||||
31 0.519483 0.460485
|
||||
12 0.133547 0.172279
|
||||
14 0.299434 0.0521011
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
14 0.76391 0.354224
|
||||
13 0.787042 0.460485
|
||||
31 0.519483 0.460485
|
||||
14 0.299434 0.0521011
|
||||
13 0.500002 0.00958884
|
||||
31 0.500002 0.501291
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
15 0.257771 0.200665
|
||||
16 0.257771 0.200665
|
||||
0 0.257771 0.200665
|
||||
13 0.257771 0.200665
|
||||
15 0.753928 0.533561
|
||||
16 0.830603 0.560068
|
||||
0 0.814935 0.600953
|
||||
13 0.738261 0.574447
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
16 0.257771 0.200665
|
||||
17 0.257771 0.200665
|
||||
1 0.257771 0.200665
|
||||
0 0.257771 0.200665
|
||||
16 0.830603 0.560068
|
||||
17 0.89402 0.581991
|
||||
1 0.878352 0.622876
|
||||
0 0.814935 0.600953
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
17 0.257771 0.200665
|
||||
18 0.257771 0.200665
|
||||
2 0.257771 0.200665
|
||||
1 0.257771 0.200665
|
||||
17 0.89402 0.581991
|
||||
18 0.933213 0.59554
|
||||
2 0.917545 0.636426
|
||||
1 0.878352 0.622876
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
18 0.257771 0.200665
|
||||
19 0.257771 0.200665
|
||||
3 0.257771 0.200665
|
||||
2 0.257771 0.200665
|
||||
18 0.933213 0.59554
|
||||
19 0.941406 0.598373
|
||||
3 0.925739 0.639258
|
||||
2 0.917545 0.636426
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
19 0.257771 0.200665
|
||||
20 0.257771 0.200665
|
||||
4 0.257771 0.200665
|
||||
3 0.257771 0.200665
|
||||
19 0.941406 0.598373
|
||||
20 0.917184 0.589999
|
||||
4 0.901516 0.630884
|
||||
3 0.925739 0.639258
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
20 0.257771 0.200665
|
||||
21 0.257771 0.200665
|
||||
5 0.257771 0.200665
|
||||
4 0.257771 0.200665
|
||||
20 0.917184 0.589999
|
||||
21 0.864732 0.571866
|
||||
5 0.849065 0.612752
|
||||
4 0.901516 0.630884
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
21 0.257771 0.200665
|
||||
22 0.257771 0.200665
|
||||
6 0.257771 0.200665
|
||||
5 0.257771 0.200665
|
||||
21 0.864732 0.571866
|
||||
22 0.793122 0.54711
|
||||
6 0.777454 0.587996
|
||||
5 0.849065 0.612752
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
22 0.257771 0.200665
|
||||
23 0.257771 0.200665
|
||||
7 0.257771 0.200665
|
||||
6 0.257771 0.200665
|
||||
22 0.793122 0.54711
|
||||
23 0.714734 0.520012
|
||||
7 0.699067 0.560898
|
||||
6 0.777454 0.587996
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
23 0.257771 0.200665
|
||||
24 0.257771 0.200665
|
||||
8 0.257771 0.200665
|
||||
7 0.257771 0.200665
|
||||
23 0.714734 0.520012
|
||||
24 0.643124 0.495256
|
||||
8 0.627456 0.536142
|
||||
7 0.699067 0.560898
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
24 0.257771 0.200665
|
||||
25 0.257771 0.200665
|
||||
9 0.257771 0.200665
|
||||
8 0.257771 0.200665
|
||||
24 0.643124 0.495256
|
||||
25 0.590673 0.477124
|
||||
9 0.575005 0.51801
|
||||
8 0.627456 0.536142
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
25 0.257771 0.200665
|
||||
26 0.257771 0.200665
|
||||
10 0.257771 0.200665
|
||||
9 0.257771 0.200665
|
||||
25 0.590673 0.477124
|
||||
26 0.56645 0.46875
|
||||
10 0.550781 0.509636
|
||||
9 0.575005 0.51801
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
26 0.257771 0.200665
|
||||
27 0.257771 0.200665
|
||||
11 0.257771 0.200665
|
||||
10 0.257771 0.200665
|
||||
26 0.56645 0.46875
|
||||
27 0.574644 0.471583
|
||||
11 0.558975 0.512468
|
||||
10 0.550781 0.509636
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
27 0.257771 0.200665
|
||||
28 0.257771 0.200665
|
||||
12 0.257771 0.200665
|
||||
11 0.257771 0.200665
|
||||
27 0.574644 0.471583
|
||||
28 0.613837 0.485132
|
||||
12 0.598169 0.526017
|
||||
11 0.558975 0.512468
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
28 0.257771 0.200665
|
||||
29 0.257771 0.200665
|
||||
14 0.257771 0.200665
|
||||
12 0.257771 0.200665
|
||||
28 0.613837 0.485132
|
||||
29 0.677254 0.507055
|
||||
14 0.661586 0.547941
|
||||
12 0.598169 0.526017
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
29 0.257771 0.200665
|
||||
15 0.257771 0.200665
|
||||
13 0.257771 0.200665
|
||||
14 0.257771 0.200665
|
||||
29 0.677254 0.507055
|
||||
15 0.753928 0.533561
|
||||
13 0.738261 0.574447
|
||||
14 0.661586 0.547941
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
15 0.787042 0.460485
|
||||
16 0.76391 0.566745
|
||||
30 0.519483 0.460485
|
||||
15 0.5 0.0134969
|
||||
16 0.297836 0.0554971
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
16 0.76391 0.566745
|
||||
17 0.698515 0.654632
|
||||
30 0.519483 0.460485
|
||||
16 0.297836 0.0554971
|
||||
17 0.130627 0.173407
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
17 0.698515 0.654632
|
||||
18 0.602163 0.708949
|
||||
30 0.519483 0.460485
|
||||
17 0.130627 0.173407
|
||||
18 0.0272884 0.347135
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
18 0.602163 0.708949
|
||||
19 0.491515 0.720305
|
||||
30 0.519483 0.460485
|
||||
18 0.0272884 0.347135
|
||||
19 0.00568432 0.546638
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
19 0.491515 0.720305
|
||||
20 0.385704 0.686735
|
||||
30 0.519483 0.460485
|
||||
19 0.00568432 0.546638
|
||||
20 0.0695509 0.737423
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
20 0.385704 0.686735
|
||||
21 0.303023 0.614044
|
||||
30 0.519483 0.460485
|
||||
20 0.0695509 0.737423
|
||||
21 0.207847 0.892275
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
21 0.303023 0.614044
|
||||
22 0.257771 0.514802
|
||||
30 0.519483 0.460485
|
||||
21 0.207847 0.892275
|
||||
22 0.396659 0.974434
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
22 0.257771 0.514802
|
||||
23 0.257771 0.406168
|
||||
30 0.519483 0.460485
|
||||
22 0.396659 0.974434
|
||||
23 0.60334 0.974434
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
23 0.257771 0.406168
|
||||
24 0.303023 0.306925
|
||||
30 0.519483 0.460485
|
||||
23 0.60334 0.974434
|
||||
24 0.792152 0.892275
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
24 0.303023 0.306925
|
||||
25 0.385704 0.234234
|
||||
30 0.519483 0.460485
|
||||
24 0.792152 0.892275
|
||||
25 0.930449 0.742163
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
25 0.385704 0.234234
|
||||
26 0.491515 0.200665
|
||||
30 0.519483 0.460485
|
||||
25 0.930449 0.742163
|
||||
26 0.994316 0.550052
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
26 0.491515 0.200665
|
||||
27 0.602163 0.21202
|
||||
30 0.519483 0.460485
|
||||
26 0.994316 0.550052
|
||||
27 0.972712 0.349162
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
27 0.602163 0.21202
|
||||
28 0.698515 0.266337
|
||||
30 0.519483 0.460485
|
||||
27 0.972712 0.349162
|
||||
28 0.869373 0.174227
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
28 0.698515 0.266337
|
||||
29 0.76391 0.354224
|
||||
30 0.519483 0.460485
|
||||
28 0.869373 0.174227
|
||||
29 0.702165 0.0554971
|
||||
30 0.5 0.499275
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
29 0.76391 0.354224
|
||||
15 0.787042 0.460485
|
||||
30 0.519483 0.460485
|
||||
29 0.702165 0.0554971
|
||||
15 0.5 0.0134969
|
||||
30 0.5 0.499275
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "start"
|
||||
loc 0.0153587 0.000670004 0.00244825
|
||||
texture "mag_switch.png"
|
||||
texture "key0.png"
|
||||
crease 45.000000
|
||||
numvert 32
|
||||
0 -0.00180695 -0.00382131
|
||||
|
@ -391,288 +390,288 @@ numsurf 45
|
|||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
2 0.758681 0.349798
|
||||
16 0.781762 0.454149
|
||||
1 0.514799 0.454149
|
||||
2 0.698265 0.0561047
|
||||
16 0.499754 0.0137551
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
3 0.693432 0.263491
|
||||
2 0.758681 0.349798
|
||||
1 0.514799 0.454149
|
||||
3 0.86245 0.175826
|
||||
2 0.698265 0.0561047
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
4 0.597295 0.21015
|
||||
3 0.693432 0.263491
|
||||
1 0.514799 0.454149
|
||||
4 0.963923 0.352221
|
||||
3 0.86245 0.175826
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
5 0.486893 0.198999
|
||||
4 0.597295 0.21015
|
||||
1 0.514799 0.454149
|
||||
5 0.985136 0.55479
|
||||
4 0.963923 0.352221
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
6 0.381317 0.231965
|
||||
5 0.486893 0.198999
|
||||
1 0.514799 0.454149
|
||||
6 0.922423 0.748504
|
||||
5 0.985136 0.55479
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
7 0.298821 0.30335
|
||||
6 0.381317 0.231965
|
||||
1 0.514799 0.454149
|
||||
7 0.786625 0.89987
|
||||
6 0.922423 0.748504
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
8 0.253669 0.400808
|
||||
7 0.298821 0.30335
|
||||
1 0.514799 0.454149
|
||||
8 0.601227 0.982717
|
||||
7 0.786625 0.89987
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
9 0.253669 0.50749
|
||||
8 0.253669 0.400808
|
||||
1 0.514799 0.454149
|
||||
9 0.398282 0.982717
|
||||
8 0.601227 0.982717
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
10 0.298821 0.604948
|
||||
9 0.253669 0.50749
|
||||
1 0.514799 0.454149
|
||||
10 0.212884 0.89987
|
||||
9 0.398282 0.982717
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
11 0.381317 0.676333
|
||||
10 0.298821 0.604948
|
||||
1 0.514799 0.454149
|
||||
11 0.0770854 0.748504
|
||||
10 0.212884 0.89987
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
12 0.486893 0.709299
|
||||
11 0.381317 0.676333
|
||||
1 0.514799 0.454149
|
||||
12 0.0143728 0.55479
|
||||
11 0.0770854 0.748504
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
13 0.597295 0.698148
|
||||
12 0.486893 0.709299
|
||||
1 0.514799 0.454149
|
||||
13 0.0355859 0.352221
|
||||
12 0.0143728 0.55479
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
14 0.693432 0.644807
|
||||
13 0.597295 0.698148
|
||||
1 0.514799 0.454149
|
||||
14 0.137058 0.175826
|
||||
13 0.0355859 0.352221
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
15 0.758681 0.558499
|
||||
14 0.693432 0.644807
|
||||
1 0.514799 0.454149
|
||||
15 0.301245 0.0561047
|
||||
14 0.137058 0.175826
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
16 0.781762 0.454149
|
||||
15 0.758681 0.558499
|
||||
1 0.514799 0.454149
|
||||
16 0.499754 0.0137551
|
||||
15 0.301245 0.0561047
|
||||
1 0.499754 0.503587
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
2 0.253669 0.198999
|
||||
16 0.253669 0.198999
|
||||
18 0.253669 0.198999
|
||||
17 0.253669 0.198999
|
||||
2 0.398374 0.602724
|
||||
16 0.360487 0.638379
|
||||
18 0.342638 0.614523
|
||||
17 0.380525 0.578869
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
3 0.253669 0.198999
|
||||
2 0.253669 0.198999
|
||||
17 0.253669 0.198999
|
||||
19 0.253669 0.198999
|
||||
3 0.42971 0.573235
|
||||
2 0.398374 0.602724
|
||||
17 0.380525 0.578869
|
||||
19 0.411862 0.54938
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
4 0.253669 0.198999
|
||||
3 0.253669 0.198999
|
||||
19 0.253669 0.198999
|
||||
20 0.253669 0.198999
|
||||
4 0.449076 0.55501
|
||||
3 0.42971 0.573235
|
||||
19 0.411862 0.54938
|
||||
20 0.431229 0.531154
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
5 0.253669 0.198999
|
||||
4 0.253669 0.198999
|
||||
20 0.253669 0.198999
|
||||
21 0.253669 0.198999
|
||||
5 0.453125 0.5512
|
||||
4 0.449076 0.55501
|
||||
20 0.431229 0.531154
|
||||
21 0.435277 0.527344
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
6 0.253669 0.198999
|
||||
5 0.253669 0.198999
|
||||
21 0.253669 0.198999
|
||||
22 0.253669 0.198999
|
||||
6 0.441156 0.562463
|
||||
5 0.453125 0.5512
|
||||
21 0.435277 0.527344
|
||||
22 0.423308 0.538608
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
7 0.253669 0.198999
|
||||
6 0.253669 0.198999
|
||||
22 0.253669 0.198999
|
||||
23 0.253669 0.198999
|
||||
7 0.415238 0.586854
|
||||
6 0.441156 0.562463
|
||||
22 0.423308 0.538608
|
||||
23 0.39739 0.562998
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
8 0.253669 0.198999
|
||||
7 0.253669 0.198999
|
||||
23 0.253669 0.198999
|
||||
24 0.253669 0.198999
|
||||
8 0.379853 0.620153
|
||||
7 0.415238 0.586854
|
||||
23 0.39739 0.562998
|
||||
24 0.362005 0.596298
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
9 0.253669 0.198999
|
||||
8 0.253669 0.198999
|
||||
24 0.253669 0.198999
|
||||
25 0.253669 0.198999
|
||||
9 0.34112 0.656604
|
||||
8 0.379853 0.620153
|
||||
24 0.362005 0.596298
|
||||
25 0.323272 0.632749
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
10 0.253669 0.198999
|
||||
9 0.253669 0.198999
|
||||
25 0.253669 0.198999
|
||||
26 0.253669 0.198999
|
||||
10 0.305735 0.689904
|
||||
9 0.34112 0.656604
|
||||
25 0.323272 0.632749
|
||||
26 0.287887 0.666048
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
11 0.253669 0.198999
|
||||
10 0.253669 0.198999
|
||||
26 0.253669 0.198999
|
||||
27 0.253669 0.198999
|
||||
11 0.279817 0.714294
|
||||
10 0.305735 0.689904
|
||||
26 0.287887 0.666048
|
||||
27 0.261969 0.690439
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
12 0.253669 0.198999
|
||||
11 0.253669 0.198999
|
||||
27 0.253669 0.198999
|
||||
28 0.253669 0.198999
|
||||
12 0.267848 0.725557
|
||||
11 0.279817 0.714294
|
||||
27 0.261969 0.690439
|
||||
28 0.25 0.701702
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
13 0.253669 0.198999
|
||||
12 0.253669 0.198999
|
||||
28 0.253669 0.198999
|
||||
29 0.253669 0.198999
|
||||
13 0.271897 0.721747
|
||||
12 0.267848 0.725557
|
||||
28 0.25 0.701702
|
||||
29 0.254048 0.697892
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
14 0.253669 0.198999
|
||||
13 0.253669 0.198999
|
||||
29 0.253669 0.198999
|
||||
30 0.253669 0.198999
|
||||
14 0.291263 0.703522
|
||||
13 0.271897 0.721747
|
||||
29 0.254048 0.697892
|
||||
30 0.273415 0.679667
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
15 0.253669 0.198999
|
||||
14 0.253669 0.198999
|
||||
30 0.253669 0.198999
|
||||
31 0.253669 0.198999
|
||||
15 0.322599 0.674033
|
||||
14 0.291263 0.703522
|
||||
30 0.273415 0.679667
|
||||
31 0.304751 0.650178
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 4
|
||||
16 0.253669 0.198999
|
||||
15 0.253669 0.198999
|
||||
31 0.253669 0.198999
|
||||
18 0.253669 0.198999
|
||||
16 0.360487 0.638379
|
||||
15 0.322599 0.674033
|
||||
31 0.304751 0.650178
|
||||
18 0.342638 0.614523
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
17 0.758681 0.349798
|
||||
18 0.781762 0.454149
|
||||
0 0.514799 0.454149
|
||||
17 0.299646 0.0488043
|
||||
18 0.499754 0.00594258
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
19 0.693432 0.263491
|
||||
17 0.758681 0.349798
|
||||
0 0.514799 0.454149
|
||||
19 0.134139 0.169973
|
||||
17 0.299646 0.0488043
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
20 0.597295 0.21015
|
||||
19 0.693432 0.263491
|
||||
0 0.514799 0.454149
|
||||
20 0.0318503 0.348502
|
||||
19 0.134139 0.169973
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
21 0.486893 0.198999
|
||||
20 0.597295 0.21015
|
||||
0 0.514799 0.454149
|
||||
21 0.0104666 0.553521
|
||||
20 0.0318503 0.348502
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
22 0.381317 0.231965
|
||||
21 0.486893 0.198999
|
||||
0 0.514799 0.454149
|
||||
22 0.0736838 0.749578
|
||||
21 0.0104666 0.553521
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
23 0.298821 0.30335
|
||||
22 0.381317 0.231965
|
||||
0 0.514799 0.454149
|
||||
23 0.210575 0.902775
|
||||
22 0.0736838 0.749578
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
24 0.253669 0.400808
|
||||
23 0.298821 0.30335
|
||||
0 0.514799 0.454149
|
||||
24 0.397465 0.986623
|
||||
23 0.210575 0.902775
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
25 0.253669 0.50749
|
||||
24 0.253669 0.400808
|
||||
0 0.514799 0.454149
|
||||
25 0.602043 0.986623
|
||||
24 0.397465 0.986623
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
26 0.298821 0.604948
|
||||
25 0.253669 0.50749
|
||||
0 0.514799 0.454149
|
||||
26 0.788933 0.902775
|
||||
25 0.602043 0.986623
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
27 0.381317 0.676333
|
||||
26 0.298821 0.604948
|
||||
0 0.514799 0.454149
|
||||
27 0.925825 0.749578
|
||||
26 0.788933 0.902775
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
28 0.486893 0.709299
|
||||
27 0.381317 0.676333
|
||||
0 0.514799 0.454149
|
||||
28 0.989042 0.553521
|
||||
27 0.925825 0.749578
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
29 0.597295 0.698148
|
||||
28 0.486893 0.709299
|
||||
0 0.514799 0.454149
|
||||
29 0.967658 0.348502
|
||||
28 0.989042 0.553521
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
30 0.693432 0.644807
|
||||
29 0.597295 0.698148
|
||||
0 0.514799 0.454149
|
||||
30 0.865369 0.169973
|
||||
29 0.967658 0.348502
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
31 0.758681 0.558499
|
||||
30 0.693432 0.644807
|
||||
0 0.514799 0.454149
|
||||
31 0.699861 0.0488043
|
||||
30 0.865369 0.169973
|
||||
0 0.499754 0.501699
|
||||
SURF 0x30
|
||||
mat 1
|
||||
refs 3
|
||||
18 0.781762 0.454149
|
||||
31 0.758681 0.558499
|
||||
0 0.514799 0.454149
|
||||
18 0.499754 0.00594258
|
||||
31 0.699861 0.0488043
|
||||
0 0.499754 0.501699
|
||||
kids 0
|
||||
OBJECT group
|
||||
name "clicks"
|
||||
|
@ -680,7 +679,7 @@ loc 0.00569378 -0.00756817 0.00125835
|
|||
kids 1
|
||||
OBJECT poly
|
||||
name "click-S"
|
||||
loc -1.86265e-009 0.00716951 -0.0440341
|
||||
loc -1.86265e-09 0.00716951 -0.0440341
|
||||
crease 180.000000
|
||||
numvert 4
|
||||
0 -0.014961 0.0280603
|
||||
|
@ -689,7 +688,7 @@ numvert 4
|
|||
0 0.014961 0.0374137
|
||||
numsurf 1
|
||||
SURF 0x10
|
||||
mat 3
|
||||
mat 2
|
||||
refs 4
|
||||
3 0 1
|
||||
1 0 0
|
||||
|
@ -702,7 +701,7 @@ loc 0.00569378 -0.00756817 0.00125835
|
|||
kids 1
|
||||
OBJECT poly
|
||||
name "click-R"
|
||||
loc -1.86265e-009 0.00716951 -0.0343163
|
||||
loc -1.86265e-09 0.00716951 -0.0343163
|
||||
crease 180.000000
|
||||
numvert 4
|
||||
0 0.014961 0.0374137
|
||||
|
@ -711,7 +710,7 @@ numvert 4
|
|||
0 -0.014961 0.0280603
|
||||
numsurf 1
|
||||
SURF 0x10
|
||||
mat 3
|
||||
mat 2
|
||||
refs 4
|
||||
0 0 1
|
||||
2 0 0
|
||||
|
@ -724,7 +723,7 @@ loc 0.00569378 -0.00756817 0.00125835
|
|||
kids 1
|
||||
OBJECT poly
|
||||
name "click-L"
|
||||
loc -1.86265e-009 0.00716951 -0.0245894
|
||||
loc -1.86265e-09 0.00716951 -0.0245894
|
||||
crease 180.000000
|
||||
numvert 4
|
||||
0 -0.014961 0.0280603
|
||||
|
@ -733,7 +732,7 @@ numvert 4
|
|||
0 0.014961 0.0374137
|
||||
numsurf 1
|
||||
SURF 0x10
|
||||
mat 3
|
||||
mat 2
|
||||
refs 4
|
||||
3 0 1
|
||||
1 0 0
|
||||
|
|
|
@ -73,6 +73,12 @@
|
|||
<property>/environment/config/enabled</property>
|
||||
</condition>
|
||||
</enable>
|
||||
<input>
|
||||
<condition>
|
||||
<property>/environment/config/presets/visibility-m-override</property>
|
||||
</condition>
|
||||
<property>/environment/config/presets/visibility-m</property>
|
||||
</input>
|
||||
<input>/environment/config/interpolated/visibility-m</input>
|
||||
<output>/environment/visibility-m</output>
|
||||
<type>exponential</type>
|
||||
|
@ -89,6 +95,12 @@
|
|||
<property>/environment/config/enabled</property>
|
||||
</condition>
|
||||
</enable>
|
||||
<input>
|
||||
<condition>
|
||||
<property>/environment/config/presets/wind-override</property>
|
||||
</condition>
|
||||
<property>/environment/config/presets/wind-from-north-fps</property>
|
||||
</input>
|
||||
<input>/environment/config/interpolated/wind-from-north-fps</input>
|
||||
<output>/environment/wind-from-north-fps</output>
|
||||
<type>exponential</type>
|
||||
|
@ -102,10 +114,48 @@
|
|||
<property>/environment/config/enabled</property>
|
||||
</condition>
|
||||
</enable>
|
||||
<input>
|
||||
<condition>
|
||||
<property>/environment/config/presets/wind-override</property>
|
||||
</condition>
|
||||
<property>/environment/config/presets/wind-from-east-fps</property>
|
||||
</input>
|
||||
<input>/environment/config/interpolated/wind-from-east-fps</input>
|
||||
<output>/environment/wind-from-east-fps</output>
|
||||
<type>exponential</type>
|
||||
<filter-time>5</filter-time>
|
||||
</filter>
|
||||
|
||||
<filter>
|
||||
<name>EnvironmentInterpolator:turbulence-magnitude</name>
|
||||
<enable>
|
||||
<condition>
|
||||
<property>/environment/config/enabled</property>
|
||||
</condition>
|
||||
</enable>
|
||||
<input>
|
||||
<condition>
|
||||
<property>/environment/config/presets/turbulence-magnitude-norm-override</property>
|
||||
</condition>
|
||||
<property>/environment/config/presets/turbulence-magnitude-norm-override</property>
|
||||
</input>
|
||||
<input>/environment/config/interpolated/turbulence/magnitude-norm</input>
|
||||
<output>/environment/turbulence/magnitude-norm</output>
|
||||
<type>exponential</type>
|
||||
<filter-time>1</filter-time>
|
||||
</filter>
|
||||
|
||||
<filter>
|
||||
<name>EnvironmentInterpolator:turbulence-rate</name>
|
||||
<enable>
|
||||
<condition>
|
||||
<property>/environment/config/enabled</property>
|
||||
</condition>
|
||||
</enable>
|
||||
<input>/environment/config/interpolated/turbulence/rate-hz</input>
|
||||
<output>/environment/turbulence/rate-hz</output>
|
||||
<type>exponential</type>
|
||||
<filter-time>1</filter-time>
|
||||
</filter>
|
||||
|
||||
</PropertyList>
|
||||
|
|
2717
HLA/AviationSimNet-v3.1.xml
Normal file
63
HLA/av-aircraft.xml
Normal file
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0"?>
|
||||
<hlaConfiguration version="1">
|
||||
<!-- This is the top level HLA configuration file for use with the
|
||||
multiplayer federation. This serves now as first demo how to configure
|
||||
flightgears hla implementation.
|
||||
This toplevel file consists of startup parameters for the rti,
|
||||
the federate object model to use on create and a way to map the hla
|
||||
attribute values to a semantic meaning or flightgear properties.
|
||||
-->
|
||||
|
||||
<rti version="RTI13">
|
||||
<!-- is ignored for RTI13 anyway, so the example here ... -->
|
||||
<argument>rtiarg0</argument>
|
||||
<argument>rtiarg1</argument>
|
||||
</rti>
|
||||
|
||||
<!-- Contains the data layout and the object classes -->
|
||||
<federateObjectModel name="AviationSimNet-v3.1.xml"/>
|
||||
|
||||
<!-- ??? more a AIModel Tag??? Or a generic one and decide which type should be time exact???? -->
|
||||
<objects>
|
||||
<objectClass type="Multiplayer" name="aircraft">
|
||||
|
||||
<model type="map">
|
||||
<dataElement type="external" name="aircraftType"/>
|
||||
<key external="A320" modelPath="Aircraft/A320/Models/a320-fb.xml"/>
|
||||
<key external="B733" modelPath="Aircraft/737-300/Models/737-300.xml"/>
|
||||
<key external="B742" modelPath="Aircraft/747-200/Models/boeing747-200.xml"/>
|
||||
<key external="C172" modelPath="Aircraft/c172p/Models/c172p.xml"/>
|
||||
<key external="C310" modelPath="Aircraft/c310/Models/c310-dpm.xml"/>
|
||||
<key external="F18" modelPath="Aircraft/f18/Models/f18.xml"/>
|
||||
<key external="PC7" modelPath="Aircraft/pc7/Models/pc7.xml"/>
|
||||
<key external="DH8C" modelPath="Aircraft/dhc8/Models/dhc8-300Q.xml"/>
|
||||
<key external="UFO" modelPath="Aircraft/ufo/Models/ufo.xml"/>
|
||||
<key external="C172"/>
|
||||
</model>
|
||||
|
||||
<!-- This is an example for the variant that would make the AviationSimNet guys visible in flightgear. -->
|
||||
<!-- It does not know any rotational velocities, but the linear velocity is present. -->
|
||||
<position type="geodetic">
|
||||
<dataElement type="latitude-deg" name="latitude"/>
|
||||
<dataElement type="longitude-deg" name="longitude"/>
|
||||
<dataElement type="elevation-m" name="altitudeMSL"/>
|
||||
|
||||
<dataElement type="heading-deg" name="trueHeading"/>
|
||||
<dataElement type="pitch-deg" name="pitch"/>
|
||||
<dataElement type="roll-deg" name="roll"/>
|
||||
|
||||
<dataElement type="ground-track-deg" name="groundTrack"/>
|
||||
<dataElement type="ground-speed-kt" name="groundSpeed"/>
|
||||
<dataElement type="vertical-speed-ft-per-min" name="verticalSpeed"/>
|
||||
</position>
|
||||
|
||||
<simTime type="attribute-sec-msec">
|
||||
<dataElement type="local-simtime-sec" name="timestampSeconds"/>
|
||||
<dataElement type="local-simtime-msec" name="timestampMilliseconds"/>
|
||||
</simTime>
|
||||
|
||||
<dataElement type="property" name="tailNum" in="sim/user/callsign" out="sim/user/callsign"/>
|
||||
|
||||
</objectClass>
|
||||
</objects>
|
||||
</hlaConfiguration>
|
324
HLA/hla.dtd
Normal file
|
@ -0,0 +1,324 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- HLA.dtd This is version 1.0 of a DTD file to fully define the OMT in XML terms -->
|
||||
<!ELEMENT objectModel (
|
||||
objects?,
|
||||
interactions?,
|
||||
dimensions?,
|
||||
time?,
|
||||
tags?,
|
||||
synchronizations?,
|
||||
transportations?,
|
||||
switches?,
|
||||
dataTypes?,
|
||||
notes?)>
|
||||
<!ATTLIST objectModel
|
||||
DTDversion CDATA #FIXED "1516.2"
|
||||
name CDATA #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
type (FOM|SOM) #REQUIRED
|
||||
typeNotes NMTOKENS #IMPLIED
|
||||
version CDATA #IMPLIED
|
||||
versionNotes NMTOKENS #IMPLIED
|
||||
date CDATA #IMPLIED
|
||||
dateNotes NMTOKENS #IMPLIED
|
||||
purpose CDATA #IMPLIED
|
||||
purposeNotes NMTOKENS #IMPLIED
|
||||
appDomain CDATA #IMPLIED
|
||||
appDomainNotes NMTOKENS #IMPLIED
|
||||
sponsor CDATA #IMPLIED
|
||||
sponsorNotes NMTOKENS #IMPLIED
|
||||
pocName CDATA #IMPLIED
|
||||
pocNameNotes NMTOKENS #IMPLIED
|
||||
pocOrg CDATA #IMPLIED
|
||||
pocOrgNotes NMTOKENS #IMPLIED
|
||||
pocPhone CDATA #IMPLIED
|
||||
pocPhoneNotes NMTOKENS #IMPLIED
|
||||
pocEmail CDATA #IMPLIED
|
||||
pocEmailNotes NMTOKENS #IMPLIED
|
||||
references CDATA #IMPLIED
|
||||
referencesNotes NMTOKENS #IMPLIED
|
||||
other CDATA #IMPLIED
|
||||
otherNotes NMTOKENS #IMPLIED>
|
||||
|
||||
<!ELEMENT objects (objectClass+)>
|
||||
<!ELEMENT objectClass (attribute*, objectClass*)>
|
||||
<!ATTLIST objectClass
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
sharing (Publish|Subscribe|PublishSubscribe|Neither) #IMPLIED
|
||||
sharingNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT attribute EMPTY>
|
||||
<!ATTLIST attribute
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
dataType NMTOKEN #IMPLIED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
updateType (Static|Periodic|Conditional|NA) #IMPLIED
|
||||
updateTypeNotes NMTOKENS #IMPLIED
|
||||
updateCondition CDATA #IMPLIED
|
||||
updateConditionNotes NMTOKENS #IMPLIED
|
||||
ownership (Divest|Acquire|DivestAcquire|NoTransfer)
|
||||
#IMPLIED
|
||||
ownershipNotes NMTOKENS #IMPLIED
|
||||
sharing (Publish|Subscribe|PublishSubscribe|Neither)
|
||||
#IMPLIED
|
||||
sharingNotes NMTOKENS #IMPLIED
|
||||
dimensions NMTOKENS #IMPLIED
|
||||
dimensionsNotes NMTOKENS #IMPLIED
|
||||
transportation NMTOKEN #IMPLIED
|
||||
transportationNotes NMTOKENS #IMPLIED
|
||||
order (Receive|TimeStamp) #IMPLIED
|
||||
orderNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED>
|
||||
|
||||
<!ELEMENT interactions (interactionClass+)>
|
||||
<!ELEMENT interactionClass (parameter*, interactionClass*)>
|
||||
<!ATTLIST interactionClass
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
sharing (Publish|Subscribe|PublishSubscribe|Neither) #IMPLIED
|
||||
sharingNotes NMTOKENS #IMPLIED
|
||||
dimensions NMTOKENS #IMPLIED
|
||||
dimensionsNotes NMTOKENS #IMPLIED
|
||||
transportation NMTOKEN #IMPLIED
|
||||
transportationNotes NMTOKENS #IMPLIED
|
||||
order (Receive|TimeStamp) #IMPLIED
|
||||
orderNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT parameter EMPTY>
|
||||
<!ATTLIST parameter
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
dataType NMTOKEN #IMPLIED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
|
||||
<!ELEMENT dimensions (dimension*)>
|
||||
<!ELEMENT dimension EMPTY>
|
||||
<!ATTLIST dimension
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
dataType NMTOKEN #IMPLIED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
upperBound CDATA #IMPLIED
|
||||
upperBoundNotes NMTOKENS #IMPLIED
|
||||
normalization CDATA #IMPLIED
|
||||
normalizationNotes NMTOKENS #IMPLIED
|
||||
value CDATA #IMPLIED
|
||||
valueNotes NMTOKENS #IMPLIED>
|
||||
|
||||
<!ELEMENT time (timeStamp?, lookahead?)>
|
||||
<!ELEMENT timeStamp EMPTY>
|
||||
<!ATTLIST timeStamp
|
||||
dataType NMTOKEN #IMPLIED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT lookahead EMPTY>
|
||||
<!ATTLIST lookahead
|
||||
dataType NMTOKEN #IMPLIED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
|
||||
<!ELEMENT tags (updateReflectTag?,
|
||||
sendReceiveTag?,
|
||||
deleteRemoveTag?,
|
||||
divestitureRequestTag?,
|
||||
divestitureCompletionTag?,
|
||||
acquisitionRequestTag?,
|
||||
requestUpdateTag?)>
|
||||
<!ELEMENT updateReflectTag EMPTY>
|
||||
<!ATTLIST updateReflectTag
|
||||
dataType NMTOKEN #REQUIRED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT sendReceiveTag EMPTY>
|
||||
<!ATTLIST sendReceiveTag
|
||||
dataType NMTOKEN #REQUIRED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT deleteRemoveTag EMPTY>
|
||||
<!ATTLIST deleteRemoveTag
|
||||
dataType NMTOKEN #REQUIRED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT divestitureRequestTag EMPTY>
|
||||
<!ATTLIST divestitureRequestTag
|
||||
dataType NMTOKEN #REQUIRED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT divestitureCompletionTag EMPTY>
|
||||
<!ATTLIST divestitureCompletionTag
|
||||
dataType NMTOKEN #REQUIRED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT acquisitionRequestTag EMPTY>
|
||||
<!ATTLIST acquisitionRequestTag
|
||||
dataType NMTOKEN #REQUIRED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT requestUpdateTag EMPTY>
|
||||
<!ATTLIST requestUpdateTag
|
||||
dataType NMTOKEN #REQUIRED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
|
||||
<!ELEMENT synchronizations (synchronization+)>
|
||||
<!ELEMENT synchronization EMPTY>
|
||||
<!ATTLIST synchronization
|
||||
label NMTOKEN #REQUIRED
|
||||
labelNotes NMTOKENS #IMPLIED
|
||||
dataType NMTOKEN #IMPLIED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
capability (Register|Achieve|RegisterAchieve|NoSynch) #IMPLIED
|
||||
capabilityNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
|
||||
<!ELEMENT transportations (transportation+)>
|
||||
<!ELEMENT transportation EMPTY>
|
||||
<!ATTLIST transportation
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
description CDATA #IMPLIED
|
||||
descriptionNotes NMTOKENS #IMPLIED>
|
||||
|
||||
<!ELEMENT switches EMPTY>
|
||||
<!ATTLIST switches
|
||||
autoProvide (Enabled|Disabled) #IMPLIED
|
||||
autoProvideNotes NMTOKENS #IMPLIED
|
||||
conveyRegionDesignatorSets (Enabled|Disabled) #IMPLIED
|
||||
conveyRegionDesignatorSetsNotes NMTOKENS #IMPLIED
|
||||
attributeScopeAdvisory (Enabled|Disabled) #IMPLIED
|
||||
attributeScopeAdvisoryNotes NMTOKENS #IMPLIED
|
||||
attributeRelevanceAdvisory (Enabled|Disabled) #IMPLIED
|
||||
attributeRelevanceAdvisoryNotes NMTOKENS #IMPLIED
|
||||
objectClassRelevanceAdvisory (Enabled|Disabled) #IMPLIED
|
||||
objectClassRelevanceAdvisoryNotes NMTOKENS #IMPLIED
|
||||
interactionRelevanceAdvisory (Enabled|Disabled) #IMPLIED
|
||||
interactionRelevanceAdvisoryNotes NMTOKENS #IMPLIED
|
||||
serviceReporting (Enabled|Disabled) #IMPLIED
|
||||
serviceReportingNotes NMTOKENS #IMPLIED>
|
||||
|
||||
<!ELEMENT dataTypes (basicDataRepresentations,
|
||||
simpleDataTypes?,
|
||||
enumeratedDataTypes?,
|
||||
arrayDataTypes?,
|
||||
fixedRecordDataTypes?,
|
||||
variantRecordDataTypes?)>
|
||||
<!ELEMENT basicDataRepresentations (basicData+)>
|
||||
<!ELEMENT basicData EMPTY>
|
||||
<!ATTLIST basicData
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
size CDATA #IMPLIED
|
||||
sizeNotes NMTOKENS #IMPLIED
|
||||
interpretation CDATA #IMPLIED
|
||||
interpretationNotes NMTOKENS #IMPLIED
|
||||
endian (Big|Little) #IMPLIED
|
||||
endianNotes NMTOKENS #IMPLIED
|
||||
encoding CDATA #IMPLIED
|
||||
encodingNotes NMTOKENS #IMPLIED>
|
||||
<!ELEMENT simpleDataTypes (simpleData+)>
|
||||
<!ELEMENT simpleData EMPTY>
|
||||
<!ATTLIST simpleData
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
representation NMTOKEN #IMPLIED
|
||||
representationNotes NMTOKENS #IMPLIED
|
||||
units CDATA #IMPLIED
|
||||
unitsNotes NMTOKENS #IMPLIED
|
||||
resolution CDATA #IMPLIED
|
||||
resolutionNotes NMTOKENS #IMPLIED
|
||||
accuracy CDATA #IMPLIED
|
||||
accuracyNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED>
|
||||
<!ELEMENT enumeratedDataTypes (enumeratedData+)>
|
||||
<!ELEMENT enumeratedData (enumerator+)>
|
||||
<!ATTLIST enumeratedData
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
representation NMTOKEN #IMPLIED
|
||||
representationNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT enumerator EMPTY>
|
||||
<!ATTLIST enumerator
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
values NMTOKENS #IMPLIED
|
||||
valuesNotes NMTOKENS #IMPLIED>
|
||||
<!ELEMENT arrayDataTypes (arrayData+)>
|
||||
<!ELEMENT arrayData EMPTY>
|
||||
<!ATTLIST arrayData
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
dataType NMTOKEN #IMPLIED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
cardinality CDATA #IMPLIED
|
||||
cardinalityNotes NMTOKENS #IMPLIED
|
||||
encoding CDATA #IMPLIED
|
||||
encodingNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED>
|
||||
<!ELEMENT fixedRecordDataTypes (fixedRecordData+)>
|
||||
<!ELEMENT fixedRecordData (field+)>
|
||||
<!ATTLIST fixedRecordData
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
encoding CDATA #IMPLIED
|
||||
encodingNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
||||
<!ELEMENT field EMPTY>
|
||||
<!ATTLIST field
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
dataType NMTOKEN #IMPLIED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED>
|
||||
<!ELEMENT variantRecordDataTypes (variantRecordData+)>
|
||||
<!ELEMENT variantRecordData (alternative+)>
|
||||
<!ATTLIST variantRecordData
|
||||
name NMTOKEN #REQUIRED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
discriminant CDATA #IMPLIED
|
||||
discriminantNotes NMTOKENS #IMPLIED
|
||||
dataType NMTOKEN #IMPLIED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
encoding CDATA #IMPLIED
|
||||
encodingNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED>
|
||||
<!ELEMENT alternative EMPTY>
|
||||
<!ATTLIST alternative
|
||||
enumerator CDATA #REQUIRED
|
||||
enumeratorNotes NMTOKENS #IMPLIED
|
||||
name NMTOKEN #IMPLIED
|
||||
nameNotes NMTOKENS #IMPLIED
|
||||
dataType NMTOKEN #IMPLIED
|
||||
dataTypeNotes NMTOKENS #IMPLIED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED>
|
||||
|
||||
<!ELEMENT notes (note+)>
|
||||
<!ELEMENT note EMPTY>
|
||||
<!ATTLIST note
|
||||
name NMTOKEN #REQUIRED
|
||||
semantics CDATA #IMPLIED
|
||||
semanticsNotes NMTOKENS #IMPLIED >
|
1710
HLA/mp-aircraft-fom.xml
Normal file
64
HLA/mp-aircraft.xml
Normal file
|
@ -0,0 +1,64 @@
|
|||
<?xml version="1.0"?>
|
||||
<hlaConfiguration version="1">
|
||||
<!-- This is the top level HLA configuration file for use with the
|
||||
multiplayer federation. This serves now as first demo how to configure
|
||||
flightgears hla implementation.
|
||||
This toplevel file consists of startup parameters for the rti,
|
||||
the federate object model to use on create and a way to map the hla
|
||||
attribute values to a semantic meaning or flightgear properties.
|
||||
-->
|
||||
|
||||
<rti version="RTI13">
|
||||
<!-- is ignored for RTI13 anyway, so the example here ... -->
|
||||
<argument>rtiarg0</argument>
|
||||
<argument>rtiarg1</argument>
|
||||
</rti>
|
||||
|
||||
<!-- Contains the data layout and the object classes -->
|
||||
<federateObjectModel name="mp-aircraft-fom.xml"/>
|
||||
|
||||
<objects>
|
||||
<objectClass type="Multiplayer" name="MPAircraft">
|
||||
|
||||
<model type="native">
|
||||
<dataElement type="model-path" name="model.path"/>
|
||||
</model>
|
||||
|
||||
<!-- Should contain all those attributes that form the position and orientation of the aircraft in total -->
|
||||
<position type="cartesian">
|
||||
<!-- These are the positions in the earth centered coordinate system. -->
|
||||
<dataElement type="position-x" name="location.position[0]"/>
|
||||
<dataElement type="position-y" name="location.position[1]"/>
|
||||
<dataElement type="position-z" name="location.position[2]"/>
|
||||
<!-- A very compact and lossless representation of a quaternion wrt the earth centered coordinate system. -->
|
||||
<dataElement type="orientation-sin-angle-axis-x" name="location.orientation[0]"/>
|
||||
<dataElement type="orientation-sin-angle-axis-y" name="location.orientation[1]"/>
|
||||
<dataElement type="orientation-sin-angle-axis-z" name="location.orientation[2]"/>
|
||||
|
||||
<!-- The body velocities in the usual x-fwd, z-down, righthandside body coordinate system. -->
|
||||
<dataElement type="linear-velocity-x" name="velocity.linear[0]"/>
|
||||
<dataElement type="linear-velocity-y" name="velocity.linear[1]"/>
|
||||
<dataElement type="linear-velocity-z" name="velocity.linear[2]"/>
|
||||
<dataElement type="angular-velocity-x" name="velocity.angular[0]"/>
|
||||
<dataElement type="angular-velocity-y" name="velocity.angular[1]"/>
|
||||
<dataElement type="angular-velocity-z" name="velocity.angular[2]"/>
|
||||
</position>
|
||||
|
||||
<simTime type="attribute">
|
||||
<dataElement type="local-simtime" name="simTime"/>
|
||||
</simTime>
|
||||
|
||||
<!-- the attribute that carries the big blob of multiplayer attributes.
|
||||
This datatype is tightly coupled with the implementation for now.
|
||||
It is done in this way to provide the same feature set for the
|
||||
multiplayer object like the existing multiplayer protocol.
|
||||
In the long term, think more about the content of this blob and
|
||||
sensibly distribute that across different datatypes and attributes.
|
||||
-->
|
||||
<mpProperties name="mpProperties"/>
|
||||
|
||||
<dataElement type="property" name="model.livery" in="sim/model/livery/file" out="sim/model/livery/file"/>
|
||||
|
||||
</objectClass>
|
||||
</objects>
|
||||
</hlaConfiguration>
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
<PropertyList>
|
||||
<name>Default Aircraft Hud</name>
|
||||
<enable3d>true</enable3d>
|
||||
|
||||
|
||||
<import>
|
||||
<path>Huds/Instruments/turn-bank-indicator.xml</path>
|
||||
<y-offset>-195</y-offset>
|
||||
|
|
45
Nasal/environment.nas
Executable file
|
@ -0,0 +1,45 @@
|
|||
##
|
||||
## environment.nas
|
||||
##
|
||||
## Nasal code for implementing environment-specific functionality.
|
||||
|
||||
##
|
||||
# Handler. Increase visibility by one step
|
||||
#
|
||||
var increaseVisibility = func {
|
||||
adjustVisibility(1.1);
|
||||
}
|
||||
|
||||
##
|
||||
# Handler. Decrease visibility by one step
|
||||
#
|
||||
var decreaseVisibility = func {
|
||||
adjustVisibility(0.9);
|
||||
}
|
||||
|
||||
var adjustVisibility = func( factor ) {
|
||||
var val = visibilityProp.getValue() * factor;
|
||||
if( val < 1.0 ) val = getprop("/environment/visibility-m");
|
||||
if( val > 30 ) {
|
||||
visibilityProp.setDoubleValue(val);
|
||||
visibilityOverrideProp.setBoolValue(1);
|
||||
gui.popupTip(sprintf("Visibility: %.0f m", val));
|
||||
}
|
||||
}
|
||||
|
||||
##
|
||||
# Handler. Reset visibility to default.
|
||||
#
|
||||
var resetVisibility = func {
|
||||
visibilityProp.setDoubleValue(0);
|
||||
visibilityOverrideProp.setBoolValue(0);
|
||||
}
|
||||
|
||||
|
||||
var visibilityProp = nil;
|
||||
var visibilityOverrideProp = nil;
|
||||
|
||||
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||
visibilityProp = props.globals.initNode("/environment/config/presets/visibility-m", 0, "DOUBLE" );
|
||||
visibilityOverrideProp = props.globals.initNode("/environment/config/presets/visibility-m-override", 0, "BOOL" );
|
||||
});
|
|
@ -532,6 +532,54 @@ var FileSelector = {
|
|||
},
|
||||
};
|
||||
|
||||
##
|
||||
# ScreenshotSelector class (derived from Dialog class).
|
||||
#
|
||||
# SYNOPSIS: DirectorySelector.new(<callback>, <title>, <button> [, <pattern> [, <dir>]])
|
||||
#
|
||||
# callback ... callback function that gets return value as first argument
|
||||
# title ... dialog title
|
||||
# button ... button text (should say "Save", "Load", etc. and not just "OK")
|
||||
# pattern ... array with shell pattern or nil (which is equivalent to "*")
|
||||
# dir ... starting dir ($FG_ROOT if unset)
|
||||
|
||||
var ScreenshotSelector = {
|
||||
new: func(callback, title, button, pattern = nil, dir = "") {
|
||||
var name = "screenshot";
|
||||
## var data = props.globals.getNode("/sim/gui/dialogs/", 1);
|
||||
# for (var i = 1; 1; i += 1)
|
||||
# if (data.getNode(name ~ i, 0) == nil)
|
||||
# break;
|
||||
data = props.globals.getNode("sim/gui/dialogs/screenshot", 1);
|
||||
|
||||
var m = Dialog.new(data.getNode("dialog", 1), "gui/dialogs/screenshot.xml", name);
|
||||
m.parents = [ScreenshotSelector, Dialog];
|
||||
m.data = data;
|
||||
m.set_title(title);
|
||||
m.set_button(button);
|
||||
m.set_directory(dir);
|
||||
m.set_pattern(pattern);
|
||||
m.cblistener = setlistener(data.getNode("path", 1), callback);
|
||||
return m;
|
||||
},
|
||||
# setters only take effect after the next call to open()
|
||||
set_title: func(title) { me.data.getNode("title", 1).setValue(title) },
|
||||
set_button: func(button) { me.data.getNode("button", 1).setValue(button) },
|
||||
set_directory: func(dir) { me.data.getNode("directory", 1).setValue(dir) },
|
||||
set_pattern: func(pattern) {
|
||||
me.data.removeChildren("pattern");
|
||||
if (pattern != nil)
|
||||
forindex (var i; pattern)
|
||||
me.data.getChild("pattern", i, 1).setValue(pattern[i]);
|
||||
},
|
||||
del: func {
|
||||
me.close();
|
||||
delete(me.instance, me.name);
|
||||
removelistener(me.cblistener);
|
||||
me.data.remove();
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
##
|
||||
# Save/load flight menu functions.
|
||||
|
@ -561,6 +609,32 @@ var load_flight = func {
|
|||
}
|
||||
|
||||
|
||||
##
|
||||
# Save screenshot menu function.
|
||||
#
|
||||
var save_screenshot_sel = nil;
|
||||
var save_screenshot = func {
|
||||
foreach (var n; props.globals.getNode("/sim/presets").getChildren())
|
||||
n.setAttribute("archive", 1);
|
||||
var save = func(n) {
|
||||
save_screenshot_sel.close();
|
||||
setprop("/sim/paths/screenshot-dir", n.getValue());
|
||||
var hide_menubar = getprop("sim/gui/dialogs/screenshot/hide-menubar");
|
||||
if (hide_menubar == 1){
|
||||
menu_visibility = getprop("/sim/menubar/visibility");
|
||||
setprop("/sim/menubar/visibility",0);
|
||||
}
|
||||
settimer(func { fgcommand("screen-capture") },0);
|
||||
if (hide_menubar == 1){
|
||||
settimer(func { setprop("/sim/menubar/visibility",menu_visibility) },0);
|
||||
}
|
||||
}
|
||||
if (save_screenshot_sel == nil)
|
||||
save_screenshot_sel = ScreenshotSelector.new(save, "Save Screenshot", "Take screenshot",
|
||||
, getprop("/sim/paths/screenshot-dir"),);
|
||||
save_screenshot_sel.open();
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
# Open property browser with given target path.
|
||||
|
@ -1175,6 +1249,7 @@ var basic_keys = {
|
|||
{ name: "x/X", desc: "zoom in/out" },
|
||||
{ name: "Ctrl-X", desc: "reset zoom to default" },
|
||||
{ name: "z/Z", desc: "increase/decrease visibility" },
|
||||
{ name: "Ctrl-Z", desc: "reset visibility to default" },
|
||||
{ name: "'", desc: "display ATC setting dialog" },
|
||||
{ name: "+", desc: "let ATC/instructor repeat last message" },
|
||||
{ name: "-", desc: "open chat dialog" },
|
||||
|
|
|
@ -283,6 +283,27 @@ var request = func {
|
|||
}
|
||||
|
||||
|
||||
var request_random = func {
|
||||
var tanker = values(Tanker.active);
|
||||
if (size(tanker))
|
||||
return tanker[0].identify();
|
||||
|
||||
var type = props.globals.getNode("systems/refuel", 1).getChildren("type");
|
||||
if (!size(type))
|
||||
return;
|
||||
type = type[rand() * size(type)].getValue();
|
||||
|
||||
var (aiid, callsign, tacanid) =_= identity.get();
|
||||
var hdg = rand() * 360;
|
||||
var course = rand() * 360;
|
||||
var dist = 6000 + rand() * 4000;
|
||||
var alt = int(10 + rand() * 15) * 1000; # FL100--FL250
|
||||
alt = skip_cloud_layer(alt * FT2M);
|
||||
var coord = geo.aircraft_position().apply_course_distance(course, dist).set_alt(alt);
|
||||
Tanker.new(aiid, callsign, tacanid, type, 250, hdg, coord);
|
||||
}
|
||||
|
||||
|
||||
var report = func {
|
||||
var tanker = values(Tanker.active);
|
||||
if (size(tanker))
|
||||
|
|
|
@ -252,8 +252,9 @@ var fly_by_view_handler = {
|
|||
me.latN = props.globals.getNode("/sim/viewer/latitude-deg", 1);
|
||||
me.lonN = props.globals.getNode("/sim/viewer/longitude-deg", 1);
|
||||
me.altN = props.globals.getNode("/sim/viewer/altitude-ft", 1);
|
||||
# me.hdgN = props.globals.getNode("/orientation/heading-deg", 1);
|
||||
me.hdgN = props.globals.getNode("/instrumentation/gps/indicated-track-true-deg", 1);
|
||||
me.vnN = props.globals.getNode("/velocities/speed-north-fps", 1);
|
||||
me.veN = props.globals.getNode("/velocities/speed-east-fps", 1);
|
||||
me.hdgN = props.globals.getNode("/orientation/heading-deg", 1);
|
||||
|
||||
setlistener("/sim/signals/reinit", func(n) { n.getValue() or me.reset() });
|
||||
setlistener("/sim/crashed", func(n) { n.getValue() and me.reset() });
|
||||
|
@ -267,21 +268,37 @@ var fly_by_view_handler = {
|
|||
},
|
||||
reset: func {
|
||||
me.chase = -getprop("/sim/chase-distance-m");
|
||||
me.course = me.hdgN.getValue();
|
||||
# me.course = me.hdgN.getValue();
|
||||
var vn = me.vnN.getValue();
|
||||
var ve = me.veN.getValue();
|
||||
me.course = (0.5*math.pi - math.atan2(vn, ve))*R2D;
|
||||
|
||||
me.last = geo.aircraft_position();
|
||||
me.setpos(1);
|
||||
me.dist = 20;
|
||||
# me.dist = 20;
|
||||
},
|
||||
setpos : func(force = 0) {
|
||||
var pos = geo.aircraft_position();
|
||||
var vn = me.vnN.getValue();
|
||||
var ve = me.veN.getValue();
|
||||
|
||||
var dist = 0.0;
|
||||
if ( force ) {
|
||||
# predict distance based on speed
|
||||
var mps = math.sqrt( vn*vn + ve*ve ) * FT2M;
|
||||
dist = mps * 3.5; # 3.5 seconds worth of travel
|
||||
} else {
|
||||
# use actual distance
|
||||
dist = me.last.distance_to(pos);
|
||||
}
|
||||
|
||||
# check if the aircraft has moved enough
|
||||
var dist = me.last.distance_to(pos);
|
||||
if (dist < 1.7 * me.chase and !force)
|
||||
return 1.13;
|
||||
|
||||
# "predict" and remember next aircraft position
|
||||
var course = me.hdgN.getValue();
|
||||
# var course = me.hdgN.getValue();
|
||||
var course = (0.5*math.pi - math.atan2(vn, ve))*R2D;
|
||||
var delta_alt = (pos.alt() - me.last.alt()) * 0.5;
|
||||
pos.apply_course_distance(course, dist * 0.8);
|
||||
pos.set_alt(pos.alt() + delta_alt);
|
||||
|
|
27
Nasal/weather_scenario.nas
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Set the global weather according to the defined
|
||||
# scenario in /environment/weather-scenario
|
||||
#
|
||||
var initialize_weather_scenario = func {
|
||||
getprop( "/environment/params/metar-updates-environment", 0 ) == 0 and return;
|
||||
getprop( "/environment/realwx/enabled", 0 ) and return;
|
||||
getprop( "/environment/metar/data", "" ) != "" and return;
|
||||
|
||||
# preset configured scenario
|
||||
var scn = getprop("/environment/weather-scenario", "");
|
||||
var wsn = props.globals.getNode( "/environment/weather-scenarios" );
|
||||
if( wsn != nil ) {
|
||||
var scenarios = wsn.getChildren("scenario");
|
||||
forindex (var i; scenarios ) {
|
||||
if( scenarios[i].getNode("name").getValue() == scn ) {
|
||||
setprop("/environment/metar/data", scenarios[i].getNode("metar").getValue() );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||
initialize_weather_scenario();
|
||||
delete(globals, "weather_scenario");
|
||||
});
|
||||
|
BIN
Textures/Runway/pa_stopway.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
Textures/Runway/pc_stopway.png
Normal file
After Width: | Height: | Size: 50 KiB |
|
@ -27,16 +27,20 @@
|
|||
<layout>hbox</layout>
|
||||
<default-padding>1</default-padding>
|
||||
|
||||
<empty><stretch>true</stretch></empty>
|
||||
<empty>
|
||||
<stretch>true</stretch>
|
||||
</empty>
|
||||
|
||||
<text>
|
||||
<label>About FlightGear</label>
|
||||
</text>
|
||||
|
||||
<empty><stretch>true</stretch></empty>
|
||||
<empty>
|
||||
<stretch>true</stretch>
|
||||
</empty>
|
||||
|
||||
<button>
|
||||
<legend></legend>
|
||||
<legend/>
|
||||
<key>Esc</key>
|
||||
<pref-width>16</pref-width>
|
||||
<pref-height>16</pref-height>
|
||||
|
@ -48,50 +52,100 @@
|
|||
</group>
|
||||
|
||||
<hrule/>
|
||||
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<halign>left</halign>
|
||||
<text>
|
||||
<label>FlightGear Flight Simulator</label>
|
||||
</text>
|
||||
<text>
|
||||
<label>MMMMMMMMMMMMM</label>
|
||||
<format>Version: %s</format>
|
||||
<halign>left</halign>
|
||||
<label>MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM</label>
|
||||
<format>This is FlightGear Flight Simulator V%s</format>
|
||||
<property>/sim/version/flightgear</property>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<label>(c) 1996-2011, the FlightGear contributors</label>
|
||||
<halign>left</halign>
|
||||
<label>FlightGear is free and open source software, licensed</label>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<label>http://www.flightgear.org/</label>
|
||||
<halign>left</halign>
|
||||
<label>under the GNU General Public License Version 2.</label>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<label>License: GNU General Public License Version 2</label>
|
||||
<halign>left</halign>
|
||||
<label>Get new versions, add-ons, forum, wiki and more</label>
|
||||
</text>
|
||||
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>from the web-site at http://www.flightgear.org/ for free.</label>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>Have a nice flight!</label>
|
||||
</text>
|
||||
|
||||
<empty>
|
||||
<stretch>true</stretch>
|
||||
</empty>
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>Version information</label>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>MMMMMMMMMM</label>
|
||||
<format>SimGear Version: %s</format>
|
||||
<property>/sim/version/flightgear</property>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>MMMMMMMMMM</label>
|
||||
<format>SimGear Version: %s</format>
|
||||
<property>/sim/version/simgear</property>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>MMMMMMMMMMMMMMMMMM</label>
|
||||
<format>OpenSceneGraph Version: %s</format>
|
||||
<property>/sim/version/openscenegraph</property>
|
||||
</text>
|
||||
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>MMMMMMMMMMMMMMMMMM</label>
|
||||
<format>Build Id: %s</format>
|
||||
<property>/sim/version/build-id</property>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>MMMMMM</label>
|
||||
<format>Build Number: %d</format>
|
||||
<property>/sim/version/build-number</property>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>MMMMMM</label>
|
||||
<format>Revision: %s</format>
|
||||
<property>/sim/version/revision</property>
|
||||
</text>
|
||||
|
||||
<hrule/>
|
||||
|
||||
<text>
|
||||
<label>(c) 1996-2011, the FlightGear contributors</label>
|
||||
</text>
|
||||
|
||||
</group>
|
||||
|
||||
<nasal>
|
||||
<open><![CDATA[
|
||||
|
@ -102,4 +156,3 @@
|
|||
|
||||
</nasal>
|
||||
</PropertyList>
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ command interface /autopilot/route-manager/input:
|
|||
|
||||
var clear = func {
|
||||
cmd.setValue("@clear");
|
||||
selection.setIntValue(-1);
|
||||
}
|
||||
|
||||
var insert = func {
|
||||
|
|
261
gui/dialogs/screenshot.xml
Normal file
|
@ -0,0 +1,261 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
Ctrl-click on "." toggles display of hidden Unix filex (dotfiles)
|
||||
Ctrl-click on ".." enters $FG_ROOT
|
||||
Shift-click on ".." enters $FG_HOME
|
||||
Alt-click on ".." enters current working directory
|
||||
-->
|
||||
|
||||
<PropertyList>
|
||||
<name>screenshot</name>
|
||||
<dialog-name>screenshot</dialog-name>
|
||||
<layout>vbox</layout>
|
||||
<resizable>true</resizable>
|
||||
<pref-width>450</pref-width>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
<empty><stretch>1</stretch></empty>
|
||||
|
||||
<text>
|
||||
<label>Select directory</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>nasal</command>
|
||||
<script>close()</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
</binding>
|
||||
</button>
|
||||
</group>
|
||||
|
||||
<hrule/>
|
||||
|
||||
<input>
|
||||
<name>dir-input</name>
|
||||
<pref-width>442</pref-width>
|
||||
<halign>fill</halign>
|
||||
<property>/sim/gui/dialogs/screenshot/directory</property>
|
||||
<live>1</live>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>dir-input</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>dir_input()</script>
|
||||
</binding>
|
||||
</input>
|
||||
|
||||
<list>
|
||||
<name>list</name>
|
||||
<halign>fill</halign>
|
||||
<valign>fill</valign>
|
||||
<stretch>true</stretch>
|
||||
<pref-height>300</pref-height>
|
||||
<property>/sim/gui/dialogs/screenshot/selection</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>list</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>select()</script>
|
||||
</binding>
|
||||
</list>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
|
||||
<checkbox>
|
||||
<halign>left</halign>
|
||||
<label>Hide menubar from screenshot</label>
|
||||
<name>hide-menubar</name>
|
||||
<property>/sim/gui/dialogs/screenshot/hide-menubar</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>hide-menubar</object-name>
|
||||
</binding>
|
||||
</checkbox>
|
||||
|
||||
<button>
|
||||
<legend>OK</legend>
|
||||
<live>1</live>
|
||||
<pref-width>200</pref-width>
|
||||
<default>true</default>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>ok()</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
</binding>
|
||||
</button>
|
||||
</group>
|
||||
|
||||
<nasal>
|
||||
<open>
|
||||
var self = cmdarg();
|
||||
var list = self.getNode("list");
|
||||
|
||||
# cloning
|
||||
var dlgname = self.getNode("name").getValue();
|
||||
self.getNode("input/property").setValue("/sim/gui/dialogs/" ~ dlgname ~ "/directory");
|
||||
self.getNode("list/property").setValue("/sim/gui/dialogs/" ~ dlgname ~ "/selection");
|
||||
# self.getNode("group[1]/input/property").setValue("/sim/gui/dialogs/" ~ dlgname ~ "/selection");
|
||||
|
||||
var dlg = props.globals.getNode("/sim/gui/dialogs/" ~ dlgname, 1);
|
||||
var selection = dlg.getNode("selection", 1);
|
||||
var title = dlg.getNode("title", 1);
|
||||
var button = dlg.getNode("button", 1);
|
||||
var dir = dlg.getNode("directory", 1);
|
||||
var file = dlg.getNode("file", 1);
|
||||
var path = dlg.getNode("path", 1);
|
||||
var dotfiles = dlg.getNode("dotfiles", 1);
|
||||
dotfiles.setBoolValue(dotfiles.getValue());
|
||||
|
||||
var kbdctrl = props.globals.getNode("/devices/status/keyboard/ctrl", 1);
|
||||
var kbdshift = props.globals.getNode("/devices/status/keyboard/shift", 1);
|
||||
var kbdalt = props.globals.getNode("/devices/status/keyboard/alt", 1);
|
||||
var current = { dir : "", file : "" };
|
||||
var pattern = [];
|
||||
foreach (var p; dlg.getChildren("pattern"))
|
||||
append(pattern, p.getValue());
|
||||
|
||||
var matches = func(s) {
|
||||
foreach (var p; pattern)
|
||||
if (string.match(s, p))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
var update = func(d) {
|
||||
var entries = directory(d);
|
||||
if (entries == nil) # dir doesn't exist or no permissions
|
||||
return 0;
|
||||
|
||||
var files = [];
|
||||
var dirs = [];
|
||||
var hide = !dotfiles.getValue();
|
||||
foreach (var e; entries) {
|
||||
if (e == ".") {
|
||||
append(dirs, e);
|
||||
continue;
|
||||
}
|
||||
if (e == "..") {
|
||||
if (d != "/")
|
||||
append(dirs, e);
|
||||
continue;
|
||||
}
|
||||
if (hide and e[0] == `.`)
|
||||
continue;
|
||||
|
||||
var stat = io.stat(d ~ "/" ~ e);
|
||||
if (stat == nil) # dead link
|
||||
continue;
|
||||
|
||||
if (stat[11] == "dir")
|
||||
append(dirs, e ~ "/");
|
||||
elsif (!size(pattern) or matches(e))
|
||||
append(files, e);
|
||||
}
|
||||
|
||||
list.removeChildren("value");
|
||||
var entries = sort(dirs, cmp) ~ sort(files, cmp);
|
||||
forindex (var i; entries)
|
||||
list.getChild("value", i, 1).setValue(entries[i]);
|
||||
|
||||
dir.setValue(d);
|
||||
gui.dialog_update(dlgname, "dir-input", "list");
|
||||
return 1;
|
||||
}
|
||||
|
||||
var select = func {
|
||||
var e = selection.getValue();
|
||||
current.file = "";
|
||||
var new = nil;
|
||||
if (e == ".") {
|
||||
new = current.dir;
|
||||
if (kbdctrl.getValue())
|
||||
dotfiles.setBoolValue(!dotfiles.getValue());
|
||||
} elsif (e == "..") {
|
||||
if (kbdctrl.getValue())
|
||||
new = getprop("/sim/fg-root");
|
||||
elsif (kbdshift.getValue())
|
||||
new = getprop("/sim/fg-home");
|
||||
elsif (kbdalt.getValue())
|
||||
new = getprop("/sim/fg-current");
|
||||
else
|
||||
new = current.dir ~ "/..";
|
||||
} elsif (e[size(e) - 1] == `/`) {
|
||||
new = current.dir ~ "/" ~ e;
|
||||
} else {
|
||||
current.file = e;
|
||||
gui.dialog_update(dlgname, "screenshot");
|
||||
}
|
||||
if (new != nil) {
|
||||
var p = string.normpath(new);
|
||||
if (update(p))
|
||||
current.dir = p;
|
||||
selection.setValue("");
|
||||
}
|
||||
}
|
||||
|
||||
var file_input = func {
|
||||
current.file = selection.getValue();
|
||||
}
|
||||
|
||||
var dir_input = func {
|
||||
var p = string.normpath(dir.getValue());
|
||||
if (update(p))
|
||||
current.dir = p;
|
||||
gui.dialog_update(dlgname, "list");
|
||||
}
|
||||
|
||||
var close = func {
|
||||
call(func { gui.Dialog.instance[dlgname].close() }, nil, var err = []);
|
||||
}
|
||||
|
||||
var ok = func {
|
||||
dir_input();
|
||||
file_input();
|
||||
var p = string.normpath(current.dir ~ "/" ~ current.file);
|
||||
var stat = io.stat(p);
|
||||
path.setValue(stat != nil and stat[11] == "dir" ? p ~ "/" : p);
|
||||
file.setValue(current.file);
|
||||
close();
|
||||
}
|
||||
|
||||
var op = button.getValue();
|
||||
if (op == nil or op == "")
|
||||
op = "OK";
|
||||
self.getNode("group[1]/button/legend").setValue(op);
|
||||
|
||||
var t = title.getValue();
|
||||
if (t == nil or t == "")
|
||||
t = "Select File";
|
||||
self.getNode("group[0]/text/label").setValue(t);
|
||||
|
||||
current.dir = (var d = dir.getValue()) != nil and d != "" ? d : getprop("/sim/fg-current");
|
||||
current.file = (var d = file.getValue()) != nil and d != "" ? d : "";
|
||||
gui.dialog_update(dlgname, "screenshot"); ## dir-input ?
|
||||
update(string.normpath(current.dir));
|
||||
dir.setValue(current.dir);
|
||||
</open>
|
||||
</nasal>
|
||||
</PropertyList>
|
|
@ -578,6 +578,12 @@
|
|||
<label>Dewpt (C)</label>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<row>0</row>
|
||||
<col>6</col>
|
||||
<label>Turbulence</label>
|
||||
</text>
|
||||
|
||||
<input>
|
||||
<name>aloft-4-elevation-ft</name>
|
||||
<row>1</row>
|
||||
|
@ -686,6 +692,33 @@
|
|||
</binding>
|
||||
</input>
|
||||
|
||||
<combo>
|
||||
<name>aloft-4-turbulence</name>
|
||||
<row>1</row>
|
||||
<col>6</col>
|
||||
<pref-width>90</pref-width>
|
||||
<live>true</live>
|
||||
<property>/environment/config/aloft/entry[4]/turbulence-name</property>
|
||||
<value>none</value>
|
||||
<value>light</value>
|
||||
<value>moderate</value>
|
||||
<value>severe</value>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>aloft-4-turbulence</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controller.setTurbulence("aloft",4);</script>
|
||||
</binding>
|
||||
<!--enable>
|
||||
<equals>
|
||||
<property>/sim/gui/dialogs/weather-scenario/state</property>
|
||||
<value type="int">1</value>
|
||||
</equals>
|
||||
</enable-->
|
||||
</combo>
|
||||
|
||||
<input>
|
||||
<name>aloft-3-elevation-ft</name>
|
||||
<row>2</row>
|
||||
|
@ -794,6 +827,33 @@
|
|||
</binding>
|
||||
</input>
|
||||
|
||||
<combo>
|
||||
<name>aloft-3-turbulence</name>
|
||||
<row>2</row>
|
||||
<col>6</col>
|
||||
<pref-width>90</pref-width>
|
||||
<live>true</live>
|
||||
<property>/environment/config/aloft/entry[3]/turbulence-name</property>
|
||||
<value>none</value>
|
||||
<value>light</value>
|
||||
<value>moderate</value>
|
||||
<value>severe</value>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>aloft-3-turbulence</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controller.setTurbulence("aloft",3);</script>
|
||||
</binding>
|
||||
<!--enable>
|
||||
<equals>
|
||||
<property>/sim/gui/dialogs/weather-scenario/state</property>
|
||||
<value type="int">1</value>
|
||||
</equals>
|
||||
</enable-->
|
||||
</combo>
|
||||
|
||||
<input>
|
||||
<name>aloft-2-elevation-ft</name>
|
||||
<row>3</row>
|
||||
|
@ -902,6 +962,34 @@
|
|||
</binding>
|
||||
</input>
|
||||
|
||||
<combo>
|
||||
<name>aloft-2-turbulence</name>
|
||||
<row>3</row>
|
||||
<col>6</col>
|
||||
<pref-width>90</pref-width>
|
||||
<live>true</live>
|
||||
<property>/environment/config/aloft/entry[2]/turbulence-name</property>
|
||||
<value>none</value>
|
||||
<value>light</value>
|
||||
<value>moderate</value>
|
||||
<value>severe</value>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>aloft-2-turbulence</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controller.setTurbulence("aloft",2);</script>
|
||||
</binding>
|
||||
<!--enable>
|
||||
<equals>
|
||||
<property>/sim/gui/dialogs/weather-scenario/state</property>
|
||||
<value type="int">1</value>
|
||||
</equals>
|
||||
</enable-->
|
||||
</combo>
|
||||
|
||||
|
||||
<input>
|
||||
<name>aloft-1-elevation-ft</name>
|
||||
<row>4</row>
|
||||
|
@ -1010,6 +1098,33 @@
|
|||
</binding>
|
||||
</input>
|
||||
|
||||
<combo>
|
||||
<name>aloft-1-turbulence</name>
|
||||
<row>4</row>
|
||||
<col>6</col>
|
||||
<pref-width>90</pref-width>
|
||||
<live>true</live>
|
||||
<property>/environment/config/aloft/entry[1]/turbulence-name</property>
|
||||
<value>none</value>
|
||||
<value>light</value>
|
||||
<value>moderate</value>
|
||||
<value>severe</value>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>aloft-1-turbulence</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controller.setTurbulence("aloft",1);</script>
|
||||
</binding>
|
||||
<!--enable>
|
||||
<equals>
|
||||
<property>/sim/gui/dialogs/weather-scenario/state</property>
|
||||
<value type="int">1</value>
|
||||
</equals>
|
||||
</enable-->
|
||||
</combo>
|
||||
|
||||
<input>
|
||||
<name>aloft-0-elevation-ft</name>
|
||||
<row>5</row>
|
||||
|
@ -1123,6 +1238,34 @@
|
|||
<object-name>aloft-0-dewpoint-degc</object-name>
|
||||
</binding>
|
||||
</input>
|
||||
|
||||
<combo>
|
||||
<name>aloft-0-turbulence</name>
|
||||
<row>5</row>
|
||||
<col>6</col>
|
||||
<pref-width>90</pref-width>
|
||||
<live>true</live>
|
||||
<property>/environment/config/aloft/entry[0]/turbulence-name</property>
|
||||
<value>none</value>
|
||||
<value>light</value>
|
||||
<value>moderate</value>
|
||||
<value>severe</value>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>aloft-0-turbulence</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controller.setTurbulence("aloft",0);</script>
|
||||
</binding>
|
||||
<!--enable>
|
||||
<equals>
|
||||
<property>/sim/gui/dialogs/weather-scenario/state</property>
|
||||
<value type="int">1</value>
|
||||
</equals>
|
||||
</enable-->
|
||||
</combo>
|
||||
|
||||
</group>
|
||||
<empty>
|
||||
<stretch>true</stretch>
|
||||
|
@ -1316,6 +1459,33 @@
|
|||
</binding>
|
||||
</input>
|
||||
|
||||
<combo>
|
||||
<name>boundary-1-turbulence</name>
|
||||
<row>1</row>
|
||||
<col>6</col>
|
||||
<pref-width>90</pref-width>
|
||||
<live>true</live>
|
||||
<property>/environment/config/boundary/entry[1]/turbulence-name</property>
|
||||
<value>none</value>
|
||||
<value>light</value>
|
||||
<value>moderate</value>
|
||||
<value>severe</value>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>boundary-1-turbulence</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controller.setTurbulence("boundary",1);</script>
|
||||
</binding>
|
||||
<!--enable>
|
||||
<equals>
|
||||
<property>/sim/gui/dialogs/weather-scenario/state</property>
|
||||
<value type="int">1</value>
|
||||
</equals>
|
||||
</enable-->
|
||||
</combo>
|
||||
|
||||
<input>
|
||||
<name>boundary-0-elevation-ft</name>
|
||||
<row>2</row>
|
||||
|
@ -1429,6 +1599,34 @@
|
|||
<object-name>boundary-0-dewpoint-degc</object-name>
|
||||
</binding>
|
||||
</input>
|
||||
|
||||
<combo>
|
||||
<name>boundary-0-turbulence</name>
|
||||
<row>2</row>
|
||||
<col>6</col>
|
||||
<pref-width>90</pref-width>
|
||||
<live>true</live>
|
||||
<property>/environment/config/boundary/entry[0]/turbulence-name</property>
|
||||
<value>none</value>
|
||||
<value>light</value>
|
||||
<value>moderate</value>
|
||||
<value>severe</value>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>boundary-0-turbulence</object-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controller.setTurbulence("boundary",0);</script>
|
||||
</binding>
|
||||
<!--enable>
|
||||
<equals>
|
||||
<property>/sim/gui/dialogs/weather-scenario/state</property>
|
||||
<value type="int">1</value>
|
||||
</equals>
|
||||
</enable-->
|
||||
</combo>
|
||||
|
||||
</group>
|
||||
<empty>
|
||||
<stretch>true</stretch>
|
||||
|
@ -1593,13 +1791,35 @@
|
|||
},
|
||||
|
||||
open : func {
|
||||
for( var i = 0; i < 5; i+=1 )
|
||||
me.initTurbulence("aloft", i );
|
||||
|
||||
for( var i = 0; i < 2; i+=1 )
|
||||
me.initTurbulence("boundary", i );
|
||||
|
||||
#initialize the METAR source selection
|
||||
if( getprop( "environment/params/metar-updates-environment" ) == 0 ) {
|
||||
setprop( me.base ~ "/source-selection", "Disabled" );
|
||||
} else if( getprop( "environment/realwx/enabled" ) ) {
|
||||
setprop( me.base ~ "/source-selection", "Live data" );
|
||||
} else {
|
||||
setprop( me.base ~ "/source-selection", "Manual input" );
|
||||
# preset configured scenario
|
||||
var wsn = props.globals.getNode( "/environment/weather-scenarios" );
|
||||
var found = 0;
|
||||
if( wsn != nil ) {
|
||||
var scenarios = wsn.getChildren("scenario");
|
||||
forindex (var i; scenarios ) {
|
||||
var metarN = scenarios[i].getNode("metar");
|
||||
metarN == nil and continue;
|
||||
if( metarN.getValue() == getprop("/environment/metar/data","") ) {
|
||||
setprop( me.base ~ "/source-selection", scenarios[i].getNode("name").getValue() );
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if( found == 0 )
|
||||
setprop( me.base ~ "/source-selection", "Manual input" );
|
||||
}
|
||||
setprop( me.base ~ "/metar", normalize_string(getprop("environment/metar/data")) );
|
||||
|
||||
|
@ -1697,6 +1917,26 @@
|
|||
gui.dialog_update( "weather", "metar" );
|
||||
},
|
||||
|
||||
setTurbulence : func( where, idx ) {
|
||||
var propPath = "/environment/config/" ~ where ~ "/entry[" ~ idx ~ "]/";
|
||||
setprop( propPath ~ "turbulence/magnitude-norm",
|
||||
me.turbulenceNames[getprop(propPath ~ "turbulence-name")]/(size(me.turbulenceNames)-1) );
|
||||
},
|
||||
|
||||
initTurbulence : func( where, idx ) {
|
||||
var propPath = "/environment/config/" ~ where ~ "/entry[" ~ idx ~ "]/";
|
||||
var turb = getprop( propPath ~ "turbulence/magnitude-norm" ) * (size(me.turbulenceNames)-1);
|
||||
turb = int(int(10*turb+5)/10); # round to nearest integer
|
||||
foreach( var t; keys(me.turbulenceNames) ) {
|
||||
if( me.turbulenceNames[t] == turb ) {
|
||||
setprop( propPath ~ "turbulence-name", t );
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
turbulenceNames : { "none" : 0, "light" : 1, "moderate" : 2, "severe" : 3 },
|
||||
|
||||
};
|
||||
|
||||
var controller = GlobalWeatherDialogController.new( cmdarg() );
|
||||
|
|
|
@ -67,6 +67,13 @@
|
|||
</script>
|
||||
</binding>
|
||||
</item>
|
||||
<item>
|
||||
<label>Screesnhot (set directory)</label>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>gui.save_screenshot()</script>
|
||||
</binding>
|
||||
</item>
|
||||
<!--
|
||||
<item>
|
||||
<label>Last snapshot</label>
|
||||
|
|
19
keyboard.xml
|
@ -255,7 +255,16 @@ top down before the key bindings are parsed.
|
|||
</binding>
|
||||
</key>
|
||||
|
||||
<key n="27">
|
||||
<key n="26">
|
||||
<name>Ctrl-Z</name>
|
||||
<desc>Reset visibility to default</desc>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>environment.resetVisibility()</script>
|
||||
</binding>
|
||||
</key>
|
||||
|
||||
<key n="27">
|
||||
<name>ESC</name>
|
||||
<desc>Prompt and quit FlightGear</desc>
|
||||
<binding>
|
||||
|
@ -765,7 +774,8 @@ top down before the key bindings are parsed.
|
|||
<desc>Decrease Visibility</desc>
|
||||
<repeatable type="bool">true</repeatable>
|
||||
<binding>
|
||||
<command>decrease-visibility</command>
|
||||
<command>nasal</command>
|
||||
<script>environment.decreaseVisibility()</script>
|
||||
</binding>
|
||||
</key>
|
||||
|
||||
|
@ -1040,8 +1050,9 @@ top down before the key bindings are parsed.
|
|||
<name>z</name>
|
||||
<desc>Increase Visibility</desc>
|
||||
<repeatable type="bool">true</repeatable>
|
||||
<binding>
|
||||
<command>increase-visibility</command>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>environment.increaseVisibility()</script>
|
||||
</binding>
|
||||
</key>
|
||||
|
||||
|
|
|
@ -181,6 +181,12 @@ Shared parameters for various materials.
|
|||
<wrapu>false</wrapu>
|
||||
<wrapv>false</wrapv>
|
||||
</material>
|
||||
|
||||
<material>
|
||||
<name>pa_stopway</name>
|
||||
<texture>Runway/pa_stopway.png</texture>
|
||||
<wrapu>false</wrapu>
|
||||
</material>
|
||||
|
||||
<material>
|
||||
<name>pa_L</name>
|
||||
|
@ -423,6 +429,12 @@ Shared parameters for various materials.
|
|||
<wrapu>false</wrapu>
|
||||
<wrapv>false</wrapv>
|
||||
</material>
|
||||
|
||||
<material>
|
||||
<name>pc_stopway</name>
|
||||
<texture>Runway/pc_stopway.png</texture>
|
||||
<wrapu>false</wrapu>
|
||||
</material>
|
||||
|
||||
<material>
|
||||
<name>pc_L</name>
|
||||
|
@ -1350,6 +1362,7 @@ Shared parameters for various materials.
|
|||
<name>IrrCropPastureCover</name>
|
||||
<name>IrrCrop</name>
|
||||
<name>Orchard</name>
|
||||
<name>Rice</name>
|
||||
<texture>Terrain/irrcrop1.png</texture>
|
||||
<texture>Terrain/irrcrop2.png</texture>
|
||||
<texture>Terrain/irrcrop3.png</texture>
|
||||
|
|
|
@ -246,7 +246,7 @@ Started September 2000 by David Megginson, david@megginson.com
|
|||
</current-view>
|
||||
<panel>
|
||||
<path>Aircraft/Generic/Panels/generic-vfr-panel.xml</path>
|
||||
<visibility type="bool">false</visibility>
|
||||
<visibility type="bool" userarchive="y">false</visibility>
|
||||
<jitter type="bool">false</jitter>
|
||||
</panel>
|
||||
<panel_2>
|
||||
|
@ -574,8 +574,8 @@ Started September 2000 by David Megginson, david@megginson.com
|
|||
</gui>
|
||||
|
||||
<mouse>
|
||||
<hide-cursor>true</hide-cursor>
|
||||
<cursor-timeout-sec>10.0</cursor-timeout-sec>
|
||||
<hide-cursor type="bool" userarchive="y">true</hide-cursor>
|
||||
<cursor-timeout-sec type="int" userarchive="y">10.0</cursor-timeout-sec>
|
||||
</mouse>
|
||||
|
||||
<replay>
|
||||
|
|