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_AIFindSmartActions.c
Go to the documentation of this file.
1
class
SCR_AIFindSmartActions
:
AITaskScripted
2
{
3
static
const
string
PORT_CENTER_OF_SEARCH =
"OriginIn"
;
4
static
const
string
PORT_RADIUS =
"RadiusIn"
;
5
static
const
string
PORT_SA_NUMBER =
"SmartActionNumber"
;
6
static
const
string
PORT_SA_FOUND =
"SmartActionsFound"
;
7
static
const
string
PORT_SA_TAGS =
"SmartActionTags"
;
8
9
protected
AISmartActionSystem
m_AISmartActionSystem
;
10
protected
SCR_AIGroup
m_groupOwner
;
11
12
//------------------------------------------------------------------------------------------------
13
static
override
bool
VisibleInPalette
() {
return
true
;}
14
15
//------------------------------------------------------------------------------------------------
16
override
void
OnInit
(AIAgent owner)
17
{
18
ChimeraWorld
myWorld =
ChimeraWorld
.CastFrom(
GetGame
().GetWorld());
19
if
(myWorld)
20
m_AISmartActionSystem
=
AISmartActionSystem
.Cast(myWorld.FindSystem(
AISmartActionSystem
));
21
m_groupOwner
=
SCR_AIGroup
.Cast(owner);
22
if
(!
m_groupOwner
)
23
{
24
m_groupOwner
=
SCR_AIGroup
.Cast(owner.GetParentGroup());
25
if
(!
m_groupOwner
)
26
NodeError
(
this
, owner,
"Node is not run on SCR_AIGroup agent or owner is not member of SCR_AIGroup!"
);
27
}
28
}
29
30
//------------------------------------------------------------------------------------------------
31
override
ENodeResult
EOnTaskSimulate
(AIAgent owner,
float
dt)
32
{
33
if
(!
m_AISmartActionSystem
)
34
return
ENodeResult
.FAIL;
35
36
vector
center;
37
GetVariableIn
(PORT_CENTER_OF_SEARCH, center);
38
float
radius;
39
GetVariableIn
(PORT_RADIUS, radius);
40
ref array<string> aTags = {};
41
GetVariableIn
(PORT_SA_TAGS, aTags);
42
43
ref array<AISmartActionComponent> outSmartActions = {};
44
int
numSAFound;
45
numSAFound =
m_AISmartActionSystem
.FindSmartActions(outSmartActions, center, radius, aTags,
EAIFindSmartAction_TagTest
.InOrder);
46
if
(numSAFound > 0)
47
{
48
SetVariableOut
(PORT_SA_NUMBER,numSAFound);
49
m_groupOwner
.AllocateSmartActions(outSmartActions);
50
}
51
SetVariableOut
(PORT_SA_FOUND, numSAFound > 0);
52
return
ENodeResult
.SUCCESS;
53
}
54
55
//------------------------------------------------------------------------------------------------
56
protected
static
ref
TStringArray
s_aVarsOut
= {
57
PORT_SA_NUMBER,
58
PORT_SA_FOUND
59
};
60
override
TStringArray
GetVariablesOut
()
61
{
62
return
s_aVarsOut
;
63
}
64
65
//------------------------------------------------------------------------------------------------
66
protected
static
ref
TStringArray
s_aVarsIn
= {
67
PORT_CENTER_OF_SEARCH,
68
PORT_RADIUS,
69
PORT_SA_TAGS
70
};
71
override
TStringArray
GetVariablesIn
()
72
{
73
return
s_aVarsIn
;
74
}
75
76
//------------------------------------------------------------------------------------------------
77
static
override
string
GetOnHoverDescription
()
78
{
79
return
"FindSmartActions: finds all smart actions of given tags within center and radius. Caches result to group properties."
;
80
}
81
};
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
NodeError
ENodeResult NodeError(Node node, AIAgent owner, string msg)
Error call to be used in scripted BT nodes.
Definition
NodeError.c:3
AISmartActionSystem
Definition
AISmartActionSystem.c:13
AITaskScripted
Definition
AITaskScripted.c:13
ChimeraWorld
Definition
ChimeraWorld.c:13
Node::SetVariableOut
proto void SetVariableOut(string name, void val)
Node::GetVariableIn
proto bool GetVariableIn(string name, out void val)
SCR_AIFindSmartActions
Definition
SCR_AIFindSmartActions.c:2
SCR_AIFindSmartActions::s_aVarsIn
static ref TStringArray s_aVarsIn
Definition
SCR_AIFindSmartActions.c:66
SCR_AIFindSmartActions::OnInit
override void OnInit(AIAgent owner)
Definition
SCR_AIFindSmartActions.c:16
SCR_AIFindSmartActions::GetVariablesIn
override TStringArray GetVariablesIn()
Definition
SCR_AIFindSmartActions.c:71
SCR_AIFindSmartActions::m_groupOwner
SCR_AIGroup m_groupOwner
Definition
SCR_AIFindSmartActions.c:10
SCR_AIFindSmartActions::GetOnHoverDescription
static override string GetOnHoverDescription()
Definition
SCR_AIFindSmartActions.c:77
SCR_AIFindSmartActions::VisibleInPalette
static override bool VisibleInPalette()
Definition
SCR_AIFindSmartActions.c:13
SCR_AIFindSmartActions::s_aVarsOut
static ref TStringArray s_aVarsOut
Definition
SCR_AIFindSmartActions.c:56
SCR_AIFindSmartActions::EOnTaskSimulate
override ENodeResult EOnTaskSimulate(AIAgent owner, float dt)
Definition
SCR_AIFindSmartActions.c:31
SCR_AIFindSmartActions::m_AISmartActionSystem
AISmartActionSystem m_AISmartActionSystem
Definition
SCR_AIFindSmartActions.c:9
SCR_AIFindSmartActions::GetVariablesOut
override TStringArray GetVariablesOut()
Definition
SCR_AIFindSmartActions.c:60
SCR_AIGroup
Definition
SCR_AIGroup.c:75
vector
Definition
vector.c:13
ENodeResult
ENodeResult
Definition
ENodeResult.c:13
EAIFindSmartAction_TagTest
EAIFindSmartAction_TagTest
Definition
EAIFindSmartAction_TagTest.c:13
TStringArray
array< string > TStringArray
Definition
Types.c:385
scripts
Game
AI
ScriptedNodes
Groups
SCR_AIFindSmartActions.c
Generated by
1.17.0