Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_AIGetUsableVehicle.c
Go to the documentation of this file.
2{
3 static const string PORT_COMPARTMENT_TYPE = "CompartmentTypeIn";
4 static const string PORT_VEHICLE = "VehicleOut";
5 static const string PORT_COMPARTMENT = "CompartmentOut";
6
7 [Attribute("0", UIWidgets.ComboBox, "Find vehicle for:", "", ParamEnumArray.FromEnum(ECompartmentType) )]
9
10 [Attribute("0", UIWidgets.CheckBox, "Reserve compartment?" )]
11 protected bool m_bReserveCompartment;
12
13 protected ref array<BaseCompartmentSlot> m_aOutCompartments = {};
14
15 //----------------------------------------------------------------------------------------------------------------------------------------
16 override ENodeResult EOnTaskSimulate(AIAgent owner, float dt)
17 {
18 BaseCompartmentSlot compartmentOut;
19 ECompartmentType compType;
20 SCR_AIGroup group = SCR_AIGroup.Cast(owner);
21 if (!group)
22 group = SCR_AIGroup.Cast(owner.GetParentGroup());
23 if (!group)
24 return ENodeResult.FAIL;
25
26 if (!GetVariableIn(PORT_COMPARTMENT_TYPE,compType))
27 compType = m_eCompartmentType;
28
29 array<IEntity> vehicles = {};
31 if (!vehicles || vehicles.IsEmpty())
32 return ENodeResult.FAIL;
33
34 IEntity vehicle;
35 if (SCR_AICompartmentHandling.FindAvailableCompartmentInVehicles(vehicles, compType, compartmentOut, vehicle))
36 {
38 group.AllocateCompartment(compartmentOut);
39 SetVariableOut(PORT_COMPARTMENT, compartmentOut);
40 SetVariableOut(PORT_VEHICLE, vehicle);
41 return ENodeResult.SUCCESS;
42 }
43 ClearVariable(PORT_VEHICLE);
44 return ENodeResult.FAIL;
45 }
46
47 //----------------------------------------------------------------------------------------------------------------------------------------
48 protected static ref TStringArray s_aVarsIn = {
49 PORT_COMPARTMENT_TYPE
50 };
51
52 //----------------------------------------------------------------------------------------------------------------------------------------
54 {
55 return s_aVarsIn;
56 }
57
58 //----------------------------------------------------------------------------------------------------------------------------------------
59 protected static ref TStringArray s_aVarsOut = {
60 PORT_VEHICLE,PORT_COMPARTMENT
61 };
62
63 //----------------------------------------------------------------------------------------------------------------------------------------
65 {
66 return s_aVarsOut;
67 }
68
69 //----------------------------------------------------------------------------------------------------------------------------------------
70 static override bool VisibleInPalette()
71 {
72 return true;
73 }
74
75 //----------------------------------------------------------------------------------------------------------------------------------------
76 static override string GetOnHoverDescription()
77 {
78 return "GetUsableVehicle: takes vehicles from the list of known vehicles of group and checks if the slot of m_compartmentType is available.\n It does not relaese reservation the found compartment!";
79 }
80};
ECompartmentType
proto void SetVariableOut(string name, void val)
proto bool GetVariableIn(string name, out void val)
proto void ClearVariable(string name)
override ENodeResult EOnTaskSimulate(AIAgent owner, float dt)
static ref TStringArray s_aVarsIn
ref array< BaseCompartmentSlot > m_aOutCompartments
static override string GetOnHoverDescription()
static override bool VisibleInPalette()
static ref TStringArray s_aVarsOut
ECompartmentType m_eCompartmentType
override TStringArray GetVariablesOut()
override TStringArray GetVariablesIn()
void AllocateCompartment(BaseCompartmentSlot compartment)
SCR_AIGroupUtilityComponent GetGroupUtilityComponent()
ref SCR_AIGroupVehicleManager m_VehicleMgr
void GetAllVehicleEntities(array< IEntity > outAllVehicles)
ENodeResult
Definition ENodeResult.c:13
SCR_FieldOfViewSettings Attribute
array< string > TStringArray
Definition Types.c:385