5 float distanceToTemperatureSource;
7 foreach (
Object nearestObject : nearestObjects)
13 if (nearestItem && nearestItem.HasWetness() && nearestItem != pSettings.
m_Parent && !nearestItem.IsInherited(Man) && !nearestItem.IsUniversalTemperatureSource())
15 distanceToTemperatureSource =
vector.
Distance(nearestItem.GetPosition(), position);
16 distanceToTemperatureSource =
Math.
Max(distanceToTemperatureSource, 0.001);
17 distanceToTemperatureSource = 1 / distanceToTemperatureSource;
18 distanceToTemperatureSource =
Math.
Clamp(distanceToTemperatureSource, 0.0, 1.0);
25 Math.
Clamp(dryValue, nearestItem.GetWetMin(), nearestItem.GetWetMax());
26 nearestItem.AddWet(dryValue);
31 foreach (
EntityAI cargoEntity : cargoEntities)
40 Math.
Clamp(dryValue, cargoItem.GetWetMin(), cargoItem.GetWetMax());
41 cargoItem.AddWet(dryValue);
51 float distanceToTemperatureSource;
55 foreach (
Object nearestObject : nearestObjects)
57 if (
Class.
CastTo(nearestEntity,nearestObject) && nearestEntity != pSettings.
m_Parent && !nearestEntity.IsSelfAdjustingTemperature())
59 float temperatureDifference = tempTarget - nearestEntity.GetTemperature();
61 distanceToTemperatureSource =
vector.
Distance(nearestEntity.GetPosition(), position);
62 distanceToTemperatureSource =
Math.
Max(distanceToTemperatureSource, 0.1);
72 distFactor =
Math.
Max(distFactor, 0.0);
77 if (nearestEntity.GetInventory())
81 else if (nearestEntity.CanHaveTemperature() && !nearestEntity.IsSelfAdjustingTemperature())
83 dta.m_HeatPermeabilityCoef = nearestEntity.GetHeatPermeabilityCoef();
86 nearestEntity.SetTemperatureEx(dta);
88 nearestEntity.RefreshTemperatureAccess(dta);
96 float heatPermCoef = heatPermeabilityCoef;
97 heatPermCoef *= ent.GetHeatPermeabilityCoef();
101 if (ent.CanHaveTemperature() && !ent.IsSelfAdjustingTemperature())
105 ent.SetTemperatureEx(dta);
107 ent.RefreshTemperatureAccess(dta);
111 int inventoryAttCount = ent.GetInventory().AttachmentCount();
112 for (
int inAttIdx = 0; inAttIdx < inventoryAttCount; ++inAttIdx)
115 if (
Class.
CastTo(attachmentEnt,ent.GetInventory().GetAttachmentFromIndex(inAttIdx)))
121 CargoBase cargo = ent.GetInventory().GetCargo();
125 for (
int j = 0; j < inventoryItemCount; ++j)
143 pos = pSettings.
m_Parent.GetPosition();
149 vector minPos = pos -
Vector(halfRange, halfRange / 2, halfRange);
150 vector maxPos = pos +
Vector(halfRange, halfRange / 2, halfRange);
155 for (
int i = nearestObjects.Count() - 1; i >= 0; --i)
157 EntityAI entity = nearestObjects[i];
160 vector objPos = entity.GetPosition();
163 nearestObjects.Remove(i);
167 if (nearestObjects.Count() > 0)
179 pos = pSettings.
m_Parent.GetPosition();
185 vector minPos = pos -
Vector(halfRange, halfRange / 2, halfRange);
186 vector maxPos = pos +
Vector(halfRange, halfRange / 2, halfRange);
191 for (
int i = nearestObjects.Count() - 1; i >= 0; --i)
193 EntityAI entity = nearestObjects[i];
196 vector objPos = entity.GetPosition();
199 nearestObjects.Remove(i);
212 m_AffectsPlayer =
false;
void DayZPlayerUtils()
cannot be instantiated
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
proto native int GetItemCount()
proto native EntityAI GetItem(int index)
represents base for cargo storage for entities
Super root of all classes in Enforce script.
float m_HeatPermeabilityCoef
void UniversalTemperatureSourceLambdaBase()
override void WarmAndCoolItemsInVicinity(UniversalTemperatureSourceSettings pSettings, vector position, out notnull array< EntityAI > nearestObjects)
override void DryItemsInVicinity(UniversalTemperatureSourceSettings pSettings)
DEPRECATED.
override void DryItemsInVicinity(UniversalTemperatureSourceSettings pSettings, vector position, out notnull array< EntityAI > nearestObjects)
void UpdateVicinityTemperatureRecursive(EntityAI ent, TemperatureData dta, float heatPermeabilityCoef=1.0)
override void Execute(UniversalTemperatureSourceSettings pSettings, UniversalTemperatureSourceResult resultValues)
vector m_Position
if the stats can be overriden by coefficient/variables from WorldData (currently TemperatureCap only)
float m_RangeFull
temperature cap that will limit the return value from GetTemperature method
float m_TemperatureCap
used to determine speed of temperature change, and some temperature subsystems
float m_ItemDryModifier
maximum range where the receiver can get some temperature
float m_TemperatureItemCoef
max temperature 'non-IsSelfAdjustingTemperature' entity in vicinity will get per update (cap);
float m_RangeMax
range where the full temperature is given to receiver
float m_TemperatureItemCap
how often the Update is ticking
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
InventoryTraversalType
tree traversal type, for more see http://en.wikipedia.org/wiki/Tree_traversal
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static const float TEMPERATURE_SENSITIVITY_THRESHOLD
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
static proto float AbsFloat(float f)
Returns absolute value.