Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
warheadstoragelight.c
Go to the documentation of this file.
1class WarheadStorageLight extends PointLightBase
2{
3 bool m_IsDimmed;
4 bool m_IsLowEnergyDim;
6
7 const string LIGHT_MAT_ON = "DZ\\structures_sakhal\\military\\storage\\data\\Warhead_Storage_Lamp_Glass_e_int.rvmat";
8 const string LIGHT_MAT_DIM = "DZ\\structures_sakhal\\military\\storage\\data\\Warhead_Storage_Lamp_Glass_dim_int.rvmat";
9 const string LIGHT_MAT_OFF = "DZ\\structures_sakhal\\military\\storage\\data\\Warhead_Storage_Lamp_Glass_int.rvmat";
10
11 void WarheadStorageLight()
12 {
13 SetVisibleDuringDaylight(true);
14 SetRadiusTo(7.5);
15 SetBrightnessTo(6.5);
16 FadeIn(1);
17 SetFadeOutTime(2);
18 SetFlareVisible(false);
19 SetCastShadow(true);
20 SetAmbientColor(1, 0.7, 0.3);
21 SetDiffuseColor(1, 0.7, 0.3);
22
23 UpdateLightSourceMaterial(LIGHT_MAT_ON);
24
25 DimmingConfig dimCfg = new DimmingConfig();
26 dimCfg.AddDimmingPattern({60, 40, 45, 35}, {0.5, 0.1, 0.1, 0.3}, {0, 0, 0, 0}, {0.4, 0.1, 0.3, 0.6}, {3.5, 0, 0.5, 2.5});
27 dimCfg.AddDimmingPattern({42, 50, 55, 38}, { 0.2, 0.5, 0.1, 0.1}, {0, 0, 0, 0}, {0.2, 0.5, 0.1, 1}, {0.2, 2, 1.2, 1.8});
28 dimCfg.AddDimmingPattern({50, 40, 35, 55}, { 0.1, 0.2, 0.5, 0.2}, {0, 0, 0, 0}, {0.1, 1, 0.5, 0.3}, {1.25, 0.4, 1.5, 0.5});
29
30 DimmingConfig dimCfgSecondary = new DimmingConfig();
31 dimCfgSecondary.AddDimmingPattern({15, 15, 15, 15}, {0.1, 0.1, 0.1, 0.1}, {2, 0.3, 0.3, 2.5}, {0.7, 1.2, 0.9, 0.7}, {0.5, 0.9, 0.6, 0.7});
32 dimCfgSecondary.AddDimmingPattern({10, 10, 10, 10}, {0.1, 0.1, 0.1, 0.1}, {2, 0.3, 0.3, 2.5}, {0.7, 1.2, 0.9, 0.7}, {0.5, 0.9, 0.6, 0.7});
33 dimCfgSecondary.AddDimmingPattern({5, 5, 5, 5}, {0.1, 0.1, 0.1, 0.1}, {2, 0.3, 0.3, 2.5}, {0.7, 1.2, 0.9, 0.7}, {0.5, 0.9, 0.6, 0.7});
34 dimCfgSecondary.AddDimmingPattern({0, 0, 0, 0}, {0.1, 0.1, 0.1, 0.1}, {2, 0.3, 0.3, 2.5}, {0.7, 1.2, 0.9, 0.7}, {0.5, 0.9, 0.6, 0.7});
35 dimCfgSecondary.AddDimmingPattern({0, 0, 0, 0}, {0.1, 0.1, 0.1, 0.1}, {2, 0.3, 0.3, 2.5}, {0.7, 1.2, 0.9, 0.7}, {0.5, 0.9, 0.6, 0.7});
36 dimCfgSecondary.AddDimmingPattern({0, 0, 0, 0}, {0.1, 0.1, 0.1, 0.1}, {2, 0.3, 0.3, 2.5}, {0.7, 1.2, 0.9, 0.7}, {0.5, 0.9, 0.6, 0.7});
37
38 EnableDimming(6.5, dimCfg);
39 GetDimming().AddConfig(dimCfgSecondary);
40 }
41
42 void ~WarheadStorageLight()
43 {
44 UpdateLightSourceMaterial(LIGHT_MAT_OFF);
45 }
46
47 override void EOnFrame(IEntity other, float timeSlice)
48 {
49 if (!m_LightDimming)
50 return;
51
52 if (!m_Bunker)
53 m_Bunker = Land_WarheadStorage_Main.Cast(m_Parent);
54
55 if (!m_IsDimmed && m_LightDimming.GetState() == ELightDimmingState.DIMMING)
56 {
57 m_IsDimmed = true;
58 if(m_IsLowEnergyDim)
59 {
60 UpdateLightSourceMaterial(LIGHT_MAT_OFF);
61 }
62 else
63 {
64 UpdateLightSourceMaterial(LIGHT_MAT_DIM);
65 };
66 }
67 else if (m_IsDimmed && m_LightDimming.GetState() == ELightDimmingState.BRIGHTENING)
68 {
69 m_IsDimmed = false;
70 UpdateLightSourceMaterial(LIGHT_MAT_ON);
71 }
72
73 if (m_Bunker.IsLowEnergy() && !m_IsLowEnergyDim)
74 {
75 m_IsLowEnergyDim = true;
76 GetDimming().SwapConfig(1);
77 }
78 else if (!m_Bunker.IsLowEnergy() && m_IsLowEnergyDim)
79 {
80 m_IsLowEnergyDim = false;
81 GetDimming().SwapConfig(0);
82 UpdateLightSourceMaterial(LIGHT_MAT_ON);
83 }
84 }
85}
class BuoyLight extends PointLightBase LIGHT_MAT_ON
override void EOnFrame(IEntity other, float timeSlice)
Definition buoylight.c:25
ELightDimmingState
Definition lightdimming.c:2
Widget m_Parent
Definition sizetochild.c:92