Sprache Deutsch Language English

Script Dokumentation LS 2015 - BarrierTrigger (Patch 1.3)

Script Dokumentation Übersicht

scripts/triggers/BarrierTrigger.lua

Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de
1-- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved.
2
3Barrier = {};
4
5local Barrier_mt = Class(Barrier);
6
7function Barrier:onCreate(id)
8 g_currentMission:addUpdateable(Barrier:new(id));
9 --print("created tip trigger, id: ", id);
10end;
11
12function Barrier:new(id, customMt)
13
14 local instance = {};
15 if customMt ~= nil then
16 setmetatable(instance, customMt);
17 else
18 setmetatable(instance, Barrier_mt);
19 end;
20
21 instance.triggerId = id;
22 addTrigger(id, "triggerCallback", instance);
23
24 instance.barriers = {};
25
26 local num = getNumOfChildren(id);
27 for i=0, num-1 do
28 local childLevel1 = getChildAt(id, i);
29 if childLevel1 ~= 0 and getNumOfChildren(id) >= 1 then
30 local barrierId = getChildAt(childLevel1, 0);
31 if barrierId ~= 0 then
32 table.insert(instance.barriers, barrierId);
33 end;
34 end;
35 end;
36
37 instance.isEnabled = true;
38
39 self.count = 0;
40
41 self.angle = 90;
42 self.maxAngle = 90;
43 self.minAngle = 0;
44
45 return instance;
46end;
47
48function Barrier:delete()
49
50 removeTrigger(self.triggerId);
51end;
52
53function Barrier:update(dt)
54
55 local old = self.angle;
56 if self.count > 0 then
57 if self.angle < self.maxAngle then
58 self.angle = self.angle + dt*0.001*60;
59 end;
60
61 if self.angle > self.maxAngle then
62 self.angle = self.maxAngle;
63 end;
64 else
65 if self.angle > self.minAngle then
66 self.angle = self.angle - dt*0.001*60;
67 end;
68
69 if self.angle < self.minAngle then
70 self.angle = self.minAngle;
71 end;
72 end;
73
74 if old ~= self.angle then
75 for i=1, table.getn(self.barriers) do
76 setRotation(self.barriers[i], 0, 0, Utils.degToRad(self.angle));
77 end;
78 end;
79
80end;
81
82function Barrier:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay)
83
84 if onEnter and self.isEnabled then
85 self.count = self.count + 1;
86 elseif onLeave then
87 self.count = self.count - 1;
88 end;
89end;
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