Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actiondismantlepart.c
Go to the documentation of this file.
1
class
ActionDismantlePartCB
:
ActionContinuousBaseCB
2
{
3
override
void
CreateActionComponent
()
4
{
5
float
time =
SetCallbackDuration
(
m_ActionData
.m_MainItem);
6
m_ActionData
.m_ActionComponent =
new
CAContinuousTime
( time );
7
}
8
9
float
SetCallbackDuration
(
ItemBase
item )
10
{
11
/*switch( item.Type() )
12
{
13
case Pickaxe:
14
case Shovel:
15
case FieldShovel:
16
return UATimeSpent.BASEBUILDING_DECONSTRUCT_MEDIUM;
17
case FirefighterAxe:
18
return UATimeSpent.BASEBUILDING_DECONSTRUCT_FAST;
19
default:
20
return UATimeSpent.BASEBUILDING_DECONSTRUCT_SLOW;
21
}*/
22
return
UATimeSpent
.
BASEBUILDING_DECONSTRUCT_SLOW
;
23
}
24
};
25
26
class
ActionDismantlePart
:
ActionContinuousBase
27
{
28
void
ActionDismantlePart
()
29
{
30
m_CallbackClass
=
ActionDismantlePartCB
;
31
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_DISASSEMBLE;
32
m_FullBody
=
true
;
33
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_ERECT;
34
35
m_SpecialtyWeight
= UASoftSkillsWeight.ROUGH_HIGH;
36
m_Text
=
"#dismantle"
;
37
}
38
39
override
void
CreateConditionComponents
()
40
{
41
m_ConditionItem
=
new
CCINonRuined
;
42
m_ConditionTarget
=
new
CCTNone
;
//CCTNonRuined( UAMaxDistances.BASEBUILDING );
43
}
44
45
override
void
OnActionInfoUpdate
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item )
46
{
47
ConstructionActionData
construction_action_data = player.GetConstructionActionData();
48
m_Text
=
"#dismantle "
+ construction_action_data.
GetTargetPart
().
GetName
();
49
}
50
51
override
string
GetText
()
52
{
53
PlayerBase
player =
PlayerBase
.Cast(
g_Game
.GetPlayer() );
54
if
( player )
55
{
56
ConstructionActionData
construction_action_data = player.GetConstructionActionData();
57
ConstructionPart
constrution_part = construction_action_data.
GetTargetPart
();
58
59
if
( constrution_part )
60
{
61
return
"#dismantle"
+
" "
+ constrution_part.
GetName
();
62
}
63
}
64
65
return
""
;
66
}
67
68
override
bool
CanBeUsedLeaning
()
69
{
70
return
false
;
71
}
72
73
override
bool
CanBeUsedInFreelook
()
74
{
75
return
false
;
76
}
77
78
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item )
79
{
80
if
( player.IsPlacingLocal() )
81
return
false
;
82
83
//Action not allowed if player has broken legs
84
if
(player.GetBrokenLegs() ==
eBrokenLegs
.BROKEN_LEGS)
85
return
false
;
86
87
return
DismantleCondition
( player, target, item,
true
) && player.m_MovementState.m_iStanceIdx !=
DayZPlayerConstants
.STANCEIDX_PRONE;
88
}
89
90
override
bool
ActionConditionContinue
(
ActionData
action_data )
91
{
92
return
DismantleCondition
( action_data.m_Player, action_data.m_Target, action_data.m_MainItem ,
false
) && action_data.m_Player.m_MovementState.m_iStanceIdx !=
DayZPlayerConstants
.STANCEIDX_PRONE;
93
}
94
95
override
void
OnFinishProgressServer
(
ActionData
action_data )
96
{
97
BaseBuildingBase
base_building =
BaseBuildingBase
.Cast( action_data.m_Target.GetObject() );
98
Construction
construction = base_building.GetConstruction();
99
ConstructionActionData
construction_action_data = action_data.m_Player.GetConstructionActionData();
100
ConstructionPart
construction_part = construction_action_data.
GetTargetPart
();
101
102
if
( construction.CanDismantlePart( construction_part.
GetPartName
(), action_data.m_MainItem ) )
103
{
104
//build
105
construction.DismantlePartServer( action_data.m_Player, construction_part.
GetPartName
(),
AT_DISMANTLE_PART
);
106
107
//add damage to tool
108
action_data.m_MainItem.DecreaseHealth(
UADamageApplied
.
DISMANTLE
,
false
);
109
}
110
}
111
112
//setup
113
override
bool
SetupAction
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item, out
ActionData
action_data,
Param
extra_data = NULL )
114
{
115
if
( super.SetupAction( player, target, item, action_data, extra_data ) )
116
{
117
SetBuildingAnimation
( item );
118
119
return
true
;
120
}
121
122
return
false
;
123
}
124
125
protected
void
SetBuildingAnimation
(
ItemBase
item )
126
{
127
switch
( item.Type() )
128
{
129
case
Pickaxe:
130
case
Shovel:
131
case
FarmingHoe
:
132
case
FieldShovel:
133
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_DIG;
134
break
;
135
case
Pliers:
136
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_INTERACT;
137
break
;
138
default
:
139
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_DISASSEMBLE;
140
break
;
141
}
142
}
143
144
protected
bool
DismantleCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item,
bool
camera_check)
145
{
146
if
(player && !player.IsPlacingLocal() && !player.IsPlacingServer())
147
{
148
Object
targetObject = target.GetObject();
149
EntityAI
targetEntity;
150
if
(targetObject && targetObject.CanUseConstruction())
151
{
152
//invalid if is gate and is locked
153
if
(
Class
.
CastTo
(targetEntity, targetObject) && (targetEntity.FindAttachmentBySlotName(
"Att_CombinationLock"
) || targetEntity.FindAttachmentBySlotName(
"Material_FPole_Flag"
)) )
154
return
false
;
155
156
string
partName = targetObject.GetActionComponentName(target.GetComponentIndex());
157
158
BaseBuildingBase
baseBuilding =
BaseBuildingBase
.Cast(targetObject);
159
Construction
construction = baseBuilding.GetConstruction();
160
ConstructionPart
constructionPart = construction.GetConstructionPartToDismantle(partName, item);
161
162
if
(constructionPart)
163
{
164
165
//invalid on gate if the gate is opened
166
if
(constructionPart.
IsGate
() && baseBuilding.
IsOpened
())
167
return
false
;
168
169
//camera and position checks
170
bool
checked =
false
;
171
172
if
(constructionPart.
IsBase
())
173
checked =
true
;
174
175
if
(!checked && baseBuilding.
IsPlayerInside
(player, partName))
176
{
177
//Camera check (client-only)
178
if
(camera_check)
179
{
180
if
(
g_Game
&& (!
g_Game
.IsDedicatedServer()))
181
{
182
if
(baseBuilding.
IsFacingCamera
(partName))
183
return
false
;
184
}
185
}
186
187
checked =
true
;
188
}
189
190
if
(checked)
191
{
192
ConstructionActionData
constructionActionData = player.GetConstructionActionData();
193
constructionActionData.
SetTargetPart
(constructionPart);
194
195
return
true
;
196
}
197
}
198
}
199
}
200
201
return
false
;
202
}
203
204
override
string
GetAdminLogMessage
(
ActionData
action_data)
205
{
206
ConstructionActionData
construction_action_data = action_data.m_Player.GetConstructionActionData();
207
ConstructionPart
construction_part = construction_action_data.
GetTargetPart
();
208
209
string
message =
string
.Format(
"Dismantled %1 from %2 with %3"
, construction_part.
GetName
(), action_data.m_Target.GetObject().GetDisplayName(), action_data.m_MainItem.GetDisplayName() );
210
return
message;
211
}
212
}
AT_DISMANTLE_PART
const int AT_DISMANTLE_PART
Definition
_constants.c:7
ActionData
ActionBase ActionData
Definition
actionbase.c:30
ActionTarget
class ActionTargets ActionTarget
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
ActionDismantlePartCB
Definition
actiondismantlepart.c:2
ActionDismantlePartCB::SetCallbackDuration
float SetCallbackDuration(ItemBase item)
Definition
actiondismantlepart.c:9
ActionDismantlePartCB::CreateActionComponent
override void CreateActionComponent()
Definition
actiondismantlepart.c:3
ActionDismantlePart::OnFinishProgressServer
override void OnFinishProgressServer(ActionData action_data)
Definition
actiondismantlepart.c:95
ActionDismantlePart::CanBeUsedLeaning
override bool CanBeUsedLeaning()
Definition
actiondismantlepart.c:68
ActionDismantlePart::ActionConditionContinue
override bool ActionConditionContinue(ActionData action_data)
Definition
actiondismantlepart.c:90
ActionDismantlePart::OnActionInfoUpdate
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actiondismantlepart.c:45
ActionDismantlePart::SetBuildingAnimation
void SetBuildingAnimation(ItemBase item)
Definition
actiondismantlepart.c:125
ActionDismantlePart::GetAdminLogMessage
override string GetAdminLogMessage(ActionData action_data)
Definition
actiondismantlepart.c:204
ActionDismantlePart::CanBeUsedInFreelook
override bool CanBeUsedInFreelook()
Definition
actiondismantlepart.c:73
ActionDismantlePart::CreateConditionComponents
override void CreateConditionComponents()
Definition
actiondismantlepart.c:39
ActionDismantlePart::ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actiondismantlepart.c:78
ActionDismantlePart::ActionDismantlePart
void ActionDismantlePart()
Definition
actiondismantlepart.c:28
ActionDismantlePart::DismantleCondition
bool DismantleCondition(PlayerBase player, ActionTarget target, ItemBase item, bool camera_check)
Definition
actiondismantlepart.c:144
ActionDismantlePart::SetupAction
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Definition
actiondismantlepart.c:113
ActionDismantlePart::GetText
override string GetText()
Definition
actiondismantlepart.c:51
AnimatedActionBase::m_CommandUID
int m_CommandUID
Definition
animatedactionbase.c:143
AnimatedActionBase::m_CallbackClass
m_CallbackClass
Definition
animatedactionbase.c:145
BaseBuildingBase
Definition
fence.c:2
BaseBuildingBase::IsFacingCamera
override bool IsFacingCamera(string selection)
Definition
fence.c:678
BaseBuildingBase::IsPlayerInside
override bool IsPlayerInside(PlayerBase player, string selection)
Definition
fence.c:615
BaseBuildingBase::IsOpened
override bool IsOpened()
Definition
fence.c:110
CAContinuousTime
Definition
cacontinuoustime.c:2
CCINonRuined
Definition
ccinonruined.c:2
CCTNone
Definition
cctnone.c:2
Class
Super root of all classes in Enforce script.
Definition
enscript.c:11
ConstructionActionData
Definition
constructionactiondata.c:2
ConstructionActionData::GetTargetPart
ConstructionPart GetTargetPart()
Definition
constructionactiondata.c:93
ConstructionActionData::SetTargetPart
void SetTargetPart(ConstructionPart target_part)
Definition
constructionactiondata.c:88
ConstructionPart
Definition
constructionpart.c:2
ConstructionPart::IsBase
bool IsBase()
Definition
constructionpart.c:65
ConstructionPart::IsGate
bool IsGate()
Definition
constructionpart.c:70
ConstructionPart::GetPartName
string GetPartName()
Definition
constructionpart.c:30
ConstructionPart::GetName
string GetName()
Definition
constructionpart.c:24
EntityAI
Definition
inventoryitem.c:2
FarmingHoe
Definition
farminghoe.c:2
ItemBase
Definition
inventoryitem.c:742
Object
Definition
objecttyped.c:2
Param
Base Param Class with no parameters.
Definition
param.c:12
PlayerBase
Definition
playerbaseclient.c:2
UADamageApplied
Definition
actionconstants.c:147
UADamageApplied::DISMANTLE
const float DISMANTLE
Definition
actionconstants.c:149
UATimeSpent
Definition
actionconstants.c:28
UATimeSpent::BASEBUILDING_DECONSTRUCT_SLOW
const float BASEBUILDING_DECONSTRUCT_SLOW
Definition
actionconstants.c:66
Construction
void Construction(BaseBuildingBase parent)
Definition
construction.c:26
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
eBrokenLegs
eBrokenLegs
Definition
ebrokenlegs.c:2
Class::CastTo
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
continuous
actiondismantlepart.c
Generated by
1.17.0