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

◆ CalcTemperatureFromTemperatureSource()

float PluginBase::CalcTemperatureFromTemperatureSource ( notnull UTemperatureSourceDebug utsd)
inlineprotected

heat transfer through air to player (env temperature)

dist factor minimum should be at 0

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

125 {
126 float distance = vector.Distance(m_Player.GetPosition(), utsd.GetValue(0).ToVector());
127 distance = Math.Max(distance, 0.1); //min distance cannot be 0 (division by zero)
128 float temperature = 0;
129
131 if (distance > utsd.GetValue(1).ToFloat())
132 {
133 float distFactor = Math.InverseLerp(utsd.GetValue(2).ToFloat(), utsd.GetValue(1).ToFloat(), distance);
134 distFactor = Math.Max(distFactor, 0.0);
135 temperature = utsd.GetValue(3).ToFloat() * distFactor;
136 }
137 else
138 {
139 temperature = utsd.GetValue(3).ToFloat();
140 }
141
142 //Print(temperature);
143
144 return temperature;
145 }
PlayerBase m_Player
Определения PluginAdminLog.c:12

Перекрестные ссылки vector::Distance(), Math::InverseLerp(), m_Player и Math::Max().

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