##################################################################################### # # # this script runs the foramation selection utility # # # ##################################################################################### # ================================ Initalize ====================================== # Make sure all needed properties are present and accounted # for, and that they have sane default values. for(var i = 0; i < 3; i = i + 1){ setprop("/sim/model/formation/position[" ~ i ~ "]/x-offset", 0); setprop("/sim/model/formation/position[" ~ i ~ "]/y-offset", 0); setprop("/sim/model/formation/position[" ~ i ~ "]/z-offset", 0); } formation_variant_Node = props.globals.getNode("sim/formation/variant", 1); formation_variant_Node.setIntValue(0); formation_index_Node = props.globals.getNode("sim/formation/index", 1); formation_index_Node.setIntValue(0); tgt_x_offset_Node = props.globals.getNode("ai/models/wingman/position/tgt-x-offset",1); tgt_y_offset_Node = props.globals.getNode("ai/models/wingman/position/tgt-y-offset",1); tgt_z_offset_Node = props.globals.getNode("ai/models/wingman/position/tgt-z-offset",1); tgt_x_offset_1_Node = props.globals.getNode("ai/models/wingman[1]/position/tgt-x-offset",1); tgt_y_offset_1_Node = props.globals.getNode("ai/models/wingman[1]/position/tgt-y-offset",1); tgt_z_offset_1_Node = props.globals.getNode("ai/models/wingman[1]/position/tgt-z-offset",1); tgt_x_offset_2_Node = props.globals.getNode("ai/models/wingman[2]/position/tgt-x-offset",1); tgt_y_offset_2_Node = props.globals.getNode("ai/models/wingman[2]/position/tgt-y-offset",1); tgt_z_offset_2_Node = props.globals.getNode("ai/models/wingman[2]/position/tgt-z-offset",1); props.globals.getNode("/sim/model/formation/position/x-offset",1); var formation_dialog = nil; initialize = func { print("Initializing formation ..."); # initialise dialogs aircraft.data.add("sim/model/formation/variant"); formation_dialog = gui.OverlaySelector.new("Select Formation", "Aircraft/Generic/Formations", "sim/model/formation/variant", nil, func(no) { formation_variant_Node.setIntValue(no); tgt_x_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/x-offset")); tgt_y_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/y-offset")); tgt_z_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/z-offset")); tgt_x_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/x-offset")); tgt_y_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/y-offset")); tgt_z_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/z-offset")); tgt_x_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/x-offset")); tgt_y_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/y-offset")); tgt_z_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/z-offset")); } ); #set listeners setlistener("/sim/model/formation/variant", func { print("formation listener: ", getprop("/sim/model/formation/position/x-offset")); if (tgt_x_offset_Node != nil){ print("formation listener getting", getprop("/sim/model/formation/position/x-offset")); tgt_x_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/x-offset")); tgt_y_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/y-offset")); tgt_z_offset_Node.setDoubleValue(getprop("/sim/model/formation/position/z-offset")); } if (tgt_x_offset_1_Node != nil){ tgt_x_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/x-offset")); tgt_y_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/y-offset")); tgt_z_offset_1_Node.setDoubleValue(getprop("/sim/model/formation/position[1]/z-offset")); } if (tgt_x_offset_2_Node != nil){ tgt_x_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/x-offset")); tgt_y_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/y-offset")); tgt_z_offset_2_Node.setDoubleValue(getprop("/sim/model/formation/position[2]/z-offset")); } }, 0, 1); } # end func ### # ====================== end Initialization ======================================== ### # Fire it up setlistener("sim/signals/fdm-initialized", initialize); # end