DayZ 1.24
Loading...
Searching...
No Matches
UniversalTemperatureSourceLambdaBaseImpl.c
Go to the documentation of this file.
2{
4 {
5 float distance;
7
8 vector pos = pSettings.m_Position;
9 if (pSettings.m_Parent != null)
10 pos = pSettings.m_Parent.GetPosition();
11
12 GetGame().GetObjectsAtPosition(pos, pSettings.m_RangeMax, nearestObjects, null);
14 {
17 if (nearestItem && nearestItem.HasWetness() && nearestItem != pSettings.m_Parent && !nearestItem.IsInherited(Man))
18 {
19 distance = vector.Distance(nearestItem.GetPosition(), pSettings.m_Position);
20 distance = Math.Max(distance, 0.1); //min distance cannot be 0 (division by zero)
21
22 float dryModifier = 0;
23
24 if (nearestItem.GetWet() >= GameConstants.STATE_DAMP)
25 {
26 dryModifier = (-1 * pSettings.m_UpdateInterval * nearestItem.GetDryingIncrement("groundHeatSource")) / distance;
27 Math.Clamp(dryModifier, nearestItem.GetWetMin(), nearestItem.GetWetMax());
29 }
30
32 nearestItem.GetInventory().EnumerateInventory(InventoryTraversalType.INORDER, cargoEntities);
34 {
36 if (cargoItem)
37 {
38 dryModifier = 0;
39 if (cargoItem.GetWet() >= GameConstants.STATE_DAMP)
40 {
41 dryModifier = (-1 * pSettings.m_UpdateInterval * cargoItem.GetDryingIncrement("groundHeatSource")) / distance;
42 Math.Clamp(dryModifier, cargoItem.GetWetMin(), cargoItem.GetWetMax());
43 cargoItem.AddWet(dryModifier);
44 }
45 }
46 }
47 }
48 }
49 }
50}
51
53{
override void Execute(HumanInventoryWithFSM fsm_to_notify=null)
override void DryItemsInVicinity(UniversalTemperatureSourceSettings pSettings)
Definition EnMath.c:7
override void DryItemsInVicinity(UniversalTemperatureSourceSettings pSettings)
override void Execute(UniversalTemperatureSourceSettings pSettings, UniversalTemperatureSourceResult resultValues)
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
Definition gameplay.c:6
proto native CGame GetGame()
const float STATE_DAMP
Definition constants.c:784
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'.