Nasal: Use nodes to manage properties

SmartInstrument and systems: Use pre-initialized Nodes instead of 
props.getNode
This commit is contained in:
Sidi Liang 2021-04-26 22:04:12 +08:00
parent f45d848226
commit ec6350977a
3 changed files with 18 additions and 7 deletions

View File

@ -127,8 +127,7 @@ var SmartInstruments = {
return me.infoImageIndex;
},
update: func(){
var currentSpeed = props.getNode("/", 1).getValue("sim/multiplay/generic/float[15]");
var currentSpeedKMH = sprintf("%i", currentSpeed*1.852);
var currentSpeedKMH = sprintf("%i", vehicleInformation.getSpeedKMH());
me.speedometer.updateText(currentSpeedKMH);
if(autospeed.active == 1){
me.speedometer.setColor(0.34, 0.63, 1);
@ -149,10 +148,10 @@ var SmartInstruments = {
me.driveMode.updateText("Low Power");
}
var tempC = props.getNode("/", 1).getValue("environment/temperature-degc");
var tempC = vehicleInformation.environment.temperature.getValue();
me.tempDisplay.updateText(sprintf("%0.1f", tempC)~" °C");
var hour = props.getNode("/", 1).getValue("sim/time/real/hour");
var minute = props.getNode("/", 1).getValue("sim/time/real/minute");
var hour = vehicleInformation.getTimeHour();
var minute = vehicleInformation.getTimeMinute();
if(minute < 10) minute = "0"~minute;
me.timeDisplay.updateText(hour~":"~minute);
#runtimeTextAdjust(timeDisplay);

View File

@ -4,6 +4,8 @@ var VehicleInformationManager = {
m._speedKTSNode = props.getNode("/sim/multiplay/generic/float[15]", 1);
m._headingNode = props.getNode("/orientation/heading-deg",1);
m._altitudeFTNode = props.getNode("/position/altitude-ft",1);
m._timeHourNode = props.getNode("sim/time/real/hour", 1);
m._timeMinuteNode = props.getNode("sim/time/real/minute", 1);
return m;
},
getSpeedKMH: func(){
@ -18,10 +20,20 @@ var VehicleInformationManager = {
getAltitudeFT: func(){
return me._altitudeFTNode.getValue();
},
getTimeHour: func(){
return me._timeHourNode.getValue();
},
getTimeMinute: func(){
return me._timeMinuteNode.getValue();
},
};
var vehicleInformation = VehicleInformationManager.new();
#//Environment
vehicleInformation.environment.temperature = props.getNode("environment/temperature-degc", 1);
#//For Engine
vehicleInformation.engine = {};
vehicleInformation.engine.throttleNode = props.getNode("/controls/engines/engine/throttle",1);

View File

@ -144,8 +144,8 @@ var IndicatorController = {
leftIndicator : Indicator.new("left"),
rightIndicator : Indicator.new("right"),
leftIndicatorSwitchNode: props.getNode("/controls/lighting/indicator/left_switch", 1),
rightIndicatorSwitchNode: props.getNode("/controls/lighting/indicator/right_switch", 1),
leftIndicatorSwitchNode: vehicleInformation.lighting.indicator.leftSwitch,
rightIndicatorSwitchNode: vehicleInformation.lighting.indicator.rightSwitch,
mode:0,