Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actionminetree.c
Go to the documentation of this file.
1
class
MineActionData
:
ActionData
2
{
3
EHarvestType
m_HarvestType
=
EHarvestType
.NORMAL;
4
int
m_EffecterID
= -1;
5
}
6
7
class
ActionMineTreeCB :
ActionContinuousBaseCB
8
{
9
private
const
float
TIME_BETWEEN_MATERIAL_DROPS_DEFAULT
= 4;
10
11
override
void
CreateActionComponent
()
12
{
13
m_ActionData.m_ActionComponent =
new
CAContinuousMineWood
(
TIME_BETWEEN_MATERIAL_DROPS_DEFAULT
);
14
}
15
};
16
17
class
ActionMineBase
:
ActionContinuousBase
18
{
19
EHarvestType
m_HarvestType
=
EHarvestType
.NORMAL;
20
21
override
ActionData
CreateActionData
()
22
{
23
MineActionData
data =
new
MineActionData
;
24
data.
m_HarvestType
=
m_HarvestType
;
25
return
data;
26
}
27
28
override
bool
CanBeUsedInFreelook
()
29
{
30
return
false
;
31
}
32
33
override
void
OnActionInfoUpdate
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item )
34
{
35
m_Text
=
"#harvest"
+
" "
+
GetYieldName
(player, target, item);
36
}
37
38
string
GetYieldName
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item )
39
{
40
//given the circumstances, the implementation bellow is the path of least resistance
41
Object
targetObject = target.GetObject();
42
WoodBase
wood =
WoodBase
.Cast(targetObject);
43
RockBase
rock =
RockBase
.Cast(targetObject);
44
string
yieldName;
45
if
(wood || rock)
46
{
47
map<string,int>
output_map =
new
map<string,int>
;
48
if
(wood)
49
{
50
wood.GetMaterialAndQuantityMapEx(item, output_map,
m_HarvestType
);
51
}
52
else
53
{
54
rock.
GetMaterialAndQuantityMap
(item, output_map);
55
}
56
if
(output_map.Count() > 0)
57
{
58
yieldName = MiscGameplayFunctions.GetItemDisplayName(output_map.GetKey(0));
59
}
60
}
61
return
yieldName;
62
}
63
64
}
65
66
class
ActionMineTree
:
ActionMineBase
67
{
68
void
ActionMineTree
()
69
{
70
m_CallbackClass = ActionMineTreeCB;
71
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_HACKTREE;
72
m_FullBody =
true
;
73
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_ERECT;
74
m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_HIGH;
75
}
76
77
override
void
CreateConditionComponents
()
78
{
79
m_ConditionTarget =
new
CCTCursor
(
UAMaxDistances
.
SMALL
);
80
m_ConditionItem =
new
CCINonRuined
;
81
}
82
83
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item )
84
{
85
//Action not allowed if player has broken legs
86
if
(player.GetBrokenLegs() ==
eBrokenLegs
.BROKEN_LEGS)
87
return
false
;
88
89
Object
targetObject = target.GetObject();
90
91
return
targetObject.IsTree() && targetObject.IsCuttable();
92
}
93
95
override
bool
CanContinue
(
ActionData
action_data)
96
{
97
if
(!action_data.m_Player.IsPlayerInStance(action_data.m_PossibleStanceMask) || !m_ConditionItem || !m_ConditionItem.CanContinue(action_data.m_Player,action_data.m_MainItem))
98
return
false
;
99
100
return
ActionConditionContinue
(action_data);
101
}
102
103
override
void
OnExecuteServer
(
ActionData
action_data)
104
{
105
MineActionData
mad =
MineActionData
.Cast(action_data);
106
if
(mad.
m_EffecterID
== -1)
107
{
108
mad.
m_EffecterID
=
SEffectManager
.
CreateParticleServer
(action_data.m_Target.GetObject().GetPosition(),
new
TreeEffecterParameters
(
"TreeEffecter"
,
EffecterBase
.NOT_DEFINED_LIFESPAN, 0.1));
109
}
110
else
111
{
112
SEffectManager
.
ReactivateParticleServer
(mad.
m_EffecterID
);
113
}
114
}
115
116
override
bool
HasMultipleExecution
(
ActionData
action_data)
117
{
118
return
true
;
119
}
120
121
override
void
OnEndServer
(
ActionData
action_data)
122
{
123
super.OnEndServer(action_data);
124
MineActionData
mad =
MineActionData
.Cast(action_data);
125
SEffectManager
.
DestroyEffecterParticleServer
(mad.
m_EffecterID
);
126
}
127
};
CreateConditionComponents
override void CreateConditionComponents()
Definition
actionactivatetrap.c:30
ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actionactivatetrap.c:46
OnEndServer
override void OnEndServer(ActionData action_data)
Definition
actionarmexplosive.c:67
ActionConditionContinue
override bool ActionConditionContinue(ActionData action_data)
Definition
actionattachexplosivestrigger.c:27
m_CommandUID
int m_CommandUID
Definition
actionbase.c:31
m_StanceMask
int m_StanceMask
Definition
actionbase.c:33
ActionData
ActionBase ActionData
Definition
actionbase.c:30
OnExecuteServer
override void OnExecuteServer(ActionData action_data)
Definition
actiondigoutstash.c:57
CanContinue
override bool CanContinue(ActionData action_data)
not checking target damage anymore, callback takes care of that
Definition
actionminetree.c:95
HasMultipleExecution
override bool HasMultipleExecution(ActionData action_data)
Definition
actionminetree.c:116
ActionMineTree
ActionMineBase ActionContinuousBase ActionMineTree()
Definition
actionminetree.c:68
TIME_BETWEEN_MATERIAL_DROPS_DEFAULT
MineActionData TIME_BETWEEN_MATERIAL_DROPS_DEFAULT
ActionTarget
class ActionTargets ActionTarget
ActionBaseCB::CreateActionComponent
void CreateActionComponent()
Definition
animatedactionbase.c:61
ActionBase::m_Text
string m_Text
Definition
actionbase.c:64
ActionContinuousBaseCB
Definition
actioncontinuousbase.c:2
ActionContinuousBase::ActionContinuousBase
void ActionContinuousBase()
Definition
actioncontinuousbase.c:124
ActionMineBase
Definition
actionminetree.c:18
ActionMineBase::OnActionInfoUpdate
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actionminetree.c:33
ActionMineBase::CreateActionData
override ActionData CreateActionData()
Definition
actionminetree.c:21
ActionMineBase::CanBeUsedInFreelook
override bool CanBeUsedInFreelook()
Definition
actionminetree.c:28
ActionMineBase::m_HarvestType
EHarvestType m_HarvestType
Definition
actionminetree.c:19
ActionMineBase::GetYieldName
string GetYieldName(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actionminetree.c:38
CAContinuousMineWood
Definition
cacontinuousminewood.c:2
CCINonRuined
Definition
ccinonruined.c:2
CCTCursor
Definition
cctcursor.c:2
ItemBase
Definition
inventoryitem.c:742
MineActionData
Definition
actionminetree.c:2
MineActionData::m_EffecterID
int m_EffecterID
Definition
actionminetree.c:4
MineActionData::m_HarvestType
EHarvestType m_HarvestType
Definition
actionminetree.c:3
Object
Definition
objecttyped.c:2
PlayerBase
Definition
playerbaseclient.c:2
RockBase
Definition
rockbase.c:2
RockBase::GetMaterialAndQuantityMap
void GetMaterialAndQuantityMap(ItemBase item, out map< string, int > output_map)
Definition
rockbase.c:19
SEffectManager
Manager class for managing Effect (EffectParticle, EffectSound).
Definition
effectmanager.c:6
SEffectManager::DestroyEffecterParticleServer
static void DestroyEffecterParticleServer(int effecterID)
Definition
effectmanager.c:630
SEffectManager::ReactivateParticleServer
static void ReactivateParticleServer(int effecterID)
Definition
effectmanager.c:602
SEffectManager::CreateParticleServer
static int CreateParticleServer(vector pos, EffecterParameters parameters)
returns unique effecter ID
Definition
effectmanager.c:577
TreeEffecterParameters
Definition
woodbase.c:263
UAMaxDistances
Definition
actionconstants.c:110
UAMaxDistances::SMALL
const float SMALL
Definition
actionconstants.c:111
map
Definition
cachedequipmentstorage.c:4
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
eBrokenLegs
eBrokenLegs
Definition
ebrokenlegs.c:2
EffecterBase
void EffecterBase()
Definition
effectmanager.c:690
WoodBase
void WoodBase()
Definition
woodbase.c:30
EHarvestType
EHarvestType
Definition
woodbase.c:2
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
continuous
actionminetree.c
Generated by
1.17.0