GIT: Merge master, fix bug

This commit is contained in:
Joshua Davidson 2018-08-13 14:03:36 -04:00
commit 61f83cc6f6
6 changed files with 346 additions and 33 deletions

View file

@ -473,17 +473,17 @@
</display>
<ir n="0">
<align type="bool">false</align>
<knob type="int">1</knob>
<knob type="int">0</knob>
<fault type="bool">false</fault>
</ir>
<ir n="1">
<align type="bool">false</align>
<knob type="int">1</knob>
<knob type="int">0</knob>
<fault type="bool">false</fault>
</ir>
<ir n="2">
<align type="bool">false</align>
<knob type="int">1</knob>
<knob type="int">0</knob>
<fault type="bool">false</fault>
</ir>
<onbat type="bool">false</onbat>
@ -1429,6 +1429,7 @@
<file>Aircraft/IDG-A32X/Nasal/efis.nas</file>
<file>Aircraft/IDG-A32X/Nasal/ECAM.nas</file>
<file>Aircraft/IDG-A32X/Nasal/shake.nas</file>
<file>Aircraft/IDG-A32X/Nasal/light-manager.nas</file>
</libraries>
<acconfig>
<file>Aircraft/IDG-A32X/AircraftConfig/acconfig.nas</file>

View file

@ -113,8 +113,9 @@ spinning.start();
init_dlg.open();
http.load("https://raw.githubusercontent.com/it0uchpods/IDG-A32X/master/revision.txt").done(func(r) setprop("/systems/acconfig/new-revision", r.response));
var revisionFile = (getprop("/sim/aircraft-dir")~"/revision.txt");
var revisionFile = (getprop("/sim/aircraft-dir") ~ "/revision.txt");
var current_revision = io.readfile(revisionFile);
print("IDG A32X Revision: " ~ current_revision);
setprop("/systems/acconfig/revision", current_revision);
setlistener("/systems/acconfig/new-revision", func {
@ -161,7 +162,7 @@ setlistener("/sim/signals/fdm-initialized", func {
}
mismatch_chk();
readSettings();
if (getprop("/systems/acconfig/options/revision") < current_revision) {
if (getprop("/systems/acconfig/options/revision") < current_revision and getprop("/systems/acconfig/mismatch-code") == "0x000") {
updated_dlg.open();
} else if (getprop("/systems/acconfig/out-of-date") != 1 and getprop("/systems/acconfig/mismatch-code") == "0x000" and getprop("/systems/acconfig/options/welcome-skip") != 1) {
welcome_dlg.open();

View file

@ -47,7 +47,6 @@ var ADIRS = {
setprop("/controls/adirs/ir[1]/fault", 0);
setprop("/controls/adirs/ir[2]/fault", 0);
setprop("/controls/adirs/onbat", 0);
setprop("/controls/adirs/mcducbtn", 0);
setprop("/controls/adirs/mcdu/mode1", ""); # INVAL ALIGN NAV ATT or off (blank)
setprop("/controls/adirs/mcdu/mode2", "");
setprop("/controls/adirs/mcdu/mode3", "");

View file

@ -125,15 +125,6 @@ setlistener("/controls/switches/no-smoking-sign", func {
}, 1);
});
setlistener("/sim/sounde/btn1", func {
if (!getprop("/sim/sounde/btn1")) {
return;
}
settimer(func {
props.globals.getNode("/sim/sound/warnings/").setBoolValue(1);
}, 0.05);
});
#########
# Doors #
#########
@ -526,22 +517,6 @@ var lightsLoop = maketimer(0.2, func {
} else {
nav_lights.setBoolValue(0);
}
# landing lights
landl = getprop("/controls/lighting/landing-lights[1]");
landr = getprop("/controls/lighting/landing-lights[2]");
if (landl == 1 and getprop("/sim/current-view/internal") == 1) {
setprop("/sim/rendering/als-secondary-lights/use-landing-light", 1);
} else {
setprop("/sim/rendering/als-secondary-lights/use-landing-light", 0);
}
if (landr == 1 and getprop("/sim/current-view/internal") == 1) {
setprop("/sim/rendering/als-secondary-lights/use-alt-landing-light", 1);
} else {
setprop("/sim/rendering/als-secondary-lights/use-alt-landing-light", 0);
}
});
var lTray = func {
@ -609,4 +584,4 @@ if (getprop("/controls/flight/auto-coordination") == 1) {
setprop("/controls/flight/aileron-drives-tiller", 0);
}
setprop("/systems/acconfig/libraries-loaded", 1);
setprop("/systems/acconfig/libraries-loaded", 1);

337
Nasal/light-manager.nas Normal file
View file

@ -0,0 +1,337 @@
# provides relative vectors from eye-point to aircraft lights
# in east/north/up coordinates the renderer uses
# Thanks to BAWV12 / Thorsten
var light_manager = {
run: 0,
lat_to_m: 110952.0,
lon_to_m: 0.0,
light1_xpos: 0.0,
light1_ypos: 0.0,
light1_zpos: 0.0,
light1_r: 0.0,
light1_g: 0.0,
light1_b: 0.0,
light1_size: 0.0,
light1_stretch: 0.0,
light1_is_on: 0,
light2_xpos: 0.0,
light2_ypos: 0.0,
light2_zpos: 0.0,
light2_r: 0.0,
light2_g: 0.0,
light2_b: 0.0,
light2_size: 0.0,
light2_stretch: 0.0,
light2_is_on: 0,
light3_xpos: 0.0,
light3_ypos: 0.0,
light3_zpos: 0.0,
light3_r: 0.0,
light3_g: 0.0,
light3_b: 0.0,
light3_size: 0.0,
light3_stretch: 0.0,
light3_is_on: 0,
light3_xpos: 0.0,
light3_ypos: 0.0,
light3_zpos: 0.0,
light3_r: 0.0,
light3_g: 0.0,
light3_b: 0.0,
light3_size: 0.0,
light3_stretch: 0.0,
light4_is_on: 0,
flcpt: 0,
prev_view : 1,
nd_ref_light1_x: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-x-m", 1),
nd_ref_light1_y: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-y-m", 1),
nd_ref_light1_z: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-z-m", 1),
nd_ref_light1_dir: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/dir", 1),
nd_ref_light2_x: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-x-m[1]", 1),
nd_ref_light2_y: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-y-m[1]", 1),
nd_ref_light2_z: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-z-m[1]", 1),
nd_ref_light2_dir: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/dir[1]", 1),
nd_ref_light3_x: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-x-m[2]", 1),
nd_ref_light3_y: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-y-m[2]", 1),
nd_ref_light3_z: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-z-m[2]", 1),
nd_ref_light3_dir: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/dir[2]", 1),
nd_ref_light4_x: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-x-m[3]", 1),
nd_ref_light4_y: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-y-m[3]", 1),
nd_ref_light4_z: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/eyerel-z-m[3]", 1),
nd_ref_light4_dir: props.globals.getNode("/sim/rendering/als-secondary-lights/lightspot/dir[3]", 1),
init: func {
# define your lights here
# lights ########
# offsets to aircraft center
me.light1_xpos = 70.0;
me.light1_ypos = 3.0;
me.light1_zpos = 2.0;
me.light2_xpos = 70.0;
me.light2_ypos = -3.0;
me.light2_zpos = 2.0;
me.light3_xpos = 35.0;
me.light3_ypos = 0.5;
me.light3_zpos = 2.0;
me.light4_xpos = 35.0;
me.light4_ypos = -0.5;
me.light4_zpos = 2.0;
# color values
me.light1_r = 0.7;
me.light1_g = 0.7;
me.light1_b = 0.7;
me.light2_r = 0.7;
me.light2_g = 0.7;
me.light2_b = 0.7;
me.light3_r = 0.5;
me.light3_g = 0.5;
me.light3_b = 0.5;
me.light4_r = 0.5;
me.light4_g = 0.5;
me.light4_b = 0.5;
# spot size
me.light1_size = 12;
me.light1_stretch = 6;
me.light2_size = 12;
me.light2_stretch = 6;
me.light3_size = 6;
me.light3_stretch = 8;
me.light4_size = 9;
me.light4_stretch = 8;
setprop("sim/rendering/als-secondary-lights/flash-radius", 13);
me.start();
},
start: func {
setprop("/sim/rendering/als-secondary-lights/num-lightspots", 4);
setprop("/sim/rendering/als-secondary-lights/lightspot/size", me.light1_size);
setprop("/sim/rendering/als-secondary-lights/lightspot/size[1]", me.light2_size);
setprop("/sim/rendering/als-secondary-lights/lightspot/size[2]", me.light3_size);
setprop("/sim/rendering/als-secondary-lights/lightspot/size[3]", me.light4_size);
setprop("/sim/rendering/als-secondary-lights/lightspot/stretch", me.light1_stretch);
setprop("/sim/rendering/als-secondary-lights/lightspot/stretch[1]", me.light2_stretch);
setprop("/sim/rendering/als-secondary-lights/lightspot/stretch[2]", me.light3_stretch);
setprop("/sim/rendering/als-secondary-lights/lightspot/stretch[3]", me.light4_stretch);
me.run = 1;
me.update();
},
stop: func {
me.run = 0;
},
update: func {
if (me.run == 0) {
return;
}
als_on = getprop("/sim/rendering/shaders/skydome");
alt_agl = getprop("/position/gear-agl-ft");
type_of_view = getprop("sim/current-view/internal");
if (als_on == 1 and alt_agl < 100.0) {
ll1 = getprop("controls/lighting/landing-lights[1]");
ll2 = getprop("controls/lighting/landing-lights[2]");
ll3 = getprop("sim/model/lights/nose-lights");
var apos = geo.aircraft_position();
var vpos = geo.viewer_position();
me.lon_to_m = math.cos(apos.lat()*math.pi/180.0) * me.lat_to_m;
var heading = getprop("/orientation/heading-deg") * math.pi/180.0;
var lat = apos.lat();
var lon = apos.lon();
var alt = apos.alt();
var sh = math.sin(heading);
var ch = math.cos(heading);
if (ll1 == 1) {
me.light1_on();
} else {
me.light1_off();
}
if (ll2 == 1) {
me.light2_on();
} else {
me.light2_off();
}
if (ll3 == 0.85) {
me.light3_on();
} else {
me.light3_off();
}
if (ll3 == 1) {
me.light4_on();
} else {
me.light4_off();
}
# light 1 position
#var alt_agl = getprop("/position/altitude-agl-ft");
var proj_x = alt_agl;
var proj_z = alt_agl/10.0;
apos.set_lat(lat + ((me.light1_xpos + proj_x) * ch + me.light1_ypos * sh) / me.lat_to_m);
apos.set_lon(lon + ((me.light1_xpos + proj_x)* sh - me.light1_ypos * ch) / me.lon_to_m);
delta_x = (apos.lat() - vpos.lat()) * me.lat_to_m;
delta_y = -(apos.lon() - vpos.lon()) * me.lon_to_m;
var delta_z = apos.alt()- proj_z - vpos.alt();
me.nd_ref_light1_x.setValue(delta_x);
me.nd_ref_light1_y.setValue(delta_y);
me.nd_ref_light1_z.setValue(delta_z);
me.nd_ref_light1_dir.setValue(heading);
# light 2 position
apos.set_lat(lat + (me.light2_xpos * ch + me.light2_ypos * sh) / me.lat_to_m);
apos.set_lon(lon + (me.light2_xpos * sh - me.light2_ypos * ch) / me.lon_to_m);
delta_x = (apos.lat() - vpos.lat()) * me.lat_to_m;
delta_y = -(apos.lon() - vpos.lon()) * me.lon_to_m;
delta_z = apos.alt() - vpos.alt();
me.nd_ref_light2_x.setValue(delta_x);
me.nd_ref_light2_y.setValue(delta_y);
me.nd_ref_light2_z.setValue(delta_z);
me.nd_ref_light2_dir.setValue(heading);
# light 3 position
apos.set_lat(lat + (me.light3_xpos * ch + me.light3_ypos * sh) / me.lat_to_m);
apos.set_lon(lon + (me.light3_xpos * sh - me.light3_ypos * ch) / me.lon_to_m);
delta_x = (apos.lat() - vpos.lat()) * me.lat_to_m;
delta_y = -(apos.lon() - vpos.lon()) * me.lon_to_m;
delta_z = apos.alt() - vpos.alt();
me.nd_ref_light3_x.setValue(delta_x);
me.nd_ref_light3_y.setValue(delta_y);
me.nd_ref_light3_z.setValue(delta_z);
me.nd_ref_light3_dir.setValue(heading);
# light 4 position
apos.set_lat(lat + (me.light4_xpos * ch + me.light4_ypos * sh) / me.lat_to_m);
apos.set_lon(lon + (me.light4_xpos * sh - me.light4_ypos * ch) / me.lon_to_m);
delta_x = (apos.lat() - vpos.lat()) * me.lat_to_m;
delta_y = -(apos.lon() - vpos.lon()) * me.lon_to_m;
delta_z = apos.alt() - vpos.alt();
me.nd_ref_light4_x.setValue(delta_x);
me.nd_ref_light4_y.setValue(delta_y);
me.nd_ref_light4_z.setValue(delta_z);
me.nd_ref_light4_dir.setValue(heading);
}
settimer ( func me.update(), 0.0);
},
light1_on : func {
if (me.light1_is_on == 1) {return;}
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-r", me.light1_r);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-g", me.light1_g);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-b", me.light1_b);
me.light1_is_on = 1;
},
light1_off : func {
if (me.light1_is_on == 0) {return;}
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-r", 0.0);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-g", 0.0);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-b", 0.0);
me.light1_is_on = 0;
},
light2_on : func {
if (me.light2_is_on == 1) {return;}
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-r[1]", me.light2_r);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-g[1]", me.light2_g);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-b[1]", me.light2_b);
me.light2_is_on = 1;
},
light2_off : func {
if (me.light2_is_on == 0) {return;}
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-r[1]", 0.0);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-g[1]", 0.0);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-b[1]", 0.0);
me.light2_is_on = 0;
},
light3_on : func {
if (me.light3_is_on == 1) {return;}
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-r[2]", me.light3_r);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-g[2]", me.light3_g);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-b[2]", me.light3_b);
me.light3_is_on = 1;
},
light3_off : func {
if (me.light3_is_on == 0) {return;}
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-r[2]", 0.0);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-g[2]", 0.0);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-b[2]", 0.0);
me.light3_is_on = 0;
},
light4_on : func {
if (me.light4_is_on == 1) {return;}
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-r[3]", me.light3_r);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-g[3]", me.light3_g);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-b[3]", me.light3_b);
me.light4_is_on = 1;
},
light4_off : func {
if (me.light4_is_on == 0) {return;}
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-r[3]", 0.0);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-g[3]", 0.0);
setprop("/sim/rendering/als-secondary-lights/lightspot/lightspot-b[3]", 0.0);
me.light4_is_on = 0;
},
};
light_manager.init();

View file

@ -1 +1 @@
4617
4620