Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_AICharacterSetMovementSpeed.c
Go to the documentation of this file.
1
4{
5 // Inputs
6 protected static const string SPEED_PORT = "Speed";
7
8 protected AICharacterMovementComponent m_MovementComponent;
9 protected SCR_AICharacterSettingsComponent m_SettingsComp;
10
11 [Attribute(EMovementType.IDLE.ToString(), UIWidgets.ComboBox, "Desired character movement speed", "", ParamEnumArray.FromEnum(EMovementType))]
13
14 //------------------------------------------------------------------------------------------------
15 override void OnInit(AIAgent owner)
16 {
17 super.OnInit(owner);
18
19 m_SettingsComp = SCR_AICharacterSettingsComponent.Cast(owner.FindComponent(SCR_AICharacterSettingsComponent));
20
21 IEntity myEntity = owner.GetControlledEntity();
22 if(myEntity)
23 {
24 m_MovementComponent = AICharacterMovementComponent.Cast(owner.GetControlledEntity().FindComponent(AICharacterMovementComponent));
26 NodeError(this, owner, "Can't find AICharacterMovementComponent.");
27 }
28 }
29
30 //------------------------------------------------------------------------------------------------
31 override ENodeResult EOnTaskSimulate(AIAgent owner, float dt)
32 {
34 return ENodeResult.FAIL;
35
36 EMovementType speed;
37
38 if(!GetVariableIn(SPEED_PORT, speed))
39 speed = m_eSpeed;
40
41 // Check if speed is restricted by settings
45
46 if (setting)
47 speed = setting.GetSpeed(speed);
48
49 m_MovementComponent.SetMovementTypeWanted(speed);
50
51 return ENodeResult.SUCCESS;
52 }
53
54 //------------------------------------------------------------------------------------------------
55 static override bool VisibleInPalette() {return true;}
56
57 //------------------------------------------------------------------------------------------------
58 protected static ref TStringArray s_aVarsIn = {
60 };
61 override array<string> GetVariablesIn()
62 {
63 return s_aVarsIn;
64 }
65
66 //------------------------------------------------------------------------------------------------
67 override string GetNodeMiddleText()
68 {
69 string s;
70 s = s + string.Format("Speed: %1\n", typename.EnumToString(EMovementType, m_eSpeed));
71 return s;
72 }
73
74 //------------------------------------------------------------------------------------------------
75 override static string GetOnHoverDescription()
76 {
77 return "Sets movement speed of character. Also checks restrictions from settings.";
78 }
79};
ENodeResult NodeError(Node node, AIAgent owner, string msg)
Error call to be used in scripted BT nodes.
Definition NodeError.c:3
proto bool GetVariableIn(string name, out void val)
AICharacterMovementComponent m_MovementComponent
override ENodeResult EOnTaskSimulate(AIAgent owner, float dt)
SCR_AICharacterSettingsComponent m_SettingsComp
ENodeResult
Definition ENodeResult.c:13
EMovementType
SCR_FieldOfViewSettings Attribute
array< string > TStringArray
Definition Types.c:385