Dayz Explorer
1.28.160049
Loading...
Searching...
No Matches
temperaturedata.c
Go to the documentation of this file.
1
class
TemperatureData
2
{
3
ETemperatureAccessTypes
m_AccessType;
4
bool
m_UseGlobalCooling;
5
float
m_Value;
//target or increment, depends on context!
6
float
m_AdjustedTarget;
//actual target of the operation (can be adjusted via over-time interpolation, not necessarily the original target value!)
7
float
m_UpdateTimeInfo;
//if the temperature change was accumulated over some time, pass this info to temperature subsystems
8
float
m_UpdateTimeCoef;
//multiplies the time
9
float
m_HeatPermeabilityCoef;
//permeability multiplier (modifies change speed).
10
11
float
m_InterpolatedStepSize;
//only useful for interpolated temperature values
12
float
m_InterpolatedFraction;
//only useful for interpolated temperature values
13
14
void
TemperatureData
(
float
val,
ETemperatureAccessTypes
accessType =
ETemperatureAccessTypes
.ACCESS_UNKNOWN,
float
time = -1,
float
timeCoef = 1,
float
heatPermCoef = 1)
15
{
16
m_Value
= val;
17
m_AdjustedTarget
= val;
18
m_AccessType
= accessType;
19
m_UpdateTimeInfo
= time;
20
m_UpdateTimeCoef
= timeCoef;
21
m_HeatPermeabilityCoef
= heatPermCoef;
22
23
Init
();
24
}
25
26
protected
void
Init
()
27
{
28
m_UseGlobalCooling
=
true
;
29
m_InterpolatedFraction
= 0.0;
30
}
31
}
32
33
class
TemperatureDataInterpolated :
TemperatureData
34
{
35
void
InterpolateTemperatureDelta
(
float
start)
36
{
37
m_InterpolatedStepSize
= -1;
38
39
float
target =
m_Value
;
40
m_AdjustedTarget
= start;
41
42
if
(start != target)
43
{
44
float
diffAbs =
Math
.Max(start,target) -
Math
.Min(start,target);
45
m_InterpolatedFraction
=
Math
.Clamp(
Math
.InverseLerp(
GameConstants
.TEMPERATURE_INTERPOLATION_THRESHOLD_MIN_ABS,
GameConstants
.TEMPERATURE_INTERPOLATION_THRESHOLD_MAX_ABS,diffAbs),0,1);
46
m_InterpolatedStepSize
=
Math
.Lerp(
GameConstants
.TEMPERATURE_RATE_AVERAGE_ABS,
GameConstants
.TEMPERATURE_RATE_MAX_ABS,
m_InterpolatedFraction
);
47
48
float
coef =
m_UpdateTimeCoef
;
49
float
absBaseTempChange =
m_UpdateTimeInfo
*
m_InterpolatedStepSize
;
50
51
if
(start > target)
52
{
53
absBaseTempChange *= -1;
54
if
(
m_UseGlobalCooling
)
55
coef =
GameConstants
.TEMP_COEF_COOLING_GLOBAL;
56
}
57
58
coef *=
m_HeatPermeabilityCoef
;
59
absBaseTempChange *= coef;
60
61
m_AdjustedTarget
= start +
Math
.Clamp(absBaseTempChange,-diffAbs,diffAbs);
62
}
63
}
64
}
GameConstants
Definition
constants.c:661
Math
Definition
enmath.c:7
TemperatureData
Definition
temperaturedata.c:2
TemperatureData::Init
void Init()
Definition
temperaturedata.c:26
m_Value
string m_Value
Definition
enentity.c:808
ETemperatureAccessTypes
ETemperatureAccessTypes
Definition
temperatureaccessconstants.c:2
m_InterpolatedStepSize
float m_InterpolatedStepSize
Definition
temperaturedata.c:44
m_InterpolatedFraction
float m_InterpolatedFraction
Definition
temperaturedata.c:45
m_AccessType
ETemperatureAccessTypes m_AccessType
Definition
temperaturedata.c:36
m_AdjustedTarget
float m_AdjustedTarget
Definition
temperaturedata.c:39
m_HeatPermeabilityCoef
float m_HeatPermeabilityCoef
Definition
temperaturedata.c:42
m_UpdateTimeInfo
float m_UpdateTimeInfo
Definition
temperaturedata.c:40
m_UpdateTimeCoef
float m_UpdateTimeCoef
Definition
temperaturedata.c:41
m_UseGlobalCooling
bool m_UseGlobalCooling
Definition
temperaturedata.c:37
InterpolateTemperatureDelta
class TemperatureData InterpolateTemperatureDelta(float start)
Definition
temperaturedata.c:35
Daten
3_game
systems
temperatureaccess
temperaturedata.c
Generated by
1.12.0