forked from slawekmikula/flightgear-addon-fgcamera
-
Notifications
You must be signed in to change notification settings - Fork 1
/
fgcamera.nas
74 lines (63 loc) · 2.03 KB
/
fgcamera.nas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
var g_Addon = nil;
var g_myNodePath = nil;
#==================================================
# "Objects"
#==================================================
var mouse = nil;
var camGui = nil;
var fileHandler = nil;
var helicopter = nil;
var cameras = Cameras.new();
var walker = Walker.new();
var views = nil;
#
# Initialize FGCamera
#
# @param hash addon - addons.Addon object
# @return void
#
var init = func(addon) {
g_Addon = addon;
g_myNodePath = g_Addon.node.getPath() ~ "/addon-devel";
var fdmInitListener = _setlistener("/sim/signals/fdm-initialized", func {
removelistener(fdmInitListener);
Commands.new();
helicopter = Helicopter.new();
mouse = Mouse.new(addon);
fileHandler = FileHandler.new(addon);
camGui = Gui.new(addon);
views = Views.new();
if (getprop(g_myNodePath ~ "/enable")) {
# setting default FGCamera
setprop(g_myNodePath ~ "/current-camera/camera-id", 0);
var delayTimer = maketimer(1, func {
# Delay selecting default camera 2nd time for fix FOV and RND effects
setprop(g_myNodePath ~ "/current-camera/camera-id", 0);
});
delayTimer.singleShot = 1;
delayTimer.start();
}
# welcome message
if (getprop(g_myNodePath ~ "/welcome-skip") != 1) {
fgcommand("dialog-show", props.Node.new({'dialog-name':'fgcamera-welcome'}));
}
});
setlistener("/sim/signals/reinit", func {
if (mouse != nil) {
mouse.init();
}
fgcommand("gui-redraw");
fgcommand("fgcamera-reset-view");
if (helicopter != nil) {
helicopter.check();
}
});
setlistener("/sim/signals/exit", func(node) {
if (node.getBoolValue()) {
# sim is going to exit, back previous FG settings for correct autosave
if (views != nil) {
views.configureFG(0);
}
}
});
};