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

◆ HandleItemOverheating()

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

См. определение в файле EntityAI.c строка 2652

2653 {
2654 float deltaTime = 1;
2655 float progressVal = m_OverheatProgress;
2656
2657 if (deltaHeat < 0)
2658 deltaTime = -1;
2659
2660 if (data.m_UpdateTimeInfo == -1)
2661 deltaTime = deltaHeat / GameConstants.TEMPERATURE_RATE_AVERAGE_ABS; //reverse-calculate the progress if actual time is not available
2662 else
2663 deltaTime *= data.m_UpdateTimeInfo;
2664
2665 if (GetItemOverheatTime() > 0)
2666 {
2667 float changeTime = Math.Lerp(Math.Max(GameConstants.TEMPERATURE_TIME_OVERHEAT_MIN,GetItemOverheatTime()),GameConstants.TEMPERATURE_TIME_OVERHEAT_MIN,Math.Clamp(data.m_InterpolatedFraction,0,1));
2668 progressVal += deltaTime / changeTime;
2669 }
2670 else
2671 {
2672 if (deltaHeat < 0)
2673 progressVal = 0;
2674 else if (deltaHeat > 0)
2675 progressVal = 1;
2676 }
2677
2678 SetItemOverheatProgress(Math.Clamp(progressVal,0,1),deltaTime);
2679 }
void SetItemOverheatProgress(float val, float deltaTime=0)
Определения EntityAI.c:2629
float m_OverheatProgress
Определения EntityAI.c:164
float GetItemOverheatTime()
any configured value >= 0 will simulate overheating
Определения EntityAI.c:2614
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().