Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
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:664
Math
Definition
enmath.c:7
TemperatureData
Definition
temperaturedata.c:2
TemperatureData::Init
void Init()
Definition
temperaturedata.c:26
TemperatureData::TemperatureData
void TemperatureData(float val, ETemperatureAccessTypes accessType=ETemperatureAccessTypes.ACCESS_UNKNOWN, float time=-1, float timeCoef=1, float heatPermCoef=1)
Definition
temperaturedata.c:14
TemperatureData::m_InterpolatedStepSize
float m_InterpolatedStepSize
Definition
temperaturedata.c:11
TemperatureData::m_InterpolatedFraction
float m_InterpolatedFraction
Definition
temperaturedata.c:12
TemperatureData::m_AccessType
ETemperatureAccessTypes m_AccessType
Definition
temperaturedata.c:3
TemperatureData::m_AdjustedTarget
float m_AdjustedTarget
Definition
temperaturedata.c:6
TemperatureData::m_HeatPermeabilityCoef
float m_HeatPermeabilityCoef
Definition
temperaturedata.c:9
TemperatureData::m_UpdateTimeInfo
float m_UpdateTimeInfo
Definition
temperaturedata.c:7
TemperatureData::m_UpdateTimeCoef
float m_UpdateTimeCoef
Definition
temperaturedata.c:8
TemperatureData::m_Value
float m_Value
Definition
temperaturedata.c:5
TemperatureData::m_UseGlobalCooling
bool m_UseGlobalCooling
Definition
temperaturedata.c:4
m_Value
string m_Value
Definition
enentity.c:808
GameConstants::TEMP_COEF_COOLING_GLOBAL
const float TEMP_COEF_COOLING_GLOBAL
Definition
constants.c:952
GameConstants::TEMPERATURE_INTERPOLATION_THRESHOLD_MAX_ABS
static const float TEMPERATURE_INTERPOLATION_THRESHOLD_MAX_ABS
Definition
constants.c:929
GameConstants::TEMPERATURE_INTERPOLATION_THRESHOLD_MIN_ABS
static const float TEMPERATURE_INTERPOLATION_THRESHOLD_MIN_ABS
Definition
constants.c:928
GameConstants::TEMPERATURE_RATE_MAX_ABS
static const float TEMPERATURE_RATE_MAX_ABS
Definition
constants.c:926
GameConstants::TEMPERATURE_RATE_AVERAGE_ABS
static const float TEMPERATURE_RATE_AVERAGE_ABS
Definition
constants.c:925
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'.
Math::InverseLerp
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
Math::Min
static proto float Min(float x, float y)
Returns smaller of two given values.
Math::Lerp
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
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_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
Games
Dayz
scripts
3_game
systems
temperatureaccess
temperaturedata.c
Generated by
1.17.0