12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- class WarheadStorageLight extends PointLightBase
- {
- bool m_IsDimmed;
- bool m_IsLowEnergyDim;
- Land_WarheadStorage_Main m_Bunker;
-
- const string LIGHT_MAT_ON = "DZ\\structures_sakhal\\military\\storage\\data\\Warhead_Storage_Lamp_Glass_e_int.rvmat";
- const string LIGHT_MAT_DIM = "DZ\\structures_sakhal\\military\\storage\\data\\Warhead_Storage_Lamp_Glass_dim_int.rvmat";
- const string LIGHT_MAT_OFF = "DZ\\structures_sakhal\\military\\storage\\data\\Warhead_Storage_Lamp_Glass_int.rvmat";
-
- void WarheadStorageLight()
- {
- SetVisibleDuringDaylight(true);
- SetRadiusTo(7.5);
- SetBrightnessTo(6.5);
- FadeIn(1);
- SetFadeOutTime(2);
- SetFlareVisible(false);
- SetCastShadow(true);
- SetAmbientColor(1, 0.7, 0.3);
- SetDiffuseColor(1, 0.7, 0.3);
-
- UpdateLightSourceMaterial(LIGHT_MAT_ON);
-
- DimmingConfig dimCfg = new DimmingConfig();
- 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});
- 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});
- 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});
-
- DimmingConfig dimCfgSecondary = new DimmingConfig();
- 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});
- 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});
- 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});
- 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});
- 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});
- 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});
-
- EnableDimming(6.5, dimCfg);
- GetDimming().AddConfig(dimCfgSecondary);
- }
-
- void ~WarheadStorageLight()
- {
- UpdateLightSourceMaterial(LIGHT_MAT_OFF);
- }
-
- override void EOnFrame(IEntity other, float timeSlice)
- {
- if (!m_LightDimming)
- return;
-
- if (!m_Bunker)
- m_Bunker = Land_WarheadStorage_Main.Cast(m_Parent);
-
- if (!m_IsDimmed && m_LightDimming.GetState() == ELightDimmingState.DIMMING)
- {
- m_IsDimmed = true;
- if(m_IsLowEnergyDim)
- {
- UpdateLightSourceMaterial(LIGHT_MAT_OFF);
- }
- else
- {
- UpdateLightSourceMaterial(LIGHT_MAT_DIM);
- };
- }
- else if (m_IsDimmed && m_LightDimming.GetState() == ELightDimmingState.BRIGHTENING)
- {
- m_IsDimmed = false;
- UpdateLightSourceMaterial(LIGHT_MAT_ON);
- }
-
- if (m_Bunker.IsLowEnergy() && !m_IsLowEnergyDim)
- {
- m_IsLowEnergyDim = true;
- GetDimming().SwapConfig(1);
- }
- else if (!m_Bunker.IsLowEnergy() && m_IsLowEnergyDim)
- {
- m_IsLowEnergyDim = false;
- GetDimming().SwapConfig(0);
- UpdateLightSourceMaterial(LIGHT_MAT_ON);
- }
- }
- }
|