Bugfix shake effect, improve buttons.nas code to avoid running settimer multiple times
This commit is contained in:
parent
bc445a1eaa
commit
a0fce7b5aa
4 changed files with 79 additions and 64 deletions
|
@ -3,8 +3,6 @@
|
|||
|
||||
# Copyright (c) 2020 Josh Davidson (Octal450)
|
||||
|
||||
var wow = nil;
|
||||
var wowr = nil;
|
||||
var OnLt = props.globals.getNode("/controls/switches/emerCallLtO");
|
||||
var CallLt = props.globals.getNode("/controls/switches/emerCallLtC");
|
||||
var EmerCall = props.globals.getNode("/controls/switches/emerCall");
|
||||
|
@ -13,7 +11,7 @@ var MechCall = props.globals.getNode("/controls/switches/mechCall");
|
|||
var cvr_tone = props.globals.getNode("/controls/CVR/tone");
|
||||
|
||||
# Resets buttons to the default values
|
||||
var variousReset = func {
|
||||
var variousReset = func() {
|
||||
setprop("/modes/cpt-du-xfr", 0);
|
||||
setprop("/modes/fo-du-xfr", 0);
|
||||
setprop("/controls/fadec/n1mode1", 0);
|
||||
|
@ -69,67 +67,84 @@ var variousReset = func {
|
|||
}
|
||||
|
||||
var BUTTONS = {
|
||||
storeEmerCall: 0,
|
||||
update: func() {
|
||||
if (EmerCall.getValue()) {
|
||||
EmerCallOnLight();
|
||||
EmerCallLight();
|
||||
me.storeEmerCall = EmerCall.getValue();
|
||||
if (me.storeEmerCall) {
|
||||
EmerCallOnLight(me.storeEmerCall);
|
||||
EmerCallLight(me.storeEmerCall);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
var _OnLt = nil;
|
||||
var _EmerCall = nil;
|
||||
|
||||
var EmerCallOnLight = func() {
|
||||
var EmerCallOnLight = func(emerCallSts) {
|
||||
_OnLt = OnLt.getValue();
|
||||
_EmerCall = EmerCall.getValue();
|
||||
if ((_OnLt and _EmerCall) or !_EmerCall) {
|
||||
if ((_OnLt and emerCallSts) or !emerCallSts) {
|
||||
OnLt.setValue(0);
|
||||
} else if (!_OnLt and _EmerCall) {
|
||||
} else if (!_OnLt and emerCallSts) {
|
||||
OnLt.setValue(1);
|
||||
}
|
||||
}
|
||||
|
||||
var _CallLt = nil;
|
||||
var _EmerCall2 = nil;
|
||||
|
||||
var EmerCallLight = func() {
|
||||
var EmerCallLight = func(emerCallSts) {
|
||||
_CallLt = CallLt.getValue();
|
||||
_EmerCall2 = EmerCall.getValue();
|
||||
if ((_CallLt and _EmerCall2) or !_EmerCall2) {
|
||||
_EmerCall2 = emerCallSts;
|
||||
if ((_CallLt and emerCallSts) or !emerCallSts) {
|
||||
CallLt.setValue(0);
|
||||
} else if (!_CallLt and _EmerCall2) {
|
||||
} else if (!_CallLt and emerCallSts) {
|
||||
CallLt.setValue(1);
|
||||
}
|
||||
}
|
||||
|
||||
var EmerCallFunc = func {
|
||||
EmerCall.setValue(1);
|
||||
settimer(func() {
|
||||
EmerCall.setValue(0);
|
||||
}, 10);
|
||||
}
|
||||
|
||||
var CabinCallFunc = func {
|
||||
CabinCall.setValue(1);
|
||||
settimer(func() {
|
||||
CabinCall.setValue(0);
|
||||
}, 15);
|
||||
}
|
||||
|
||||
var MechCallFunc = func {
|
||||
MechCall.setValue(1);
|
||||
settimer(func() {
|
||||
MechCall.setValue(0);
|
||||
}, 15);
|
||||
}
|
||||
|
||||
var CVR_test = func {
|
||||
if (pts.Controls.Gear.parkingBrake.getValue()) {
|
||||
cvr_tone.setValue(1);
|
||||
var _EmerCallRunning = 0;
|
||||
var EmerCallFunc = func() {
|
||||
if (!_EmerCallRunning) {
|
||||
_EmerCallRunning = 1;
|
||||
EmerCall.setValue(1);
|
||||
settimer(func() {
|
||||
cvr_tone.setValue(0);
|
||||
}, 15);
|
||||
EmerCall.setValue(0);
|
||||
_EmerCallRunning = 0;
|
||||
}, 7);
|
||||
}
|
||||
}
|
||||
|
||||
var _CabinCallRunning = 0;
|
||||
var CabinCallFunc = func() {
|
||||
if (!_CabinCallRunning) {
|
||||
_CabinCallRunning = 1;
|
||||
CabinCall.setValue(1);
|
||||
settimer(func() {
|
||||
CabinCall.setValue(0);
|
||||
_CabinCallRunning = 0;
|
||||
}, 2);
|
||||
}
|
||||
}
|
||||
|
||||
var _MechCallRunning = 0;
|
||||
var MechCallFunc = func() {
|
||||
if (!_MechCallRunning) {
|
||||
_MechCallRunning = 1;
|
||||
MechCall.setValue(1);
|
||||
settimer(func() {
|
||||
MechCall.setValue(0);
|
||||
_MechCallRunning = 0;
|
||||
}, 6);
|
||||
}
|
||||
}
|
||||
|
||||
var _CVRtestRunning = 0;
|
||||
var CVR_test = func() {
|
||||
if (pts.Controls.Gear.parkingBrake.getValue()) {
|
||||
if (!_CVRtestRunning) {
|
||||
_CVRtestRunning = 1;
|
||||
cvr_tone.setValue(1);
|
||||
settimer(func() {
|
||||
_CVRtestRunning = 0;
|
||||
cvr_tone.setValue(0);
|
||||
}, 15);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -140,7 +155,7 @@ setlistener("/controls/apu/master", func() { # poor mans set-reset latch
|
|||
}
|
||||
}, 0, 0);
|
||||
|
||||
var toggleSTD = func {
|
||||
var toggleSTD = func() {
|
||||
if (pts.Instrumentation.Altimeter.std.getBoolValue()) {
|
||||
pts.Instrumentation.Altimeter.settingInhg.setValue(pts.Instrumentation.Altimeter.oldQnh.getValue());
|
||||
pts.Instrumentation.Altimeter.std.setBoolValue(0);
|
||||
|
@ -149,10 +164,4 @@ var toggleSTD = func {
|
|||
pts.Instrumentation.Altimeter.settingInhg.setValue(29.92);
|
||||
pts.Instrumentation.Altimeter.std.setBoolValue(1);
|
||||
}
|
||||
}
|
||||
|
||||
var pushbuttonSound = props.globals.getNode("/sim/sounde/pushbutton");
|
||||
var pushbutton = func {
|
||||
pushbuttonSound.setValue(1);
|
||||
settimer(func {pushbuttonSound.setValue(0);},0.20);
|
||||
}
|
|
@ -158,7 +158,7 @@ var update_items = [
|
|||
}
|
||||
}),
|
||||
props.UpdateManager.FromHashList(["noSmoking","gearPosNorm"], nil, func(val) {
|
||||
if (val.noSmoking) {
|
||||
if (val.noSmoking == 1) {
|
||||
if (!noSmokingLight.getBoolValue()) {
|
||||
noSmokingLight.setBoolValue(1);
|
||||
}
|
||||
|
@ -171,7 +171,7 @@ var update_items = [
|
|||
}
|
||||
}),
|
||||
];
|
||||
|
||||
|
||||
var systemsLoop = func(notification) {
|
||||
if (!systemsInitialized) { return; }
|
||||
systems.ELEC.loop();
|
||||
|
|
|
@ -97,23 +97,29 @@ setlistener("/sim/sounde/spdbrk-click", func {
|
|||
});
|
||||
|
||||
var relayBatt1 = func {
|
||||
setprop("/sim/sounde/relay-batt-1",1);
|
||||
settimer(func {setprop("/sim/sounde/relay-batt-1",0);},0.35);
|
||||
setprop("/sim/sounde/relay-batt-1",1);
|
||||
settimer(func {setprop("/sim/sounde/relay-batt-1",0);},0.35);
|
||||
}
|
||||
var relayBatt2 = func {
|
||||
setprop("/sim/sounde/relay-batt-2",1);
|
||||
settimer(func {setprop("/sim/sounde/relay-batt-2",0);},0.35);
|
||||
setprop("/sim/sounde/relay-batt-2",1);
|
||||
settimer(func {setprop("/sim/sounde/relay-batt-2",0);},0.35);
|
||||
}
|
||||
var relayApu = func {
|
||||
setprop("/sim/sounde/relay-apu",1);
|
||||
settimer(func {setprop("/sim/sounde/relay-apu",0);},0.35);
|
||||
setprop("/sim/sounde/relay-apu",1);
|
||||
settimer(func {setprop("/sim/sounde/relay-apu",0);},0.35);
|
||||
}
|
||||
var relayExt = func {
|
||||
setprop("/sim/sounde/relay-ext",1);
|
||||
settimer(func {setprop("/sim/sounde/relay-ext",0);},0.35);
|
||||
setprop("/sim/sounde/relay-ext",1);
|
||||
settimer(func {setprop("/sim/sounde/relay-ext",0);},0.35);
|
||||
}
|
||||
|
||||
setlistener("/systems/electrical/sources/bat-1/contact", relayBatt1, nil, 0);
|
||||
setlistener("/systems/electrical/sources/bat-2/contact", relayBatt2, nil, 0);
|
||||
setlistener("/systems/electrical/relay/apu-glc/contact-pos", relayApu, nil, 0);
|
||||
setlistener("/systems/electrical/relay/ext-epc/contact-pos", relayExt, nil, 0);
|
||||
|
||||
var pushbuttonSound = props.globals.getNode("/sim/sounde/pushbutton");
|
||||
var pushbutton = func() {
|
||||
pushbuttonSound.setValue(1);
|
||||
settimer(func {pushbuttonSound.setValue(0);},0.20);
|
||||
}
|
|
@ -46,9 +46,9 @@
|
|||
<test logic="AND" value="1">
|
||||
/velocities/groundspeed-kt ge 15
|
||||
<test logic="OR">
|
||||
/gear/gear[0]/compression-norm ge 0
|
||||
/gear/gear[1]/compression-norm ge 0
|
||||
/gear/gear[2]/compression-norm ge 0
|
||||
/gear/gear[0]/compression-norm gt 0
|
||||
/gear/gear[1]/compression-norm gt 0
|
||||
/gear/gear[2]/compression-norm gt 0
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
|
Loading…
Add table
Reference in a new issue