DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ HandleItemOverheating()

void Entity::HandleItemOverheating ( float deltaHeat,
TemperatureData data )
inlineprotected

См. определение в файле 3_Game/DayZ/Entities/EntityAI.c строка 2698

2699 {
2700 float deltaTime = 1;
2701 float progressVal = m_OverheatProgress;
2702
2703 if (deltaHeat < 0)
2704 deltaTime = -1;
2705
2706 if (data.m_UpdateTimeInfo == -1)
2707 deltaTime = deltaHeat / GameConstants.TEMPERATURE_RATE_AVERAGE_ABS; //reverse-calculate the progress if actual time is not available
2708 else
2709 deltaTime *= data.m_UpdateTimeInfo;
2710
2711 if (GetItemOverheatTime() > 0)
2712 {
2713 float changeTime = Math.Lerp(Math.Max(GameConstants.TEMPERATURE_TIME_OVERHEAT_MIN,GetItemOverheatTime()),GameConstants.TEMPERATURE_TIME_OVERHEAT_MIN,Math.Clamp(data.m_InterpolatedFraction,0,1));
2714 progressVal += deltaTime / changeTime;
2715 }
2716 else
2717 {
2718 if (deltaHeat < 0)
2719 progressVal = 0;
2720 else if (deltaHeat > 0)
2721 progressVal = 1;
2722 }
2723
2724 SetItemOverheatProgress(Math.Clamp(progressVal,0,1),deltaTime);
2725 }
void SetItemOverheatProgress(float val, float deltaTime=0)
float m_OverheatProgress
float GetItemOverheatTime()
any configured value >= 0 will simulate overheating
float m_InterpolatedFraction
Определения TemperatureData.c:12
float m_UpdateTimeInfo
Определения TemperatureData.c:7

Перекрестные ссылки Math::Clamp(), GetItemOverheatTime(), Math::Lerp(), TemperatureData::m_InterpolatedFraction, m_OverheatProgress, TemperatureData::m_UpdateTimeInfo, Math::Max(), SetItemOverheatProgress(), GameConstants::TEMPERATURE_RATE_AVERAGE_ABS и GameConstants::TEMPERATURE_TIME_OVERHEAT_MIN.

Используется в SetTemperatureEx().