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_AILookAtPosition.c
Go to the documentation of this file.
1
class
SCR_AILookAtPosition
:
AITaskScripted
2
{
3
[
Attribute
(
"1"
,
UIWidgets
.CheckBox,
"Succeed when requested looking too close"
)]
4
protected
bool
m_bSuccessWhenClose
;
5
6
[
Attribute
(
"1.5"
,
UIWidgets
.EditBox,
"Vertical offset to add to position"
)]
7
protected
float
m_fVerticalOffset
;
8
9
[
Attribute
(
"1.5"
,
UIWidgets
.EditBox,
"DistSQ below look is ignored"
)]
10
protected
float
m_fIgnoreLookDistSq
;
11
12
[
Attribute
(
"20"
,
UIWidgets
.EditBox,
"Priority of the look"
)]
13
protected
float
m_fPriority
;
14
15
protected
static
const
string
POSITION_PORT
=
"PositionIn"
;
16
protected
static
const
string
POSITION_CORRECTION_PORT
=
"PositionOut"
;
17
protected
static
const
string
PRIORITY_PORT
=
"PriorityIn"
;
18
19
protected
SCR_AIUtilityComponent
m_Utility
;
20
21
//-----------------------------------------------------------------------------------------------
22
static
override
bool
VisibleInPalette
() {
return
true
;}
23
24
//-----------------------------------------------------------------------------------------------
25
protected
static
ref
TStringArray
s_aVarsIn
= {
26
POSITION_PORT
,
27
PRIORITY_PORT
28
};
29
override
array<string>
GetVariablesIn
()
30
{
31
return
s_aVarsIn
;
32
}
33
34
protected
static
ref
TStringArray
s_aVarsOut
= {
35
POSITION_CORRECTION_PORT
36
};
37
override
array<string>
GetVariablesOut
()
38
{
39
return
s_aVarsOut
;
40
}
41
42
//-----------------------------------------------------------------------------------------------
43
override
ENodeResult
EOnTaskSimulate
(AIAgent owner,
float
dt)
44
{
45
vector
lookPosition;
46
float
priority;
47
48
if
(!
m_Utility
)
49
{
50
m_Utility
= SCR_AIUtilityComponent.Cast(owner.FindComponent(SCR_AIUtilityComponent));
51
if
(!
m_Utility
)
52
{
53
NodeError
(
this
, owner,
"This character does not have UtilityComponent!"
);
54
return
ENodeResult
.FAIL;
55
}
56
}
57
58
if
(!
GetVariableIn
(
PRIORITY_PORT
,priority))
59
priority =
m_fPriority
;
60
61
if
(!
GetVariableIn
(
POSITION_PORT
,lookPosition))
62
return
ENodeResult
.FAIL;
63
64
if
(lookPosition ==
vector
.Zero)
65
{
66
NodeError
(
this
,owner,
"Provided zero vector!"
);
67
return
ENodeResult
.FAIL;
68
}
69
70
if
(!
m_Utility
.m_LookAction)
71
return
ENodeResult
.FAIL;
72
73
lookPosition[1] = lookPosition[1] +
m_fVerticalOffset
;
74
75
if
(
vector
.DistanceSq(lookPosition,
m_Utility
.GetOrigin()) <
m_fIgnoreLookDistSq
)
76
{
77
// distance is too close to look at
78
ClearVariable
(
POSITION_CORRECTION_PORT
);
79
if
(
m_bSuccessWhenClose
)
80
return
ENodeResult
.SUCCESS;
81
else
82
return
ENodeResult
.FAIL;
83
}
84
85
m_Utility
.m_LookAction.LookAt(lookPosition, priority);
86
SetVariableOut
(
POSITION_CORRECTION_PORT
,lookPosition);
87
return
ENodeResult
.SUCCESS;
88
}
89
90
//-----------------------------------------------------------------------------------------------
91
protected
static
override
string
GetOnHoverDescription
()
92
{
93
return
"Look at position setter for execution inside tree LookAction.bt, the position may be corrected by terrain"
;
94
}
95
};
96
NodeError
ENodeResult NodeError(Node node, AIAgent owner, string msg)
Error call to be used in scripted BT nodes.
Definition
NodeError.c:3
AITaskScripted
Definition
AITaskScripted.c:13
Node::SetVariableOut
proto void SetVariableOut(string name, void val)
Node::GetVariableIn
proto bool GetVariableIn(string name, out void val)
Node::ClearVariable
proto void ClearVariable(string name)
SCR_AILookAtPosition
Definition
SCR_AILookAtPosition.c:2
SCR_AILookAtPosition::m_fIgnoreLookDistSq
float m_fIgnoreLookDistSq
Definition
SCR_AILookAtPosition.c:10
SCR_AILookAtPosition::PRIORITY_PORT
static const string PRIORITY_PORT
Definition
SCR_AILookAtPosition.c:17
SCR_AILookAtPosition::m_bSuccessWhenClose
bool m_bSuccessWhenClose
Definition
SCR_AILookAtPosition.c:4
SCR_AILookAtPosition::m_fPriority
float m_fPriority
Definition
SCR_AILookAtPosition.c:13
SCR_AILookAtPosition::VisibleInPalette
static override bool VisibleInPalette()
Definition
SCR_AILookAtPosition.c:22
SCR_AILookAtPosition::POSITION_CORRECTION_PORT
static const string POSITION_CORRECTION_PORT
Definition
SCR_AILookAtPosition.c:16
SCR_AILookAtPosition::GetVariablesOut
override array< string > GetVariablesOut()
Definition
SCR_AILookAtPosition.c:37
SCR_AILookAtPosition::m_fVerticalOffset
float m_fVerticalOffset
Definition
SCR_AILookAtPosition.c:7
SCR_AILookAtPosition::s_aVarsOut
static ref TStringArray s_aVarsOut
Definition
SCR_AILookAtPosition.c:34
SCR_AILookAtPosition::m_Utility
SCR_AIUtilityComponent m_Utility
Definition
SCR_AILookAtPosition.c:19
SCR_AILookAtPosition::GetOnHoverDescription
static override string GetOnHoverDescription()
Definition
SCR_AILookAtPosition.c:91
SCR_AILookAtPosition::GetVariablesIn
override array< string > GetVariablesIn()
Definition
SCR_AILookAtPosition.c:29
SCR_AILookAtPosition::POSITION_PORT
static const string POSITION_PORT
Definition
SCR_AILookAtPosition.c:15
SCR_AILookAtPosition::s_aVarsIn
static ref TStringArray s_aVarsIn
Definition
SCR_AILookAtPosition.c:25
SCR_AILookAtPosition::EOnTaskSimulate
override ENodeResult EOnTaskSimulate(AIAgent owner, float dt)
Definition
SCR_AILookAtPosition.c:43
UIWidgets
Definition
attributes.c:40
vector
Definition
vector.c:13
ENodeResult
ENodeResult
Definition
ENodeResult.c:13
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
TStringArray
array< string > TStringArray
Definition
Types.c:385
scripts
Game
AI
ScriptedNodes
Soldier
SCR_AILookAtPosition.c
Generated by
1.17.0