flightgear-addon-aerotow-ev.../addon-main.nas
PlayeRom f3d50cc815 The plane returns to the airport from which it took off
There is one problem, that on touch down the plane is going underground on the short while.
2022-09-09 03:48:20 +02:00

84 lines
2.5 KiB
Plaintext

#
# Aerotow Everywhere - Add-on for FlightGear
#
# Written and developer by Roman Ludwicki (PlayeRom, SP-ROM)
#
# Copyright (C) 2022 Roman Ludwicki
#
# Aerotow Everywhere is an Open Source project and it is licensed
# under the GNU Public License v3 (GPLv3)
#
var unload = func(addon) {
# This function is for addon development only. It is called on addon
# reload. The addons system will replace setlistener() and maketimer() to
# track this resources automatically for you.
#
# Listeners created with setlistener() will be removed automatically for you.
# Timers created with maketimer() will have their stop() method called
# automatically for you. You should NOT use settimer anymore, see wiki at
# http://wiki.flightgear.org/Nasal_library#maketimer.28.29
#
# Other resources should be freed by adding the corresponding code here,
# e.g. myCanvas.del();
aerotow.uninit();
}
var main = func(addon) {
print("Aerotow Everywhere add-on initialized from path ", addon.basePath);
loadExtraNasalFiles(addon);
createDirectories(addon);
aerotow.init(addon);
}
#
# Load extra Nasal files in main add-on directory
#
# addon - Addob object
#
var loadExtraNasalFiles = func (addon) {
var modules = [
"nasal/timer",
"nasal/aircraft",
"nasal/message",
"nasal/dialogs/route",
"nasal/dialogs/thermal",
"nasal/flight-plan",
"nasal/scenario",
"nasal/io/waypoint",
"nasal/io/flight-plan-writer",
"nasal/aerotow",
"aerotow",
];
foreach (var scriptName; modules) {
var fileName = addon.basePath ~ "/" ~ scriptName ~ ".nas";
if (io.load_nasal(fileName, "aerotow")) {
print("Aerotown Add-on module \"", scriptName, "\" loaded OK");
}
}
}
#
# Create all needed directories.
#
var createDirectories = func (addon) {
# Create $FG_HOME/Export/Addons/org.flightgear.addons.Aerotow directory
addon.createStorageDir();
# Create /AI/FlightPlans/ directory in $FG_HOME/Export/Addons/org.flightgear.addons.Aerotow/
# User has to add the path as --data=$FG_HOME/Export/Addons/org.flightgear.addons.Aerotow
# Then the FG will be able to read flight plan file
var path = os.path.new(addon.storagePath ~ "/AI/FlightPlans/dummy-file.txt");
path.create_dir();
# Create /route-saves directory in $FG_HOME/Export/Addons/org.flightgear.addons.Aerotow/
path = os.path.new(addon.storagePath ~ "/" ~ aerotow.RouteDialog.ROUTE_SAVES_DIR ~ "/dummy-file.txt");
path.create_dir();
}