Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_CustomTriggerConditionsCheckVehicleEngineRunning.c
Go to the documentation of this file.
3{
4 [Attribute(desc: "Checked Vehicle Getter")]
5 ref SCR_ScenarioFrameworkGet m_VehicleGetter;
6
7 [Attribute(defvalue: "1")]
8 bool m_bIsEngineOn;
9
10 //------------------------------------------------------------------------------------------------
13 override bool Init(IEntity entity)
14 {
15 if (m_bIsEngineOn)
16 return CheckEnginesRunning(entity);
17
18 return !CheckEnginesRunning(entity);
19 }
20
21 //------------------------------------------------------------------------------------------------
22 protected bool CheckEnginesRunning(IEntity entity)
23 {
25 if (!trigger)
26 return false;
27
28 array<IEntity> entities = {};
29 trigger.GetEntitiesInside(entities);
30
31 if (!entities || entities.IsEmpty())
32 return false;
33
34 //preparing vehicles
35 array<Vehicle> vehicles = {};
36
37 Vehicle vehicleEnt;
38 if (m_VehicleGetter)
39 {
40 vehicleEnt = Vehicle.Cast(ValidateInputEntity(m_VehicleGetter));
41 if (!vehicleEnt)
42 return false;
43
44 vehicles.Insert(vehicleEnt);
45 }
46 else
47 {
48 foreach (IEntity ent : entities)
49 {
50 vehicleEnt = Vehicle.Cast(ent);
51 if (vehicleEnt)
52 vehicles.Insert(vehicleEnt);
53 }
54 }
55
56 if (vehicles.IsEmpty())
57 return false;
58
59 VehicleControllerComponent vehicleController;
60 foreach (Vehicle veh : vehicles)
61 {
62 vehicleController = VehicleControllerComponent.Cast(veh.FindComponent(VehicleControllerComponent));
63 if (!vehicleController)
64 continue;
65
66 if (vehicleController.IsEngineOn())
67 return true;
68 }
69
70 return false;
71 }
72
73 //------------------------------------------------------------------------------------------------
75 {
76 SCR_ScenarioFrameworkParam<IEntity> entityWrapper = SCR_ScenarioFrameworkParam<IEntity>.Cast(getter.Get());
77 if (!entityWrapper)
78 {
79 PrintFormat("ScenarioFramework Action: Issue with Getter detected for Action %1.", this, level: LogLevel.ERROR);
80 return null;
81 }
82
83 IEntity ent = entityWrapper.GetValue();
85 if (layerBase)
86 return layerBase.GetSpawnedEntity();
87
88 return entityWrapper.GetValue();
89 }
90}
override void Init()
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
void SCR_ScenarioFrameworkLayerBase(IEntityComponentSource src, IEntity ent, IEntity parent)
proto external Managed FindComponent(typename typeName)
enum EPhysicsLayerPresets Vehicle
Definition gameLib.c:24
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
proto void PrintFormat(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL, LogLevel level=LogLevel.NORMAL)
SCR_FieldOfViewSettings Attribute