Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_AIDecoAreVehiclesBurning.c
Go to the documentation of this file.
2{
3 static const string VEHICLE_PORT = "InEntity";
4 static const string BURNING_VEHICLE_PORT = "BurningVehicleOut";
5
6 //-----------------------------------------------------------------------------------------------------
7 override bool TestFunction(AIAgent owner)
8 {
9 IEntity singleVehicle;
10 SCR_DamageManagerComponent damageManager;
11 GetVariableIn(VEHICLE_PORT, singleVehicle);
12 if (singleVehicle)
13 {
14 BaseVehicle vehicle = BaseVehicle.Cast(singleVehicle);
15 if (!vehicle)
16 return false;
17 damageManager = vehicle.GetDamageManager();
18 if (!damageManager)
19 return false;
20 bool isOnFire = SCR_AIVehicleUsability.VehicleIsOnFire(singleVehicle, damageManager);
21 return ReturnVariables(isOnFire, singleVehicle);
22 }
23 SCR_AIGroup group = SCR_AIGroup.Cast(owner);
24 if (!group)
25 return false;
26
27
29
30 array<ref SCR_AIGroupVehicle> usableVehicles = {};
31 vehMgr.GetAllVehicles(usableVehicles);
32
33 foreach (SCR_AIGroupVehicle groupVehicle: usableVehicles)
34 {
35 IEntity vehicleEntity = groupVehicle.GetEntity();
36 BaseVehicle vehicle = BaseVehicle.Cast(vehicleEntity);
37 if (!vehicle)
38 continue;
39 damageManager = vehicle.GetDamageManager();
40 if (!damageManager)
41 continue;
42 bool isOnFire = SCR_AIVehicleUsability.VehicleIsOnFire(vehicleEntity, damageManager);
43 if (isOnFire)
44 return ReturnVariables(isOnFire, vehicleEntity);
45 }
46
47
48 ClearVariable(BURNING_VEHICLE_PORT);
49 return false;
50 }
51
52 //-----------------------------------------------------------------------------------------------------
53 protected bool ReturnVariables(bool isVehicleBurning, IEntity vehicle)
54 {
55 if (isVehicleBurning)
56 SetVariableOut(BURNING_VEHICLE_PORT, vehicle);
57 else
58 ClearVariable(BURNING_VEHICLE_PORT);
59 return isVehicleBurning;
60 }
61
62 //-----------------------------------------------------------------------------------------------------
63 protected static override bool VisibleInPalette()
64 {
65 return true;
66 }
67
68 //-----------------------------------------------------------------------------------------------------
69 protected static ref TStringArray s_aVarsIn = {
70 VEHICLE_PORT
71 };
72 protected override TStringArray GetVariablesIn()
73 {
74 return s_aVarsIn;
75 }
76
77 //-----------------------------------------------------------------------------------------------------
78 protected static ref TStringArray s_aVarsOut = {
79 BURNING_VEHICLE_PORT
80 };
81 protected override TStringArray GetVariablesOut()
82 {
83 return s_aVarsOut;
84 }
85
86 //-----------------------------------------------------------------------------------------------------
87 static override string GetOnHoverDescription()
88 {
89 return "DecoAreVehiclesBurning: if provided with vehicle entity, returns if it is burning, otherwise checks all known vehicles of group and returns (first) burning vehicle.";
90 }
91}
proto void SetVariableOut(string name, void val)
proto bool GetVariableIn(string name, out void val)
proto void ClearVariable(string name)
static override string GetOnHoverDescription()
bool ReturnVariables(bool isVehicleBurning, IEntity vehicle)
SCR_AIGroupUtilityComponent GetGroupUtilityComponent()
ref SCR_AIGroupVehicleManager m_VehicleMgr
This class is used for keeping track of vehicles assigned to group.
void GetAllVehicles(array< ref SCR_AIGroupVehicle > outAllVehicles)
array< string > TStringArray
Definition Types.c:385