Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de
1 | -- VehicleShopBase class |
2 | -- |
3 | -- This is mainly used for the sales balloons which only appear during brand sales, also adjusts the environment mapping's intensity |
4 | -- |
5 | -- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved. |
6 | |
7 | VehicleShopBase = {} |
8 | |
9 | local VehicleShopBase_mt = Class(VehicleShopBase); |
10 | |
11 | function VehicleShopBase:onCreate(id) |
12 | g_currentMission:addUpdateable(VehicleShopBase:new(id)); |
13 | end; |
14 | |
15 | function VehicleShopBase:new(name) |
16 | local self = {}; |
17 | setmetatable(self, VehicleShopBase_mt); |
18 | self.id = name; |
19 | self.balloons = getChildAt(self.id, 1); |
20 | self.alphaBadWeather = 0.4; |
21 | self.timer = 0; |
22 | self.updateDelay = 2000; |
23 | |
24 | self.alphaCurve = AnimCurve:new(linearInterpolator1); |
25 | self.alphaCurve:addKeyframe({v=0.3, time = 0*60}); |
26 | self.alphaCurve:addKeyframe({v=0.3, time = 5.5*60}); |
27 | self.alphaCurve:addKeyframe({v=0.6, time = 6*60}); |
28 | self.alphaCurve:addKeyframe({v=1.0, time = 7*60}); |
29 | self.alphaCurve:addKeyframe({v=1.0, time = 20*60}); |
30 | self.alphaCurve:addKeyframe({v=0.3, time = 22*60}); |
31 | self.alphaCurve:addKeyframe({v=0.3, time = 24*60}); |
32 | |
33 | if g_currentMission ~= nil then |
34 | g_currentMission.vehicleShopBase = self; |
35 | if g_currentMission.environment ~= nil then |
36 | local dayMinutes = g_currentMission.environment.dayTime/(1000*60); |
37 | setShaderParameter(self.balloons, "alpha", self.alphaCurve:get(dayMinutes), 0, 0, 0, true); |
38 | end; |
39 | end; |
40 | |
41 | setVisibility(self.id, false); |
42 | |
43 | return self; |
44 | end; |
45 | |
46 | function VehicleShopBase:delete() |
47 | |
48 | end; |
49 | |
50 | function VehicleShopBase:update(dt) |
51 | if g_currentMission ~= nil and g_currentMission.environment ~= nil and getVisibility(self.id) then |
52 | self.timer = self.timer + dt; |
53 | if self.timer > self.updateDelay then |
54 | self.timer = 0; |
55 | if g_currentMission.environment.currentRain == nil then |
56 | local dayMinutes = g_currentMission.environment.dayTime/(1000*60); |
57 | setShaderParameter(self.balloons, "alpha", self.alphaCurve:get(dayMinutes), 0, 0, 0, true); |
58 | else |
59 | setShaderParameter(self.balloons, "alpha", self.alphaBadWeather, 0, 0, 0, true); |
60 | end; |
61 | end; |
62 | end; |
63 | end;
|
Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de