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

◆ UpdateVicinityTemperatureRecursive()

void UniversalTemperatureSourceLambdaBaseImpl::UpdateVicinityTemperatureRecursive ( EntityAI ent,
TemperatureData dta,
float heatPermeabilityCoef = 1.0 )
inlineprotected

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

95 {
96 float heatPermCoef = heatPermeabilityCoef;
97 heatPermCoef *= ent.GetHeatPermeabilityCoef();
98 dta.m_HeatPermeabilityCoef = heatPermCoef;
99
100 //handle temperature of this entity
101 if (ent.CanHaveTemperature() && !ent.IsSelfAdjustingTemperature())
102 {
103 float temperatureDifference = dta.m_AdjustedTarget - ent.GetTemperature();
104 if (Math.AbsFloat(temperatureDifference) >= GameConstants.TEMPERATURE_SENSITIVITY_THRESHOLD || !ent.IsFreezeThawProgressFinished()) //ignoring insignificant increments
105 ent.SetTemperatureEx(dta);
106 else
107 ent.RefreshTemperatureAccess(dta);
108 }
109
110 // go through any attachments and cargo, recursive
111 int inventoryAttCount = ent.GetInventory().AttachmentCount();
112 for (int inAttIdx = 0; inAttIdx < inventoryAttCount; ++inAttIdx)
113 {
114 EntityAI attachmentEnt;
115 if (Class.CastTo(attachmentEnt,ent.GetInventory().GetAttachmentFromIndex(inAttIdx)))
116 {
117 UpdateVicinityTemperatureRecursive(attachmentEnt,dta,heatPermCoef);
118 }
119 }
120
121 CargoBase cargo = ent.GetInventory().GetCargo();
122 if (cargo)
123 {
124 int inventoryItemCount = cargo.GetItemCount();
125 for (int j = 0; j < inventoryItemCount; ++j)
126 {
127 EntityAI cargoEnt;
128 if (Class.CastTo(cargoEnt, cargo.GetItem(j)))
129 {
130 UpdateVicinityTemperatureRecursive(cargoEnt, dta, heatPermCoef);
131 }
132 }
133 }
134 }
class LogManager EntityAI
proto native int GetItemCount()
proto native EntityAI GetItem(int index)
float m_AdjustedTarget
Определения TemperatureData.c:6
float m_HeatPermeabilityCoef
Определения TemperatureData.c:9
void UpdateVicinityTemperatureRecursive(EntityAI ent, TemperatureData dta, float heatPermeabilityCoef=1.0)

Перекрестные ссылки Math::AbsFloat(), Class::CastTo(), CargoBase::GetItem(), CargoBase::GetItemCount(), TemperatureData::m_AdjustedTarget, TemperatureData::m_HeatPermeabilityCoef, GameConstants::TEMPERATURE_SENSITIVITY_THRESHOLD и UpdateVicinityTemperatureRecursive().

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