Sprache Deutsch Language English

Script Dokumentation LS 2015 - BlackboardTrigger (Patch 1.3)

Script Dokumentation Übersicht

scripts/triggers/BlackboardTrigger.lua

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
5BlackboardTrigger = {}
6
7local BlackboardTrigger_mt = Class(BlackboardTrigger);
8
9function BlackboardTrigger:onCreate(id)
10 g_currentMission:addUpdateable(BlackboardTrigger:new(id));
11end;
12
13
14function 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;
32end;
33
34function 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;
40end;
41
42function BlackboardTrigger:getIsActivatable()
43 return self.isEnabled and g_currentMission.controlPlayer;
44end;
45
46function BlackboardTrigger:drawActivate()
47 return;
48end;
49
50function 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);
61end;
62
63function BlackboardTrigger:update(dt)
64end;
65
66function 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;
84end;
Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de
Script Dokumentation Übersicht