Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_ScenarioFrameworkSlotDelivery.c
Go to the documentation of this file.
1[EntityEditorProps(category: "GameScripted/ScenarioFramework/Slot", description: "")]
5
6class SCR_ScenarioFrameworkSlotDelivery : SCR_ScenarioFrameworkSlotTask
7{
8 [Attribute(desc: "Name of the task layer associated with this deliver point, Doesn't need to be set if nested under task layer Deliver.", category: "Task")];
9 protected ref array<string> m_aAssociatedTaskLayers;
10
11 //------------------------------------------------------------------------------------------------
14 {
15 if (m_aAssociatedTaskLayers.IsEmpty())
16 {
17 //the Associated layer task attribute is empty, lets check if the parent layer of this delivery slot is Task Deliver
18 //if yes, the user didn't need to fill the mentioned attribute since it's nested the layer
19 //Not every time is the delivery slot nested under the Layer task Deliver since it can be created later.
20 m_TaskLayer = GetParentTaskLayer();
21 if (m_TaskLayer && SCR_ScenarioFrameworkLayerTaskDeliver.Cast(m_TaskLayer))
22 SCR_ScenarioFrameworkLayerTaskDeliver.Cast(m_TaskLayer).SetDeliveryPointEntity(m_Entity);
23 else
24 Print(string.Format("ScenarioFramework: ->Task->Delivery point %1 doesn't have associated layer attribute set (and is nested outside of its layer task delivery)", GetOwner().GetName()), LogLevel.ERROR);
25 }
26 else
27 {
28 IEntity entity;
29 foreach (string sLayerName : m_aAssociatedTaskLayers)
30 {
31 entity = GetGame().GetWorld().FindEntityByName(sLayerName);
32 if (entity)
33 m_TaskLayer = SCR_ScenarioFrameworkLayerTaskDeliver.Cast(entity.FindComponent(SCR_ScenarioFrameworkLayerTaskDeliver));
34
35 if (m_TaskLayer)
36 {
37 if (m_Entity)
38 SCR_ScenarioFrameworkLayerTaskDeliver.Cast(m_TaskLayer).SetDeliveryPointEntity(m_Entity);
39 }
40 else
41 {
42 Print(string.Format("ScenarioFramework: ->Task->Delivery point: Task Layer %1 doesn't exist.", sLayerName), LogLevel.ERROR);
43 }
44 }
45 }
46 }
47
48 //------------------------------------------------------------------------------------------------
51 {
52 super.FinishInitChildrenInsert();
53
54 SCR_BaseTriggerEntity trigger = SCR_BaseTriggerEntity.Cast(m_Entity);
55 if (!trigger)
56 return;
57
58 SCR_TaskDeliver task = SCR_TaskDeliver.Cast(m_TaskLayer.GetTask());
59 if (task)
60 {
61 task.SetLayerTask(m_TaskLayer);
62 task.SetDeliveryTrigger(trigger);
63 task.UpdateTaskTitleAndDescription();
64 }
65 else
66 {
67 if (m_aAssociatedTaskLayers.IsEmpty())
68 {
69 Print(string.Format("ScenarioFramework: ->Task->Delivery point: Associated Task Layers are empty"), LogLevel.ERROR);
70 return;
71 }
72
73 IEntity entity;
74 foreach (string sLayerName : m_aAssociatedTaskLayers)
75 {
76 entity = GetGame().GetWorld().FindEntityByName(sLayerName);
77 if (entity)
78 m_TaskLayer = SCR_ScenarioFrameworkLayerTaskDeliver.Cast(entity.FindComponent(SCR_ScenarioFrameworkLayerTaskDeliver));
79
80 if (m_TaskLayer)
81 {
82 task = SCR_TaskDeliver.Cast(m_TaskLayer.GetTask());
83 if (task)
84 {
85 task.SetLayerTask(m_TaskLayer);
86 task.SetDeliveryTrigger(trigger);
87 task.UpdateTaskTitleAndDescription();
88 }
89 }
90 else
91 {
92 Print(string.Format("ScenarioFramework: ->Task->Delivery point: Task Delivery does not exist for Layer %1", sLayerName), LogLevel.ERROR);
93 }
94 }
95 }
96 }
97}
ArmaReforgerScripted GetGame()
Definition game.c:1398
enum EAITargetInfoCategory m_Entity
enum SCR_ECompassType EntityEditorProps(category:"GameScripted/Gadgets", description:"Compass", color:"0 0 255 255")
Prefab data class for compass component.
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
void FinishInitChildrenInsert()
For situations where some other logic is needed to be performed before or after this Insert.
override void StoreTaskSubjectToParentTaskLayer()
Sets delivery point entity for nested tasks within associated layers or parent layer if no associated...
ref array< string > m_aAssociatedTaskLayers
SCR_ScenarioFrameworkLayerTask GetParentTaskLayer()
proto external Managed FindComponent(typename typeName)
proto external BaseWorld GetWorld()
IEntity GetOwner()
Owner entity of the fuel tank.
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
SCR_FieldOfViewSettings Attribute