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

◆ DryItemsInVicinity() [2/2]

override void UniversalTemperatureSourceLambdaBaseImpl::DryItemsInVicinity ( UniversalTemperatureSourceSettings pSettings,
vector position,
out notnull array< Object > nearestObjects )
inlineprivate

heat transfer to items (not in player possession)

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

4 {
5 float distanceToTemperatureSource;
6
7 foreach (Object nearestObject : nearestObjects)
8 {
9 ItemBase nearestItem = ItemBase.Cast(nearestObject);
10
12 if (nearestItem && nearestItem.HasWetness() && nearestItem != pSettings.m_Parent && !nearestItem.IsInherited(Man) && !nearestItem.IsUniversalTemperatureSource())
13 {
14 distanceToTemperatureSource = vector.Distance(nearestItem.GetPosition(), position);
15 distanceToTemperatureSource = Math.Max(distanceToTemperatureSource, 0.3); //min distance cannot be 0 (division by zero)
16
17 float dryModifier = 0;
18
19 if (nearestItem.GetWet() >= GameConstants.STATE_DAMP)
20 {
21 dryModifier = (-1 * m_ExecuteInterval * nearestItem.GetDryingIncrement("groundHeatSource")) / distanceToTemperatureSource;
22 Math.Clamp(dryModifier, nearestItem.GetWetMin(), nearestItem.GetWetMax());
23 nearestItem.AddWet(dryModifier);
24 }
25
26 array<EntityAI> cargoEntities = new array<EntityAI>();
27 nearestItem.GetInventory().EnumerateInventory(InventoryTraversalType.INORDER, cargoEntities);
28 foreach (EntityAI cargoEntity : cargoEntities)
29 {
30 ItemBase cargoItem = ItemBase.Cast(cargoEntity);
31 if (cargoItem)
32 {
33 dryModifier = 0;
34 if (cargoItem.GetWet() >= GameConstants.STATE_DAMP)
35 {
36 dryModifier = (-1 * m_ExecuteInterval * cargoItem.GetDryingIncrement("groundHeatSource")) / distanceToTemperatureSource;
37 Math.Clamp(dryModifier, cargoItem.GetWetMin(), cargoItem.GetWetMax());
38 cargoItem.AddWet(dryModifier);
39 }
40 }
41 }
42 }
43 }
44 }
class LogManager EntityAI
class GP5GasMask extends MaskBase ItemBase
class LOD Object
InventoryTraversalType
tree traversal type, for more see http://en.wikipedia.org/wiki/Tree_traversal
Определения gameplay.c:6

Перекрестные ссылки Math::Clamp(), vector::Distance(), UniversalTemperatureSourceLambdaBase::m_ExecuteInterval, UniversalTemperatureSourceSettings::m_Parent, Math::Max() и GameConstants::STATE_DAMP.

Используется в DryItemsInVicinity() и Execute().