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