Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_RefuelTask.c
Go to the documentation of this file.
1//[EntityEditorProps(category: "GameScripted/Campaign", description: "Refuel task.", color: "0 0 255 255")]
2//class SCR_RefuelTaskClass: SCR_RequestedTaskClass
3//{
4//};
5//
7//class SCR_RefuelTask : SCR_RequestedTask
8//{
9// IEntity m_targetVehicle;
10//
11// //------------------------------------------------------------------------------------------------
12// static Vehicle GetVehicleExecutorIsIn(SCR_TaskExecutor taskExecutor)
13// {
14// if (!taskExecutor)
15// return null;
16//
17// SCR_TaskExecutorPlayer taskExecutorPlayer = SCR_TaskExecutorPlayer.Cast(taskExecutor);
18// if (!taskExecutorPlayer)
19// return null;
20//
21// int playerID = taskExecutorPlayer.GetPlayerID();
22//
23// ChimeraCharacter character = ChimeraCharacter.Cast(GetGame().GetPlayerManager().GetPlayerControlledEntity(playerID));
24// if (!character)
25// return null;
26//
27// if (!character.IsInVehicle())
28// return null;
29//
30// CompartmentAccessComponent compartmentAccessComponent = CompartmentAccessComponent.Cast(character.FindComponent(CompartmentAccessComponent));
31// if (!compartmentAccessComponent)
32// return null;
33//
34// BaseCompartmentSlot compartmentSlot = compartmentAccessComponent.GetCompartment();
35// if (!compartmentSlot)
36// return null;
37//
38// Vehicle vehicle = Vehicle.Cast(compartmentSlot.GetOwner());
39//
40// return vehicle;
41// }
42//
43// //------------------------------------------------------------------------------------------------
44// static bool CheckRefuelRequestConditions(notnull SCR_TaskExecutor taskExecutor)
45// {
46// Vehicle vehicle = GetVehicleExecutorIsIn(taskExecutor);
47// if (!vehicle)
48// return false;
49//
50// SCR_FuelNode fuelNode = SCR_FuelNode.Cast(vehicle.FindComponent(SCR_FuelNode));
51// if (!fuelNode)
52// return false;
53//
54// float maxFuel = fuelNode.GetMaxFuel();
55// float currentFuel = fuelNode.GetFuel();
56// float fuelPercent = currentFuel / maxFuel;
57//
58// return fuelPercent <= GetFuelLimit();
59// }
60//
61// //------------------------------------------------------------------------------------------------
62// static float GetFuelLimit()
63// {
64// if (!GetTaskManager())
65// return 0.5;
66//
67// SCR_RefuelTaskSupportEntity supportEntity = SCR_RefuelTaskSupportEntity.Cast(GetTaskManager().FindSupportEntity(SCR_RefuelTaskSupportEntity));
68// if (supportEntity)
69// return supportEntity.GetFuelLimit();
70//
71// return 0.5;
72// }
73//
74// //------------------------------------------------------------------------------------------------
75// void SetTargetVehicle(IEntity targetVehicle)
76// {
77// // Only set on server!
78// m_targetVehicle = targetVehicle;
79// }
80//
81// //------------------------------------------------------------------------------------------------
82// IEntity GetTargetVehicle()
83// {
84// return m_targetVehicle;
85// }
86//
87// //------------------------------------------------------------------------------------------------
88// void SetRequester(SCR_TaskExecutor requester, vector startOrigin)
89// {
90// super.SetRequester(requester);
91//
92// ShowAvailableTask();
93// }
94//
95// //------------------------------------------------------------------------------------------------
96// //Called whenever any fuel component finished refueling (even half way through)
97// void OnRefuelingFinished(SCR_FuelNode fuelNode, IEntity refueler)
98// {
99// if (!fuelNode || !refueler)
100// return;
101//
102// IEntity vehicle = fuelNode.GetOwner();
103// if (!vehicle)
104// return;
105//
106// if (GetTargetVehicle() != vehicle)
107// return;
108//
109// if (!GetTaskManager())
110// return;
111//
112// SCR_BaseTaskSupportEntity supportEntity = GetTaskManager().FindSupportEntity(SCR_BaseTaskSupportEntity);
113// if (!supportEntity)
114// return;
115//
116// SCR_BaseTaskExecutor assignee = GetAssignee();
117// if (!assignee)
118// {
119// supportEntity.FailTask(this);
120// return;
121// }
122//
123// IEntity assigneeControlledEntity = assignee.GetControlledEntity();
124// if (!assigneeControlledEntity || assigneeControlledEntity != refueler)
125// {
126// supportEntity.FailTask(this);
127// return;
128// }
129//
130// float currentFuel, maxFuel;
131// currentFuel = fuelNode.GetFuel();
132// maxFuel = fuelNode.GetMaxFuel();
133// float percent = currentFuel / maxFuel;
134//
135// if (percent >= SCR_RefuelTask.GetFuelLimit())
136// supportEntity.FinishTask(this);
137// }
138//
139// //------------------------------------------------------------------------------------------------
140// void SCR_RefuelTask(IEntitySource src, IEntity parent)
141// {
142// if (SCR_Global.IsEditMode(this))
143// return;
144//
145// SetEventMask(EntityEvent.INIT | EntityEvent.FRAME);
146// SetFlags(EntityFlags.NO_TREE | EntityFlags.NO_LINK);
147//
148// SetIndividual(true);
149//
150// if (!GetTaskManager().IsProxy())
151// SCR_FuelNode.s_OnRefuelingFinished.Insert(OnRefuelingFinished);
152// }
153//
154// //------------------------------------------------------------------------------------------------
155// void ~SCR_RefuelTask()
156// {
157// if (SCR_Global.IsEditMode(this) || !GetGame().GetGameMode())
158// return;
159//
160// if (!GetTaskManager().IsProxy())
161// SCR_FuelNode.s_OnRefuelingFinished.Remove(OnRefuelingFinished);
162// }
163//
164//};