Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_BaseMineAction.c
Go to the documentation of this file.
1
class
SCR_BaseMineAction
:
ScriptedUserAction
2
{
3
[
Attribute
(defvalue:
"10"
,
desc
:
"How long the user action will be shown as inactive after starting arming. [s]"
,
params
:
"0 inf 0.01"
)]
4
protected
float
m_fActionTimeout;
5
6
[
Attribute
(defvalue:
"0"
,
desc
:
"Can this user action be used while prone"
)]
7
protected
bool
m_bCanBeUsedProne
;
8
9
[
Attribute
(
desc
:
"Additional rotation that will be applied when orientating the mine"
)]
10
protected
vector
m_vAdditionalRotation
;
11
12
protected
InventoryItemComponent
m_Item
;
13
protected
SCR_PressureTriggerComponent
m_MineTriggereComp
;
14
protected
bool
m_bBlockUserAction
;
15
16
protected
const
float
MAX_HEIGHT_DIFFERENCE
= 0.4;
17
protected
const
string
CANNOT_PERFORM_PRONE
=
"#AR-UserAction_CannotPerformWhileProne"
;
18
19
//------------------------------------------------------------------------------------------------
20
protected
void
OrientToForward
(
vector
forward, inout
vector
mat[4])
21
{
22
vector
angles
= forward.VectorToAngles() +
m_vAdditionalRotation
;
23
forward =
angles
.AnglesToVector();
24
mat[0] = forward * mat[1];
25
mat[2] = mat[1] * -mat[0];
26
}
27
28
//------------------------------------------------------------------------------------------------
29
protected
void
AllowActionUsage
()
30
{
31
m_bBlockUserAction
=
false
;
32
}
33
34
//------------------------------------------------------------------------------------------------
35
override
event
void
PerformAction
(
IEntity
pOwnerEntity,
IEntity
pUserEntity)
36
{
37
m_bBlockUserAction
=
true
;
38
GetGame
().GetCallqueue().CallLater(
AllowActionUsage
, 1000 * m_fActionTimeout);
39
}
40
41
//------------------------------------------------------------------------------------------------
42
override
bool
CanBePerformedScript
(
IEntity
user)
43
{
44
if
(
m_bBlockUserAction
)
45
return
false
;
46
47
ChimeraCharacter
character =
ChimeraCharacter
.Cast(user);
48
if
(!character)
49
return
false
;
50
51
CharacterControllerComponent controller = character.GetCharacterController();
52
if
(!controller)
53
return
false
;
54
55
if
(!
m_bCanBeUsedProne
&& controller.GetStance() ==
ECharacterStance
.PRONE)
56
{
57
SetCannotPerformReason
(
CANNOT_PERFORM_PRONE
);
58
return
false
;
59
}
60
61
IEntity
owner =
GetOwner
();
62
if
(!owner)
63
return
false
;
64
65
if
(
SCR_WorldTools
.IsObjectUnderwater(owner))
66
return
false
;
67
68
vector
mat[4];
69
owner.
GetTransform
(mat);
70
if
(
vector
.Dot(mat[1],
vector
.Up) < 0.5)
// Rject based on the angle of placement
71
return
false
;
72
73
if
(
Math
.AbsFloat(mat[3][1] - user.
GetOrigin
()[1]) >
MAX_HEIGHT_DIFFERENCE
)
74
return
false
;
75
76
return
true
;
77
}
78
79
//------------------------------------------------------------------------------------------------
80
override
void
Init
(
IEntity
pOwnerEntity,
GenericComponent
pManagerComponent)
81
{
82
m_Item
=
InventoryItemComponent
.Cast(pOwnerEntity.
FindComponent
(
InventoryItemComponent
));
83
m_MineTriggereComp
= SCR_PressureTriggerComponent.Cast(
GetOwner
().FindComponent(SCR_PressureTriggerComponent));
84
}
85
86
//------------------------------------------------------------------------------------------------
87
override
bool
CanBeShownScript
(
IEntity
user)
88
{
89
if
(!
m_MineTriggereComp
)
90
return
false
;
91
92
if
(!
m_Item
)
93
return
false
;
94
95
if
(
m_Item
.IsLocked())
96
return
false
;
97
98
if
(
m_Item
.GetParentSlot())
99
return
false
;
100
101
return
super.CanBeShownScript(user);
102
}
103
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
angles
ref array< string > angles
Definition
PrefabImporter.c:22
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
params
category params
Definition
SCR_SpherePointGeneratorPreviewComponent.c:21
BaseUserAction::SetCannotPerformReason
void SetCannotPerformReason(string reason)
Definition
BaseUserAction.c:21
BaseUserAction::GetOwner
proto external IEntity GetOwner()
Returns the parent entity of this action.
ChimeraCharacter
Definition
ChimeraCharacter.c:13
GenericComponent
Definition
GenericComponent.c:13
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
IEntity::GetOrigin
proto external vector GetOrigin()
IEntity::GetTransform
proto external void GetTransform(out vector mat[])
InventoryItemComponent
Definition
InventoryItemComponent.c:13
Math
Definition
Math.c:13
SCR_BaseMineAction
Definition
SCR_BaseMineAction.c:2
SCR_BaseMineAction::CanBePerformedScript
override bool CanBePerformedScript(IEntity user)
Definition
SCR_BaseMineAction.c:42
SCR_BaseMineAction::m_vAdditionalRotation
vector m_vAdditionalRotation
Definition
SCR_BaseMineAction.c:10
SCR_BaseMineAction::CanBeShownScript
override bool CanBeShownScript(IEntity user)
Definition
SCR_BaseMineAction.c:87
SCR_BaseMineAction::m_bBlockUserAction
bool m_bBlockUserAction
Definition
SCR_BaseMineAction.c:14
SCR_BaseMineAction::m_Item
InventoryItemComponent m_Item
Definition
SCR_BaseMineAction.c:12
SCR_BaseMineAction::CANNOT_PERFORM_PRONE
const string CANNOT_PERFORM_PRONE
Definition
SCR_BaseMineAction.c:17
SCR_BaseMineAction::PerformAction
override event void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity)
Definition
SCR_BaseMineAction.c:35
SCR_BaseMineAction::Init
override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
Definition
SCR_BaseMineAction.c:80
SCR_BaseMineAction::m_bCanBeUsedProne
bool m_bCanBeUsedProne
Definition
SCR_BaseMineAction.c:7
SCR_BaseMineAction::AllowActionUsage
void AllowActionUsage()
Definition
SCR_BaseMineAction.c:29
SCR_BaseMineAction::OrientToForward
void OrientToForward(vector forward, inout vector mat[4])
Definition
SCR_BaseMineAction.c:20
SCR_BaseMineAction::MAX_HEIGHT_DIFFERENCE
const float MAX_HEIGHT_DIFFERENCE
Definition
SCR_BaseMineAction.c:16
SCR_BaseMineAction::m_MineTriggereComp
SCR_PressureTriggerComponent m_MineTriggereComp
Definition
SCR_BaseMineAction.c:13
SCR_WorldTools
Definition
SCR_WorldTools.c:2
ScriptedUserAction
Definition
ScriptedUserAction.c:13
vector
Definition
vector.c:13
ECharacterStance
ECharacterStance
Definition
ECharacterStance.c:13
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
scripts
Game
UserActions
SCR_BaseMineAction.c
Generated by
1.17.0