Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de
1 | -- HelpLineTrigger class |
2 | -- |
3 | -- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved. |
4 | |
5 | HelpLineTrigger = {} |
6 | |
7 | local HelpLineTrigger_mt = Class(HelpLineTrigger); |
8 | |
9 | function HelpLineTrigger:onCreate(id) |
10 | g_currentMission:addNonUpdateable(HelpLineTrigger:new(id)); |
11 | -- print("Created HelpLineTrigger, id: ", id); |
12 | end; |
13 | |
14 | function HelpLineTrigger:new(name) |
15 | local self = {}; |
16 | setmetatable(self, HelpLineTrigger_mt); |
17 | |
18 | self.triggerId = name; |
19 | if g_currentMission:getIsClient() then |
20 | addTrigger(name, "triggerCallback", self); |
21 | end; |
22 | |
23 | self.loanSymbol = getChildAt(name, 0); |
24 | |
25 | self.activateText = g_i18n:getText("CallHelpLine"); |
26 | |
27 | self.isEnabled = true; |
28 | self.objectActivated = false; |
29 | |
30 | local x, _, z = getWorldTranslation(name); |
31 | self.mapHotspot = g_currentMission.ingameMap:createMapHotspot("Phone", "dataS2/menu/hud/hud_pda_spot_phone.png", x, z, nil, nil, false, false, false, 0, true); |
32 | |
33 | return self; |
34 | end; |
35 | |
36 | function HelpLineTrigger:delete() |
37 | if self.mapHotspot ~= nil then |
38 | g_currentMission.ingameMap:deleteMapHotspot(self.mapHotspot); |
39 | end; |
40 | if g_currentMission:getIsClient() then |
41 | removeTrigger(self.triggerId); |
42 | -- g_currentMission:removeActivatableObject(self); |
43 | end; |
44 | end; |
45 | |
46 | function HelpLineTrigger:getIsActivatable() |
47 | return self.isEnabled and g_currentMission.controlPlayer; |
48 | end; |
49 | |
50 | function HelpLineTrigger:drawActivate() |
51 | return; |
52 | end; |
53 | |
54 | function HelpLineTrigger:onActivateObject() |
55 | self.helpLineView = g_gui:showGui("HelpLineView"); |
56 | |
57 | self.objectActivated = true; |
58 | g_currentMission:addActivatableObject(self); |
59 | end; |
60 | |
61 | function HelpLineTrigger:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay) |
62 | if self.isEnabled then |
63 | if onEnter or onLeave then |
64 | if g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode then |
65 | if onEnter then |
66 | if not self.objectActivated then |
67 | g_currentMission:addActivatableObject(self); |
68 | self.objectActivated = true; |
69 | end |
70 | else |
71 | if self.objectActivated then |
72 | g_currentMission:removeActivatableObject(self); |
73 | self.objectActivated = false; |
74 | end |
75 | end; |
76 | end; |
77 | end; |
78 | end; |
79 | end;
|
Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de