Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
cctwatersurface.c
Go to the documentation of this file.
1
class
CCTWaterSurface
:
CCTBase
2
{
3
protected
const
int
HEIGHT_DIFF_LIMIT_METERS
= 1.0;
4
5
protected
float
m_MaximalActionDistanceSq
;
6
protected
string
m_SurfaceType
;
7
protected
ref
array<string>
m_AllowedSurfaceList
;
8
9
void
CCTWaterSurface
(
float
maximal_target_distance =
UAMaxDistances
.
DEFAULT
,
string
surfaceType =
""
)
10
{
11
m_MaximalActionDistanceSq
= maximal_target_distance * maximal_target_distance;
12
m_SurfaceType
= surfaceType;
13
14
m_AllowedSurfaceList
=
new
array<string>
();
15
surfaceType.Split(
"|"
,
m_AllowedSurfaceList
);
16
}
17
18
override
bool
Can
(
PlayerBase
player,
ActionTarget
target)
19
{
20
if
(!target || (target && target.GetObject()))
21
return
false
;
22
24
vector
hitPosition = target.GetCursorHitPos();
25
26
string
surfaceType;
27
float
waterLevel = player.GetCurrentWaterLevel();
28
g_Game
.SurfaceGetType3D(hitPosition[0], hitPosition[1] + waterLevel, hitPosition[2], surfaceType);
29
30
if
(waterLevel > 0.0)
31
return
Surface
.
AllowedWaterSurface
(hitPosition[1] + waterLevel, surfaceType,
m_AllowedSurfaceList
);
32
33
float
surfaceHeight =
g_Game
.SurfaceY(hitPosition[0], hitPosition[2]);
35
if
(!surfaceType)
36
{
37
surfaceHeight = hitPosition[1];
38
}
39
40
float
heightDiff =
Math
.
AbsFloat
(hitPosition[1] - surfaceHeight);
41
if
(surfaceType !=
""
&& heightDiff >
HEIGHT_DIFF_LIMIT_METERS
)
42
return
false
;
43
44
float
distSq =
vector
.
DistanceSq
(player.GetPosition(), hitPosition);
45
if
(distSq >
m_MaximalActionDistanceSq
)
46
return
false
;
47
48
return
Surface
.
AllowedWaterSurface
(hitPosition[1], surfaceType,
m_AllowedSurfaceList
);
49
}
50
51
override
bool
CanContinue
(
PlayerBase
player,
ActionTarget
target)
52
{
53
return
true
;
54
}
55
}
56
57
class
CCTWaterSurfaceEx
:
CCTBase
58
{
59
protected
float
m_MaximalActionDistanceSq
;
60
protected
int
m_AllowedLiquidSource
;
61
62
void
CCTWaterSurfaceEx
(
float
maximal_target_distance,
int
allowedLiquidSource)
63
{
64
m_MaximalActionDistanceSq
= maximal_target_distance * maximal_target_distance;
65
m_AllowedLiquidSource
= allowedLiquidSource;
66
}
67
68
override
bool
Can
(
PlayerBase
player,
ActionTarget
target)
69
{
70
if
(!target || (target && target.GetObject()))
71
return
false
;
72
73
vector
hitPosition = target.GetCursorHitPos();
74
string
surfaceType;
75
g_Game
.SurfaceGetType3D(hitPosition[0], hitPosition[1], hitPosition[2], surfaceType);
76
77
float
distSq =
vector
.
DistanceSq
(player.GetPosition(), hitPosition);
78
if
(distSq >
m_MaximalActionDistanceSq
)
79
return
false
;
80
81
if
(surfaceType ==
""
&& hitPosition[1] >
g_Game
.SurfaceGetSeaLevelMax())
82
return
false
;
83
84
return
Surface
.
CheckLiquidSource
(hitPosition[1], surfaceType,
m_AllowedLiquidSource
);
85
}
86
87
override
bool
CanContinue
(
PlayerBase
player,
ActionTarget
target)
88
{
89
return
true
;
90
}
91
}
ActionTarget
class ActionTargets ActionTarget
m_AllowedLiquidSource
int m_AllowedLiquidSource
Definition
cctwatersurface.c:60
CCTWaterSurfaceEx
void CCTWaterSurfaceEx(float maximal_target_distance, int allowedLiquidSource)
Definition
cctwatersurface.c:62
m_MaximalActionDistanceSq
CCTWaterSurface m_MaximalActionDistanceSq
CCTBase
Definition
cctbase.c:2
CCTBase::CanContinue
bool CanContinue(PlayerBase player, ActionTarget target)
Definition
cctbase.c:8
CCTBase::Can
bool Can(PlayerBase player, ActionTarget target)
Definition
cctbase.c:3
CCTWaterSurface::CanContinue
override bool CanContinue(PlayerBase player, ActionTarget target)
Definition
cctwatersurface.c:51
CCTWaterSurface::HEIGHT_DIFF_LIMIT_METERS
const int HEIGHT_DIFF_LIMIT_METERS
Definition
cctwatersurface.c:3
CCTWaterSurface::CCTWaterSurface
void CCTWaterSurface(float maximal_target_distance=UAMaxDistances.DEFAULT, string surfaceType="")
Definition
cctwatersurface.c:9
CCTWaterSurface::Can
override bool Can(PlayerBase player, ActionTarget target)
Definition
cctwatersurface.c:18
CCTWaterSurface::m_MaximalActionDistanceSq
float m_MaximalActionDistanceSq
Definition
cctwatersurface.c:5
CCTWaterSurface::m_SurfaceType
string m_SurfaceType
Definition
cctwatersurface.c:6
CCTWaterSurface::m_AllowedSurfaceList
ref array< string > m_AllowedSurfaceList
DEPRECATED.
Definition
cctwatersurface.c:7
Math
Definition
enmath.c:7
PlayerBase
Definition
playerbaseclient.c:2
Surface
Definition
surface.c:2
Surface::AllowedWaterSurface
static bool AllowedWaterSurface(float pHeight, string pSurface, array< string > pAllowedSurfaceList)
Definition
surface.c:31
Surface::CheckLiquidSource
static bool CheckLiquidSource(float pHeight, string pSurface, int allowedWaterSourceMask)
Definition
surface.c:54
UAMaxDistances
Definition
actionconstants.c:110
UAMaxDistances::DEFAULT
const float DEFAULT
Definition
actionconstants.c:112
array
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Definition
isboxcollidinggeometryproxyclasses.c:28
vector
Definition
enconvert.c:119
vector::DistanceSq
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
Math::AbsFloat
static proto float AbsFloat(float f)
Returns absolute value.
Games
Dayz
scripts
4_world
classes
useractionscomponent
targetconditionscomponents
cctwatersurface.c
Generated by
1.17.0