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

◆ GatherTemperatureSources()

void Environment::GatherTemperatureSources ( )
inlineprotected

next temp source is too far

skip - this TS is not affecting player entities

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

1289 {
1290 m_UTemperatureSources.Clear();
1291
1292 array<Object> nearestObjects = new array<Object>();
1293 GetGame().GetObjectsAtPosition(m_Player.GetPosition(), GameConstants.ENVIRO_TEMP_SOURCES_LOOKUP_RADIUS, nearestObjects, null);
1294
1295 foreach (Object nearestObject : nearestObjects)
1296 {
1297 EntityAI ent = EntityAI.Cast(nearestObject);
1298 if (ent && ent.IsUniversalTemperatureSource() && ent != m_Player)
1299 {
1301 if (vector.DistanceSq(m_Player.GetPosition(), ent.GetPosition()) > Math.SqrFloat(ent.GetUniversalTemperatureSource().GetMaxRange()))
1302 continue;
1303
1305 if (ent.GetUniversalTemperatureSource().GetLambda().AffectsPlayer())
1306 m_UTemperatureSources.Insert(ent.GetUniversalTemperatureSource());
1307 }
1308 }
1309
1310 if (m_Player.GetItemInHands() && m_Player.GetItemInHands().IsUniversalTemperatureSource())
1311 m_UTemperatureSources.Insert(m_Player.GetItemInHands().GetUniversalTemperatureSource());
1312 }
class LogManager EntityAI
proto native void GetObjectsAtPosition(vector pos, float radius, out array< Object > objects, out array< CargoBase > proxyCargos)
Returns list of all objects in circle "radius" around position "pos".
ref array< UTemperatureSource > m_UTemperatureSources
Определения Environment.c:76
PlayerBase m_Player
Определения Environment.c:30
class LOD Object
proto native CGame GetGame()

Перекрестные ссылки vector::DistanceSq(), GameConstants::ENVIRO_TEMP_SOURCES_LOOKUP_RADIUS, GetGame(), CGame::GetObjectsAtPosition(), m_Player, m_UTemperatureSources и Math::SqrFloat().

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