DayZ
1.24
Loading...
Searching...
No Matches
UniversalTemperatureSourceLambdaBaseImpl.c
Go to the documentation of this file.
1
class
UniversalTemperatureSourceLambdaBaseImpl
:
UniversalTemperatureSourceLambdaBase
2
{
3
override
void
DryItemsInVicinity
(
UniversalTemperatureSourceSettings
pSettings
)
4
{
5
float
distance
;
6
array<Object>
nearestObjects
=
new
array<Object>
();
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
);
13
foreach
(
Object
nearestObject
:
nearestObjects
)
14
{
15
ItemBase
nearestItem
=
ItemBase
.Cast(
nearestObject
);
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());
28
nearestItem
.AddWet(
dryModifier
);
29
}
30
31
array<EntityAI>
cargoEntities
=
new
array<EntityAI>
();
32
nearestItem
.GetInventory().EnumerateInventory(
InventoryTraversalType
.INORDER,
cargoEntities
);
33
foreach
(
EntityAI
cargoEntity
:
cargoEntities
)
34
{
35
ItemBase
cargoItem
=
ItemBase
.Cast(
cargoEntity
);
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
52
class
UniversalTemperatureSourceLambdaConstant
:
UniversalTemperatureSourceLambdaBaseImpl
53
{
54
override
void
Execute
(
UniversalTemperatureSourceSettings
pSettings
,
UniversalTemperatureSourceResult
resultValues
)
55
{
56
resultValues
.m_Temperature =
pSettings
.m_TemperatureMax;
57
58
DryItemsInVicinity
(
pSettings
);
59
}
60
}
61
62
class
UniversalTemperatureSourceLambdaEngine
:
UniversalTemperatureSourceLambdaBase
63
{
64
override
void
Execute
(
UniversalTemperatureSourceSettings
pSettings
,
UniversalTemperatureSourceResult
resultValues
)
65
{
66
resultValues
.m_Temperature =
pSettings
.m_TemperatureMax;
67
}
68
}
Execute
override void Execute(HumanInventoryWithFSM fsm_to_notify=null)
Definition
EmoteManager.c:1089
DryItemsInVicinity
override void DryItemsInVicinity(UniversalTemperatureSourceSettings pSettings)
Definition
UniversalTemperatureSourceLambdaBaseImpl.c:55
EntityAI
Definition
Building.c:6
GameConstants
Definition
constants.c:612
ItemBase
Definition
InventoryItem.c:697
Math
Definition
EnMath.c:7
Object
Definition
ObjectTyped.c:2
Param3
Definition
EntityAI.c:95
UniversalTemperatureSourceLambdaBase
Definition
UniversalTemperatureSourceLambdaBase.c:2
UniversalTemperatureSourceLambdaBaseImpl
Definition
UniversalTemperatureSourceLambdaBaseImpl.c:2
UniversalTemperatureSourceLambdaBaseImpl::DryItemsInVicinity
override void DryItemsInVicinity(UniversalTemperatureSourceSettings pSettings)
Definition
UniversalTemperatureSourceLambdaBaseImpl.c:3
UniversalTemperatureSourceLambdaEngine
Definition
UniversalTemperatureSourceLambdaBaseImpl.c:63
UniversalTemperatureSourceLambdaEngine::Execute
override void Execute(UniversalTemperatureSourceSettings pSettings, UniversalTemperatureSourceResult resultValues)
Definition
UniversalTemperatureSourceLambdaBaseImpl.c:64
UniversalTemperatureSourceSettings
Definition
UniversalTemperatureSource.c:2
vector
Definition
EnConvert.c:106
vector::Distance
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
InventoryTraversalType
InventoryTraversalType
tree traversal type, for more see http://en.wikipedia.org/wiki/Tree_traversal
Definition
gameplay.c:6
GetGame
proto native CGame GetGame()
GameConstants::STATE_DAMP
const float STATE_DAMP
Definition
constants.c:784
Math::Max
static proto float Max(float x, float y)
Returns bigger of two given values.
Math::Clamp
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'.
scripts
4_World
Systems
UniversalTemperatureSource
UniversalTemperatureSourceLambdaBaseImpl.c
Generated by
1.10.0