Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_CampaignTaskHelper.c
Go to the documentation of this file.
2{
3 //------------------------------------------------------------------------------------------------
8 static SCR_Task GetTaskOnBase(notnull SCR_CampaignMilitaryBaseComponent campaignMilitaryBase, notnull Faction faction, typename taskClass)
9 {
10 array<SCR_Task> tasks = {};
11 SCR_TaskSystem.GetInstance().GetTasksByStateFiltered(
12 tasks,
13 SCR_ETaskState.CREATED | SCR_ETaskState.ASSIGNED,
14 faction.GetFactionKey(),
15 -1,
16 taskClass
17 );
18
21 SCR_CampaignMilitaryBaseTaskEntity campaignMilitaryBaseTask;
22
23 foreach (SCR_Task task : tasks)
24 {
25 campaignMilitaryBaseTask = SCR_CampaignMilitaryBaseTaskEntity.Cast(task);
26 if (!campaignMilitaryBaseTask)
27 continue;
28
29 data = SCR_CampaignMilitaryBaseTaskData.Cast(task.GetTaskData());
30 if (!data)
31 continue;
32
33 base = campaignMilitaryBaseTask.GetMilitaryBase();
34 if (!base)
35 continue;
36
37 if (base == campaignMilitaryBase)
38 return task;
39 }
40
41 return null;
42 }
43
44 //------------------------------------------------------------------------------------------------
50 static SCR_Task GetNearestTask(vector position, notnull Faction faction, typename taskClass, out float nearestTaskDistance)
51 {
52 array<SCR_Task> tasks = {};
53 SCR_TaskSystem.GetInstance().GetTasksByStateFiltered(
54 tasks,
55 SCR_ETaskState.CREATED | SCR_ETaskState.ASSIGNED,
56 faction.GetFactionKey(),
57 -1,
58 taskClass
59 );
60
61 nearestTaskDistance = float.MAX;
62 float taskDistance;
63 SCR_Task nearestTask;
64
65 foreach (SCR_Task task : tasks)
66 {
67 if (!task)
68 continue;
69
70 taskDistance = vector.DistanceSqXZ(position, task.GetTaskPosition());
71 if (taskDistance < nearestTaskDistance)
72 {
73 nearestTaskDistance = taskDistance;
74 nearestTask = task;
75 }
76 }
77
78 nearestTaskDistance = Math.Sqrt(nearestTaskDistance);
79 return nearestTask;
80 }
81}
vector position
Get all prefabs that have the spawner data
void SCR_Task(IEntitySource src, IEntity parent)
Definition SCR_Task.c:1938
SCR_ETaskState
Definition SCR_Task.c:3
Definition Math.c:13