LUADOC - Farming Simulator 19

NightlightFlicker

Description
s are flickering lights that are only active at night or during bad weather
Functions

new

Description
Creating nightlightflicker
Definition
new(integer name)
Arguments
integernamenode id
Return Values
tableinstanceInstance of object
Code
21function NightlightFlicker:new(id)
22 local self = {};
23 setmetatable(self, NightlightFlicker_mt);
24
25 self.id = id;
26 self.isVisible = false;
27 self.isFlickerActive = false;
28 self.nextFlicker = 0;
29 self.flickerDuration = 100;
30 setVisibility(self.id, self.isVisible);
31
32 g_currentMission.environment:addWeatherChangeListener(self);
33
34 return self;
35end

onCreate

Description
Creating nightlightflicker
Definition
onCreate(integer id)
Arguments
integeridnode id
Code
13function NightlightFlicker:onCreate(id)
14 g_currentMission:addUpdateable(NightlightFlicker:new(id));
15end

update

Description
Update flickering
Definition
update(float dt)
Arguments
floatdttime since last call in ms
Code
43function NightlightFlicker:update(dt)
44 if self.isVisible then
45
46 self.nextFlicker = self.nextFlicker - dt;
47 if self.nextFlicker <= 0 then
48 self.isFlickerActive = true;
49 setVisibility(self.id, false);
50 self.nextFlicker = math.floor(math.random() * 1500 + self.flickerDuration + 10); -- set next flicker at least 10ms after this one
51 end;
52
53 if self.isFlickerActive then
54 self.flickerDuration = self.flickerDuration - dt;
55 if self.flickerDuration <= 0 then
56 self.isFlickerActive = false;
57 self.flickerDuration = math.floor(math.random() * 200);
58 setVisibility(self.id, true);
59 end;
60 end;
61
62 end;
63end

weatherChanged

Description
Change visibility of night object
Definition
weatherChanged()
Code
67function NightlightFlicker:weatherChanged()
68 if g_currentMission ~= nil and g_currentMission.environment ~= nil then
69 self.isVisible = not (g_currentMission.environment.isSunOn and not g_currentMission.environment.weather:getIsRaining());
70 setVisibility(self.id, self.isVisible);
71 end;
72end