Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actionfillbottlebase.c
Go to the documentation of this file.
1
class
ActionFillBottleBaseCB
:
ActionContinuousBaseCB
2
{
3
private
int
m_liquid_type
;
4
private
float
m_BaseFillQuantity
;
5
6
override
void
CreateActionComponent
()
7
{
8
m_liquid_type
=
ActionFillBottleBase
.Cast(
m_ActionData
.m_Action).
GetLiquidType
(
m_ActionData
.m_Player,
m_ActionData
.m_Target,
m_ActionData
.m_MainItem);
9
10
if
(
m_liquid_type
==
LIQUID_GASOLINE
)
11
{
12
m_BaseFillQuantity
=
UAQuantityConsumed
.
FUEL
;
13
}
14
else
if
(
m_liquid_type
==
LIQUID_SNOW
)
15
{
16
m_BaseFillQuantity
=
UAQuantityConsumed
.
FILL_SNOW
;
17
}
18
else
19
{
20
m_BaseFillQuantity
=
UAQuantityConsumed
.
FILL_LIQUID
;
21
}
22
m_ActionData
.m_ActionComponent =
new
CAContinuousFill
(
m_BaseFillQuantity
,
m_liquid_type
);
23
}
24
};
25
26
class
ActionFillBottleBase
:
ActionContinuousBase
27
{
28
private
const
float
WATER_DEPTH
= 0.5;
29
private
const
string
ALLOWED_WATER_SURFACES
=
string
.Format(
"%1|%2|%3"
,
UAWaterType
.
FRESH
,
UAWaterType
.
STILL
,
UAWaterType
.
SNOW
);
30
protected
int
m_AllowedLiquidMask
;
31
32
void
ActionFillBottleBase
()
33
{
34
m_CallbackClass
=
ActionFillBottleBaseCB
;
35
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_FILLBOTTLEPOND;
36
m_FullBody
=
true
;
37
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_CROUCH |
DayZPlayerConstants
.STANCEMASK_ERECT;
38
m_SpecialtyWeight
= UASoftSkillsWeight.PRECISE_LOW;
39
m_Text
=
"#fill"
;
40
41
m_AllowedLiquidMask
=
LIQUID_GROUP_DRINKWATER
|
LIQUID_GASOLINE
;
42
m_AllowedLiquidMask
&=
~LIQUID_SNOW
;
43
}
44
45
override
void
CreateConditionComponents
()
46
{
47
m_ConditionItem
=
new
CCINonRuined
();
48
m_ConditionTarget
=
new
CCTNone
()
49
}
50
51
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item)
52
{
53
Object
targetObject = target.GetObject();
54
if
(targetObject)
55
{
56
if
(
vector
.
DistanceSq
(player.GetPosition(), targetObject.GetPosition()) >
UAMaxDistances
.
DEFAULT
*
UAMaxDistances
.
DEFAULT
)
57
return
false
;
58
}
59
else
60
{
61
CCTWaterSurfaceEx
waterCheck =
new
CCTWaterSurfaceEx
(
UAMaxDistances
.
DEFAULT
,
m_AllowedLiquidMask
);
62
if
(!waterCheck.Can(player, target))
63
return
false
;
64
}
65
66
int
liquidType =
GetLiquidType
(player, target, item);
67
68
if
(item.GetQuantity() > item.GetQuantityMin())
69
liquidType = Liquid.TranslateLiquidType(liquidType);
70
71
return
liquidType !=
LIQUID_NONE
&& Liquid.CanFillContainer(item,liquidType);
72
}
73
74
override
bool
ActionConditionContinue
(
ActionData
action_data)
75
{
76
return
action_data.m_MainItem.GetQuantity() < action_data.m_MainItem.GetQuantityMax();
77
}
78
79
override
protected
int
GetStanceMask
(
PlayerBase
player)
80
{
81
vector
water_info =
HumanCommandSwim
.WaterLevelCheck(player, player.GetPosition());
82
if
(water_info[1] >
WATER_DEPTH
)
83
{
84
return
DayZPlayerConstants
.STANCEMASK_ERECT;
85
}
86
else
87
{
88
return
DayZPlayerConstants
.STANCEMASK_CROUCH;
89
}
90
}
91
92
override
protected
int
GetActionCommandEx
(
ActionData
actionData)
93
{
94
int
commandUID =
DayZPlayerConstants
.CMD_ACTIONFB_FILLBOTTLEPOND;
95
if
(actionData.m_Target.GetObject())
96
{
97
commandUID =
DayZPlayerConstants
.CMD_ACTIONFB_FILLBOTTLEWELL;
98
}
99
100
return
commandUID;
101
}
102
103
int
GetLiquidType
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item)
104
{
105
int
liquidType =
LIQUID_NONE
;
106
if
( target.GetObject() )
107
{
108
liquidType = target.GetObject().GetLiquidSourceType();
109
}
110
else
111
{
112
string
surfaceType;
113
vector
hit_pos = target.GetCursorHitPos();
114
g_Game
.SurfaceGetType3D(hit_pos[0], hit_pos[1], hit_pos[2], surfaceType);
115
if
(surfaceType ==
""
)
116
{
117
if
( hit_pos[1] <=
g_Game
.SurfaceGetSeaLevel() + 0.001 )
118
{
119
liquidType =
LIQUID_SALTWATER
;
120
}
121
}
122
else
123
{
124
liquidType =
SurfaceInfo
.
GetByName
(surfaceType).
GetLiquidType
();
125
}
126
}
127
128
return
liquidType &
m_AllowedLiquidMask
;
129
}
130
131
void
SetupStance
(
PlayerBase
player)
132
{
133
//returns in format (totalWaterDepth, characterDepht, 0)
134
vector
water_info =
HumanCommandSwim
.WaterLevelCheck(player, player.GetPosition());
135
if
(water_info[1] >
WATER_DEPTH
)
136
{
137
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_ERECT;
138
}
139
else
140
{
141
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_CROUCH;
142
}
143
}
144
145
override
bool
IsLockTargetOnUse
()
146
{
147
return
false
;
148
}
149
150
// deprecated
151
private
const
int
ALLOWED_LIQUID
;
152
}
ActionData
ActionBase ActionData
Definition
actionbase.c:30
ActionTarget
class ActionTargets ActionTarget
CCTWaterSurfaceEx
void CCTWaterSurfaceEx(float maximal_target_distance, int allowedLiquidSource)
Definition
cctwatersurface.c:62
ActionBaseCB::m_ActionData
ActionData m_ActionData
Definition
animatedactionbase.c:3
ActionBase::m_FullBody
bool m_FullBody
Definition
actionbase.c:67
ActionBase::m_Text
string m_Text
Definition
actionbase.c:64
ActionBase::m_ConditionItem
ref CCIBase m_ConditionItem
Definition
actionbase.c:70
ActionBase::m_SpecialtyWeight
float m_SpecialtyWeight
Definition
actionbase.c:83
ActionBase::m_ConditionTarget
ref CCTBase m_ConditionTarget
Definition
actionbase.c:71
ActionBase::m_StanceMask
int m_StanceMask
Definition
actionbase.c:68
ActionContinuousBaseCB
Definition
actioncontinuousbase.c:2
ActionContinuousBase::ActionContinuousBase
void ActionContinuousBase()
Definition
actioncontinuousbase.c:124
ActionFillBottleBaseCB
Definition
actionfillbottlebase.c:2
ActionFillBottleBaseCB::m_BaseFillQuantity
float m_BaseFillQuantity
Definition
actionfillbottlebase.c:4
ActionFillBottleBaseCB::m_liquid_type
int m_liquid_type
Definition
actionfillbottlebase.c:3
ActionFillBottleBaseCB::CreateActionComponent
override void CreateActionComponent()
Definition
actionfillbottlebase.c:6
ActionFillBottleBase
Definition
actionfillbottlebase.c:27
ActionFillBottleBase::WATER_DEPTH
const float WATER_DEPTH
Definition
actionfillbottlebase.c:28
ActionFillBottleBase::ActionConditionContinue
override bool ActionConditionContinue(ActionData action_data)
Definition
actionfillbottlebase.c:74
ActionFillBottleBase::SetupStance
void SetupStance(PlayerBase player)
Definition
actionfillbottlebase.c:131
ActionFillBottleBase::GetLiquidType
int GetLiquidType(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actionfillbottlebase.c:103
ActionFillBottleBase::ActionFillBottleBase
void ActionFillBottleBase()
Definition
actionfillbottlebase.c:32
ActionFillBottleBase::CreateConditionComponents
override void CreateConditionComponents()
Definition
actionfillbottlebase.c:45
ActionFillBottleBase::GetActionCommandEx
int GetActionCommandEx(ActionData actionData)
Definition
actionfillbottlebase.c:92
ActionFillBottleBase::ALLOWED_LIQUID
const int ALLOWED_LIQUID
Definition
actionfillbottlebase.c:151
ActionFillBottleBase::GetStanceMask
int GetStanceMask(PlayerBase player)
Definition
actionfillbottlebase.c:79
ActionFillBottleBase::ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actionfillbottlebase.c:51
ActionFillBottleBase::IsLockTargetOnUse
override bool IsLockTargetOnUse()
Definition
actionfillbottlebase.c:145
ActionFillBottleBase::m_AllowedLiquidMask
int m_AllowedLiquidMask
Definition
actionfillbottlebase.c:30
ActionFillBottleBase::ALLOWED_WATER_SURFACES
const string ALLOWED_WATER_SURFACES
Definition
actionfillbottlebase.c:29
AnimatedActionBase::m_CommandUID
int m_CommandUID
Definition
animatedactionbase.c:143
AnimatedActionBase::m_CallbackClass
m_CallbackClass
Definition
animatedactionbase.c:145
CAContinuousFill
Definition
cacontinuousfill.c:2
CCINonRuined
Definition
ccinonruined.c:2
CCTNone
Definition
cctnone.c:2
ItemBase
Definition
inventoryitem.c:742
Object
Definition
objecttyped.c:2
PlayerBase
Definition
playerbaseclient.c:2
SurfaceInfo
Unmanaged surface info handle.
Definition
surfaceinfo.c:9
SurfaceInfo::GetByName
static proto SurfaceInfo GetByName(string name)
Warning: O(n) time complexity where n is the total number of loaded surfaces Note: Will load the surf...
SurfaceInfo::GetLiquidType
proto int GetLiquidType()
See 'LiquidTypes' in 'constants.c'.
UAMaxDistances
Definition
actionconstants.c:110
UAMaxDistances::DEFAULT
const float DEFAULT
Definition
actionconstants.c:112
UAQuantityConsumed
Definition
actionconstants.c:4
UAQuantityConsumed::FUEL
const float FUEL
Definition
actionconstants.c:17
UAQuantityConsumed::FILL_SNOW
const float FILL_SNOW
Definition
actionconstants.c:11
UAQuantityConsumed::FILL_LIQUID
const float FILL_LIQUID
Definition
actionconstants.c:10
UAWaterType
Definition
actionconstants.c:161
UAWaterType::STILL
const string STILL
Definition
actionconstants.c:164
UAWaterType::SNOW
const string SNOW
Definition
actionconstants.c:165
UAWaterType::FRESH
const string FRESH
fake
Definition
actionconstants.c:163
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
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
LIQUID_NONE
const int LIQUID_NONE
Definition
constants.c:532
LIQUID_GROUP_DRINKWATER
const int LIQUID_GROUP_DRINKWATER
Definition
constants.c:559
LIQUID_GASOLINE
const int LIQUID_GASOLINE
Definition
constants.c:548
LIQUID_SALTWATER
const int LIQUID_SALTWATER
Definition
constants.c:553
LIQUID_SNOW
const int LIQUID_SNOW
Definition
constants.c:552
HumanCommandSwim
class HumanCommandLadder HumanCommandSwim()
Definition
human.c:673
GetLiquidType
override int GetLiquidType()
Definition
itembase.c:8794
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
continuous
actionfillbottlebase.c
Generated by
1.17.0